fourcc = cv2.cv.CV_FOURCC(*'XVID')
以上行用于avi视频。同样地,Ubuntu中我们要使用哪种编解码器来处理mp4视频?
你还可以使用mp4v
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
视频编写器应该像这样:
out = cv2.VideoWriter('output.mp4',fourcc, 15, size)
但是对于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
....
所有这些支持mp4,但如果您想将视频提供到Web上,则Web浏览器支持h264
。
VideoWriter
构造函数传递 fourcc = -1
,然后这个输出就会出现。 - Christoph Rackwitz编解码器是H.264。
以下任何一种都应该适合您:
fourcc = cv2.VideoWriter_fourcc(*'h264')
#or
#fourcc = cv2.VideoWriter_fourcc(*'x264')
#or
#fourcc = cv2.VideoWriter_fourcc(*'mp4v')
不过,我应该警告你,你可能需要安装ffmpeg
和x264
库,因此如果你使用Ubuntu,请尝试在终端中执行以下命令:
sudo apt-get install ffmpeg x264 libx264-dev
此外,请查看OpenCV教程中的链接,以了解平台支持的各种FourCC代码的详细信息。
在上面的链接中,它说X264
是您应该使用的FourCC代码,但在您使其正常工作之前,请尝试切换它们。
sudo apt-get install ffmpeg x264 libx264-dev
命令即可使其在我的 Raspberry Pi 3 上运行。谢谢! - Jonas TMFFMPEG:tag 0x34363268/'h264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)'
。但是它接受"avc1"标签(如其他答案所述)。这两个标签都代表同一种视频压缩编码H.264/AVC,但是MP4格式只接受特定的标签,这是一个标准。 - Christoph Rackwitzfourcc = cv2.VideoWriter_fourcc('m','p','4','v')
总是看起来能工作。
这是一个旧问题。但是,如果有人最近使用编解码器遇到了无法获取保存的视频的问题,他们可以在OpenCV 3及更高版本中使用0X00000021
作为编解码器值。