OpenCV:对于mp4文件,保存电影工作,但使用错误的编解码器。

问题描述 投票:1回答:1

我正在用Python和OpenCV制作一个视频编辑器,并测试不同的编解码器和文件格式组合。在这个例子中,我专注于 avimp4 格式。我试过多种不同的四字符编解码器(http:/www.fourcc.orgcodecs.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不起作用所以选了个默认的,还是其他原因?

python opencv video codec
1个回答
0
投票

最可能的是,你尝试使用编解码器(视频内容如何被压缩)和容器(用于传输压缩视频的实际文件格式(通常是音频、字幕...)的组合,这些组合是不兼容的。

© www.soinside.com 2019 - 2024. All rights reserved.