我用OpenCV 3通过FFmpeg写H.264视频(“'X','2','6','4'” FOURCC)遇到了问题。目前为止我已经看过所有相关的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)'中不受支持,退回使用标签0x00000021/'!???'
生成的视频非常小(字节),无法读取。将four_cc设置为-1会从FFmpeg获得“未知标签”,我没有像其他人建议的选择编解码器的提示。
OpenCV 3文档说明:
MP4容器的FFMPEG后端本机使用其他值作为fourcc代码:请参见ObjectType,因此您可能会收到来自OpenCV的警告消息关于fourcc代码转换。
他们所引用的页面上没有列出h264 / x264,并且我不确定如何解释该声明,因为早期的SO帖子似乎都将X.2.6.4列为适当的代码。实际上,使用H.2.6.4会产生相同的输出。
有什么建议/解决方法吗?
P.S. ffmpeg是最新的Ubuntu维护者,它列出了使用--enable-libx264
进行配置。
编辑:我尝试使用mkv容器而不是mp4。有关标签不受支持的警告消失了,但生成的视频仍然无法读取。
VideoWriter
并不是很强大。你可能需要使用一些可用的格式保存视频,然后再使用ffmpeg转换为H264格式。 - Miki