Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#流式传输网络摄像头视频?_C#_Video_Streaming_Webcam - Fatal编程技术网

如何使用C#流式传输网络摄像头视频?

如何使用C#流式传输网络摄像头视频?,c#,video,streaming,webcam,C#,Video,Streaming,Webcam,我想制作一个简单的服务器应用程序,人们可以使用基于浏览器的客户端(稍后我将制作)连接到该应用程序上观看流媒体视频。我想用C 我需要什么来通过网络摄像头捕获视频或快速图像并通过网络发送它们?我在我们的项目中使用过。它将以MMS/ASF流的形式输出,可由媒体播放器打开。然后,您可以将媒体播放器嵌入到您的网页中 如果您不需要太多控制,或者如果您想在不编写代码的情况下尝试VideoCapX,请尝试,他们会在幕后使用VideoCapX。这方面常用的API是DirectShow 可以使用p/Unjk导入C+

我想制作一个简单的服务器应用程序,人们可以使用基于浏览器的客户端(稍后我将制作)连接到该应用程序上观看流媒体视频。我想用C

我需要什么来通过网络摄像头捕获视频或快速图像并通过网络发送它们?

我在我们的项目中使用过。它将以MMS/ASF流的形式输出,可由媒体播放器打开。然后,您可以将媒体播放器嵌入到您的网页中


如果您不需要太多控制,或者如果您想在不编写代码的情况下尝试VideoCapX,请尝试,他们会在幕后使用VideoCapX。

这方面常用的API是DirectShow

可以使用p/Unjk导入C++ API,但我认为已经有一些项目已经完成了。p>

要获得流部分,您可能需要使用DirectShow应用压缩编解码器以减少延迟,然后您可以获得流并传输它。你可以考虑使用多播来减少网络负载。

如果你想要一个“捕获/流线型”组件,有几个在其他地方提到过。

正如AlliedHacker指出的那样,如果你想深入到底层控制这一切,你需要使用DirectShow。在C#中使用DirectShow的最佳方法是通过库—它包装了所有DirectShow COM API,并为您提供了许多有用的快捷方式函数

除了捕获和流式传输,您还可以进行录制、音频和视频格式转换、音频和视频直播过滤器,以及大量的工作


微软声称DirectShow即将退出,但他们还没有发布一个新的库或API来实现DirectShow提供的所有功能。我怀疑他们发布的许多最新的东西仍然是DirectShow的幕后黑手。由于它在微软的地位,除了MSDN和你在论坛上可以找到的内容外,它没有太多的书籍或参考资料。去年,当我们开始一个使用它的项目时,关于这个主题的最好的书——已经绝版了,一本用过的书要350美元左右

你可以用。VideoLAN将用作服务器(或者您可以将自己的C#应用程序包装在其周围以获得更多控制)。还有一些用于查看器的.NET包装器,您可以使用它们,从而将它们嵌入到您的C#客户端中

如果您想在web浏览器中录制视频,我认为您唯一的选择是Flash。我们希望做同样的事情。我们主要也是一家.NET公司,我看不到使用.NET从浏览器中捕获网络摄像头的方法。如果您愿意使用桌面应用程序,这里提到的所有其他解决方案可能都会非常有效。另一种将图像从网络摄像头传输到浏览器的方法是通过mjpeg。这只是一系列jpeg图像,大多数现代浏览器都支持将其作为标记的一部分。下面是一个用c#编写的示例服务器:


<>这比局域网好,但在互联网上不如MJPEG那样好,因为其他的视频编解码器(H264,VP8等)

你不能真正使用P/Unjk来导入DirectShow的C++ API,因为它是基于COM的。你可以使用名为DirectShow.Net的DirectShow包装器。我知道我在回答一个老问题,但在花钱买那本书之前,先阅读亚马逊的评论。这一切都像大家所说的那样可怕。购买GrapherDitPlus并查看它生成的代码对于简单的任务来说是一个更好的价值。在这个主题上有没有新的解决方案,或者DirectShow现在仍然是技术的最新状态?对于任何希望在C#中从网络摄像头捕获图像的人,请尝试这篇文章。也许这会有帮助:--