添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
冷冷的橡皮擦  ·  ffmpeg 3d stereo3d ...·  4 周前    · 
重感情的哑铃  ·  Java ...·  3 周前    · 
旅行中的红茶  ·  arr = map(int ...·  1 年前    · 

我安装的版本是4.3.1,支持ass字幕格式。

yejr@yejr.run> ffmpeg -version

built with Apple clang version 12.0.0 (clang-1200.0.32.28)

configuration: --prefix=/usr/ local /Cellar/ffmpeg/4.3.1_8 -- enable -shared -- enable -pthreads -- enable -version3 -- enable -avresample --cc=clang --host-cflags= --host-ldflags= -- enable -ffplay -- enable -gnutls -- enable -gpl -- enable -libaom -- enable -libbluray -- enable -libdav1d -- enable -libmp3lame -- enable -libopus -- enable -librav1e -- enable -librubberband -- enable -libsnappy -- enable -libsrt -- enable -libtesseract -- enable -libtheora -- enable -libvidstab -- enable -libvorbis -- enable -libvpx -- enable -libwebp -- enable -libx264 -- enable -libx265 -- enable -libxml2 -- enable -libxvid -- enable -lzma -- enable -libfontconfig -- enable -libfreetype -- enable -frei0r -- enable -libass -- enable -libopencore-amrnb -- enable -libopencore-amrwb -- enable -libopenjpeg -- enable -librtmp -- enable -libspeex -- enable -libsoxr -- enable -videotoolbox -- enable -libzmq -- enable -libzimg -- disable -libjack -- disable -indev=jack

libavutil 56. 51.100 / 56. 51.100

libavcodec 58. 91.100 / 58. 91.100

libavformat 58. 45.100 / 58. 45.100

libavdevice 58. 10.100 / 58. 10.100

libavfilter 7. 85.100 / 7. 85.100

libavresample 4. 0. 0 / 4. 0. 0

libswscale 5. 7.100 / 5. 7.100

libswresample 3. 7.100 / 3. 7.100

libpostproc 55. 7.100 / 55. 7.100

制作外挂字幕

首先编辑一个标准字幕文档,纯文本格式即可,例如

yejr@yejr.run> cat 001.srt

00:00:01,000 --> 00:00:02,000

大家好,我是叶金荣,这是第一条字幕

00:00:02,000 --> 00:00:05,000

本次我想和大家分享利用ffmpeg制作字幕的方法

然后利用ffmpeg制作一个高级外挂字幕,生成ass格式的文件

yejr@yejr.run> ffmpeg -i 001.srt -y 001.ass

我们来看下高级字幕文件的内容

yejr@yejr.run> cat 001.ass

[ Info]

; generated by FFmpeg/Lavc58.91.100

Type: v4.00+

PlayResX: 384

PlayResY: 288

ScaledBorderAndShadow: yes

[V4+ Styles]

Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding

Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0

[Events]

Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text

Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,大家好,我是叶金荣,这是第一条字幕

Dialogue: 0,0:00:02.00,0:00:05.00,Default,,0,0,0,,本次我想和大家分享利用ffmpeg制作字幕的方法

其中在 "[V4+ Styles]"这部分作用域里,可以定义关于字幕的各个属性,各定义域的作用分别如下:

01.Name 风格(Style)的名称,区分大小写,不能包含逗号。例如 Default

02.Fontname 使用的字体名称,区分大小写。例如 Arial

03.Fontsize 字体的字号,一般16号就可以

04.PrimaryColour 设置主要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 为字幕填充颜色,例如 &Hffffff

05.SecondaryColour 设置次要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 在卡拉OK效果中由次要颜色变为主要颜色.

06.OutlineColour 设置轮廓颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR.

07.BackColour 设置阴影颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. ASS的这些字段还包含了alpha通道信息. (AABBGGRR), 注ASS的颜色代码要在前面加上&H

08.Bold -1为粗体, 0为常规

09.Italic -1为斜体, 0为常规

10.Underline [-1 或者 0] 下划线

11.Strikeout [-1 或者 0] 中划线/删除线

12.ScaleX 修改文字的宽度,为百分数,例如 100

13.ScaleY 修改文字的高度,为百分数

14.Spacing 文字间的额外间隙. 为像素数

15.Angle 按Z轴进行旋转的度数, 原点由alignment进行了定义. 可以为小数

16.BorderStyle 1=边框+阴影, 3=纯色背景. 当值为3时, 文字下方为轮廓颜色的背景, 最下方为阴影颜色背景.

17.Outline 当BorderStyle为1时, 该值定义文字轮廓宽度, 为像素数, 常见有0, 1, 2, 3, 4.

18.Shadow 当BorderStyle为1时, 该值定义阴影的深度, 为像素数, 常见有0, 1, 2, 3, 4.

19.Alignment 定义字幕的位置. 字幕在下方时, 1=左对齐, 2=居中, 3=右对齐. 1, 2, 3加上4后字幕出现在屏幕上方. 1, 2, 3加上8后字幕出现在屏幕中间. 例: 11=屏幕中间右对齐. Alignment对于ASS字幕而言, 字幕的位置与小键盘数字对应的位置相同.

20.MarginL 字幕可出现区域与左边缘的距离, 为像素数

21.MarginR 字幕可出现区域与右边缘的距离, 为像素数

22.MarginV 垂直距离

好了,制作完字幕文件,我们可以往视频文件中添加字幕并合成新视频了。

添加软字幕

执行下面的命令即可

yejr@yejr.run> ffmpeg -i 01.mp4 -i 01.ass -c copy -y 001.mp4

因为是添加软字幕,无需重新编辑每帧视频内容,所以速度非常快。

添加硬字幕

如果是要把视频发布到一些线上平台,则最好是添加硬字幕。执行下面的命令即可

yejr@yejr.run> ffmpeg -i 01.mp4 -vf subtitles=01.srt -y 001.mp4

yejr@yejr.run> ffmpeg -i 01.mp4 -vf ass=01.ass -y 001.mp4

srt或ass字幕文件,看个人喜好自己选择了。

  • https://ffmpeg.org/documentation.html

  • https://my.oschina.net/u/4383937/blog/4548619

  • https://www.jianshu.com/p/f33910818a1c

  • 最后要向ffmpeg项目https://github.com/FFmpeg/FFmpeg致敬,非常感谢他们无私地提供了这么好的软件。 返回搜狐,查看更多

    责任编辑:

    声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。