问题:为何视频能读出来,而写入代码也没报错,但文件大小为0k,视频好似没有写入成功!
原因:cv2.VideoWriter()
第二个参数控制视频编码的格式,多数教程上是这样写的
videoWriter = cv2.VideoWriter(‘out.mp4‘, cv2.cv.CV_FOURCC(‘M‘, ‘J‘, ‘P‘, ‘G‘), fps, size)
或
videoWriter = cv2.VideoWriter(‘out.avi‘, cv2.cv.CV_FOURCC(‘I‘,‘4‘,‘2‘,‘0‘), fps, size)
实际运行时生成的视频大小为0k,究其原因是运行环境没有相对应的视频编码器,故无法生成的视频,或者说第二个参数设置的不合适,系统里没有合适的。
解决办法
cv2.VideoWriter()
第二个参数设置为-1,程序运行时则会交互地弹出一个对话框让你从系统已有的编码中选择一个。
import cv2 videoCapture = cv2.VideoCapture('clocka.avi') fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS) size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))) v = cv2.VideoWriter('bb.avi', -1, fps, size) print fps, size,'v->',v success, frame = videoCapture.read() while success: cv2.imshow('MyWindow', frame) cv2.waitKey(1000/int(fps)) v.write(frame) success, frame = videoCapture.read()
结果如下
文件信息
时间: 2024-11-07 06:16:11