C # DirectX Воспроизведение аудио / видео «VFW_E_UNSUPPORTED_STREAM»

1

Я пытаюсь создать видеоплеер для MP4 с DirectX, и он работает на моем компьютере, но я попробовал свое приложение на нетбуке, и этот код ошибки появляется в try{...}catch(Exception e){...},

Error in the application.
-2147220891 (VFW_E_UNSUPPORTED_STREAM)
   at Microsoft.DirectX.AudioVideoPlayback.Video.Open(String fileName, Boolean autoRun)
   at Microsoft.DirectX.AudioVideoPlayback.Video..ctor(String fileName, Boolean autoRun)
   at Video_Player.Player.PeekWind_Load(Object sender, EventArgs e)

Это мой код.

Microsoft.DirectX.AudioVideoPlayback.Video video = new Microsoft.DirectX.AudioVideoPlayback.Video("C:\TestVideo.mp4", true);
video.Owner = ViewPane;
video.Size = new Size(Video.DefaultSize.Width, Video.DefaultSize.Height);
video.Audio.Volume = -2500;
video.Play();

Спасибо за любую помощь.

Теги:
video
directx
directshow
audiovideoplayback

1 ответ

1
Лучший ответ

VFW_E_UNSUPPORTED_STREAM - это код ошибки, возвращаемый базовым уровнем DirectShow, что указывает на то, что он не смог построить конвейер воспроизведения. Это, в свою очередь, означает, что какой-либо поток или формат вообще не может быть распознан и обычно отсутствует компонент кодека/фильтра для чтения данных в состоянии декодирования и готовности к презентации.

Поскольку вы упоминаете MP4, вам, вероятно, нужен сторонний фильтр/кодек, так как запас Windows не предлагает компонент для этого в DirectShow API (фильтры GDCL должны исправлять это в Windows 7+, а в более старых системах вам также обычно нужна сторонняя H.264).

  • 0
    Спасибо за ответ! У меня есть вопрос по этому поводу, хотя. Где я могу разместить DLL-файлы фильтров GDCL на моем компьютере?
  • 0
    Вы помещаете их куда угодно, а затем запускаете один раз regsvr32 xxx.dll для регистрации двоичных файлов из командной строки администратора с повышенными правами. Тогда вы не перемещаете их из их местоположения. Вот и все.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню