如何用 python 提取视频的任意一帧?

2014-08-23 16:39:51 +08:00
 aheadlead
有什么库比较合适
谢谢
22758 次点击
所在节点    问与答
20 条回复
skybr
2014-08-23 16:56:44 +08:00
subprocess ffmpeg/libav
binux
2014-08-23 16:58:58 +08:00
ffmpeg -ss 00:00:14 -i 1.mp4 -frames:v 1 out1.jpg
aheadlead
2014-08-23 17:05:16 +08:00
@binux
难道导出成图片再读取?
binux
2014-08-23 17:06:10 +08:00
ffmpeg -ss 00:00:14 -i 1.mp4 -frames:v 1 -
binux
2014-08-23 17:06:36 +08:00
@binux ffmpeg -ss %(time)f -i %(path)s -frames:v 1 -f image2 -
aheadlead
2014-08-23 20:42:35 +08:00
@skybr 膜拜大牛...没看懂您的意思啊...
skybr
2014-08-23 21:03:00 +08:00
@aheadlead 就是用标准库里的subprocess模块调用ffmpeg/libav, ffmpeg截帧的命令见@binux 给的, 之所以没直接打全是因为不google不man我也记不得。。。。
ooh
2014-08-23 21:04:54 +08:00
@aheadlead 难道你说的读取任意一帧不是图片,那是什么?
aheadlead
2014-08-23 21:05:09 +08:00
@skybr
aheadlead
2014-08-23 21:05:40 +08:00
@ooh 我还以为可以不用保存成图片呢....
aheadlead
2014-08-23 21:06:12 +08:00
@ooh 保存成图片"文件"
ooh
2014-08-23 21:08:34 +08:00
@aheadlead 浏览器里可以直接输出内容
aheadlead
2014-08-23 21:09:04 +08:00
@ooh 不是很明白 请详细说明 谢谢
ooh
2014-08-23 21:14:56 +08:00
@aheadlead data:image/gif;base64,R0lGODlhAwADAIABAL6+vv///yH5BAEAAAEALAAAAAADAAMAAAIDjA9WADs=
ruoyu0088
2014-08-23 21:16:04 +08:00
zeayes
2014-08-23 23:59:33 +08:00
liberize
2014-08-24 01:25:48 +08:00
OpenCV 貌似不容易定位,而且支持的格式有限。用 subprocess + ffmpeg,如果不想保存成文件,可以参考这篇文章: http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/
ruoyu0088
2014-08-24 05:45:55 +08:00
@liberize,为什么说不容易定义,你遇到过什么困难了吗。我一直都是用VideoCapture.set(CV_CAP_PROP_POS_MSEC, ...),没有出过问题啊。关于支持的格式,我看有一个opencv_ffmpeg249.dll文件,也许ffmpeg支持的都可以吧。这个我不太清楚,不过比较常用的几个我都试过,没有问题。如果能用的话,这个用起来比subprocess要爽多了。
liberize
2014-08-24 10:32:26 +08:00
@ruoyu0088 好吧,我错了~
radonwang
2015-07-14 12:51:07 +08:00
@ruoyu0088 你好,我现在在用Opencv抓帧,
但是在Linux环境下VideoCapture.set一直无法成功,想请教下你有没有相关的解决方案呢?多谢!

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

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

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

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

© 2021 V2EX