2014-01-30 3 views
0

Я пытался воспроизводить видеоформаты * .wmv, * .mp4 с QMediaPlayer и QVideoWidget в Qt5.2. Я просто следовал expample и вот мой код:Воспроизведение видео с помощью QMediaPlayer, QVideoWidget в Qt5.2

mp =new QMediaPlayer(this); 
vw = new QVideoWidget(this); 
QMediaPlaylist* playlist = new QMediaPlaylist(this); 
playlist->addMedia(QUrl::fromLocalFile("C:/Users/Public/Videos/Sample Videos/Wildlife.wmv")); 
playlist->setCurrentIndex(1); 
mp->setPlaylist(playlist); 
mp->setVideoOutput(vw); 
setGeometry(100,100,400,500); 
vw->setGeometry(0,0,300,400); 
show(); 
play(); 

Я установил кодеки K-Lite. Когда я воспроизвожу те же файлы с помощью Media Player Classic или Win Media Player, файлы воспроизводятся хорошо, а значки Lca и FFmpeg отображаются в лотке.

Но с Qt 5.2 Я не вижу визуальных эффектов для любого видеофайла. Только для файлов wmv я могу слышать звук (без визуального).

Я много искал в Интернете, и все указывают на кодеки, которые, я считаю, у меня есть. Какова конфигурация кодеков K-Lite? Я использовал кодеки по умолчанию. Я построил Qt с фондом Win Media. Поэтому я затрудняюсь понять, что здесь не так. Платформа - win7 32. Любая помощь приветствуется. Дайте мне знать, если мне нужно что-то читать или любую статью или блог. Спасибо.

+0

Я сменил видеокарту на Nvidia GeForce 210, которая поддерживает OpenGL 3.3. Мой предыдущий поддерживал только OpenGl 1.1. Теперь я могу правильно воспроизводить все wmv-видео, но для любого другого формата я получаю следующую ошибку: DirectShowPlayerService :: doRender: Неразрешенный код ошибки 80040266. VFW_E_NO_TRANSPORT Пины не могут подключаться, потому что они не поддерживают один и тот же транспорт. Например, для восходящего фильтра может потребоваться интерфейс IAsyncReader, в то время как нисходящий фильтр требует IMemInputPin. Должен ли я создавать DirectShow или Qt5 после изменения видеокарты? – sky

ответ

0

Это была видеокарта. Для этого нужна видеокарта, поддерживающая OpenGL версии 2.1 или более. Как только я обновил видеокарту до GeForce 210, которая поддерживает OpenGL 3.3 и установил кодеки K-Lite по умолчанию, я смог воспроизвести все видео и аудио.

Смежные вопросы