2013-06-04 75 views
3

我試圖播放電影使用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支持哪些格式?

謝謝

+0

你正在檢查對「video/mov」的支持,它是「可能支持」。但是,這只是容器。看看你是否可以檢查H.264視頻編解碼器的支持。這可能會更棘手。 –

+0

與使用h264編碼的mp4相同的結果(可能支持),將「video/mov」更改爲「video/H264」和文件本身。命令行實用程序文件返回:「file test_h264.mp4」 - >「test_h264.mp4:ISO Media,MPEG v4 system,version 2」 –

+0

關於'file'命令:它無法深入到MOV/MP4文件來確定編解碼器。回到主題上,我不知道我們是否已經確定Qt多媒體框架是否可以在Mac OS X平臺上訪問系統H.264解碼器。也許還有其他組件需要到位才能成功。 –

回答

0

在Windows,QT格式的視頻文件通常會出現與.MOV文件擴展名。 QuickTime支持的其他文件格式(不同程度上)包括AIFF,WAV,DV,MP3和MPEG-1。

+0

我通過切換平臺,從OS X到Windows,成功了。可能這是一個編解碼器問題,正如多媒體邁克先前所建議的那樣 –