代码之家  ›  专栏  ›  技术社区  ›  Hunter

将iPhone摄像机数据实时传输到计算机上的最佳技术是什么?

  •  29
  • Hunter  · 技术社区  · 14 年前

    我想把iPhone摄像头上的视频流到Mac上运行的应用程序上。认为sorta喜欢视频聊天,但只有一种方式,从设备到接收器应用程序(它不是视频聊天)。

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

    1. 您可以使用AVFoundation获取“实时”摄像机数据,而无需保存到文件中,但它是未压缩的数据,因此我必须自己处理压缩。

    我是对的还是我已经偏离了轨道?

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

    2 回复  |  直到 14 年前
        1
  •  20
  •   Greg Buehler    14 年前

    这在很大程度上取决于你的目标分辨率和你的目标帧速率性能。

    从抽象的角度来看,我可能有一个捕获线程直接从AVCaptureOutput填充缓冲区,还有一个通信线程将缓冲区(如果需要,可以填充)发送到以前指定的主机

    完成初始数据传输后,我将努力以最低分辨率达到15fps,并一直工作到缓冲区溢出,然后通信线程才能传输,这将需要平衡图像分辨率、缓冲区大小(可能取决于GSM,并且很快会是CDMA帧大小),最后是传输缓冲区的最大速率。

        2
  •  24
  •   Ravi Gautam    9 年前

    你可以用 AVCaptureVideoDataOutput sampleBufferDelegate 要捕获原始压缩帧,只需通过网络传输它们。 AVFoundation

    注意,您应该配置 AVCaptureVideoDataOutput 给你压缩的帧,这样你就不用压缩原始的视频帧而没有硬件编码的好处。