您当前的位置:首页 > 计算机 > 软件应用 > 其它软件

使用 FFmpeg 为视频添加字幕

时间:10-21来源:作者:点击数:

编入视频流(内嵌字幕|硬字幕)

要在视频流上面加上字幕,就得使用一个叫做 subtitles 的滤镜,要使用这个滤镜,在命令中写上 -vf subtitles=字幕文件名 ,还是要注意,如果文件名包含空格或其他特殊字符,得用半角引号包起来: -vf subtitles="字幕 文件名"因为这个操作改写了视频流,所以视频流必须得重新编码。

使用 subtitles 滤镜为视频添加字幕(将字幕合成到视频流中,输出文件中不含字幕流):

ffmpeg -i input.mkv -vf subtitles=subtitles.srt output.mkv

将 input.mkv 中的字幕(默认)嵌入到 output.mp4 文件

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

将 input.mkv 中的字幕(第二个)嵌入到 output.mp4 文件

ffmpeg -i input.mkv -vf subtitles=input.mkv:si=1 output.mp4

关于 subtitles 滤镜的详细用法:http://ffmpeg.org/ffmpeg-all.html#subtitles-1

还可以使用 ass 滤镜,用法和 subtitles 滤镜几乎一样,但它只用于 ASS (Ad­vanced Sub­sta­tion Al­pha) 字幕文件,可以先进行字幕转换,再使用它:

ffmpeg -i subtitles.srt subtitles.ass
ffmpeg -i input.mkv -vf ass=subtitles.ass output.mp4

关于 ass 滤镜的说明:http://ffmpeg.org/ffmpeg-all.html#ass

在实际使用中发现 ass 和 subtitles 最终效果并无区别,但 ass 只能使用 ASS 字幕文件,不可以直接使用容器中的字幕流,所以直接使用 subtitles 即可,省去了手动提取和转换的过程。

作为字幕流(内封字幕|软字幕)

将字幕封装到容器中,就是所谓的字幕流,和视频流、音频流同等地位。值得说明的是,并非所有的容器都支持字幕流,先进的 MKV 是支持的,MP4 目前我只知道支持苹果的 MOV text。

MKV 封装工具:MKVToolNix

MKV 提取工具:gMKVExtractGUIMKVExtractGUI

MKVEx­tract­GUI 无法使用,原因未知

使用图形化工具更方便。以下都是废话

将字幕封装到容器中
ffmpeg -i input.mkv -i subtitles.srt -c copy output.mkv
从容器中提取字幕流
ffmpeg -i input.mkv output.srt

例子中生成的是 srt 格式的,可以任意生成所需的格式,改一下扩展名即可。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门