常见的字幕格式
https://zh.wikipedia.org/wiki/%E5%AD%97%E5%B9%95%E6%A0%BC%E5%BC%8F
常见的格式:srt、ass、webvtt
srt 字幕格式
SRT(Subripper)是最简单的文本字幕格式,扩展名为.srt
每个字幕段有四部分构成:
- 字幕序号
- 字幕显示的起始时间
- 字幕内容(可多行)
- 空白行(表示本字幕段的结束)
如:
1 2 3 | 45 00:02:52,184 --> 00:02:53,617 慢慢来 |
这表示:第45个字幕,显示时间从该影片开始的第2分52.184秒到第2分53.617秒,内容为:慢慢来
webvtt 字幕格式
webvtt 字幕格式会字幕文件前添加6个字母标识即 WEBVTT,内容和srt格式内容一样。
ffmpeg 字幕处理
ffmpeg 添加视频软字幕
- 将字幕封装到容器中
ffmpeg -i input.mp4 -i subtitles.srt -c copy output.mp4 - 从容器中提取字幕流
ffmpeg -i input.mp4 output.srt
例子中生成的是 srt 格式的,可以任意生成所需的格式,改一下扩展名即可。
ffmpeg 添加视频硬字幕
通过ffmpeg在视频流上面加上添加硬字幕,需要使用 subtitles 的滤镜,命令 -vf subtitles=字幕文件名 ,这个操作会对视频重新编码。
-
使用 subtitles 滤镜为视频添加字幕(将字幕合成到视频流中,输出文件中不含字幕流,硬字幕):
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4 -
将 input.mp4 中的字幕(默认)嵌入到 output.mp4 文件:
ffmpeg -i input.mp4 -vf subtitles=input.mp4 output.mp4 -
将 input.mp4 中的字幕(第二个)嵌入到 output.mp4 文件
ffmpeg -i input.mp4 -vf subtitles=input.mkv:si=1 output.mp4
关于 subtitles 滤镜的详细用法:
http://ffmpeg.org/ffmpeg-all.html#subtitles-1
ass 等字幕格式使用方法一样。
ffmpeg 字幕格式转换
ffmpeg -i a.ass b.srt
ffmpeg -i c.vtt d.srt
ffmpeg -i e.lyric f.srt
参考
字幕网址:
http://www.zmxiazai.com/
https://www.zimutiantang.com/
可以网址上的常见的字幕来进行分析和测试。