【问题标题】:AVCaptureVideoOutput and compressionAVCaptureVideo输出和压缩
【发布时间】:2011-04-14 16:14:26
【问题描述】:

从 iOS 4.x 开始,AVCaptureVideoDataOutput 是否可配置为返回压缩帧?

AVCaptureVideoDataOutput 的文档说:

AVCaptureVideoDataOutput 是一个具体的 您使用的 AVCaptureOutput 的子类, 通过其委托,处理 视频中未压缩的帧 被捕获或访问 压缩帧。

其中一个属性是“videoSettings”,根据 SDK,它是输出的压缩设置,它表示压缩设置键可以在 AVVideoSettings.h 中找到。但它也说只支持CVPixelBufferPixelFormatTypeKey。

基于此,我是否可以假设 AVCaptureVideoDataOutput 返回给 sampleBufferDelegate 方法的所有帧都是未压缩的?有没有办法获得压缩帧?

【问题讨论】:

    标签: iphone avfoundation


    【解决方案1】:

    当前版本的 SDK 仅返回来自相机的未压缩帧。也许将来会改变,但现在就是这样。因此,获得压缩图像的唯一方法就是自己动手。如何做到这一点取决于您的需求。

    如果你需要把它们写在磁盘上,它会很长而且效率很低(电影会更好)。如果您需要通过 OTA 发送压缩图像,可以使用 jpeg 或 png 库。

    【讨论】:

    • 我想通过线路将帧(和伴随的音频)发送到服务器,压缩是必要的,整个操作的速度也是必要的。因此保存到磁盘会导致整体延迟。你还会使用 jpeg 或 png 压缩库或其他东西吗?是否有其他好的选择,例如直接使用可由 sampleBufferDelegate 返回的 CMBlockBuffer?
    • @Steve Card:我不确定您是否真的需要压缩,这取决于您与服务器的连接以及您如何处理上面的图像。我认为除了使用缓冲区代表返回的 Core Media 缓冲区(我不习惯音频)之外,您没有其他选择。这是最快的,可以在一个线程中完成。估计整个流的大小以及您对带宽和计算的需求,您就会知道该怎么做。
    猜你喜欢
    • 2016-03-17
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多