为了使OpenCV VideoWriter跨平台在使用H264编码的MP4容器中一致地工作

时间:2019-03-20 04:14:44

标签: opencv ffmpeg mp4 x264 fourcc

我正试图使跨平台的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构建了它们。

0 个答案:

没有答案