我正在尝试让 OpenCV VideoWriter 跨平台一致地为具有 H246 编码的 MP4 容器工作。
目标平台按重要性排序 - Ubuntu、Raspbian、OSX
基本上,我在这一点上的缺点是不了解 FourCC 代码(作为 OpenCV VideoWriter 的参数)与 FFMPEG 后端及其要求的关系。我有兴趣了解正在玩的游戏,而不是讨论一段代码。
我想知道的是,当我将“X264”指定为 FourCC 代码尝试编写 x.MP4 文件(FFMPEG 后端)并将请求编组到 FFMPEG 时,操作系统需要满足哪些要求/依赖关系才能成功。
到目前为止,我已经让我的 python 堆栈在 Raspbian/Ubuntu/OSX 上编写 MP4 视频文件,并带有 hack。
在我的 Raspbian 拉伸安装中,我使用 0x00000021 作为fourCC 代码。在 Ubuntu(OSX 上的 VM)和 OSX 上,AVC1 可以工作。
谷歌搜索的日子只提供了这些技巧,对问题没有很好的理解。
x264 作为 FourCC 代码会导致以下情况之一:失败、不可移植的视频文件 + 恼人的 FFMPEG 警告。
我正试图深入了解它。
编码,
#self.__fourCC = cv2.VideoWriter_fourcc('x', '2', '6', '4')
self.__fourCC = cv2.VideoWriter_fourcc('a', 'v', 'c', '1')
if PlatformUtils.isRunningOnRaspberryPi():
self.__fourCC = 0x00000021
我可以控制 OpenCV 和 FFMPEG 的版本(如果也需要 GStreamer)。我可以并且已经为 Ubuntu/Raspbian 构建了它们。