繁体   English   中英

如何使用Python 2.7.5和OpenCV 2.4.6在AVI容器中打开M-JPEG视频?

[英]How to open an M-JPEG video in an AVI container using Python 2.7.5 with OpenCV 2.4.6?

我正在尝试使用Python(x,y)使用OpenCV打开* .avi文件,并且每次运行以下代码时,该文件均无法打开。

import cv2
from cv2 import cv

# Set up
fn = "./video.avi"
v = cv2.VideoCapture()

# Configure codec:
# From ffprobe, codec is M-JPEG ==> MJPG;
codec = cv.CV_FOURCC("M", "J", "P", "G")
v.set(cv.CV_CAP_PROP_FOURCC, codec)

# Test
v.open(fn)

print fn
if not v.isOpened():
    print "Video failed to open"
else:
    print "Video opened!"

以下是运行的输出

ffprobe video.avi

输出:

libavutil      52. 52.100 / 52. 52.100
libavcodec     55. 41.100 / 55. 41.100
libavformat    55. 21.100 / 55. 21.100
libavdevice    55.  5.100 / 55.  5.100
libavfilter     3. 90.102 /  3. 90.102
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104
libpostproc    52.  3.100 / 52.  3.100
Input #0, avi, from 'L4R01CA_T05032300.avi':
  Duration: 00:00:06.01, start: 0.000000, bitrate: 16136 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj420p(pc), 720x480, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 256 kb/s

关于OpenCV为什么无法打开该文件有任何想法吗? 我也尝试过打开文件,而未将cv.CV_CAP_PROP_FOURCC设置为MJPG且结果相同。

谢谢。

无需设置FourCC。 只需使用就足够了

c = VideoCapture(fn)

最可能的原因为何它不起作用:

  1. 您没有安装正确的编解码器(尝试安装编解码器包)。
  2. 确保视频文件在正确的位置。
  3. 确保您具有正确的opencv_ffmpeg_xx.dll,并且程序可以找到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM