C# 使用像c中的XVid这样的视频编解码器#

C# 使用像c中的XVid这样的视频编解码器#,c#,directshow,codec,directshow.net,C#,Directshow,Codec,Directshow.net,我正在尝试开发一个应用程序,它使用DirectShow.Net从网络摄像机中捕获一系列图像,然后通过网络发送给其他客户端。 一切都很好,除了图像太大和压缩方法,如使用GZipStream,JPEG压缩等,并没有更多的帮助减少大小 现在,我想知道如何使用编码解码器,如XVid或任何其他编码解码器,以减少大小。 围绕VisioForge的演示,它认可XVid文件比常规AVI文件小 感谢您的帮助有一些特定的视频压缩算法可以有效地压缩视频,其中最流行的有:M-JPEG、MPEG-4、H.261、H.26

我正在尝试开发一个应用程序,它使用DirectShow.Net从网络摄像机中捕获一系列图像,然后通过网络发送给其他客户端。 一切都很好,除了图像太大和压缩方法,如使用GZipStream,JPEG压缩等,并没有更多的帮助减少大小

现在,我想知道如何使用编码解码器,如XVid或任何其他编码解码器,以减少大小。 围绕VisioForge的演示,它认可XVid文件比常规AVI文件小


感谢您的帮助

有一些特定的视频压缩算法可以有效地压缩视频,其中最流行的有:M-JPEG、MPEG-4、H.261、H.263、H.264、VP8、Theora。在DirectShow中,视频压缩项具有视频压缩过滤器(或编解码器)的形状因子。标准Windows通常不包含很多用于此任务的内容(出于各种原因,请特别提及专利),因此您需要使用第三方或其他可安装的编解码器。幸运的是,编解码器或多或少都有统一的接口,您可以从C#中类似地使用它们

请参见相关问题和有用信息:

请务必查看:

\Samples\Misc\DxWebCam

一个穷人的网络摄像头程序。此应用程序以Win32运行 服务它获取捕获图的输出,将其转换为 JPEG文件流,并通过TCP/IP将其发送到客户端 应用程序

\Samples\Capture\CapWMV

NET示例应用程序,使用WM ASF编写器过滤器创建 wmv文件


使用ffmpeg将视频从一种格式转换为另一种格式。这是出于好奇的链接,您是否从网络摄像头获取原始图像数据?如果是这样,那么您尝试的压缩技术应该会有很大帮助。有损jpeg压缩可以产生约15-20倍的压缩,虽然你可以控制这个因素,当然,但关键是,这是一个严重的大小减少。或者,你能详细说明一下“图像太大”的原因吗?谢谢你的回答。但是,由于我不熟悉Direct show SDK,并且只是尝试在我的项目中使用DirectShow.NET,因此我正在寻找一个如何在inDirectShow.NET中使用编解码器的示例。DirectShow.Net的DxWebCam示例是一个很好的示例,但它仍然不使用任何编解码器(或任何压缩图像的方法)。DirectShow不可用于.Net接口,因此DirectShow.Net是托管代码中接口DirectShow功能的包装器。因此,您必须查看原始MSDN DirectShow文档以了解详细信息。示例有限,DirectShow.NET
DxTuner
示例使用真实的视频压缩编解码器(搜索
FilterCategory.VideoCompressorCategory
)。