4

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

因此,如果我想按需从 Android 手机流式传输视频(基于从该对话中收集的信息(从 Android 相机流式传输视频到服务器)),正确启动连接的事件链是什么。

我对此的想法(大致):

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

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

谢谢!

4

1 回答 1

-1

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

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

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

更新

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

使用这样的基于罐头的应用程序消息服务,步骤将是:

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

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

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

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

于 2012-10-10T18:28:51.640 回答