如何在AVFoundation屏幕截图中进行下采样?

时间:2016-11-24 02:11:48

标签: avfoundation

我使用三个类在AVFoundation中进行屏幕捕获:

AVCaptureSession  *m_captureSession;   // AVCaptureSession
AVCaptureScreenInput  *m_screenInput;      //AVCaptureScreenInput
AVCaptureVideoDataOutput  *m_videoOutput;      // AVCaptureVideoDataOutput

使用AVCaptureVideoDataOutputSampleBufferDelegate处理每个帧。我有自己的编码模块来处理帧缓冲区。

但原始的Retina显示分辨率对我来说太过分了。所以我想知道在AVFoundation中是否可以进行下采样而不进行任何编码/压缩?

1 个答案:

答案 0 :(得分:1)

m_screenInput.scaleFactor设置为小于1的值,例如0.25。

头文件提供了一个缩放 up 的示例,但缩小也适用:

  

指示缩放从屏幕捕获的视频缓冲区的因素的属性   默认情况下,AVCaptureScreenInput以比例因子从显示器捕获视频缓冲区       1.0(无缩放)。设置此属性以按给定因子缩放缓冲区。例如,       一个320x240的捕获区域,scaleFactor为2.0f,产生640x480的视频缓冲区。