c# - DirectShow 在我用来解密缓冲流的源过滤器 (UNSUPPORTED_STREAM) 上抛出错误

标签 c# directshow directshow.net

我编译并注册了包含在 DirectShow 示例 (Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\async) 中的 DLL 我修改了它以在接收到缓冲区时对其进行解密(因为我收到的文件已加密。我可以在 GraphStudioNext 上运行该示例,但每当我尝试使用 DirectShowLib 在 C# 上构建图形时,它总是给我错误。

IBaseFilter xAsync = CreateFilter("C553F2C0-1529-11D0-B4D1-00805F6CBBEA");
hr = graphBuilder.AddFilter(xAsync, "xAsync");

hr = this.graphBuilder.RenderFile(filename, null);

它返回 -2147220891 (VFW_E_UNSUPPORTED_STREAM)(无法播放文件:不支持该格式。)有没有办法解决这个问题?

编辑:如果我删除解密代码,则不会发生此问题。

最佳答案

发现问题。我不得不从头开始构建图表,而不是在 RenderFile 上回复。我必须手动连接我的自定义文件源阅读器。它返回 -2147220891 (VFW_E_UNSUPPORTED_STREAM) 的原因是因为我加密了包含在系统依赖的 header 信息中的整个文件,以确定要连接的其余过滤器。

My Graph 以 FileSourceCustom -> GDCL Demultiplexer -> FFDShowDecoder -> VMR9 结束

关于c# - DirectShow 在我用来解密缓冲流的源过滤器 (UNSUPPORTED_STREAM) 上抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169076/

相关文章:

c# - 我不知道如何将子节点添加到 TreeView

video - DirectShow 音频/视频 PTS 时钟计算

c# - 如何在 C# 中实现 ISpecifyPropertyPages

c# - 如何知道相机预览成功或准备好使用 Directshow 进行快照

c# - DVR 设备缺少 DirectShow GUID

c# - 在 C# 中按下按钮时进行表单验证的最简单方法?

c# - 在 PDF 上添加签名图像而不使用 iTextSharp 对其进行数字签名

c# - Lucene.Net - 如何检索单个文档

c# - 将 DirectShow 视频窗口附加到 WPF 控件

ffmpeg - 为 WMAsfReader 生成有效的 ASF 文件