6 votes

En utilisant ffmpeg, puis-je incruster directement des sous-titres à partir d'une piste de sous-titres mkv au lieu d'un fichier de sous-titres ?

Je dispose d'un fichier mkv contenant plusieurs flux de sous-titres. Je sais que je peux utiliser mkvextract pour extraire l'un de ces flux de sous-titres vers un fichier, par exemple, sub.srt. Je peux ensuite graver ces sous-titres dans la nouvelle vidéo avec ffmpeg comme ceci :

ffmpeg -i video.mkv -vf subtitles=sub.srt out.mp4

Je sais aussi que je peux utiliser -map pour sélectionner les pistes vidéo, audio et de sous-titres et les encoder dans la nouvelle vidéo, encore quelque chose comme ceci :

ffmpeg -i video.mkv -map 0:0 -map 0:1 -map 0:4 -c:v copy -c:a copy -c:s copy out.mp4

Cependant, ce que je n'arrive pas à comprendre, c'est comment transcoder une vidéo et graver les sous-titres dans le nouveau fichier (pas seulement ajouter une piste de sous-titres, mais les graver dans la vidéo) sans les lire à partir d'un fichier de sous-titres, mais directement à partir du flux vidéo de l'ancien fichier.

Des idées ?

2voto

Iwo Points 21

J'ai récemment trouvé ce post et je connais la réponse. J'espère que cela pourra aider d'autres personnes également.

Ce que vous faites essentiellement, c'est également mettre le fichier mkv dans la variable des sous-titres. Vous pouvez ajouter :si=0 (indice des sous-titres) qui prend le premier flux de sous-titres qu'il peut trouver. Vous devrez utiliser les guillemets simples et doubles si le fichier contient des espaces.

ffmpeg -i video.mkv -vf "subtitles='video.mkv':si=0" out.mp4

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X