使用android启动与蜂窝网络的rtsp连接

时间:2011-12-29 23:24:06

标签: android video rtsp 3g tunneling

大多数SIM帐户都是公共动态的。大多数(如果不是所有)蜂窝提供商都不允许传入连接到公共动态IP地址。 (无论如何,3g,也许不是4g / LTE) 连接问题不是动态ips,而是阻塞传入端口。

所以,如果我想根据需要从Android手机流式传输视频(基于此对话中收集的信息(Streaming video from Android camera to server)),那么正确引导连接的事件链是什么。

我对此的看法(大致):

    Android手机上的
  1. app启动并保持与媒体服务器(wowza或其他东西)的某种连接。
  2. 当服务器想要来自手机的视频时,它会使用开放式连接来请求视频流。
  3. Android手机将rtsp流推送到服务器。
  4. 这是否正确,如果是,我应该使用什么类型的连接作为永久控制连接。此外,是否可以推送rtsp或者我还需要做其他事情吗?

    谢谢!

1 个答案:

答案 0 :(得分:-1)

我知道这是一个老问题,但如果其他人正在寻找类似的东西,现在可以使用以下内容:

http://developer.android.com/guide/google/gcm/index.html

这实际上允许将消息从服​​务器发送到Android设备上的应用程序(它取代了做类似事情的C2DM)。

<强>更新

Google GCM现在已被Google Firebase云消息传递取代:

使用像这样的基于应用程序的消息传递服务,步骤如下:

  • 向您的应用添加邮件订阅服务(例如Firebase)
  • 应用程序在启动时向云消息传递服务注册
  • 当服务器想要来自手机的视频时(如上面的问题所述),服务器会向应用发送消息
  • 该应用程序打开与流媒体服务器的连接,并开始将视频流式传输到服务器。

注意:下面有关于此方法如何不允许从服务器到Android手机的传入连接的评论。

实际上,这并不是手机流媒体的工作方式。手机实际上与流媒体服务器建立了“传出”连接,然后将视频流传输到。其他想要观看视频的设备然后在此处流式传输。

为什么这是首选方法有几个原因,其中一个关键因素是支持高质量流媒体服务,这些服务将在大多数常见设备,浏览器,操作系统等上播放,需要将视频转码为多个比特率,甚至在某些情况下编码,以适当的流媒体包装格式包装和服务。在移动设备上完成所有这些工作将非常耗费计算和存储。