iOS8视频硬编码-压缩率关键参数设置

http://www.jianshu.com/p/2c592daeb3b9

AVVideoCompressionPropertiesKey:设置对应的值为以下的compressionProperties。

NSMutableDictionary *compressionProperties = [[NSMutableDictionary alloc]init]

[compressionProperties setObject: [NSNumber numberWithInt:height*width*7.5] forKey:AVVideoAverageBitRateKey];

[compressionPropertiessetObject: [NSNumber numberWithInt:10] forKey:AVVideoMaxKeyFrameIntervalKey];

[compressionProperties setObject:AVVideoProfileLevelH264Main30 forKey:AVVideoProfileLevelKey];


AVVideoAverageBitRateKey:视频尺寸*比率,10.1相当于AVCaptureSessionPresetHigh,数值越大,显示越精细


AVVideoMaxKeyFrameIntervalKey:关键帧最大间隔,1为每个都是关键帧,数值越大压缩率越高


AVVideoProfileLevelKey: 

P-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;

EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;

MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;

HP-High profile:高级画质。在main Profile 的基础上增加了8×8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;

实时直播:

低清Baseline Level 1.3

标清Baseline Level 3

半高清Baseline Level 3.1

全高清Baseline Level 4.1

存储媒体:

低清 Main Level 1.3

标清 Main Level 3

半高清 Main Level 3.1

全高清 Main Level 4.1

高清存储:

半高清 High Level 3.1

全高清 High Level 4.1

iPad 支持:

Baseline Level 1-3.1

Main Level 1-3.1

High Level 1-3.1

iphone 支持 H.264 视频最高可达 720p,每秒 30 帧,Main Profile level 3.1

来源:H.264的档次和级别

在iOS7.0以上,可以直接选择AVVideoProfileLevelH264BaselineAutoLevel,之前的版本既然我们是实时直播,那就应该选择Baseline级别的了,根据视频分辨率和比特率,选择编码标准,例如标清视频使用AVVideoProfileLevelH264Baseline30。

Github有一个非常好硬编码封装库,简化了编码设置的工作,建议直接使用VideoToolboxPlus



文/HearnWING(简书作者)
原文链接:http://www.jianshu.com/p/2c592daeb3b9
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值