Como extrair legendas de vídeo usando o ffmpeg?

24

Estou tentando extrair legenda do vídeo como .srt file, 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 no vídeo?

    
por vijay 16.04.2013 / 09:50

2 respostas

34

Simples: ffmpeg -i Movie.mkv -map 0:s:0 subs.srt

    
por 13.06.2015 / 18:18
7

-codec:s:0:1 está incorreto. Se você usar -codec:s:0 , o ffmpeg usará o codec indicado para o primeiro fluxo de legenda sendo passado para a saída, se você usar -codec:s:1 , ele será usado para o segundo fluxo de legendas, etc.

Você também pode usar -codec:s para selecionar todos streams 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 opção -map 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 há necessidade de especificar de qual arquivo de entrada eles são), pois eles são passados para a saída.

    
por 16.04.2013 / 11:06