http://t.csdn.cn/va9eD
四、视频保存失败的原因
多数是因为编码或者视频的宽度和写入的frame宽度不同,导致写入失败。因此,最好使用输入视频的编码(fourcc),视频的宽度也要设置对。不知道处理后的图片的大小,那就打印下图片的大小就行了,保存视频时,视频的大小要和图片的大小一致。python-opencv写视频几个步骤: fourcc = cv2.VideoWriter_fourcc(*‘DIVX’) out =
cv2.VideoWriter(‘D:/GestureVideo/’+video_name, fourcc, 10, (640, 480))
out.write(frame) out.release()bug1:代码生成exe文件后运行,保存的视频是0kb 网上说的opencv的dll文件放在exe同一目录,试了没用。
将编码器从DIVX改成MJPG解决了问题,不知道为何。bug2:代码生成exe文件后运行,保存的视频不是0kb,但是打开时提示视频损坏 没有正确release(直接关闭dos窗口)。
bug3:视频文件无法读取,显示只有6kb 视频文件大小设置出了问题,可以先去查看读取的视频的属性,看它的宽和高,再设置w、h就没有问题了。
———————————————— 版权声明:本文为CSDN博主「夜空骑士」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/NIeson2012/article/details/94635799
问题3:我设置视频长宽属性之后,打印并没有生效。导致保存是6kb。需要注意。
ret = cap.set(cv.CAP_PROP_FRAME_WIDTH, 500)
if not ret:
print("Can't set cv.CAP_PROP_FRAME_WIDTH ...")
exit()
ret = cap.set(cv.CAP_PROP_FRAME_HEIGHT, 800)
if not ret:
print("Can't set CAP_PROP_FRAME_HEIGHT ...")
exit()
print(cap.get(cv.CAP_PROP_FPS), cap.get(cv.CAP_PROP_FRAME_HEIGHT), cap.get(cv.CAP_PROP_FRAME_WIDTH))
0.0 480.0 640.0
打印一直都是480 640。设置的时候,需要设置成480.0 640.0
out = cv.VideoWriter('output.avi', fourcc, 20.0, (640, 480))