queimando legendas webvtt para vídeo mp4

2

Estou procurando uma maneira de gravar legendas em vídeos mp4 com ffmpeg.

Eu usei o seguinte comando para converter e gravar legendas, mas não funcionou!

ffmpeg -i subtitle.vtt subtitle.srt
ffmpeg -i video.mp4 -i subtitle.vtt -c copy -c:s mov_text out.mp4
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (webvtt -> mov_text)
Press [q] to stop, [?] for help
[mp4 @ 0x80aee0] Encoder did not produce proper pts, making some up.
frame= 2692 fps=1139 q=-1.0 Lsize=    2416kB time=00:01:29.83 bitrate= 220.3kbits/s
video:1264kB audio:1053kB subtitle:2 global headers:0kB muxing overhead 4.178210%
    
por unbl0ck3r 27.12.2016 / 16:57

1 resposta

2

Seu comando está trocando as legendas (colocando no arquivo de vídeo, para que o cliente possa ativá-las e desativá-las); não gravá-los no vídeo.

Já que você quer gravá-los no vídeo, você deve primeiro converter seu .vtt para .ass (nota: seu ffmpeg deve ter sido construído com libass):

ffmpeg -i subtitle.vtt subtitle.ass

Em seguida, grave as legendas no vídeo:

ffmpeg -i video.mp4 -vf ass=subtitle.ass out.mp4

Agora fora.mp4 terá legendas queimadas.

    
por 27.12.2016 / 17:04

Tags