当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何使用C#传输网络摄像头视频?》经验,为你挑选了2个好方法。

我想创建一个简单的服务器应用程序,人们可以使用基于浏览器的客户端(我将在稍后制作)连接来观看流式视频.我想使用C#.

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



1> CMPalmer..:

如果你想要一个"盒子中的捕获/流光"组件,那里有几个像其他人提到的那样.

如果你想要对它进行低级控制,你需要使用DirectShow作为thealliedhacker指出.在C#中使用DirectShow的最佳方法是通过DirectShow.Net库 - 它包装了所有DirectShow COM API,并为您提供了许多有用的快捷方式功能.

除了捕获和流媒体,您还可以进行录制,音频和视频格式转换,音频和视频实时过滤器以及大量内容.

微软声称DirectShow正在消失,但他们尚未发布一个新的库或API来完成DirectShow提供的所有功能.我怀疑他们发布的许多最新内容仍然是DirectShow.由于它在微软的地位,除了MSDN之外,它上面没有很多书籍或参考书,你可以在论坛上找到它们.去年当我们开始使用它的项目时,关于这个主题的最好的书--Microsoft DirectShow编程 - 已经绝版,并且用过的副本大约需要350美元!


我知道我正在回答一个老问题,但是在为这本书掏钱之前阅读了亚马逊的评论.这和每个人都声称的一样可怕.购买GraphEditPlus并查看它生成的代码对于简单任务来说将是更好的价值.
那是哪本书?
有没有关于这个主题的新解决方案,或者DirectShow现在仍然是技术的状态?

2> Excel Kobaya..:

通常的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应用压缩编解码器来减少延迟,然后您可以获取流并传输它.您可以考虑使用多播来减少网络负载.


你不能真正使用P/Invoke导入DirectShow的C++ API,因为它是基于COM的.您可以使用名为DirectShow.Net的DirectShow包装器.
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有