无法使用 opencv2 打开视频
Posted
技术标签:
【中文标题】无法使用 opencv2 打开视频【英文标题】:Can't open video with opencv2 【发布时间】:2013-03-16 22:29:22 【问题描述】:我正在尝试从视频文件中抓取图像,但无法成功打开它,我不知道为什么。
下面是打印False
的代码示例,我希望在其中得到True
。我不明白为什么我无法打开这个简单的视频文件,非常感谢任何线索!
我先尝试了相对路径,然后移动到绝对路径,看看是否有任何变化,它仍然是一样的......
video = cv2.VideoCapture()
path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg"
print video.open(path)
【问题讨论】:
@cgohlke 我阅读了它并将所有文件从3rdparty
复制到我的python27
文件夹,但它没有改变任何东西。
【参考方案1】:
cv2 开箱即用支持的编解码器是有限的。一些格式可以在下面的链接中找到。我还没有全部尝试过。
http://opencv.willowgarage.com/wiki/documentation/cpp/highgui/VideoWriter
我在使用 mp42 编解码器时遇到了一些运气。必须将我相机的 mp4 (h264) 格式转换为正确格式的 avi。
目前正在使用工具ffmpeg。
ffmpeg -i input.mp4 -codec:v msmpeg4v2 output.avi
这仍然存在一些不足之处,因为它失去了解决方案,所以我自己正在努力寻找更好的解决方案。我自己才刚刚开始。
【讨论】:
【参考方案2】:以下代码适用于我:
import cv2
加载视频文件:
capture = cv2.VideoCapture('videos/my_video.avi')
Frame是你想要的图片,flag是成功/失败:
flag, frame = capture.read()
循环播放视频帧:
while True:
flag, frame = capture.read()
if flag == 0:
break
cv2.imshow("Video", frame)
key_pressed = cv2.waitKey(10) #Escape to exit
if key_pressed == 27:
break
但是,MPEG 是一种压缩格式,这意味着您需要安装正确的编解码器,并且可能需要做更多的工作来处理转换。您可以在OpenCV VideoCodec documentation 了解支持的不同类型的视频格式。
(但是,如果您只想要一个简单的工作示例,请尝试使用 .AVI 文件,看看它是否适合您。)
【讨论】:
你对 mpeg 的看法是错误的。 opencv 使用 libffmpeg 来解压缩视频。但这又取决于机器上安装的实际编解码器【参考方案3】:遇到了类似的问题。尝试改变
path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg"
到
path = "C:/Users/Leo/Dropbox/Projet VISORD/TP3/video.mpg"
看看它是否有效。
【讨论】:
以上是关于无法使用 opencv2 打开视频的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件
opencv (c++) VideoCapture无法打开视频
opencv (c++) VideoCapture无法打开视频
急!求解vc2010下opencv2.4.3编译错误 fatal error C1083: 无法打开包括文件:“opencv2/opencv.hpp”