代码之家  ›  专栏  ›  技术社区  ›  dierre

网络摄像头流媒体对等

  •  3
  • dierre  · 技术社区  · 14 年前

    我想知道是否可以创建一个可以连接两个用户的客户机(或Web客户机),然后将他们的网络摄像机流发送给彼此。 这应该在不使用Red5或任何其他Flash/Media服务器的情况下发生。 我可以使用什么协议?什么API等…

    4 回复  |  直到 14 年前
        1
  •  2
  •   Timothy Baldridge    14 年前

    作为一个非常简单的方法,请看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则要多一点,但更可靠。谷歌搜索这两个网站以获取更多信息。

    从那里开始,这很简单。你可以从网络摄像机获取数据。将其保存到memorystream(system.io)中,格式为.jpg。然后通过TCP或UDP发送数据。

        2
  •  1
  •   Peter    14 年前

    您可能希望直接使用TCP或UDP,并发送/接收原始字节。任何更高级别的协议都只是不必要的开销。

        3
  •  1
  •   unclepaul84    14 年前

    我还有一件事要补充,为了让两个客户机在各自的防火墙后面使用UDP进行对话,您需要进行NAT遍历。这就是Skype的工作原理。

    STUN Article

        4
  •  1
  •   user478419    14 年前

    AdobeStratus会让你这么做的。