Большой Воронежский Форум
» Программирование>Ошибка "VFW_E_CANNOT_RENDER" при попытке использования DirectX
Мамед 13:15 01.09.2009
Приветствую всех. Помогите, пожалуйста, разобраться с ошибкой. Хотел в программе проиграть мп3 файл в отдельном потоке, но нарвался на ошибку. Пишу на C#. Проигрывание осуществляю с помощью Microsoft.DirectX.AudioVideoPlayback и получаю ошибку.
Детали ошибки:
Microsoft.DirectX.DirectXException: {"Ошибка в приложении"}
ErrorCode:-2147220968
ErrorString: "VFW_E_CANNOT_RENDER"
InnerException: null
В гугле нашел только то, что это видимо из-за установленого кодека FFdShow (который у меня стоит). В настройках кодека я поставил галочку "Don't use ffdshow in: (не юзать этот кодек в)" и в список ехешек ввел свою, но ошибка продолжается.
Параметры мп3, который хочу вопроизвести:
Частота: 44.1кГц
Битрейт: 192 кбит/с
*Файл вполне нормальный, воспроизводится в любом проигрывателе. [Ответ]
Yandex 09:40 02.09.2009
Мамед, а DX нельзя указать какой кодек использовать? Попробуй на время удалить ffdshow из системы. [Ответ]
Мамед 12:26 02.09.2009
Yandex, насчет указания кодека не узнавал (так как раньше все прекрасно работало без ффдшоу, сейчас же жду DirectX March 2009 SDK пока скачается и погляжу там). По поводу удаления, ради интереса удалю (подозреваю, что после удаления все заработает, конечно, но все же это не выход) и отпишусь. [Ответ]
Мамед 08:36 03.09.2009
Удалил полностью K-Lite Mega Codec Pack 5.00 - не помогло. Остается надеяться на DirectX SDK. Очень странно, что сейчас такое началось, т.к. раньше никогда не было. Еще, помню, была проблема достать DIrectX.AudioVideoPlayback.dll Сначала я его не нашел, тогда переустановил дх и он появился. Возможно, из-за этого все и началось. [Ответ]
Part!zan 19:37 04.09.2009
Мамед, а это со всеми мп3 происходит или только с конкретным файлом? [Ответ]
Мамед 20:56 04.09.2009
Part!zan, какого-то фига, до сих пор думал, что вроде проверил 3-4 файла. (с другой стороны, если бы правда проверил - написал бы сюда о результатах) Сейчас проверил и выяснилось, что ошибку вызывают все файлы одного и того же исполнителя. Мне кажется, перекодировать надо файл, чтобы он нормально проигрывался. В общем, если бы ты не спросил, я, наверно, так и сидел бы (за это спс), пытаясь разрулить, в чем же дело. И, хоть, и все заработало (естетственно, с внесением внеплановых изменений), все же, хочется узнать, что не так в мп3шках исполнителя (чтобы так же заработало без внесения внеплановых изменений ну и знать, что сделать, если столкнусь еще раз).

Инфо о файле, который вызывает ошибку:
General
Complete name : Fat Joe - Gangsta.mp3
Format : MPEG Audio
File size : 5.59 MiB
Duration : 3mn 54s
Overall bit rate : 192 Kbps
Album : Hard White. The End Of A Drought
Track name : Gangsta
Performer : Fat Joe
Genre : Rap
Writing library : LAME3.96.1
Cover : Yes
Cover MIME : image/jpeg
PZTagEditor Info : This tag done with PZ TagEditor at 11.11.2008 18:32:12. Version 4.55.506.3

Audio
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Duration : 3mn 54s
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Sampling rate : 44.1 KHz
Resolution : 16 bits
Stream size : 5.36 MiB (96%)
Writing library : LAME3.96.1



Инфо о файле, который не вызывает ошибку:
General
Complete name : 03 Dazhe ne dumaj.mp3
Format : MPEG Audio
File size : 4.68 MiB
Duration : 3mn 24s
Overall bit rate : 192 Kbps

Audio
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Duration : 3mn 24s
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Sampling rate : 44.1 KHz
Resolution : 16 bits
Stream size : 4.68 MiB (100%) [Ответ]
Part!zan 23:04 04.09.2009
Мамед, вот тут я не могу точно сказать... Возможно, наличие картинки сыграло свою роль. Или теги v2. Тут можно только экспериментировать. Могу посоветовать использовать для проигрывания мп3шек ocx от WinMediaPlayer. [Ответ]
Мамед 10:42 05.09.2009
Решил поэксперементировать и могу немного уточнить: не проигрываются файлы не то чтоб одного исполнителя, а именно одного альбома (с картинками). Удалил картинки - не сработало. А насчет версий тэгов тоже проверил, что файлы как с 1, так и с 2 версией нормально воспроизводятся. Мне интересно, что значят проценты в
Stream size : 5.36 MiB (96%) и Stream size : 4.68 MiB (100%)? Может быть, из-за нехватки до полноценности 4% в первом слуаче такая ерунда происходит? [Ответ]
Part!zan 14:39 05.09.2009

Сообщение от Мамед:
проверил, что файлы как с 1, так и с 2 версией нормально воспроизводятся

Возможно, дело не в наличии тегов вообще, а в каких-то особенностях их содержимого у данных конкретных файлов. Помнится, одно время была ошибка в WMP, из-за которой некоторые файлы с тегом 2 роняли плеер... Может быть и тут что-нть такое. [Ответ]
Мамед 22:50 05.09.2009
Даже так? Ужасы какие-то. В утилитке из комплекта DirectX SDK нашел описание ошибки. Перевожу:
Не найдена комбинация (сочетание) фильтров для воспроизведения потока. Больше, к сожалению, ни слова об ошибке не нашел, а по поводу этой не сказано, что делать. Каких именно фильтров, откуд их взять мне и т.д. Возможно, плохо искал, но останавливаться не собираюсь на поисках. Как только буду узнавать данные - предоставлю незамедлительно. [Ответ]
Part!zan 23:28 05.09.2009

Сообщение от Мамед:
Каких именно фильтров, откуд их взять мне и т.д

Фильтры это по сути все, что должно обрабатывать поток медиаданных: сплиттеры, кодеки и т.д. Найди в SDK программку graphedit и поиграйся с ней. Можно и на твоих проблемных файлах попробовать заодно. Вот еще популярное объяснение http://en.wikipedia.org/wiki/Filter_graph [Ответ]
Вверх