是否可以在C#中编写DirectShow过滤器(不在c \ c ++中)?
我的意思是不仅要创建源过滤器,还要创建渲染器或压缩器等?
答案 0 :(得分:3)
是的。您可以使用DirectShow.net Lib来缩小差距。
他们甚至有一个样本,如果你向下看页面,你会看到GSSF样本描述:
GSSF - 通用样本源 过滤器 - 实现源的一种方法 过滤c#。如果你有样品(for 来自位图的示例视频帧 你想用作的文件) 图中的源代码,此过滤器将 告诉你如何。
答案 1 :(得分:3)
你可以,但除非你非常了解DirectShow和.NET本地互操作,否则它可能很难。即使这样,它也可能有点上坡。
以下是一个完成示例:http://www.sichbo.ca/Free_Code/100_C_Sharp_directshow_filters
答案 2 :(得分:3)
Maxim Kartavenkov在codeproject.com上写了很多有用的DirectShow文章。看一下这篇文章:Pure .NET DirectShow Filters in C#。它不仅包含源滤波器,还包含变换滤波器,渲染器,编码器等。
他的文章中的代码不是基于directshow.net库,这是一件好事。
答案 3 :(得分:1)
我认为在C#中实现一个完整的DirectShow-Filter是个坏主意。 C ++ DirectShowBaseClasses非常有用。重新实施这些将导致完全混乱。
如果你想实现解码器/编码器或某些音频/视频效果,那么你可以创建一个DMO(可能在C#中,但C ++会更好)。如果您需要Source-Filter,请选择Ball-Sample并进行修改。如果您需要其他类型的过滤器,请查看示例(http://msdn.microsoft.com/en-us/library/windows/desktop/dd375468(v=vs.85).aspx)并修改一个
答案 4 :(得分:0)
基本上,您可以将.NET类导出为COM。要使用DShow接口,只需链接到.NET项目中的CM对象即可。无论如何,在没有像BaseClasses for C ++这样的库的支持的情况下在.NET中编写DShow过滤器可能具有挑战性。