OpenCV cv2.VideoWrite() 写出为空
问题: cv2.VideoWrite() 写出为空
症状:输出的文件为空或损坏或无法打开
原因:
①封装支持
保存文件名需要写明保存文件的封装格式,后缀为 .avi 可以成功打开编码器,而诸如 .mp4,.rmvb, 未能打开。
②运行环境没有相对应的编码器
1 import numpy as np 2 import cv2 3 cap = cv2.VideoCapture(0) 4 # Define the codec and create VideoWriter object 5 fourcc = cv2.VideoWriter_fourcc(*'XVID') 6 out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
在上图代码框中,第5行,定义视频编码方式(fourcc),但因为电脑中没有相对应的解码器,因此无法转换。
解决办法: 将fourcc 转换成 -1, 即手动设置编码方式。
1 import numpy as np 2 import cv2 3 cap = cv2.VideoCapture(0) 4 # Define the codec and create VideoWriter object
5 out = cv2.VideoWriter('output.avi', -1, 20.0, (640,480))
然后出现下图,手动选择,尝试在当前电脑上存在的压缩程序,如果仍无法解决,可尝试下载安装一些视频编辑软件
参考链接:
1. 完美cvCreateVideoWriter写出AVI文件为空的问题