我試圖播放電影使用QT多媒體框架(5.0.1),但我只得到一個與H.264編碼的mov黑色屏幕。QT多媒體,黑屏H264電影
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();
}
代碼編譯正確,給出的控制檯下面的輸出,而視頻窗件保持黑色:
Player錯誤狀態 - > 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,1920×1080,63684 KB /秒,SAR 1745:1920 DAR 349:216,每秒25幀,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」 –
關於'file'命令:它無法深入到MOV/MP4文件來確定編解碼器。回到主題上,我不知道我們是否已經確定Qt多媒體框架是否可以在Mac OS X平臺上訪問系統H.264解碼器。也許還有其他組件需要到位才能成功。 –