как гладко воспроизводить HD (1080p +) видео через opencv - PullRequest
0 голосов
/ 23 марта 2019

В настоящее время я использую qt + opencv для создания программы для воспроизведения видео. Я пробовал видео с разрешением 360p, 480p, 720p и 1080p. Проблема только в том, что видео 1080P не работало плавно при перетаскивании слайдера.

Пример медленного ответа Slow response example

Я использую фиксированный ярлык для воспроизведения видео, размер которого (574 * 506). Я не хочу уменьшать разрешение видео. Я использую qt5.12 и opencv 3 на платформе @Windows 10. Вот мой код для воспроизведения видео. Заранее спасибо.

void videoEditing::videoPlay()
{
    emit playReady();

    capture >> frame;

    if(!frame.empty()){

        Mat frameTmp = frame.clone();

        img = QImage(static_cast<const unsigned char*> (frame.data),
                     frame.cols,
                     frame.rows,QImage::Format_RGB888).rgbSwapped().scaled(ui->videoEditingArea->width(),
                                                                           ui->videoEditingArea->height(),
                                                                           Qt::KeepAspectRatio,
                                                                           Qt::FastTransformation);

        QImage imgTmp = QImage(static_cast<const unsigned char*> (frameTmp.data),
                               frameTmp.cols,
                               frameTmp.rows,
                               QImage::Format_RGB888).rgbSwapped().scaled(ui->videoEditingArea->width(),
                                                                          ui->videoEditingArea->height(),
                                                                          Qt::KeepAspectRatio,
                                                                          Qt::FastTransformation);

        ui->videoEditingArea->setPixmap(QPixmap::fromImage(img));
        ui->videoPlayingArea->setPixmap(QPixmap::fromImage(imgTmp));

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