Russian Qt Forum

Qt => Мультимедиа => Тема начата: Vitto74 от Март 10, 2010, 00:27



Название: [РЕШЕНО][Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 10, 2010, 00:27
Пишу электронный учебник в котором есть видео проигрыватель. В Linux все заработало на ура без лишних телодвижений. Но вот в вендой начались проблемы.
И так WinXP SP3. По умолчанию в ней есть поддержка только не сжатого видео и wmv (почему меня это не удивляет). Прога собирается в QtSDK (QtCreator+Qt4+MinGw) без ошибок, но при создании Phonon::VideoPlayer, в консоль попадает вот это
Код:
the video widget cold not be initialized correctly
Формат видео пробовал wmv и, после установки кодеков, ogv. Но формат я думаю роли не играет - это ошибка на этапе инициализации. Последняя версия DirectX установлена.
Вот фрагмент кода, вызывающий эти сообщения:
Код:
player = new Phonon::VideoPlayer(Phonon::VideoCategory);
На всякий случай прикрепляю проект с проигрывателем.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 01:51
После установки DirectX SDK все заработало, но встала другая проблема. Что это проге нужно для работы на компе без SDK? Скомпиленная прога продолжала нормально работать даже после полного удаления SDK, но при переносе на свежепоставленную систему (с последним DirectX) работать отказывалась - виждет Phonon::VideoPlayer вообще не появлялся.

Народ! Помогите! Ведь реально важная проблема и не только для меня.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Akaiten от Март 11, 2010, 09:35
Что за система? Какой DirectX стоит? Проверь dependencies у exe-шника. Проверь есть ли поддержка VMR-9 на этой системе?


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 10:00
Компилилось на WinXP SP3 + QtSDK + DirectX SDK + DirectX (9.0c).
Запускалось на WinXP SP3 + DirectX (9.0c) + qt-либы.
PS можно по подробнее о dependencies и VMR-9?


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Amigo_sa от Март 11, 2010, 11:22
После установки DirectX SDK все заработало, но встала другая проблема. Что это проге нужно для работы на компе без SDK?
Читал тут (http://2developers.net/post/com_direct_show_1.html), что Phonon на винде проигрывает с помощью директ шоу


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 11:32
Читал. Но на сколько я понимаю DirectShow входит в DirectX, который уже установлен.
Assistant говорит как использовать phonon на винде
Цитировать
On Windows, building Phonon requires DirectX and DirectShow version 9 or higher. You'll need additional SDKs you can download from Microsoft.
Но как распространять скомпиленную прогу там не сказано.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Amigo_sa от Март 11, 2010, 11:40
Читал. Но на сколько я понимаю DirectShow входит в DirectX, который уже установлен.
Assistant говорит как использовать phonon на винде
Цитировать
On Windows, building Phonon requires DirectX and DirectShow version 9 or higher. You'll need additional SDKs you can download from Microsoft.
Но как распространять скомпиленную прогу там не сказано.
Цитата из вики
Цитировать
В октябре 2004, DirectShow удаляется из официальной поставки DirectX и переносится к дополнениям DirectX. В апреле 2005, DirectShow полностью удаляется из официальных поставок DirectX и перемещается в Windows Server 2003 SP1 версию Microsoft Platform SDK[2]. Тем не менее для компиляции некоторых примеров из документации всё ещё требуется DirectX SDK[7]. А вот уже с выходом Windows Vista и документация начинает поставляться совместно с Windows SDK [2].
Просто я когда портировал на пустые компы под виндой прогу с phonon ставил и директХ и директШоу и кодеки, все работало.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 13:25
Блин! Ненавижу винду и мелкомягких! Где этот DirectShow взять? Весь сайт облазил. Ничего не подходит.
Виджет Phonon::VideoPlayer просто не появляется.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Amigo_sa от Март 11, 2010, 13:44
Там же написано, что он теперь в комплекте Windows SDK. А так я гуглил и качал отдельный инсталлятор.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Akaiten от Март 11, 2010, 14:01
можно по подробнее о dependencies и VMR-9?
Можно например воспользоваться тулзой Dependency Walker от Microsoft.

Насчет VMR9, в исходниках только одно упоминание строки "the video widget cold not be initialized correctly",
а именно в файле videorenderer_vmr9.cpp при неудачном выполнении кода
Код
C++ (Qt)
m_filter = Filter(CLSID_VideoMixingRenderer9, IID_IBaseFilter);
 
Посмотри ещё MSDN (http://msdn.microsoft.com/en-us/library/dd407294(VS.85).aspx)насчет VMR.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 17:03
На сайте у мелкомягких лазить все равно проктологом работать! Не возможно! Дайте ссылку на установщик DirectShow, ато реально zaebalo.com (http://zaebalo.com)


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Akaiten от Март 11, 2010, 18:43
Что ещё за установщик DirectShow? Это нонсенс. Что вам конкретно нужно? DirectShow SDK? Так он щас включён в Windows SDK (раньше был в DirectX 9.0 SDK Update - (February 2005) Extras). Реализацию DirectShow составляет в основном библиотека quartz.dll и по-моему, она изначально входит в Windows.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 19:04
Мдя.... чувствую себя ламером. Вот что значит сесть на Linux!
Опишу проблему еще раз - вдруг что-то не так сказал.
Пишу простенький плеер в виде QDialog, которому в конструкторе передается имя видео файла. Исходник в первом посте.
Если скомпилить на системе только с QtSDK, то виджет Phonon::VideoPlayer появляется (просто черная область), но воспроизведение не идет и при его создании в консоль попадает "the video widget cold not be initialized correctly".
Если поставить DirectX SDK, то то плеер работает нормально, но сообщение "the video widget cold not be initialized correctly" в консоли все равно появляется.
Если перенести скомпиленную прогу и нужные dll из qt на чистую систему, то виджет Phonon::Player не появляется вообще.
Я хочу понять что нужно установить на чистую систему для работы уже скомпиленного плеера и где это зять.


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Akaiten от Март 11, 2010, 20:14
Пришлось таки скачать проект, скомпилировать, запустить виртуальную машину (!) и проверить что за дела. А ведь лень, лень одолевает 
А кто phonon backend с собой брать будет? А? 
См. библиотеки в папке %QTDIR%/plugins/phonon/phonon_backend/

По крайней мере .avi проигрался, WinXP 5.1 (сборка 2600), DirectX 9.0c, Qt 4.6.2


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 11, 2010, 23:23
Огромное спасибо! Даже не знаю как благодарить! Два дня мучился.
Проблема стала гораздо понятнее. Проге нужен файл phonon_ds94.dll, который расположен непременно в папке D:\qt\2010.01\qt\plugins\phonon_backend\ (туда я установил qt) и нигде больше. Он в упор не замечает его рядом с исполняемым файлом и в папках c:\windows и c:\windows\system32.
Пробовал класть его в папку plugins\phonon_backend\ рядом с исполняемым файлом и в c:\windows\plugins\phonon_backend\ безрезультатно.
Пытался менять значение переменной QTDIR на c:\windows и ложить файл в c:\windows\plugins\phonon_backend\ не помогло.
Выставлял чистые системные переменные - все равно ищет там же.
Переставлять qt ради одной библиотеки это не по джедайски! Как заставить прогу видеть эту библиотеку в папках, указанных в PATH?


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Авварон от Март 11, 2010, 23:56
должно работать с phonon_backend/ либо plugins/phonon_backend


Название: Re: [Qt 4.6.1]Phonon vs Windows
Отправлено: Vitto74 от Март 12, 2010, 00:01
Помогло. Поместил библиотеку в папку phonon_backend рядом с исполняемым файлом.


Название: Re: [РЕШЕНО][Qt 4.6.1]Phonon vs Windows
Отправлено: Akaiten от Март 12, 2010, 09:03
Читаем Deploying an Application on Windows (http://doc.trolltech.com/4.6/deployment-windows.html#qt-plugins), а также ищем по форуму (http://www.prog.org.ru/index.php?action=search), например, шикарная тема (http://www.prog.org.ru/topic_11804_0.html).


Название: Re: [РЕШЕНО][Qt 4.6.1]Phonon vs Windows
Отправлено: ieroglif от Май 31, 2010, 14:31
боже, повесьте это в FAQ - сутки мучался пытался запустить =)