Я пытаюсь сравнить 3 видео, которые кодируются H.264, H.265 и VP9.
Все они сделаны одним и тем же видео 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
}
vCap1
открылся успешно, но vCap2
а также vCap3
не открывается
Я пропустил что-то, чтобы включить это, чтобы это работало?
Или OpenCV даже не поддерживает другие 2 формата?
После использования Google 🙂 я обнаружил, что
http://answers.opencv.org/question/10741/videocapture-format-supported-by-opencv/
Особенно у вас есть необходимые кодеки, установленные в вашей системе. Вы также можете посетить
http://www.fourcc.org/codecs.php
для кодеков.
Документация от OpenCV действительно не очень полезна. 🙂
Что бы я попробовал, если вы работаете под Linux:
strace -xfo dump
и взгляните на системные вызовы. Может быть, вы найдете некоторые подсказки о пропущенных файлах кодеков, использованных файлах конфигурации и других неудачных вызовах системных функций. Если это так, у вас есть стартовая точка.