视频开发亮书房iOS开发

H264Decoding 硬解码

2016-05-18  本文已影响979人  那一片阳光
视频流的解码分为软解和硬解。软解:利用CPU做视频的编码和解码,俗称软编软解。这个方法比较通用,但是占用CPU资源,编解码的效率不高。硬解:一般系统都会提供GPU或者专用处理器来对视频流进行编解码,也就是硬件编码和解码。简称硬编解码,调用VideoToolbox的框架进行基本数据结构。编解码前后的视频图像均封装在CMSampleBuffer中,如果是编码后的图像,以CMBlockBuffe方式存储;解码后的图像,以CVPixelBuffer存储。CMSampleBuffer里面还有另外的时间信息CMTime和视频描述信息CMVideoFormatDesc。

--

苹果自带的框架只有在ios8.0才能支持硬编解码 (VideoToolbox.Framework),

解码主要需要以下三个函数
VTDecompressionSessionCreate 创建解码session
VTDecompressionSessionDecodeFrame 解码一个frame
VTDecompressionSessionInvalidate 销毁解码 session

硬解码使用方法。

根据上述得到CMVideoFormatDescriptionRef、CMBlockBufferRef和可选的时间信息,使用CMSampleBufferCreate接口得到CMSampleBuffer数据这个待解码的原始的数据。

具体方式参考demo

上一篇 下一篇

猜你喜欢

热点阅读