iOS系统中H264硬解码及显示详解

本文详细介绍了iOS系统中H264硬解码的两种方法,包括通过AVSampleBufferDisplayLayer显示和使用CoreMedia框架解码到CVPixelBufferRef。解码方式一简单高效,但不便于图像处理;方式二允许获取图像数据,但效率较低。
摘要由CSDN通过智能技术生成

iOS系统中H264硬解码及显示详解


苹果在iOS 8.0系统之前,没有开放系统的硬件编码解码功能,不过Mac OS系统一直有,被称为VideoToolBox的框架来处理硬件的编码和解码,终于在iOS 8.0后,苹果将该框架引入iOS系统。

一、VideoToolbox基本数据结构:

1、CVPixelBuffer:编码前和解码后的图像数据结构;

2、CMTimeCMClockCMTimebase:时间戳相关。时间以64-bit/32-bit的形式出现;

3、CMBlockBuffer:编码后,结果图像的数据结构;

4、CMVideoFormatDescription:图像存储方式,编解码器等格式描述;

5、CMSampleBuffer:存放编解码前后的视频图像的容器数据结构。

下图为H264解码前后数据结构示意图:

这里写图片描述


二、硬解使用方法:

H264的码流由NALU单元组成,NALU单元包含视频图像数据和H264的参数信息。其中视频图像数据就是CMBlockBuffer,而H264的参数信息则可以组合成FormatDesc。具体来说参数信息包含SPSSequence Parameter Set)和PPSPicture Parameter Set)。下图显示一个H264码流的结构:

这里写图片描述


解码方式一:(通过系统提供的AVSampleBufferDisplayLayer来解码并显示)
  • 1、初始化H2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值