对于OpenCV3,有类似如下的宏定义:
CV_FOURCC('P', 'I', 'M', '1') = MPEG-1 codec
CV_FOURCC('M', 'J', 'P', 'G') = motion-jpeg codec
CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
CV_FOURCC('U', '2', '6', '3') = H263 codec
CV_FOURCC('I', '2', '6', '3') = H263I codec
CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec
可以在创建VideoWriter类时指定这个参数,或者在后面调用write()时指定。
对于OpenCV4,这个CV_FOURCC被去掉了,改成了使用VideoWriter类的成员函数fourcc()来创建:
fourcc = cv::VideoWriter::fourcc('m','p','4','v')
python中则是使用VideoWriter_fourcc:
fourcc=cv2.VideoWriter_fourcc(*'mp4v')
注意这里的4字符参数不再使用大写(例如MP4V或者DIVX),而是小写(mp4v或divx),如果使用大写的话,程序执行时会有类似如下警告: FFMPEG: tag 0x58564944/'DIVX' is not supported with codec id 13 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: tag 0x58564944/'DIVX' is not supported with codec id

本文介绍了如何在OpenCV中设置视频编码格式,包括OpenCV3和OpenCV4的不同做法。对于OpenCV3,通过宏定义CV_FOURCC来指定编码格式;而在OpenCV4中,则使用VideoWriter类的成员函数fourcc()来实现。文章还提供了具体的示例代码。
最低0.47元/天 解锁文章
1257





