【问题标题】:OpenCV: FFMPEG: tag 0x34363268/'h264' is not supported with codecOpenCV:FFMPEG:编解码器不支持标记 0x34363268/'h264'
【发布时间】:2019-03-26 16:40:09
【问题描述】:

在 Mac OS 10.13.6 上安装 opencv 后:

conda install -c conda-forge ffmpeg
conda install -c conda-forge opencv

在 videowriter 中使用fourcc = cv2.VideoWriter_fourcc('h', '2', '6', '4')

我得到错误:

OpenCV: FFMPEG: tag 0x34363268/'h264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1'

如何解决?

【问题讨论】:

  • 据我所知,您需要 libx264 来编码 h264,默认情况下您只能解码该格式。我不确定安装 libx264 是否能解决您的问题。
  • 如果OpenCV是用ffmpeg写的,那么avc1就是mp4中h264的正确标签

标签: python macos opencv ffmpeg h.264


【解决方案1】:

首先就像一些答案指出的那样,我们应该使用“AVC1”而不是“h264”。 其次,我们在使用opencv-python的时候,有一些license问题:https://github.com/opencv/opencv-python/issues/207,我们可能需要自己编译。

【讨论】:

    【解决方案2】:

    FourCC 是一个 4 字节代码,用于指定视频编解码器。可用代码列表可在fourcc.org 中找到。它依赖于平台。以下编解码器适合我。

    • 在 Fedora 中:DIVX、XVID、MJPG、X264、WMV1、WMV2。 (XVID 更多 更可取。 MJPG 会产生大尺寸的视频。 X264 给的非常小 大小视频)
    • 在 Windows 中:DIVX(更多有待测试和添加)
    • 在 OSX 中:MJPG (.mp4)、DIVX (.avi)、X264 (.mkv)。

    Source

    【讨论】:

      【解决方案3】:

      编解码器依赖于平台,这可能是问题所在。尝试使用这种组合:

      • 文件扩展名 = test.mkv
      • 编解码器。 = CV_FOURCC(*'X264)

      这里是参考link

      【讨论】:

      • 这很完美。谢谢。 @mrgloom 接受此答案,以便对其他人也有帮助。
      【解决方案4】:

      你应该改变:

      fourcc = cv2.VideoWriter_fourcc('h', '2', '6', '4')
      

      到:

      fourcc = cv2.VideoWriter_fourcc(*'avc1')
      

      如果你想使用h264,在Linux中你必须先安装libx264-dev

      sudo apt-get install libx264-dev
      

      【讨论】:

      • sudo apt-get install libx264-dev 对我不起作用
      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 2019-05-21
      • 2021-10-03
      • 2017-06-05
      • 2013-03-31
      • 2019-04-03
      • 1970-01-01
      • 2011-11-12
      相关资源
      最近更新 更多