我想创建一个简单的服务器应用程序,人们可以使用基于浏览器的客户端(我将在稍后制作)连接来观看流式视频.我想使用C#.
通过网络摄像头捕获视频或快速图像并通过网络发送它需要什么?
如果你想要一个"盒子中的捕获/流光"组件,那里有几个像其他人提到的那样.
如果你想要对它进行低级控制,你需要使用DirectShow作为thealliedhacker指出.在C#中使用DirectShow的最佳方法是通过DirectShow.Net库 - 它包装了所有DirectShow COM API,并为您提供了许多有用的快捷方式功能.
除了捕获和流媒体,您还可以进行录制,音频和视频格式转换,音频和视频实时过滤器以及大量内容.
微软声称DirectShow正在消失,但他们尚未发布一个新的库或API来完成DirectShow提供的所有功能.我怀疑他们发布的许多最新内容仍然是DirectShow.由于它在微软的地位,除了MSDN之外,它上面没有很多书籍或参考书,你可以在论坛上找到它们.去年当我们开始使用它的项目时,关于这个主题的最好的书--Microsoft DirectShow编程 - 已经绝版,并且用过的副本大约需要350美元!
通常的API是DirectShow.
您可以使用P/Invoke导入C++ API,但我认为已经有一些项目已经完成了.
http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/
http://www.codeproject.com/KB/directx/DirXVidStrm.aspx
要获得流式传输部分,您可能希望使用DirectShow应用压缩编解码器来减少延迟,然后您可以获取流并传输它.您可以考虑使用多播来减少网络负载.