用 FFmpeg 把字幕烧录进视频(硬字幕)
将 .srt 字幕直接渲染到画面上,变成视频的一部分,任何播放器和设备都能显示,并可通过 force_style 自定义字体样式。
执行 ffmpeg -i movie.mp4 -vf "subtitles=movie.srt:force_style='FontSize=24'" -c:a copy output.mp4 即可把字幕永久烧进画面。
01命令
命令
$ ffmpeg -i movie.mp4 -vf "subtitles=movie.srt:force_style='FontName=Noto Sans CJK SC,FontSize=24'" -c:a copy output.mp402作用说明
subtitles 滤镜借助 libass 在重新编码时把每句字幕直接画到视频帧上,文字无法关闭——这正是追求兼容性时想要的效果。force_style 可以直接指定字体、字号和颜色,无需修改 .srt 文件;中文字幕请使用 Noto Sans CJK SC 等支持中文的字体。音频采用流复制,只有视频轨会被重新编码。
03风险
!注意: 烧录字幕必须重新编码整个视频,耗时较长且画质略有下降;烧进去的字幕无法再移除,请务必保留原始文件。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- FFmpeg Filters Documentation (subtitles filter)依据: The subtitles filter renders text subtitles onto frames via libass and accepts a force_style option to override font, size and colors.
- ffmpeg(1) — Linux manual page依据: Documents -vf video filtering and audio stream copying with -c:a copy during re-encode operations.
最后验证: 2026-09-18 · 分类: 媒体