Estou tentando extrair legendas do vídeo como .srt
arquivo, usei o seguinte comando:
FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt
Mas, recebi um erro como opção não reconhecida codec:s:0:1
Então, você pode me dizer o comando exato e como extrair uma legenda como .srt
arquivo em vídeo?
Respostas:
Simples:
fonte
0:s:1
para baixar o segundo,0:s:2
para baixar o terceiro e assim por diante.-map
parâmetros para cada arquivo. Também incluem-c copy
de modo que apenas extrai o arquivo sem tentar processá-lo:ffmpeg -i Movie.mkv -c copy -map 0:s:0 subs.01.srt -c copy -map 0:s:1 subs.02.srt
. De qualquer forma, levará muito tempo porque o ffmpeg deve ler o arquivo de vídeo inteiro para encontrar todas as partes dos fluxos de legenda.-codec:s:0:1
está incorreto. Se você usar-codec:s:0
, o ffmpeg usará o codec indicado para o primeiro fluxo de legenda que está sendo transmitido para a saída; se você usar-codec:s:1
, ele o usará para o segundo fluxo de legenda, etc.Você também pode usar
-codec:s
para selecionar todos os fluxos de legenda de saída ou-codec:2
para selecionar o terceiro fluxo de saída, independentemente do que seja.Você provavelmente está confuso porque a
-map
opção se comporta de uma maneira diferente - lá, você precisa selecionar de qual entrada o fluxo selecionado vem. (assim,-map 0:s:0
pegaria o primeiro fluxo de legenda da primeira entrada e o alimentaria na saída). No entanto,-map
é para selecionar quais fluxos você deseja obter das entradas; enquanto a maioria das outras opções que usam o mapeamento de fluxo é para uso nos fluxos depois que eles foram selecionados (portanto, não é necessário especificar de qual arquivo de entrada eles são), pois eles são passados para a saída.fonte
ffmpeg -i E:\Routine\routine.mkv -map 0:s:0 E:\Routine\sub.srt
(ffmpeg deve detectar que você quer srt legendas o nome do arquivo de saída)ffmpeg -i film.mp4 -vn -an -codec:s srt film.srt
isso deve copiar todas as legendas para o arquivo srt.-codec:s
é igual a-codec:s:0
que ele não selecionar todas as legendas ... ele irá extrair primeira faixa de texto