【问题标题】:mp4 video codec in OpenCVOpenCV 中的 mp4 视频编解码器
【发布时间】:2020-03-15 21:58:55
【问题描述】:

OpenCV 4.1.1.26 中 mp4 的视频编解码器是什么?

我正在尝试从两个摄像头编写视频,编写 AVI 视频工作正常,但编写 mp4 视频不工作。

  • Python 3.7
  • OpenCV 4.1.1.26
  • Windows 10

下面是一个相机的示例代码

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output_1.mp4', fourcc, 15, (640, 480))

我使用了不同的编解码器(MPEG、H264、mp4v、('m'、'p'、'4'、'v')、FFmpeg 等),如OpenCV 4 DocumentationsFOURCC Codecs Documentations 和不同专家的建议和不同平台上的助手,但任何解决方案在我的代码中都不起作用,mp4 视频已保存,但由于编解码器问题,即使在 OpenCV VideoCapture 中也无法在任何媒体播放器中播放。另一方面,当我保存 avi 视频时,它工作正常。 我检查了这些链接以获得帮助。

what is the codec for mp4 videos in python OpenCV

https://medium.com/@iKhushPatel/convert-video-to-images-images-to-video-using-opencv-python-db27a128a481

How to write mp4 video file with H264 codec?

寻找有价值的建议。

【问题讨论】:

  • 如果相机给出的帧大于(640, 480),那么您必须在将其保存到文件之前更改其大小。如果你不改变大小,那么它可能会创建一个空文件,然后你就无法播放它
  • 能详细解释一下吗?
  • 如果相机给出的帧大于(640,480),那么您可能需要在保存之前执行frame = cv2.resize(frame, (640, 480))
  • 您在运行代码时不会收到错误消息吗?当我尝试带有扩展名.mp4DIVX 时,它会向我显示FFMPEG 无法创建它的消息 - 但如果我使用扩展名.avi 则创建文件没有问题。但我用的是 Linux。

标签: python opencv


【解决方案1】:

我也有类似的问题。我发现 OpenCV-python 通常会在 mp4 文件中出现一些意外错误(无法从 mp4 文件中读取帧等)。

为了解决这个问题,我所做的是使用 skvideo(scikit-video) 重写代码。 scikit-video使用的是命令行FFmpeg工具,所以在使用scikit-video之前需要先安装FFmpeg。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2021-10-01
    • 1970-01-01
    • 2018-03-18
    • 2015-08-11
    • 2012-08-23
    相关资源
    最近更新 更多