首页 文章

什么技术最适合将iPhone视频摄像机数据直播到计算机?

提问于
浏览
29

我想将视频从iPhone相机流式传输到Mac上运行的应用程序 . 想想视频聊天,但只有一种方式,从设备到接收器应用程序(而不是视频聊天) .

到目前为止我的基本理解:

  • 您可以使用AVFoundation获取'live'视频摄像机数据而无需保存到文件但它是未压缩的数据,因此我必须自己处理压缩 .

  • 有's no built in AVCaptureOutput support for sending to a network location, I' d必须自己解决这个问题 .

我对上述情况是对的还是我已经偏离了轨道?

Apple Tech Q&A 1702提供了一些关于将单个帧保存为图像的信息 - 这是最好的解决方法吗?只需保存30fps,然后像ffmpeg那样压缩它们?

有很多关于iPhone直播的讨论,但关于发送实时视频的人的信息要少得多 . 我希望有一些广泛的笔触让我指向正确的方向 .

2 回答

  • 19

    这很大程度上取决于您的目标分辨率以及您定位的帧速率性能类型 .

    从抽象的角度来看,我可能有一个捕获线程直接从AVCaptureOutput填充缓冲区,以及一个通信线程,每隔x毫秒发送并重新调整缓冲区(如果需要,填充)到先前指定的主机 .

    完成初始数据传输后,我将以最低分辨率实现15fps,然后继续工作直到缓冲区溢出,然后通信线程才能传输,这需要 balancer 图像分辨率,缓冲区大小(可能依赖于GSM,很快为CDMA帧大小),最后是传输该缓冲区的最大速率 .

  • 24

    您可以使用 AVCaptureVideoDataOutputsampleBufferDelegate 来捕获原始压缩帧,然后您只需要通过网络传输它们 . AVFoundation 提供了一个API来将帧编码为本地视频文件,但不是以ffmpeg开头的 . 我相信libavformat支持RTSP,请查看ffserver代码 .

    请注意,您应该配置 AVCaptureVideoDataOutput 以为您提供压缩帧,这样您就可以避免在没有硬件编码的情况下压缩原始视频帧 .

相关问题