J'essaie d'extraire les sous-titres de la vidéo sous forme de .srt
fichier, j'ai utilisé la commande suivante:
FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt
Mais, j'ai une erreur en tant qu'option non reconnue codec:s:0:1
Alors, pouvez-vous me dire la commande exacte et comment extraire un sous-titre en .srt
fichier vidéo?
Réponses:
Simple:
la source
0:s:1
pour télécharger le second,0:s:2
pour télécharger le troisième, etc.-map
paramètres de chaque fichier. Inclure aussi de-c copy
sorte qu'il extrait juste le fichier sans essayer de le traiter:ffmpeg -i Movie.mkv -c copy -map 0:s:0 subs.01.srt -c copy -map 0:s:1 subs.02.srt
. Quoi qu'il en soit, cela prendra du temps car ffmpeg doit lire le fichier vidéo entier pour trouver toutes les parties des flux de sous-titres.-codec:s:0:1
est incorrect. Si vous utilisez-codec:s:0
alors ffmpeg utilisera le codec indiqué pour le premier flux de sous-titres transmis à la sortie, si vous utilisez-codec:s:1
alors il l'utilisera pour le second flux de sous-titres, etc.Vous pouvez également utiliser
-codec:s
pour sélectionner tous les flux de sous-titres en sortie ou-codec:2
pour sélectionner le troisième flux de sortie, quel qu'il soit.Vous êtes probablement confus parce que l'
-map
option se comporte d'une manière différente - là, vous devez sélectionner de quelle entrée provient le flux sélectionné. (donc,-map 0:s:0
prendrait le premier flux de sous-titres de la première entrée et le transmettrait à la sortie). Cependant,-map
c'est pour sélectionner les flux que vous souhaitez prendre à partir des entrées; tandis que la plupart des autres options qui utilisent le mappage de flux doivent être utilisées sur les flux après leur sélection (il n'est donc pas nécessaire de spécifier de quel fichier d'entrée ils proviennent), car ils sont passés à la sortie.la source
ffmpeg -i E:\Routine\routine.mkv -map 0:s:0 E:\Routine\sub.srt
(ffmpeg devrait détecter que vous voulez des sous-titres srt à partir du nom du fichier de sortie)ffmpeg -i film.mp4 -vn -an -codec:s srt film.srt
cela devrait copier tous les sous-titres dans le fichier srt.-codec:s
est égal à-codec:s:0
donc il ne sélectionne pas tous les sous-titres ... il extraira la première piste de texte