我在通过FFmpeg(“’X’,‘2’,‘6’,‘4’” FOURCC)用OpenCV 3编写h264视频时遇到问题。到目前为止,我已经看过所有与SO相关的文章,但是没有任何帮助。码:
cv::VideoWriter writer(output_path.string(), CV_FOURCC('X','2','6','4'), 60, frame_size);
输出:
OpenCV:FFMPEG:标签0x34363258 /’X264’不支持编解码器ID 28和格式’mp4 / MP4(MPEG-4 Part 14)’OpenCV:FFMPEG:后退以使用标签0x00000021 /’!???’
产生的视频非常小(按字节),并且不可读。将four_cc设置为-1会导致FFmpeg产生“未知标签”,我没有得到任何提示来选择编解码器,就像其他人建议的那样。
OpenCV 3文档指出:
带有MP4容器的FFMPEG后端本机使用其他值作为fourcc代码:请参见ObjectType,因此您可能会从OpenCV收到有关fourcc代码转换的警告消息。
有任何建议/解决方法吗?
PS ffmpeg是Ubuntu维护者提供的最新信息,它列出了使用 --enable-libx264
--enable-libx264
编辑: 我试图使用mkv容器而不是mp4。关于不支持标签的警告消失了,但是仍无法读取生成的视频。
该问题与显示的警告无关。我正在尝试编写单通道图像,而VideoWriter则期望使用3通道彩色图像(VideoWriter的构造函数的第5个参数isColor的默认值为“true”)。解决方案是将isColor设置为false。