opencv-python保存视频


opencv-python保存视频

最近在编程过程中遇到了保存视频的问题,之前使用cv2.VideoWriter的方式保存的mp4文件在chrome中无法播放,查阅相关资料后发现是由于chrome由于版权问题只支持h264编码的视频。所以使用ffmpeg工具来对保存好的视频转码,代码如下

video_writer = cv2.VideoWriter('xx.avi', cv2.VideoWriter_fourcc(*'XVID'), fps,(w, h))
for frame in frame_list:
	video_writer.write(frame)
video_writer.release()
os.system(f'ffmpeg -i "xx.avi" -vcodec h264 "xx.mp4"')

我们首先定义使用XVID的编码格式对视频帧进行编码,该编码保存文件的后缀为avi,随后我们使用ffmpeg工具使用调用命令行命令的方式将保存的avi视频转码为h264编码的mp4视频

优化方法

video_writer = cv2.VideoWriter('xx.mp4', cv2.VideoWriter_fourcc(*'AVC1'), fps,(w, h))

网上说h264和avc1其实是同一种编码格式,但是使用h264传入时,后缀必须为avi,如果为mp4会报错:

OpenCV: FFMPEG: tag 0x34363268/'h264' is not supported with codec id 27 and format 'mp4 /MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1'


免责声明!

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



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