来自不同iPad的不同录制文件大小

Chr*_*ris 9 avfoundation

我有两个iPad,特别是:A1489和A1566.

如果我录制天花板的视频1分钟,A1489的文件大小几乎总是A1566的一半.

结果视频中唯一的不同似乎是A1566具有更高的数据速率,我不明白为什么会这样?

我正在使用ACFoundation和AVCaptureSessionPreset1280x720.

任何人都可以阐明为何存在这种差异?

附加信息:两者的帧速率为每秒30帧.

谢谢

克里斯

Lau*_* L. 3

Ipad A1489 是Apple iPad mini 2(Retina/2nd Gen),A1566 是Apple iPad Air 2

Ipad mini 2 配备 5 兆像素“iSight”摄像头,而 Ipad Air 2 配备 8 兆像素“iSight”摄像头。

iPad Air 2 采用了 8MP iSight 摄像头,与去年的 iPad Air 及其 5MP 射手相比,其可处理像素增加了 60%。 阅读更多

它是相同的 iSight 相机,原理适用于从 5mp 到 8mp 的过渡。

Air2 似乎确实能够捕获比 mini 2 双倍的 fps(120)。

关于视频文件大小如何随 fps 增加的问题,有一些有趣的答案。

但这并不重要,因为两者都使用 1280x720 的 30fps。

重要的是比特率。

比特率直接反映相机中的帧速率和分辨率设置。文件大小由比特率决定。(文件大小是比特率乘以长度)。

使用 AVCaptureSession 对象

您可以使用 sessionPreset 属性来自定义输出的质量级别、比特率。最常见的捕获配置可通过会话预设获得; 来自 AvcCaptureSession 文档

有关 sessionPreset 的可能值,请参阅视频输入预设。默认值AVCaptureSessionPresetHigh

指定适合高质量视频和音频输出的捕获设置。

您使用了 AVCaptureSessionPreset1280x720,它指定适合 720p 质量(1280x720 像素)视频输出的捕获设置。

它们的值因设备而异。

但 AVCaptureSession 只是协调从 AV 输入设备到输出的数据流的对象。

到目前为止,您已经获得了未压缩的帧。

您可以使用 AVCaptureVideoDataOutput 对象来处理正在捕获的视频中的未压缩帧。您通常配置输出的几个方面。

您提到了 30fps,所以我假设您通过在此处设置来限制帧速率minFrameDuration。您可以使用 videoSettings 属性指定像素格式。此时有许多属性可以更改或默认。