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文件为空的问题

2. opencv VideoWriter保存视频失败原因

 

posted @ 2018-03-16 17:05  bellum  阅读(9101)  评论(0编辑  收藏  举报