Habilita o fluxo de legendas por padrão com ffmpeg

0

O ffmpeg pode criar um filme com uma faixa de legenda sinalizada para visibilidade automática?

Por exemplo, no VLC, tenho que ativar manualmente uma faixa de legendas no menu de legendas. Seria ótimo se as legendas aparecessem sem qualquer intervenção.

Eu encontrei isso em stackoverflow:

ffmpeg -i in.mp4 -i in.srt -c copy -disposition:s:0 default out.mkv

Mas ele seleciona a trilha de legendas padrão de várias faixas e não torna visível nenhuma legenda no início do filme.

    
por Viktor Joras 15.10.2016 / 12:23

2 respostas

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 , essa marca só será reconhecida a partir dessas versões de programas:

  • MPC-HC 1.7.10.207 (maio de 2016)

  • VLC 3.0.0-20161101 (nov 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 MPC-HC ou 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 13.04.2017 / 02:14
0

Relacionado ao VLC.
Você pode ativar a visibilidade automática de legendas no VLC escrevendo a palavra any em Ferramentas == > Preferências == > Legendas / OSD == > Idioma de legendas preferido

    
por 15.10.2016 / 18:20