IP摄像机如何通过家庭网络传输视频

时间:2018-01-22 06:20:14

标签: ffmpeg video-streaming streaming

我的问题是IP摄像机如何将数据从家庭网络流式传输到公共网络。以下是我认为可以做到的事情:

  1. 如果我要使用树莓派相机模块设置这样的东西。我可能在我的接入点/ Wifi路由器上使用端口转发。然而,显然,这不是一个可扩展的解决方案,而且必须有现成的IP摄像机必须做的其他事情。

  2. 一个选项是将视频(使用ffmpeg)流式传输到删除服务器,然后该远程服务器可能再次“重新”流式传输? - 如果确实如此,它是如何完成的?

  3. 我非常强烈地了解后端架构,并开发了相当复杂的内容,因此我确实需要一个相当技术性的答案。

1 个答案:

答案 0 :(得分:0)

使用WebRTC,原因如下:

  • 点对点连接。如果源可以独立完成,请避免为流媒体服务器付费而只是为了转发给几个人。
  • NAT Traversal。在大多数情况下(约占87%的时间),UPnP可能会打洞,或者其中一个同伴不能防火墙。因此,可以进行直接连接。如果它不能,TURN服务器可以代理对等体之间的数据。所有这些连接协商都是ICE的一部分,由WebRTC客户端为您处理。
  • Codec Negotiation。无需担心哪个客户端支持哪些内容。 WebRTC堆栈为您协商所有这些,并且还规定了所有WebRTC客户端支持的一些常见编解码器......所以您永远不应该有一些情况,其中至少某些编解码器的配置文件不起作用。
  • 低延迟。 WebRTC专为视频会议而设计,因此优先考虑延迟而非质量和一般可靠性。也就是说,如果你失去了连接,它会在当前时间重新选择,而不是试图回过头来弄清楚10秒前发生的事情。对于您的延迟目标,这是一件好事。
  • 浏览器支持。 WebRTC拥有广泛的浏览器支持,所有主流浏览器以及许多其他应用程序库都支持它。

所有优秀的消费者IP摄像机都支持WebRTC。从基础架构的角度来看,他们需要做的就是托管一个信令服务器(允许对等端最初通信并协商自己的连接),以及一个不能直接通信的对等体的TURN服务器。这很便宜。信令服务器几乎不需要负载和带宽。大多数情况下不需要TURN服务器。此外,还有许多提供商提供现成的WebRTC堆栈,以及客户端库。

有些IP摄像机不这样做。有些人会让用户弄清楚IP地址是什么,在浏览器或媒体播放器中点击它,然后流式传输MJPEG等。