webvtt字幕をmp4ビデオに書き込む

webvtt字幕をmp4ビデオに書き込む

私はffmpegを使ってmp4ビデオに字幕を焼く方法を探しています。

字幕を変換して書き込みするには、次のコマンドを使用しましたが、機能しません!

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%

ベストアンサー1

あなたのコマンドは字幕を混在させることです(クライアントが字幕をオン/オフできるようにビデオファイルに入れます)。

ビデオに書きたい場合は、まず.vttを.assに変換する必要があります(注:ffmpegはlibassとしてビルドする必要があります)。

ffmpeg -i subtitle.vtt subtitle.ass

その後、ビデオに字幕を書き込みます。

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

これで、out.mp4が字幕で焼かれます。

おすすめ記事