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

时间:2015-08-11 12:12:27

标签: avfoundation

我有两台iPad,特别是:A1489& A1566。

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

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

我在AVCaptureSessionPreset1280x720上使用ACFoundation。

任何人都可以解释为什么会出现这种差异?

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

由于

克里斯

2 个答案:

答案 0 :(得分:3)

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

Ipad mini 2拥有500万像素" iSight"相机,而Ipad Air 2有一个800万像素" iSight"相机。

  

iPad Air 2已经使用了800万像素的iSight摄像头   与去年的iPad Air相比,它的像素数增加了60%   它的500万像素射击游戏。   Read more

它是相同的iSight摄像头,原则适用于从5mp到8mp的过渡。

Air2似乎能够捕获fps(120)的两倍而不是迷你2。

this question as to how does the video file size increase with fps有一些有趣的答案。

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

重要的是比特率。

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

使用AVCaptureSession对象

  

您使用sessionPreset属性来自定义质量级别,   bitrat输出。最常见的捕获   配置可通过会话预设获得;   from the AvcCaptureSession docs

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

  

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

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

他们的价值因设备而异。

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

直到这里你有未压缩的帧。

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

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

答案 1 :(得分:2)

以下是我自己使用默认值(iPad Mini 2 FHD 30 fpsiPad Air 2 FHD 30 fps)捕获的两个样本进行测试的结果。

这是针对全高清,但我预计 HD 会有类似结果。

  • iPad Mini 2 - A1489

    [Video]
    Codec: AVC
    Profile: High@L4.1
    Options: CABAC / 1 ref. frame
    Frame Rate: 29.970
    Frame Rrate Mode: VFR (max. 30)
    Color Space: YUV 4:2:0 (8 bit)
    Scan Type: progressive
    Bitrate: 14.3 Mbps
    Bits-per-pixel: 0.231
    
    [Audio]
    Codec: AAC-LC
    Sample rate: 44100
    Channels: 1
    Bitrate Mode: CBR
    Bitrate: 64.0 Kbps
    
  • iPad Air 2 - A1566

    [Video]
    Codec: AVC
    Profile: High@L4.1
    Options: CABAC / 1 ref. frame
    Frame Rate: 29.970
    Frame Rrate Mode: VFR (max. 30)
    Color Space: YUV 4:2:0 (8 bit)
    Scan Type: progressive
    Bitrate: 17.4 Mbps
    Bits-per-pixel: 0.280
    
    [Audio]
    Codec: AAC-LC
    Sample rate: 44100
    Channels: 1
    Bitrate Mode: CBR
    Bitrate: 64.0 Kbps
    

正如您所看到的那样,唯一不同的是比特率,iPad Air更喜欢更高的值(17.4 Mbps vs 14.3 Mbps

为什么更高的比特率?

为了与最广泛使用的AVCHD摄像机相媲美,可能已经完成了向全高清移动到17 Mbps的速度,他们提高了HD一级以保持质量水平不变。设备改进的规格和可能的平均预期运营商费率支持此举。

更高的比特率可以使得到的视频质量更好,尤其是在高动态视频的情况下。

每像素位值是预期质量与数据速率的指标。此指标会根据视频的内容而有所不同,但正如您所看到的那样,两个样本在同一个地方拍摄并且非常相似,从0.231变为0.280(更好更好) )。从理论上讲,H.264/AVC可以调整0.200的内容,以节省带宽而不会造成太多质量损失。

自定义录制(AVAssetWriter)

会话配置文件将根据设备版本自动设置编码选项,您无法控制大多数参数。

如果您想微调编码,Apple文档建议使用AVAssetWriter类(source,请参阅录制)。

您还可以使用第三方库对原始视频进行编码,但您很可能无法利用设备硬件编码功能。