QT多媒体,用于H264电影的黑屏

时间:2013-06-04 13:51:40

标签: c++ qt h.264 multimedia

我正在尝试使用QT多媒体框架(5.0.1)播放电影,但我只得到一个带有H.264的mov的黑屏。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget *mainWidget = new QWidget();
    mainWidget->setGeometry(0,0, 1920, 1080);

    QVideoWidget *widget = new QVideoWidget(mainWidget);
    widget->setGeometry(0, 0, 1920, 1080);

    QMediaPlayer *player = new QMediaPlayer;
    QUrl localUrl = QUrl::fromLocalFile("test_mov.mov");
    player->setMedia(localUrl);
    qDebug() << "Player error state -> " << player->error();
    qDebug() << "Media supported state -> " << QMediaPlayer::hasSupport("video/mov");
    player->setVideoOutput(widget);

    mainWidget->show();

    player->play();

    return a.exec();
}

代码正确编译并在控制台上提供以下输出,而视频小部件仍为黑色:

  

播放器错误状态 - &gt; QMediaPlayer :: NOERROR
  媒体支持的状态 - &gt; 1 //表示“可能支持”

我在Mac OSX 10.7.5上使用Qt 5.0.1。该文件由播放器正确播放,ffmpeg -i test_mov.mov给出

  

持续时间:00:00:02.52,开始:0.000000,比特率:63708 kb / s       流#0:0(eng):视频:h264(主)(avc1 / 0x31637661),yuv420p,1920x1080,63684 kb / s,SAR 1745:1920 DAR 349:216,25 fps,25 tbr,25 tbn,50 tbc

有谁知道QT Multimedia支持哪些格式?

谢谢

1 个答案:

答案 0 :(得分:0)

在Windows中,QT视频文件格式通常以.mov文件扩展名出现。  QuickTime支持的其他文件格式(不同程度)包括AIFF,WAV,DV,MP3和MPEG-1。