使用 RTSP 流式传输视频

Streaming video with RTSP

我有一个 iOS 应用程序可以为流式视频创建一个 RTSP url,然后我可以用那个 URL 在 VLC 中播放视频。

当我和我的电脑处于同一个 wifi 网络时 运行 VLC 我的 IP 地址是:rtsp://192.168.0.134/

而且 url 可以很好地播放视频流。

当我切换wifi网络时,我的URL变为rtsp://172.20.10.2/

但是我的视频现在无法播放,因为我使用的是不同的 wifi 网络。

为什么当 phone 和 VLC 在同一 wifi 网络上时视频流,但当 phone 在不同的 wifi 网络上时视频流不工作?

许多 WiFi 网络仅充当接入点,其他接入点之间没有合作 - 不像企业 Wifi 或机场 wifi,其中各个接入点都通过控制器合作,您可以漫游。

鉴于您在两个不同的 WiFi 网络上,每个网络都有自己的专用寻址范围(您可以从 IP 地址中看出这一点),那么您的上游网络将需要一种方法将地址从一个网络映射到另一个网络.

如果两个 WiFi 网络都是您自己的,那么解决此问题的通常方法是让 Wifi 网络向上游网络询问它们的地址以及它们应该提供的地址范围。

更新

假设您想从 iOS 设备从任何网络流式传输到您的播放器,通常的方法是通过流式传输服务器。

流量为:

iOS device ---> Streaming Server ---> Device with Player

iOS 设备需要一个 URL 或流媒体服务器的 IP 地址,如果您希望它跨网络工作,则该地址是公开可用的。 iOS 设备然后将流发送到服务器,服务器可能会或可能不会重新打包它,也可能存储它以便以后可用或使用 'time shift'。播放器连接到流媒体服务器以访问流并从那里播放。

这里有一个使用普通网络播放器和普通流媒体引擎的示例,这可能会帮助您指明正确的方向并解释一些常见步骤: