OpenCV:对于mp4文件,保存电影是可行的,但使用了错误的编解码器

2024-10-05 20:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python和OpenCV制作一个视频编辑器,并测试不同的编解码器和文件格式组合。对于这个例子,我主要关注avimp4格式。我尝试了多种不同的四字符编解码器(http://www.fourcc.org/codecs.php),它们都保存了一部我可以播放的电影

令人困惑的是,当我重新加载它们并从电影中提取编解码器时,发现只有保存为avi的电影似乎是使用原始编解码器保存的。下面的图表显示了用于编码的编解码器(使用cv2.VideoWriter_fourcc()创建),然后是加载后从视频中提取的相应编解码器(使用get(cv2.CAP_PROP_FOURCC))。我还将大小以MB为单位放在括号中

对于avi(编码->;提取):

MJPG -> MJPG (3.9)
FFV1 -> FFV1 (12.3)
DIVX -> DIVX (0.7)

对于mp4:

MJPG -> mp4v (3.9)
FFV1 -> avc1 (26.1)
DIVX -> mp4v (0.7)

因此,您可以看到编码与mp4文件类型不匹配,即使文件大小大致匹配。avi和mp4的视频看起来几乎一样

加载的电影中的元数据对mp4不可信,编码对mp4不起作用,所以它选择默认值,还是其他什么


Tags: 编码视频电影编解码器编辑器cv2opencv例子
1条回答
网友
1楼 · 发布于 2024-10-05 20:06:33

最有可能的情况是,您尝试使用不兼容的编解码器(视频内容的压缩方式)和容器(用于传输压缩视频(通常是音频、子片段等)的实际文件格式)的组合

相关问题 更多 >