繁体   English   中英

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

[英]What Techniques Are Best To Live Stream iPhone Video Camera Data To a Computer?

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

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

  1. 您可以使用AVFoundation获取“实时”视频摄像机数据而无需保存到文件,但它是未压缩的数据,因此我必须自己处理压缩。
  2. 没有内置的AVCaptureOutput支持发送到网络位置,我必须自己解决这个问题。

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

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

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

您可以使用AVCaptureVideoDataOutputsampleBufferDelegate来捕获原始压缩帧,然后您只需要通过网络传输它们。 AVFoundation提供了一个API,用于将帧编码为本地视频文件,但不提供任何流式传输到网络。 最好的办法是找到一个通过网络传输原始帧的库。 我从ffmpeg开始; 我相信libavformat支持RTSP,请查看ffserver代码。

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

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

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

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

暂无
暂无

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

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