Como definir legendas padrão com ffmpeg

2

Eu criei um arquivo mp4 de vídeo, áudio e .srt arquivo.

ffmpeg -i video.mp4 -i audio.m4a -i sub.srt -map 0:0 -metadata:s:v:0:0 language=eng -map 1:0 -metadata:s:a:0:0 language=eng -map 2:0 -metadata:s:s:0:0 language=eng -c copy -scodec mov_text out.mp4

Funciona bem, mas a legenda não é mostrada por padrão. Existe maneira de mostrar a legenda por padrão?

    
por ironsand 27.09.2015 / 10:47

1 resposta

1

Você pode usar MP4Box 0.6.2-DEV-rev453 (maio de 2016) ou superior para fazer isso:

mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

Isso marcará o fluxo de legendas no arquivo de saída como forçado. No entanto , esta marca só será reconhecida a partir de VLC 3.0.0-20161101 (novembro de 2016).

Eu vi menções a esta postagem na lista de discussão do FFmpeg sobre uma patch que implementa disposição para o FFmpeg:

ffmpeg -i xr.mp4 -i xr.en.srt -c copy -c:s mov_text -disposition:s forced ya.mp4

No entanto, depois de ter tentado com "forçado" e "padrão", as legendas marcados pelo FFmpeg não são reconhecidos como forçados pelo VLC.

Para responder ao comentário, aqui está um teste com o MP4Box 0.7.0 (abr. 2017) e VLC 3.0.0-20170926 (setembro de 2017). Observe versões mais recentes do VLC estão tendo um problema de travamento, mesmo em vídeos sem legendas. Usando este arquivo:

youtube-dl --write-auto-sub --format 18 --output xr.mp4 kcs82HnguGc
ffmpeg -i xr.en.vtt xr.en.srt
mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

Resultado:

sub

    
por 25.11.2016 / 23:49

Tags