2011-04-19 116 views
15

我希望从iPhone获得实时视频到其他设备(桌面浏览器或其他iPhone,例如点对点) 。从iPhone到另一个设备(浏览器或iPhone)的实时音频/视频流式传输

注意:这不是一对多的,目前只是一对一。音频可以是流媒体的一部分,也可以通过iphone上的电话呼叫。

有四种方法我能想到的...在iPhone上

  1. 捕获帧,发送 帧媒体服务器,具有 媒体服务器使用托管网络服务器发布实时视频 。在iPhone上

  2. 捕获帧,转换成 图像,发送到的HttpServer,有 的JavaScript/AJAX在浏览器从服务器尽可能快地 可能重装 图像。

  3. 在iPhone上运行的HttpServer,捕捉 iPhone持续1秒的电影,在iPhone上创建M3U8文件,有其他 用户直接在iPhone连接到的HttpServer为 即时串流。

  4. 用于捕捉 iPhone持续1秒的电影,在iPhone上创建M3U8文件, 发送到的HttpServer,有其他 用户连接到的HttpServer 的即时串流。 This is a good answer,有人得到它的工作?

是否有更好,更高效的选择? 什么是从iPhone获取数据的最快方式?它是ASIHTTPRequest吗?

谢谢大家。

+0

你是否实现了this.please帮助我 – Ramz 2012-08-07 06:16:56

回答

14

发送原始帧或单张图片对于您来说永远无法正常工作(因为数据量和帧数)。您也不能合理地为电话提供任何服务(WWAN网络具有各种防火墙)。您需要对视频进行编码,并将其流式传输到服务器,很可能是通过标准流式格式(RTSP,RTMP)。 iPhone> = 3GS上有一个H.264编码器芯片。问题是它不是面向流的。也就是说,它输出最后解析视频所需的元数据。这给你留下了几个选择。

  1. 获取原始数据并使用FFmpeg在手机上进行编码(将使用大量的CPU和电池)。
  2. 为H.264/AAC输出编写您自己的解析器(非常困难)
  3. 以块形式记录和处理(会增加等于块的长度的延迟,并在每个块之间放下大约1/4秒的视频大块,当你开始和停止会议)。
+1

我花了一大堆时间,并提出了相同的3个选项。很高兴看到我不疯狂(我和#3一起去了)。 – jab 2012-02-14 07:44:15

+4

任何人都可以在这里给我示例代码或指南来实现这个? – Ramz 2012-08-07 06:15:28

+0

http://stackoverflow.com/questions/5062266/uploading-live-streaming-video-from-iphone/5601041 – Luda 2013-09-18 04:24:23

2

我们有类似的需求;更具体地说,我们希望在iOS设备和Web UI之间实现流媒体视频&音频。目标是在使用这些平台的参与者之间进行高质量的视频讨论。我们做了关于如何实现这一一些研究:

  • 我们决定使用OpenTok和管理,以很快实现一个iPad和使用OpenTok getting started guide网站之间的证明了概念式的视频聊天。还有一个PhoneGap plugin for OpenTok,这对我们来说很方便,因为我们不是在使用本机iOS。

  • Liblinphone也似乎是一个潜在的解决方案,但我们没有进一步调查。

  • iDoubs也出现了,但是我们再一次觉得OpenTok是我们需要的最有希望的一个,因此没有更详细地查看iDoubs。

5

“以块的形式记录和处理(将增加延迟等于块的长度和下降每个块之间的1/4左右秒的视频,你启动和停止会话)。”

我刚刚写了这样的代码,但很有可能通过重叠两个AVAssetWriters来消除这样的差距。由于它使用硬件编码器,我强烈推荐这种方法。

+6

你能分享一些代码吗? – Anastasia 2013-02-11 09:24:12