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保存视频失败原因

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM