Поддержка кодеков OpenCV2
Я читаю в видео файлах с openCV, я использую следующий простой код, чтобы сделать это.
std::string arg = argv[1];
VideoCapture capture(arg); //try to open string, this will attempt to open it as a video file
if (!capture.isOpened()) {
cerr << "Failed to open video file!\n" << endl;
help(argv);
system("Pause");
return 1;
}
Я могу загрузить и управлять несколькими видео, но у меня есть проблемы с другими. Я полагаю, что это связано с проблемами кодека. Я могу воспроизводить видео, используя Win Media Media старого стиля, поэтому кодеки в системе, но я думаю, что не доступны в OpenCV?
Кто-нибудь знает, какие кодеки и видео формат определенно будут воспроизводиться на opencv и что является хорошим вариантом для конвертации видео в эти форматы?
Большое спасибо
1 ответ
Действительно, поддерживаемый кодек OpenCV зависит от вашей платформы и доступных кодеков.
Это руководство Создание видео с помощью OpenCV четко объясняет видеокодек OpenCV. Хотя он предназначен для записи видео, я думаю, что основной принцип такой же, как и при чтении видео.
Функция C++: double VideoCapture::get(int propId)
можно получить свойство кодека вашего загруженного видео, установив propId = CV_CAP_PROP_FOURCC
, Интерпретацию FOURCC можно найти на этом сайте. Если у вас есть проблемы с чтением видео.avi, весьма вероятно, что коды не установлены на вашей платформе.