iOS8视频硬编码-压缩率关键参数设置
2016-07-17 14:06
1481 查看
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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
相关文章推荐
- self = [super init]
- IOS设计模式浅析之简单工厂模式(SimpleFactory)
- 按照教程初学IOS第一天demo1,实现点击切换字和颜色(有源码打包)
- isKindOfClass和isMemberOfClass的区别
- iOS Core Graphics基础入门(2)
- iOS Core Graphics介绍
- keychain的使用 iOS
- XZ_iOS之转换坐标系
- iOS 【使用Xcode和Instruments调试解决iOS内存泄露】
- iOS耗电量测试
- 多线程的几种加锁方式详解
- iOS 侧滑栏实现的放大和缩小
- ios如何使用xib自定义单元格
- iOS 启动引导页面
- tableView使用SDWebImage加载图片时滚动优化
- iOS Core Graphics手写板
- iOS 【在iOS中自动检测内存泄漏】
- iOS - 内存管理十全大补丸——内存泄露检查实战总结
- iOS开发支付集成之支付宝支付
- iOS之深入了解控制器View的加载