Gravar legendas com avconv?

4

Eu tenho um arquivo mkv e quero convertê-lo em um arquivo mpg compatível com DVD com avconv . Como eu também posso gravar em um fluxo de legendas do mesmo arquivo mkv?

avconv -i input.mkv -map 0:0 -map 0:1 -target pal-dvd -aspect 16:9 -q:v 1 -acodec mp2 -ac 2 -ab 128k output.mpg

    
por user4811 21.09.2013 / 17:47

1 resposta

5

Legendas baseadas em texto

O ffmpeg tem um subtitles filter que pode gravar arquivos SRT no fluxo de vídeo. Você precisa do ffmpeg compilado com --enable-libass . Eu não acho que o Libav tenha algo parecido, pelo menos olhando os filtros disponíveis .

Primeiro você precisa extrair as legendas. -map 0:s:0 seleciona o primeiro fluxo de legenda para a saída e -c:s:0 seleciona o codec para ele - apenas para garantir que seja realmente SRT.

ffmpeg -i input.mkv -an -vn -map 0:s:0 -c:s:0 srt subtitles.srt

Então, queime-os.

ffmpeg -i input.mkv -map 0:0 -map 0:1 -target pal-dvd -aspect 16:9 -q:v 1 \
-c:a mp2 -ac 2 -b:a 128k -filter:v subtitles=subtitles.srt output.mpg

Nota:

  • O comando acima está assumindo que os fluxos 0:0 e 0:1 na sua entrada são os fluxos de vídeo e áudio, respectivamente. Se você quiser impedir que as legendas sejam incluídas no arquivo de saída, você também pode adicionar -sn para desativá-las completamente.

  • Você precisa alterar -ab para -b:a , pois o primeiro é uma opção inexistente para o ffmpeg.

Legendas baseadas em imagem

Caso sua entrada tenha legendas baseadas em imagem como HDMV PG (parece que o MakeMKV está criando essas, e outras ferramentas não conseguem extraí-las), você pode tentar usar o filtro de sobreposição para gravá-las:

ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a \
-target pal-dvd -aspect 16:9 -q:v 1 -c:a mp2 -ac 2 -b:a 128k output.mpg

Isto também é explicado no Wiki do FFmpeg .

Caso suas legendas tenham dimensões diferentes do filme original (por exemplo, porque o fluxo de vídeo foi reduzido, mas as legendas não foram), você pode tentar usar a opção -canvas_size para definir o tamanho.

    
por 21.09.2013 / 19:31