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

Suh*_*han 13 python ubuntu mp4 opencv codec

fourcc = cv2.cv.CV_FOURCC(*'XVID')
Run Code Online (Sandbox Code Playgroud)

以上行用于avi视频.以同样的方式,我们在Ubuntu中使用哪种编解码器用于mp4视频?

ray*_*ica 10

编解码器是H.264.

其中一个应该适合你:

fourcc = cv2.cv.CV_FOURCC(*'H264')
#or 
#fourcc = cv2.cv.CV_FOURCC(*'X264')
Run Code Online (Sandbox Code Playgroud)

但是,我应该警告您,您可能需要安装ffmpegx264安装库,因为您在Ubuntu中,尝试在终端中执行此命令:

sudo apt-get install ffmpeg x264 libx264-dev
Run Code Online (Sandbox Code Playgroud)

另外,请查看OpenCV教程中的此链接,以获取有关适用于您的平台的FourCC代码类型的更多详细信息:http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_video_display/py_video_display. HTML#储蓄-一个视频

在上面的链接中,它说的X264是你应该使用的FourCC代码,但是在它们之间进行切换直到你开始工作.

  • ffmpeg **拒绝 mp4 格式容器的 `"h264"`**。它说“FFMPEG:标签 0x34363268/'h264' 不支持编解码器 id 27 和格式 'mp4 / MP4 (MPEG-4 Part 14)'`,但它 **接受 '"avc1"`**,如其他答案。两者都指定相同的视频压缩 H.264/AVC,但 MP4 格式仅接受特定标签。这是一个标准。 (5认同)

Gon*_*cia 8

您也可以使用 mp4v

fourcc = cv2.cv.CV_FOURCC(*'mp4v')
Run Code Online (Sandbox Code Playgroud)

视频编写器应如下所示:

out = cv2.VideoWriter('output.mp4',fourcc, 15, size)
Run Code Online (Sandbox Code Playgroud)

但是还有更多可用于mp4的编解码器。您可以通过设置来查看它们的列表fourcc = -1,它将显示如下列表:

OpenCV: FFMPEG: format mp4 / MP4 (MPEG-4 Part 14)
fourcc tag 0x7634706d/'mp4v' codec_id 000C
fourcc tag 0x31637661/'avc1' codec_id 001B
fourcc tag 0x33637661/'avc3' codec_id 001B
fourcc tag 0x31766568/'hev1' codec_id 00AD
fourcc tag 0x31637668/'hvc1' codec_id 00AD
fourcc tag 0x7634706d/'mp4v' codec_id 0002
fourcc tag 0x7634706d/'mp4v' codec_id 0001
fourcc tag 0x7634706d/'mp4v' codec_id 0007
fourcc tag 0x7634706d/'mp4v' codec_id 003D
....
Run Code Online (Sandbox Code Playgroud)

它们都支持mp4,但h264如果要将视频提供到Web,则Web浏览器支持。

  • @quant_dev 使用这一行: cv2.VideoWriter_fourcc(*'mp4v') (4认同)
  • 从字面上将 `fourcc = -1` 传递给 `VideoWriter` 的构造函数,然后将出现此输出 (3认同)

小智 6

fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
Run Code Online (Sandbox Code Playgroud)

似乎总是有效。