【问题标题】:initiating a rtsp connection over cellular with android使用 android 通过蜂窝网络发起 rtsp 连接
【发布时间】:2011-12-29 23:24:06
【问题描述】:

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

所以,如果我想按需从 Android 手机流式传输视频(基于从这次对话 (Streaming video from Android camera to server) 收集的信息),正确启动连接的事件链是什么。

我对此的想法(大致):

  1. Android 手机上的应用程序启动并保持打开某种与媒体服务器(wowza 之类的)的连接。
  2. 在某些时候,当服务器需要来自手机的视频时,它会使用打开的连接来请求视频流。
  3. Android 手机推送 rtsp 流到服务器。

这是否正确,如果正确,我应该使用哪种类型的连接作为永久控制连接。另外,是否可以推送 rtsp 还是我必须做其他事情?

谢谢!

【问题讨论】:

  • 我认为使用 SDP 宣布可能会有所帮助...但我不确定这是否仅有助于发现设备或帮助处理实际推送连接。
  • bit.ly/wEXwJk IP 网络摄像头是我想要实现的一个很好的例子,包括启动与电话的连接的问题。您必须通过手机发起连接。

标签: android video rtsp 3g tunneling


【解决方案1】:

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

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

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

更新

Google GCM 现在已被 Google Firebase Cloud Messaging 取代:

使用这样的基于罐头的应用消息服务,步骤如下:

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

注意:下面有一条评论说明这​​种方法如何不允许从服务器到 Android 手机的传入连接。

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

这是首选方法的原因有几个,其中一个关键原因是支持将在大多数常见设备、浏览器、操作系统等上播放的高质量流媒体服务需要将视频转码为多种比特率,甚至在某些情况下编码,并以适当的流打包格式打包和提供服务。在移动设备上执行所有这些操作会占用大量计算和存储空间。

【讨论】:

  • 回答了android的问题,我认为它可以用作其他手机的基础。谢谢!
  • @michael,我不太明白它如何回答 android 的问题。所以GCM允许从服务器向android发送消息,但是它如何允许从服务器到android的传入连接?
  • @nissemand derp,你是对的。我不知道我为什么给这个支票。我还没有重新审视这个。我怀疑 websockets 中的策略可以转移到这里。
  • @michael,该死,我希望 GCM 能成为解决方案 :) 到目前为止,我还没有弄清楚 GCM 将如何帮助连接。
  • @nissemand,我开始(然后休息一下,现在又开始了)考虑使用第三方来促进握手。这将是一个通用的客户端到客户端系统,可能类似于 bittorrent 握手。电话之所以具有挑战性,是因为电信公司在其用户单位防火墙政策中的限制性很强。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 2011-07-07
  • 2014-08-31
  • 2013-02-05
  • 1970-01-01
相关资源
最近更新 更多