用FFmpeg设置视频中的字幕
广告
{{v.name}}
字幕分为硬字幕和软字幕。
硬字幕永久嵌入视频帧中,成为画面的一部分,无法关闭。
软字幕作为独立轨道嵌入视频文件,播放时可选择性开启或关闭。
硬字幕会直接将字幕渲染到视频帧上,代码如下
$ ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output_hardsub.mp4
通过 force_style 参数覆盖字幕文件中的样式或为 ASS/SRT 字幕指定基本样式,代码如下
$ ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&HFFFFFF&'" output_styled.mp4
指定字体路径(如果字体文件不在系统默认目录),代码如下
$ ffmpeg -i input.mp4 -vf "subtitles=subtitle.ass:fontsdir=/path/to/fonts/" output_with_fonts.mp4
软字幕将字幕作为独立的轨道封装到视频容器中,播放时可以选择是否显示,代码如下
$ ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=eng output_softsub.mp4
添加多个软字幕(多语言),代码如下
$ ffmpeg -i input.mp4 -i sub_eng.srt -i sub_chi.srt -map 0 -map 1 -map 2 -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=zho output_multiple_subs.mp4
友链