2016-12-04 2 views
0

У меня возникает конкретная проблема при попытке прочитать видеофайл .uuv в opencv. Мой код выглядит следующим образом:Чтение файла YUV в opencv

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/opencv.hpp> 

using namespace cv; 
using namespace std; 

int main(void) 
{ 

    VideoCapture cap("video/balloons1.yuv"); // open the video file for reading 

    if (!cap.isOpened()) // if not success, exit program 
    { 
     cout << "Cannot open the video file" << endl; 
     return -1; 
    } 

return 0; 
} 

Однако я продолжаю встречая следующее сообщение об ошибке: enter image description here

я установил FFMPEG следуя инструкциям с этого сайта: http://www.wikihow.com/Install-FFmpeg-on-Windows и установка кажется правильным. Есть ли у кого-нибудь идеи о том, что может быть проблемой?

ответ

1

Raw YUV video file не содержит метаданных, таких как размеры изображения, время, используемый формат пикселей или даже любые маркеры для идентификации файла в виде видеофайла. Ни один игрок не может открыть этот файл без дополнительной помощи, и ни OpenCV, ни ffmpeg. Вам нужно либо как-то указать параметры OpenCV файла (не уверен, что это возможно даже с OpenCV api), либо преобразовать файл в другой формат.

Предлагаю сделать последнее. Вероятно, самый простой способ сделать это описан в Using FFMPEG to losslessly convert YUV to another format for editing in Adobe Premier (это без потерь сжимает видеофайл), или вы можете попробовать использовать какой-то формат, способный хранить необработанное видео.

Обязательно укажите правильные данные для вашего конкретного файла - правильные размеры и формат пикселей имеют решающее значение.

+0

благодарит за это! Я попробую найти способ обойти его – user1816546

 Смежные вопросы

  • Нет связанных вопросов^_^