mp4伪流实现服务器& iOS方面

时间:2017-02-08 10:25:58

标签: ios video ffmpeg video-streaming mp4

我正在尝试学习如何为MP4文件进行伪流式传输。我想不出一个好方法,但我发现一个很好的示例应用程序有类似的实现(除了我不明白它是如何做到的)

以下是该方案:

Alice可以在应用中向Bob发送视频

鲍勃可以立即打开它,从一开始就看到爱丽丝的视频,而爱丽丝还在录制它

另外,Bob可以选择在Alice完成录制后观看视频。但是鲍勃应该能够立即观看视频而无需等待太多时间,即使视频的整体尺寸很大。

因此,我的预感是,它正在为mp4使用某种伪流。

以下是Alice手机在使用示例应用程序时所做的请求的屏幕截图:

enter image description here

屏幕截图显示,示例应用程序每隔0.x秒向其服务器发出一系列PATCH请求。最后,最后一个请求将使PATCH更新此MP4的moov信息。

因此,我的问题是,这是如何实施的(任何受过教育的猜测都会受到欢迎)?或者是否有任何类型的现有协议/ iOS编码器,我不知道这样做了吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

阅读问题的文本而不是标题,我认为有很多可能的步骤:

  • Alice正在录制视频
  • 她正在将视频结束为流媒体服务器
  • Alice通知Bob该流可用并在Bob可以访问的流服务器上发送URL以检索流
  • Bob的视频客户端请求流,使用范围请求按块下载块

让中间的服务器像这样是任何流可能有多个客户端观看它的典型方法。

更复杂的流媒体服务器也可能支持以不同的比特率传输流,甚至可以使用不同的编解码器进行编码,以实现最大的设备覆盖率。

您可以查看商业(例如https://www.wowza.com)和开源流媒体服务器(例如https://gstreamer.freedesktop.org)以获取有关流媒体服务器的更多信息并查看一些示例。