繁体   English   中英

从iPhone到另一台设备(浏览器或iPhone)的实时音频/视频流

[英]Realtime Audio/Video Streaming FROM iPhone to another device (Browser, or iPhone)

我想从iPhone获得实时视频到另一台设备(桌面浏览器或其他iPhone,例如点对点)。

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

我能想到的方法有四种......

  1. 在iPhone上捕获帧,将帧发送到mediaserver,让mediaserver使用主机webserver发布实时视频。

  2. 在iPhone上捕获帧,转换为图像,发送到httpserver,在浏览器中使用javascript / AJAX尽快从服务器重新加载图像。

  3. 在iPhone上运行httpServer,在iPhone上捕获1秒持续时间的电影,在iPhone上创建M3U8文件,让另一个用户直接连接到iPhone上的httpServer以进行liveStreaming。

  4. 在iPhone上捕获1秒持续时间的电影,在iPhone上创建M3U8文件,发送到httpServer,让其他用户连接到http服务器以进行liveStreaming。 这是一个很好的答案 ,有没有人得到它的工作?

有更好,更有效的选择吗? 从iPhone上获取数据的最快方法是什么? 是ASIHTTPRequest吗?

感谢大家。

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

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

“以块的形式记录和处理(将增加延迟等于块的长度,并在启动和停止会话时在每个块之间减少大约1/4秒的视频)。”

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

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

  • 我们决定使用OpenTok和管理,以很快实现一个iPad和使用网站之间的证明了概念式的视频聊天OpenTok入门指南 还有一个OpenTokPhoneGap插件 ,这对我们来说非常方便,因为我们没有使用原生iOS。

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

  • iDoubs也出现了,但我们再次认为OpenTok是最有希望满足我们需求的,因此没有更详细地看待iDoubs。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM