读取H.265和VP9帧?

Dia*_*Dia 5 c++ opencv h.264 webm h.265

我正在尝试比较由 H.264、H.265 和 VP9 编码的 3 个视频。它们都是由同一个 YUV 视频制作的。

我想用OpenCV的函数读取视频的每一帧并做一些比较:

VideoCapture vCap1, vCap2, vCap3;
vCap1.open("h264.mp4");
vCap2.open("h265.mp4");
vCap3.open("vp9.webm");
Mat frame1, frame2, frame3;

while (vCap1.read(frame1) && vCap2.read(frame2) && vCap3.read(frame3))
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

打开vCap1成功,但是vCap2打不开vCap3。我是否错过了要包含的内容以使其正常工作?

或者 OpenCV 甚至不支持其他 2 种格式?

Kla*_*aus 4

使用谷歌后:-)我发现 http://answers.opencv.org/question/10741/videocapture-format-supported-by-opencv/

特别是您的系统上安装了所需的编解码器。您也可以访问 http://www.fourcc.org/codecs.php

对于编解码器。

OpenCV 的文档确实不是很有帮助。:-)

如果你在linux下运行我会尝试:

strace -xfo 转储

并查看系统调用。也许您可以找到一些缺少编解码器文件、使用的配置文件和/或其他失败的系统函数调用的提示。如果是这样,你就有了一个起点。