В настоящее время я использую qt + opencv для создания программы для воспроизведения видео. Я пробовал видео с разрешением 360p, 480p, 720p и 1080p. Проблема только в том, что видео 1080P не работало плавно при перетаскивании слайдера.
Пример медленного ответа
Я использую фиксированный ярлык для воспроизведения видео, размер которого (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));
}
}