我目前正在使用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));
}
}