【发布时间】:2013-06-04 13:51:39
【问题描述】:
我正在尝试使用 QT Multimedia 框架 (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();
}
代码正确编译并在控制台上提供以下输出,而视频小部件保持黑色:
播放器错误状态 -> QMediaPlayer::NoError
媒体支持状态 -> 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 支持哪些格式?
谢谢
【问题讨论】:
-
您正在检查对“video/mov”的支持,它是“可能支持”。然而,这只是容器。看看您是否可以检查 H.264 视频编解码器支持。这可能更棘手。
-
与使用 h264 编码的 mp4 相同的结果(可能支持),将“video/mov”更改为“video/H264”和文件本身。命令行实用程序文件返回:"file test_h264.mp4" -> "test_h264.mp4: ISO Media, MPEG v4 system, version 2"
-
关于“文件”命令:它无法深入挖掘 MOV/MP4 文件以确定编解码器。言归正传,我不知道我们是否已经确定了Qt Multimedia框架是否可以访问Mac OS X平台上的系统H.264解码器。也许还有其他组件需要到位才能成功。
标签: c++ qt h.264 multimedia