V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jifengg
V2EX  ›  分享创造

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

  •  
  •   jifengg · 219 天前 · 1712 次点击
    这是一个创建于 219 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    9 条回复    2024-05-20 11:31:18 +08:00
    lozzow
        1
    lozzow  
       219 天前
    如果是我的话,我只会写个 web,然后录屏😭
    jifengg
        2
    jifengg  
    OP
       219 天前
    @lozzow 我的准则就是,一切能交给脚本做的,最终都交给脚本做
    maymay5
        3
    maymay5  
       219 天前
    我超,我觉得可以跟我融合一下,我用的也是 ffmpeg 合成的: https://www.v2ex.com/t/1020294
    weak
        4
    weak  
       219 天前 via iPhone
    对我来说 还是 AE 简单
    HUZHUANGZHUANG
        5
    HUZHUANGZHUANG  
       219 天前
    为什么我的眼睛看 <以水平滚动的方式,展示多张图片的例子>,感觉视频有些抖动
    jifengg
        6
    jifengg  
    OP
       218 天前
    @HUZHUANGZHUANG
    一方面呢,视频在显示这种匀速运动的时候,人眼很容易有错觉。这个也和显示器刷新率有关,
    https://github.com/jifengg/ffmpeg-script/blob/main/docs/ffmpeg.images.rolling.md#%E5%B8%A7%E7%8E%87
    文档关于帧率这块有一个说明,链接的 B 站视频也可以看看。
    可以自己尝试做一些不同帧率的视频看看效果。
    wen20
        7
    wen20  
       216 天前
    抖动的很严重,费眼,得优化。
    jifengg
        8
    jifengg  
    OP
       216 天前
    @wen20 尝试设置和显示器一样的帧率试试
    unii23i
        9
    unii23i  
       216 天前
    马一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.