无法使用opencv2打开视频

2024-06-06 08:03:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从视频文件中获取图像,但无法成功打开,我不知道为什么。

下面是一个打印False的代码示例,我希望在这里得到一个True。我不明白为什么我不能打开这个简单的视频文件,任何线索将非常感谢!

我试着用一个相对路径,然后移动到一个绝对路径,看看是否有什么变化,它仍然是一样的。。。

video = cv2.VideoCapture()
path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg"
print video.open(path)

Tags: path代码图像falsetrue示例videocv2
3条回答

以下代码对我有效:

import cv2

加载视频文件:

capture = cv2.VideoCapture('videos/my_video.avi')

帧是您想要的图像,标志是成功/失败:

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文件,看看它是否适合您。)

也有类似的问题。尝试改变

path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg" 

path = "C:/Users/Leo/Dropbox/Projet VISORD/TP3/video.mpg"

看看是否有效。

cv2支持现成的编解码器是有限的。一些格式可以在下面的链接中找到。我还没试过。

http://opencv.willowgarage.com/wiki/documentation/cpp/highgui/VideoWriter

我在mp42编解码器上有些运气。必须将我相机的mp4(h264)格式转换为正确格式的avi。

目前正在使用ffmpeg工具。

ffmpeg-i input.mp4-编解码器:v msmpeg4v2 output.avi

当它失去决心时,这仍然留下一些需要的东西,所以我自己正在努力寻找一个更好的解决方案。我自己才刚开始。

相关问题 更多 >