我想知道是否可以创建一个可以连接两个用户然后将网络摄像头流相互发送的客户端(或网络客户端)。 这应该在不使用Red5或任何其他闪存/媒体服务器的情况下发生。 我可以使用什么协议?什么api等...
答案 0 :(得分:2)
作为一种超级简单的方法,请查看UDP教程:
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx
如果UDP最终有点太不可靠(它不保证数据会在发送的地方到达),您也可以尝试TCP连接。
但是,你要遇到的最大问题之一就是试图通过NAT。除非首先建立连接,否则大多数防火墙都会阻止传入数据。您可以使用UPnP解决此问题,但可能需要一些代码:
http://www.codeproject.com/KB/IP/upnpnattraversal.aspx
希望这会有所帮助。使用UDP,您只需要查看大约10行代码来发送和接收数据,而TCP更多,但更可靠。谷歌这两个更多的信息。
从那里它很简单。您从网络摄像头获取数据。将其作为.jpg保存到MemoryStream(System.IO)。然后通过TCP或UDP发送该数据。
答案 1 :(得分:1)
您可能希望直接使用TCP或UDP,并发送/接收原始字节。任何更高级别的协议都只是不必要的开销
答案 2 :(得分:1)
我有一件事要补充,为了获得两个客户端,两个客户端都在各自的防火墙后面使用UDP互相通信,你需要进行NAT遍历。这就是Skype的工作原理。
答案 3 :(得分:1)
Adobe Stratus会让你这样做。