C#DirectX音频/视频播放" VFW_E_UNSUPPORTED_STREAM"

时间:2014-08-27 03:14:44

标签: c# video directx directshow audiovideoplayback

我正在尝试使用DirectX为MP4创建一个视频播放器,它可以在我的计算机上运行,​​但我在上网本上尝试了我的应用程序,这个错误代码会弹出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();

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

VFW_E_UNSUPPORTED_STREAMunderlying DirectShow layer返回的错误代码,表示无法构建回放管道。这反过来意味着某些流或格式无法被识别,并且通常缺少编解码器/过滤器组件来将数据读入解码和呈现就绪状态。

当你提到MP4时,你可能需要安装第三方过滤器/编解码器,因为Windows在DirectShow API中没有为此提供组件(GDCL filters应该在Windows 7+和旧系统中修复此问题。通常还需要第三方H.264解码器。