在没有端口转发的情况下通过互联网将 Raspberry Pi 相机流式传输到 Android/iOS?

物联网 联网 监视摄像头
2021-06-09 10:56:10

问题: 我想通过连接到 Raspberry pi 3 b+ 的相机进行直播,该相机已连接到家庭 WiFi。流媒体应该通过互联网。这样任何像 Android/iOS 这样的客户端都可以从任何地方流式传输它。这是一个安全摄像头。可以有多个树莓派连接到家庭 WiFi。

我尝试过的:

1. 原始 H.264

我可以通过生成 Android 应用程序可以呈现的原始 H.264 来实现相同的效果。它是完美的。但这需要全球 IP 和端口才能通过互联网进行流式传输。这种方法的问题 - 我无法将全局 IP 分配给多个树莓派。它需要端口转发。这在安全摄像头的自动设置中是不可接受的。

2.另一种方式

也尝试过这种方式,但本教程展示了一种本地流式传输的方法。

需要什么?通过互联网将 Raspberry Pi 相机流式传输到任何设备(至少是 Android/iOS)的首选方式是什么?

YI Home Cameras 使用的方法有哪些?

2个回答

如果您不打算允许任何形式的端口转发,您唯一的选择就是让外部服务器充当中继。

摄像机将连接到互联网上的已知位置并将视频流式传输到该位置。然后,移动应用程序还将连接到服务器并从那里流式传输数据。

此解决方案还意味着移动应用程序不需要知道摄像头的 IP 地址,该地址可能会随着时间而改变。

这就是几乎所有商用物联网“安全”摄像头的工作原理。

IPv4 地址:如果 Pi 被分配了一个 RFC 1918 不可路由的 IPv4 地址——正如你所指出的那样——你必须使用 DNAT,将 Pi 的本地 IP 映射到路由器上的公共 IP。您将在路由器中配置 DNAT。然后,当观众尝试访问摄像机时,路由器会将流量转发到内部 IP 地址上的 Pi。简而言之,对摄像机的访问必须从路由器代理到摄像机——无法从 Internet 直接连接到它。

IPv6 地址: . 但是,如果您可以为 Pi 分配全球单播 IPv6 地址,则不需要 NAT'ing:观众可以直接点击相机。请注意,访问者本身需要 IPv6 连接才能使用您的相机。

IPv4 和 IPv6 寻址方法当然都需要通过名称访问 DNS 中的条目。