我在通过FFmpeg("'X','2','6','4'"FOURCC)用OpenCV 3编写h264视频时遇到问题.到目前为止,我已经看过所有相关帖子,但没有任何帮助.码:
cv::VideoWriter writer(output_path.string(), CV_FOURCC('X','2','6','4'), 60, frame_size);
Run Code Online (Sandbox Code Playgroud)
输出:
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代码转换的警告消息.
他们引用的那个页面没有列出h264/x264,我不确定如何解释该语句,因为早期的SO帖子似乎都将X.2.6.4列为适当的代码.使用H.2.6.4实际上提供相同的输出.
有什么建议/解决方法吗?
PS ffmpeg是最新的Ubuntu维护者,它列出了它配置的 --enable-libx264
编辑:我试图使用mkv容器而不是mp4.关于标记不受支持的警告消失了,但生成的视频仍然无法读取.