Ошибка видеозахвата: Ошибка подтверждения в файле src / libswscale / swscale_internal.h: ошибка 668 - PullRequest
0 голосов
/ 01 февраля 2019

Чтение видеокадра дает мне эту ошибку.Это началось недавно, когда я обновился до opencv4.Нет ошибок при установке opencv4.libswscale обновлен, у меня есть libswscale.so.4.8.100.

Код представляет собой простое «открытое» и «прочитанное» видео для выявления проблемы:

#include<opencv2/core.hpp>
#include<opencv2/videoio.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<string>
#include <iostream>

int main(int argc, char **argv){
    cv::VideoCapture video;
    std::string filename(argv[1]);
    std::cout << "filename " << filename << std::endl;
    std::cout << "video.open " << video.open(filename) << std::endl;
    union {
        char ch[5] = {0};
        int i4cc;
    } fourcc;
    fourcc.i4cc = (int) video.get(cv::CAP_PROP_FOURCC);
    std::cout << "Fourcc " << fourcc.ch << std::endl;
    cv::Mat frame;
    while(true){
        std::cout << "video.read " << video.read(frame) << ", Mat.rows " << frame.rows << std::endl;
        cv::imshow("imagen", frame);
    }
}

вывод такой:

filename ../Archivos/Vuelta al Lab Uno 720p.MP4
video.open 1
Fourcc avc1
Assertion desc failed at src/libswscale/swscale_internal.h:668

VideoCapture открывает видеофайл, показывает свойство fourcc, а затем не может прочитать первое изображение.

Если вы спросите, видеофайл в порядке, я попытался с другим видеофайлы и другие форматы видео, с той же ошибкой.Эти видео хорошо воспроизводятся с ffmpeg.ffplay!

Кстати, VideoCapture.read отлично работает с веб-камерой.Итак, неясно, где проблема.

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...