视频抽帧有没有快一点的方法?

2020-11-29 17:20:22 +08:00
 depress

我现在用的 ffmpeg -i video.mp4 -f image2 -vf fps=fps=1/120 -qscale:v 2 xx.jpg 两分钟一张,但是太慢了,ffmpeg 还有什么更快的能自定义间隔的抽帧方式吗?或者其他抽帧方式也可以。

1477 次点击
所在节点    问与答
8 条回复
q197
2020-11-30 10:14:53 +08:00
ffmpeg 据说用的不好,会导致需要一直读取到抽帧位置,用的好是直接读那个位置。会不会和这个有关?我也不熟悉,只是知道这个坑
depress
2020-11-30 10:59:43 +08:00
@q197 不过搜了一下,自定义间隔的方式好像只有这一种,我看它的进度就是一秒一秒的走,到时间了存一张,so sad 啊ᥬ😭᭄
q197
2020-12-02 16:36:15 +08:00
@depress 你这样明显是用发错了,具体我也不太了解,网上资料也不多,貌似和-i 的这个参数放的位置有关,好像放在后面放在前面效果不一样的
depress
2020-12-02 17:59:35 +08:00
@q197 (⊙o⊙)这样的吗,我再研究研究
depress
2020-12-02 22:12:12 +08:00
@q197 我看到一篇知乎的文章说到你说的-i 位置的问题了,不过那个是抽取指定时间的帧,就抽一帧。指定时间间隔的抽取方式除了主贴的那一种,我在官网文档看到另一种,知乎那文章里也说了这一种, `ffmpeg -i video.mp4 -r 1/120 -f image2 xx.jpg` ,不过速度和主贴的方式一样,都是 3X 左右的速度,我觉得应该是没办法了,一个两小时的视频要抽 40 分钟真是伤不起。
q197
2020-12-05 14:17:36 +08:00
@depress 我曾经做过类似的 当时的代码大概是 'ffmpeg.exe -ss ' + 时间 + ' -i "' + 输入文件+ '" -y -f image2 -vframes 1 路径' + 输出文件名 + '.jpg') 这样可以秒出。
你的要求是 2 分钟一张,换个思路,写个程序调用以上代码,靠程序指定抽帧的时刻。我当时效果是哗啦啦地出图片文件
depress
2020-12-05 16:05:05 +08:00
@q197 谢谢,这我倒没想到,试试看,这个法子再不行我也不跟它较劲了
depress
2020-12-06 14:40:37 +08:00
@q197 非常感谢,这法子好使,1 分钟就抽完了

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

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

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

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

© 2021 V2EX