如何在两个iOS设备之间有效传输实时视频(如facetime,skype,fring,tango)

时间:2011-07-21 03:40:20

标签: iphone video-streaming real-time

我知道如何从iOS sdk获取帧。 [如何使用AV Foundation将摄像机中的视频帧捕获为图像(http://developer.apple.com/library/ios/#qa/qa1702/_index.html)] 它是像素,我可以将它传输到JPEG。

我想传输视频的方式是这样的:

一台iOS设备A:

  1. 从通话功能中获取像素或JPEG
  2. -(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection

    1. 使用现有技术编码h.264 - ffmpeg

    2. 使用TS流封装视频

    3. 运行http服务器,等待请求

    4. 其他iOS设备B:

      1. 对A的http请求(使用http而不是rtp / rtsp)
      2. 所以我的问题是,我是否需要使用ffmpeg获取h.264流或者我可以从iOS API获取? 如果我使用ffmpeg编码为h.264(libx264),该怎么做,是否有任何示例代码或指南?

        我已阅读帖子What's the best way of live streaming iphone camera to a media server? 这是一个非常好的讨论,但我想知道细节。

2 个答案:

答案 0 :(得分:0)

ffmpeg的许可证与通过App Store分发的iOS应用程序不兼容。

如果您想传输实时视频并拥有任何可用的帧速率,您将不想使用http或TCP。

答案 1 :(得分:0)

虽然这并没有直接回答您关于使用哪种视频格式的问题,但我建议您查看一些第三方框架,例如ToxBoxQuickBlox。这里有一个使用Parse和OpenTok的精彩教程:

http://www.iphonegamezone.net/ios-tutorial-create-iphone-video-chat-app-using-parse-and-opentok-tokbox/