V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chatree
V2EX  ›  问与答

寻求 ffmpeg 大神,有偿解决视频抖动/闪烁问题

  •  2
     
  •   chatree · 2023-01-17 11:19:29 +08:00 · 1685 次点击
    这是一个创建于 675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们有个应用,会从上到下滚动显示一张超级长图,滚动时间可能有 10 来分钟。应用实现使用 filter ovelay ,根据时间改变 y 值。下面的 script 是根据不同图片长图自动生成的。但是时间一长图片一长,滚动就不丝滑了,会抖动 /闪烁,有没有大神可以帮忙解决一下~有辛苦费。

    ffmpeg -y -r 1 -loop 1 -t 544.3800000000026 -i /Users/joey/Library/Application Support/Electron/tmp/content.png -r 60 -loop 1 -t 544.3800000000026 -i /Users/joey/Library/Application Support/Electron/tmp/bg.png -filter_complex [1:v]crop=1080:810:0:0,fps=60[v1];[v1][0:v]overlay=x=0:y=if(gt(t\,1.29)\,48.6-151.75127511093854*(t-1.29)\,48.6)[mv1];[1][mv1]overlay=y=0[m1] -preset ultrafast -map [m1] -t 544.3800000000026 /Users/joey/Library/Application Support/Electron/tmp/output.mp4
    
    11 条回复    2023-01-17 16:23:11 +08:00
    lh900519
        1
    lh900519  
       2023-01-17 11:45:14 +08:00 via Android
    可以考虑添加 scale ,之前使用 zoompad 放大缩小的时候产生的抖动,就是使用 sacle 解决的
    murmur
        2
    murmur  
       2023-01-17 11:46:33 +08:00
    这个需求一下就看出来了,把长网页自动转视频,MCN 洗稿吧,这不得开个大口可是核心业务啊
    LLaMA2
        3
    LLaMA2  
       2023-01-17 12:11:24 +08:00   ❤️ 1
    假定图片是 1920*108000 像素
    那么用程序将图片切成 1920*1080 的块,每个步进向下移动 N 个像素,越接近 1 越顺滑,然后 ffmpeg 将图片合成视频。
    难度不大,
    给钱 :D
    tool2d
        4
    tool2d  
       2023-01-17 12:29:33 +08:00   ❤️ 1
    同意三楼,自己切一下像素,每帧喂裁切后图片给 ffmpeg ,多方便。
    chatree
        5
    chatree  
    OP
       2023-01-17 12:32:46 +08:00
    @lh900519 scale 貌似不行,刚试了还是抖动
    chatree
        6
    chatree  
    OP
       2023-01-17 12:33:17 +08:00
    @murmur 判断很准啊 确实是用网页技术生成的视频,但不是洗稿
    chatree
        7
    chatree  
    OP
       2023-01-17 12:36:59 +08:00
    @ye4tar 60 帧 10 分钟的视频,那岂不是得切 60*60*10 张图片,再去合成,这样效率会不会大大降低啊
    chatree
        8
    chatree  
    OP
       2023-01-17 12:38:27 +08:00
    @tool2d 60 帧 10 分钟的视频,那岂不是得切 60*60*10 张图片,再去合成,这样效率会不会大大降低啊
    tool2d
        9
    tool2d  
       2023-01-17 13:00:06 +08:00
    @chatree 我们说的临时图片是内存里的,不会保存在磁盘上,代码写的好,效率会比 filter 高。

    当然前提是你懂一点基础的 ffmpeg api 和图片裁切 api ,只会命令行是不行的。
    chatree
        10
    chatree  
    OP
       2023-01-17 16:22:10 +08:00
    @tool2d 大哥在不在成都,能不能来公司协助搞一下,价格好谈
    chatree
        11
    chatree  
    OP
       2023-01-17 16:23:11 +08:00
    @tool2d 如果是这样我感觉这块考虑的还是挺多的,这么多图片还要考虑内存溢出的问题,脑阔痛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.