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

2023-01-17 11:19:29 +08:00
chatree  chatree

我们有个应用,会从上到下滚动显示一张超级长图,滚动时间可能有 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
1836 次点击
所在节点   问与答  问与答
11 条回复
lh900519
lh900519
2023-01-17 11:45:14 +08:00
可以考虑添加 scale ,之前使用 zoompad 放大缩小的时候产生的抖动,就是使用 sacle 解决的
murmur
murmur
2023-01-17 11:46:33 +08:00
这个需求一下就看出来了,把长网页自动转视频,MCN 洗稿吧,这不得开个大口可是核心业务啊
LLaMA2
LLaMA2
2023-01-17 12:11:24 +08:00
假定图片是 1920*108000 像素
那么用程序将图片切成 1920*1080 的块,每个步进向下移动 N 个像素,越接近 1 越顺滑,然后 ffmpeg 将图片合成视频。
难度不大,
给钱 :D
tool2d
tool2d
2023-01-17 12:29:33 +08:00
同意三楼,自己切一下像素,每帧喂裁切后图片给 ffmpeg ,多方便。
chatree
chatree
2023-01-17 12:32:46 +08:00
@lh900519 scale 貌似不行,刚试了还是抖动
chatree
chatree
2023-01-17 12:33:17 +08:00
@murmur 判断很准啊 确实是用网页技术生成的视频,但不是洗稿
chatree
chatree
2023-01-17 12:36:59 +08:00
@ye4tar 60 帧 10 分钟的视频,那岂不是得切 60*60*10 张图片,再去合成,这样效率会不会大大降低啊
chatree
chatree
2023-01-17 12:38:27 +08:00
@tool2d 60 帧 10 分钟的视频,那岂不是得切 60*60*10 张图片,再去合成,这样效率会不会大大降低啊
tool2d
tool2d
2023-01-17 13:00:06 +08:00
@chatree 我们说的临时图片是内存里的,不会保存在磁盘上,代码写的好,效率会比 filter 高。

当然前提是你懂一点基础的 ffmpeg api 和图片裁切 api ,只会命令行是不行的。
chatree
chatree
2023-01-17 16:22:10 +08:00
@tool2d 大哥在不在成都,能不能来公司协助搞一下,价格好谈
chatree
chatree
2023-01-17 16:23:11 +08:00
@tool2d 如果是这样我感觉这块考虑的还是挺多的,这么多图片还要考虑内存溢出的问题,脑阔痛

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

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

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

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

© 2021 V2EX