Я пытаюсь воспроизвести фильм, используя QT Multimedia Framework (5.0.1), но у меня только черный экран с мовом, закодированным с H.264.
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 // означает «Возможно поддерживается»
Я использую Qt 5.0.1 на Mac OSX 10.7.5. Файл корректно воспроизводится плеером и выдает ffmpeg -i test_mov.mov
Продолжительность: 00: 00: 02.52, начало: 0,000000, битрейт: 63708 кбит / с
Поток № 0: 0 (англ): Видео: h264 (основной) (avc1 / 0x31637661), yuv420p, 1920×1080, 63684 кбит / с, SAR 1745: 1920 DAR 349: 216, 25 кадров в секунду, 25 тбр, 25 тбн, 50 тбк
Кто-нибудь знает, какие форматы поддерживает QT Multimedia?
Спасибо
В Windows форматы видеофайлов QT обычно отображаются с расширением .mov.
Другие форматы файлов, которые QuickTime поддерживает изначально (в различной степени), включают AIFF, WAV, DV, MP3 и MPEG-1.
Других решений пока нет …