使用 ffmpeg,将多张图片生成一个依次滚动展示的视频

191 天前
 jifengg

hello ,兄弟们,我又来分享我的 ffmpeg 脚本啦。

前段时间看到一个视频,对某个游戏的物体进行了评分排行,然后用滚动的方式展示出来,想着这种方式应该可以用自动化的方式实现,于是就想着用 ffmpeg 实现一下。

声明:请不要用这个脚本产生内容单调的垃圾视频。

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

GitHub 上有生成的效果视频,或直接点击这里查看

使用方式:

node ffmpeg.images.rolling.js -i <image_folder> [-o <output> ...]

支持的参数:

-i              <string>    [必须]图片所在的目录
 -duration      <number>    每张图片从出现到消失的时长(秒),默认:20
 -direction     <string>    图片滚动的方向,可选:rl (从右到左,默认),lr (从左到右)
 -margin        <number[|number[|number|number]]>
                            图片之间的间距,支持的格式:all 、vertical|horizontal 、top|right|bottom|left ,默认 all=20
-o              <string>    输出视频的路径,默认为输入目录下的 output.mp4
 -fps           <number>    输出视频的帧率,默认:25
-y                          是否覆盖已经存在的输出文件,默认:false
-bgimage        <string>    背景图片的路径,比 bgcolor 优先,默认:无
 -blursigma     <number>    背景图片虚化的 sigma 值,为 0 表示不虚化,默认:15
-bgcolor        <string>    背景颜色,值的格式同 ffmpeg 的 color ,默认:black
-width          <number>    输出视频的宽度,默认:1920
-height         <number>    输出视频的高度,默认:1080
-top            <number>    图片区距离视频顶部的距离,默认:0
-bottom         <number>    图片区距离视频底部的距离,默认:0
-title          <string>    视频的标题,显示在画面上方,默认:无
 -tsize         <number>    标题文字大小,默认:80
 -tcolor        <string>    标题文字颜色,值的格式同 ffmpeg 的 color ,默认:white
 -tbordercolor  <string>    标题边框颜色,值的格式同 ffmpeg 的 color ,默认:black
 -tfont         <string>    标题字体文件路径,非 windows 下使用时必传,默认:c:/Windows/Fonts/msyh.ttc (微软雅黑)
-footer         <string>    视频的底部文字(脚注),显示在画面下方,默认:无
 -fsize         <number>    脚注文字大小,默认:30
 -fcolor        <string>    脚注文字颜色,值的格式同 ffmpeg 的 color ,默认:white
 -fbordercolor  <string>    脚注边框颜色,值的格式同 ffmpeg 的 color ,默认:black
 -ffont         <string>    脚注字体文件路径,非 windows 下使用时必传,默认:c:/Windows/Fonts/msyh.ttc (微软雅黑)
-h                          显示这个帮助信息
-debug                      是否开启 debug 模式,打印更详细的日志

我也写了这个脚本编写过程遇到的一些问题及解决方案,可以到 GitHub 上查看ffmpeg.images.rolling.md

1674 次点击
所在节点    分享创造
9 条回复
lozzow
191 天前
如果是我的话,我只会写个 web,然后录屏😭
jifengg
191 天前
@lozzow 我的准则就是,一切能交给脚本做的,最终都交给脚本做
maymay5
191 天前
我超,我觉得可以跟我融合一下,我用的也是 ffmpeg 合成的: https://www.v2ex.com/t/1020294
weak
191 天前
对我来说 还是 AE 简单
HUZHUANGZHUANG
190 天前
为什么我的眼睛看 <以水平滚动的方式,展示多张图片的例子>,感觉视频有些抖动
jifengg
190 天前
@HUZHUANGZHUANG
一方面呢,视频在显示这种匀速运动的时候,人眼很容易有错觉。这个也和显示器刷新率有关,
https://github.com/jifengg/ffmpeg-script/blob/main/docs/ffmpeg.images.rolling.md#%E5%B8%A7%E7%8E%87
文档关于帧率这块有一个说明,链接的 B 站视频也可以看看。
可以自己尝试做一些不同帧率的视频看看效果。
wen20
187 天前
抖动的很严重,费眼,得优化。
jifengg
187 天前
@wen20 尝试设置和显示器一样的帧率试试
unii23i
187 天前
马一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1041355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX