Tag: directshow

如何使用WPF MediaKit或类似程序从使用DES创建的DirectShowfilter图形渲染到WPF控件?

我使用C#和DirectShow.net开发了一个简单的video编辑器。 截至目前,我有一个使用DirectShow编辑服务构建的DirectShowfilter图。 我的应用程序根据需要控制图形,运行,暂停和停止预览窗口中的播放。 在编辑会话中,图表会根据用户添加,删除或修改媒体的请求而更改。 目前我使用包装在WindowsFormsHost中的PictureBox来预览已编辑的video。 但我真的想尝试使用Jeremiah Morril的WPF MediaKit。 (http://wpfmediakit.codeplex.com) 最初的思路(我的暴力方法)是将IGraphBuilder和IPin从我的图形传递到WPF MediaKit中的MediaUriPlayer.cs中的OpenSource()函数,以便添加VMR9渲染器并连接到我现有的图形而不是创建在原始OpenSource()中完成的新图形。 这没有很好地解决,并且在尝试各种组合后我放弃了,并且大部分时间都将“COM对象与其底层RCW分离”错误。 在最初的失败后,我搜索并在http://videorendererelement.codeplex.com上看到了Morrill的类似VideoRendererElement。 似乎将样本抓取器添加到我的DirectShow图形并使用它将样本发送到VideoRendererElement并不太难。 这就像VideoRendererElement中包含的网络摄像头示例。 最后,我想知道是否有可能以相同的方式使用来自WPF MediaKit的任何较新的控件,即将样本从我的图形中的样本抓取器传递到MediaUriElement,DvdPlayerElement或其他控件来自WPF MediaKit集合。 基本上我的问题是:任何人都可以建议使用WPF MediaKit或VideoRenderingElement来实现此示例抓取器方案吗? 或者也许有人可以建议一种更好的方法让我的DES制作filter图形呈现为WPF控件…

是否可以伪造video流作为在Skype,Lync等中可见的虚拟摄像头?

我正在尝试为我的应用程序构建一个关键部分,我需要能够伪造虚拟凸轮video流。 我想伪造成虚拟网络摄像头的video流通过我的PC进行流式传输,在那里我可以从我的网络摄像头或我硬盘的某个地方设置video源。 总而言之,我可以在WPF MediaElement.SourceProperty or Image.Source设置为MediaElement.SourceProperty or Image.Source 。 我见过Vivek的Vcam,这是tmhare.com中的directshowfilter ,看起来它与我正在寻找的东西非常相关。 但我找不到用VS2010编译它的方法,我也不知道如何处理它。 我想我需要更改输入引脚但是如何? 无论如何,总而言之,我正在尝试构建一个需要像ManyCam的小版本一样工作的部分代码。 我正在构建一个WPF应用程序,我从64位PC流式传输源代码。 我也很欣赏filter的一些示例代码,因为我几乎忘记了我所知道的关于C ++的一切,因为DirectShowfilter需要用C ++编写… 谢谢你的一切! 编辑: 我得到的错误; 1 IntelliSense: identifier “REFERENCE_TIME” is undefined c:\program files (x86)\microsoft sdks\windows\v7.0a\include\dvdmedia.h 307 5 // and 6 more 6 IntelliSense: not a class or struct name c:\users\umutto\desktop\projects\src\directshowwizardinstaller\vcam\vcam\filters\filters.h 8 22 Filters 7 IntelliSense: identifier “CUnknown” is undefined […]

C#中的DirectShow推送源filter?

有没有人有幸在C#中开发DirectShow源推送filter? 我们在共享内存中有原始位图和pcm音频,并希望用它来提供Expression Encoder。 出于各种(好的)原因,我们不想使用DirectShow.Net。 另外,我们想避免使用C ++。

强制Mpeg2Demultiplexer使用ffdshow渲染H264数字电视video

我花了很多时间试图让DTVViewer的DirectShow样本工作不幸,但没有成功。 DVBT网络的video格式是H264,我发现IFilterGraph的IntelliConnect行为更喜欢使用Mpeg2video格式。 对于那些想要查看代码的人来说,就是这样。 如果你对DirectShow一无所知我分享了我对这段代码的经验。 最可能的问题在本教程的第5步和第6步中描述。 连接filter的辅助函数代码: public static void UnsafeConnectFilters(IFilterGraph2 graph, IBaseFilter source, IBaseFilter dest, Func sourceMediaPredicate=null, Func destMediaPredicate=null) { foreach(IPin spin in IteratePinsByDirection(source, PinDirection.Output)) { if(IsConnected(spin)) continue; int fetched; AMMediaType[] sourceTypes=GetMajorType(spin, out fetched); if(fetched>0) { Guid sourceType=sourceTypes[0].majorType; try { if(sourceMediaPredicate!=null&&!sourceMediaPredicate(sourceTypes[0])) continue; foreach(IPin pin in IteratePinsByDirection(dest, PinDirection.Input)) { if(IsConnected(pin)) continue; var types=GetMajorType(pin, out fetched); try […]

用于video编辑的.Net sdk,如Windows Movie Marker

我目前正在开发.net应用程序,其中包含一个音频和video文件。 音频文件按照数据库条目拆分为小部分。 那么我们必须将这些文件合并到特定位置的video文件上。我们喜欢windows movie maker 如果有人为此推荐一些基于.net的sdk,那就太好了。

使用DirectShow.NET的音频同步问题

我已经在DirectShow.NET的论坛上开始了一个post,这里是链接http://sofzh.miximages.com/c%23/8030745.png 目前,我正在测试来自DirectShow.NET样本的CapWMV样本的所有更改。 请高度赞赏任何建议,我没有希望:/ 谢谢, 伊兰。 更新: 似乎音频和video之间有500毫秒不等的差距,如果我使用virtualDub将音频延迟500毫秒它看起来很好,怎么能在图中设置它?

在没有regsvr32的情况下从文件创建COM对象

是否可以仅使用dll而不使用regsvr32创建COM对象的实例? 我的主要目标是创建一个directshowfilter的实例并将其插入我的图形中 – 但我不想让regsvr32注册filter。 filter将在一个dll / ax中,将随我的应用程序一起分发,并将出现在我的路径中。 我也会知道CLSID。 所以我基本上只需要一个方法来创建一个类型的实例,同时只有dll / ax和CLSID。 这可能在C#中吗?

如何学习DirectShow编程?

我是.Net C#开发人员。 我想开发关于video/音频编解码器的媒体编程,从源代码捕获媒体等。我将使用DirectShow Lib,但我在MSDN上阅读它,我很困惑,因为我是初学者。 您是否有最好的教程或一些可以让初学者理解为在DirectShow架构中编程的文章? 如果是,请分享。

在Windows Vista / 7中从C#访问网络摄像头的“首选”方法

我发现很多post讨论WIA,Windows Portable Devices API和DirectShow(以及提供示例代码)来访问C#中的网络摄像头,但是当你研究每种方法时,你似乎遇到了这些是“旧”方法的引用。 因此,问题是,当比Windows Vista更早运行时,从C#访问网络摄像头的“首选”方法是什么? 谢谢, 约翰。

如何在C#中获取指向IUnknown的指针

.NET interop将COM对象包装到.NET对象(运行时可调用包装器,RCW)中,这隐藏了通常的接口查询。 为了使用Running Objects Table注册表示filter图形的COM对象,我需要其IUnknown接口的(本机)地址(请参阅如何对DirectShow图形进行反向工程? )。 所以问题是:如何在C#中获取COM对象的IUnknown指针?