我正试图使跨平台的OpenCV VideoWriter在具有H246编码的MP4容器上保持一致。
按重要性顺序排列目标平台-Ubuntu,Raspbian,OSX
基本上,我目前的缺点是不了解FourCC代码(作为OpenCV VideoWriter的参数)与FFMPEG后端及其要求的关系。我很想了解游戏的玩法,而不是讨论一段代码。
我想知道的是,当我指定“ X264”作为FourCC代码尝试写入x.MP4文件(FFMPEG后端)并且请求被编组到FFMPEG时,操作系统需要满足哪些要求/依赖性。成功。
到目前为止,我已经有了python堆栈,可以通过Raspbian / Ubuntu / OSX编写MP4视频文件,并且有黑客入侵。
在Raspbian Stretch安装中,我使用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构建了它们。