Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用OpenCV和Python录制视频?_Python_Opencv_Video Recording - Fatal编程技术网

如何使用OpenCV和Python录制视频?

如何使用OpenCV和Python录制视频?,python,opencv,video-recording,Python,Opencv,Video Recording,我看过OpenCV关于如何使用VideoCapture和VideoWriter捕获和写出视频文件的介绍。但我一直得到: OpenCV Error: Assertion failed (dst.data == dst0.data) in cvCvtColor, file /tmp/opencv-n8PM/opencv-2.4.7.1/modules/imgproc/src/color.cpp, line 4422 Traceback (most recent call last): File

我看过OpenCV关于如何使用
VideoCapture
VideoWriter
捕获和写出视频文件的介绍。但我一直得到:

OpenCV Error: Assertion failed (dst.data == dst0.data) in cvCvtColor, file 
/tmp/opencv-n8PM/opencv-2.4.7.1/modules/imgproc/src/color.cpp, line 4422
Traceback (most recent call last):
  File "examples/observer/observer.py", line 17, in <module>
    video_writer.write(frame)
cv2.error: /tmp/opencv-n8PM/opencv-2.4.7.1/modules/imgproc/src/color.cpp:4422: error: 
(-215) dst.data == dst0.data in function cvCvtColor

在C++中,如果你可以通过1的编解码器。然后,您可以手动从计算机上的所有编解码器中选择编解码器。在python中可能也是如此,但我在文档中找不到它

video_writer = cv2.VideoWriter("output.avi", -1, 20, (680, 480))

请尝试确保opencv可以在您的计算机上找到XVID。

帧的大小可能不正确:

w=int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH ))
h=int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT ))
# video recorder
fourcc = cv2.cv.CV_FOURCC(*'XVID')  # cv2.VideoWriter_fourcc() does not exist
video_writer = cv2.VideoWriter("output.avi", fourcc, 25, (w, h))
为我工作时,我遇到了类似的问题。 如果问题出现在帧大小和颜色的深度或编解码器中,则应该进行调试。尝试将空数组写入文件:

capSize = (100, 100) # this is the size of my source video
fourcc = cv2.cv.CV_FOURCC('m', 'p', '4', 'v')
out = cv2.VideoWriter('output.mov',fourcc, 1, capSize)
...
out.write(125 * np.ones((100,100,3), np.uint8)) 
...

将-1作为编解码器传递也适用于python?你可以接受答案,或者用你的解决方案编辑你的帖子。
capSize = (100, 100) # this is the size of my source video
fourcc = cv2.cv.CV_FOURCC('m', 'p', '4', 'v')
out = cv2.VideoWriter('output.mov',fourcc, 1, capSize)
...
out.write(125 * np.ones((100,100,3), np.uint8)) 
...