摘要:opencv能读取视频,但保存视频时报错。
一、首先要确保已经下载了openh264.dll文件,否则保存的视频无法打开,详细可以浏览这个:opencv:保存视频。
二、保存视频时出现一下问题:
OpenCV:FFMPEG:tag 0x63766568/'hevc'is not supported with codec id 173 and format 'mp4 MP4 (MPEG-4 Part 14)
OpenCV:FFMPEG:fallback to use tag 0x31766568/'hev1'
[ERROR:0015.854]global /croot/opencv-suite_1676452025216/work/modules/videoio/src/cap_ffmpeg_impl.hpp (2927)open Could not find encoder for codec_id=173,error:Encoder not found
[ERROR:0015.854]global /croot/opencv-suite_1676452025216/work/modules/videoio/src/cap_ffmpeg_impl.hpp (3002)open VIDEOIO/FFMPEG:Failed to initialize VideoWriter
(python:20055):GStreamer-CRITICAL **12:13:57.995:gst_element_make_from_uri:assertion 'gst_uri_is_valid (uri)'failed
WARN:0015.857]global /croot/opencv-suite 1676452025216/work/modules/videoio/src/cap gstreamer.cpp (1813)close OpenCV GStreamer warning:No source in GStreamer pipeline.Ignore
我遇到这个问题时,读取的视频是mp4格式,保存时也按照原来的mp4保存,结果出现了图中的错误,估计是编码不合适。想要保存视频,需要改两行代码。
1、把保存的视频文件的后缀(原来的.mp4)改成 .avi:
video_out_file = video_name.replace('.mp4', '.avi') # 视频名称
2、把ffmpeg保存的编码格式改成*mjpg:
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
修改以上两行代码,就可以保存成视频了。