Воспроизведение видео mp4 с помощью Phonon

Я пытаюсь написать очень простой видеоплеер с использованием QT и Phonon в Windows. Мой бэкенд — phonon_ds94. Прежде всего, вот код, когда я нажимаю «Играть»:

if (!this->_files.empty()) {
    QString file = this->_files.front();

    this->_files.pop();

    Phonon::MediaSource _src(file);
    this->ui.videoPlayer->play(_src);
}

(Здесь файл — это std::queue файлов для чтения)

Если я хочу воспроизвести .avi или .wmv, все работает нормально. Мое видео воспроизводится, оно идеально.

Но когда я хочу воспроизвести файл .mp4, ничего не происходит. Видеоплеер остается черным.

Я искал в Интернете и вижу, что есть BackendCapabilities:: availableMimeTypes, поэтому я попробовал, чтобы убедиться, что мой бэкэнд совместим с mp4 - он есть в списке. Вот список доступных типов пантомимы:

application/vnd.ms-wpl application/x-mplayer2 application/x-ms-wmd application/x-ms-wmz audio/3gpp audio/3gpp2 audio/aiff audio/basic audio/mid audio/midi audio/mp3 audio/mp4 аудио/mpeg аудио/mpegurl аудио/mpg аудио/vnd.dlna.adts аудио/wav аудио/x-aiff аудио/x-mid аудио/x-midi аудио/x-mp3 аудио/x-mpeg аудио/x-mpegurl аудио /x-mpg audio/x-ms-wax audio/x-ms-wma audio/x-wav midi/mid unknown video/3gpp video/3gpp2 video/avi video/mp4 video/mpeg video /mpg video/msvideo video/quicktime video/vnd.dlna.mpeg-tts video/x-mpeg video/x-mpeg2a video/x-ms-asf video/x-ms-asf-plugin video/x-ms-wm видео/x-ms-wmv видео/x-ms-wmx видео/x-ms-wvx видео/x-msvideo vnd.ms.wmhtml

Я также подключил сигнал stateChanged mediaObject к слоту, и когда я пытаюсь прочитать свое видео, возникает ошибка, говорящая о том, что формат файла не поддерживается.

Как я могу получить Phonon для его поддержки? Должен ли я установить пакет кодеков, даже если mp4 есть в моем списке?


person Exanis    schedule 15.05.2012    source источник
comment
Можете ли вы использовать vlc, чтобы узнать, какие аудио- и видеопотоки находятся внутри файла? люди действительно либеральны с расширениями файлов.   -  person UmNyobe    schedule 15.05.2012
comment
Не могли бы вы попробовать установить пакет кодеков K-Lite? Я вспоминаю похожую проблему, когда сообщаемая возможность не была совместима с DirectShow.   -  person Bart    schedule 15.05.2012
comment
Пробовал установить пакет кодеков K-Lite, ничего не изменилось. Но я заметил, что видео в формате H264 - MPEG-4 AVC (согласно VLC), а звук - в формате MPEG AAC Audio. Может проблема в этом?   -  person Exanis    schedule 15.05.2012


Ответы (1)


Недавно у меня была похожая проблема, и после того, как я попробовал несколько пакетов кодеков, вот тот, который сработал.

K Lite Mega Codec Pack

Если вы перейдете к расширенной установке, вы можете снять флажки «Инструменты», «Программа» (Классический проигрыватель Windows Media), «Расширение оболочки», а затем снять флажки с бесплатных панелей инструментов браузера, которые поставляются вместе с ним, вы получите только кодеки .

После этого я смог воспроизвести что угодно в Windows, используя пример программы qmediaplayer, включенный в папку Demos в QtSDK.

person phyatt    schedule 31.08.2012