使用 ffmpeg 将视频画面拼接上自定义的字幕,生成字幕拼接图片

29次阅读

共计 757 个字符,预计需要花费 2 分钟才能阅读完成。

网络上经常可以看到一些“截图某一张视频画面,并把后续字幕连续拼接在一起”的图片,可以快速传递视频内的内容。
当然,这很容易造假。所以当你看到类似内容的时候,需要自行判断。
这个脚本,就是用来实现这个功能的。需要说明的是,这个脚本不是为了造假而生的,仅仅是出于娱乐与交流的目的。

先给出 GitHub 地址:https://github.com/jifengg/ffmpeg-script

比如我用“功夫熊猫 4”里的某个画面,搭配我自己编写的一段话,生成:

使用 ffmpeg 将视频画面拼接上自定义的字幕,生成字幕拼接图片

脚本运行时间 2 秒左右。

使用方式:

node ffmpeg.subtitle.stack.js -i  -t  -font  [-o  ...]

支持的参数:

-i              [必须] 视频文件路径
-t              [必须] 文本文件路径。用两个换行符分隔的字幕,支持用一个换行符实现字幕换行
-o              生成的图片文件路径,默认:<输入视频文件名>_subtitle.jpg
-y                      是否覆盖已经存在的图片文件,默认:false
-size           生成的图片宽度,默认:400
-ss             从视频的第几秒开始处理,格式同 ffmpeg 的 -ss,默认:0
-interval       截取视频画面的两帧之间的间距,单位秒,默认:5
-sh             要截取的字幕区域占画面高度的比例,取值 0.0(不含)~ 1.0(含),默认:0.1666
-font           字体文件路径,非 windows 下使用时必传,默认:c:/Windows/Fonts/msyh.ttc(微软雅黑)-h                      显示这个帮助信息
-debug                  是否开启 debug 模式,打印更详细的日志

注意文本文件的编写要求,格式如下:

 第一行
first line

第二行
second line

其它
others

使用一个空行(nn)来分隔两个文本信息,只间隔一个 n 的文本会以多行字幕的形式绘制到画面上。

技术点主要是对 ffmpeg 各种滤镜的应用,有:

正文完
 0