VideoToolBox H.264 流硬解码

本文详细介绍了iOS平台上的硬解码与软解码技术,对比了两者之间的区别,特别是在视频直播场景下的应用。重点讲解了硬解码的优势及其实现方式,以及H.264编码标准在视频传输中的作用。

注意 在测试硬解码和软解码的时候请使用真机调试,模拟器会内存泄露,而且会卡顿。

VideoToolBox iOS 原生的硬解码的库

背景介绍:
主要应用了硬解码的过程
先说一下 硬解码和软解码
在iOS 8.0以前 苹果是不支持硬解码的
如果项目中包含直播的模块,就需要使用软解码
软解码会比较消耗CPU
一个直观的体现就是手机发烫。

好在现在苹果手机几乎没有8.0以下的设备了
硬解码是用硬件的GPU来解码的,拥有更好的体验。

为什么解码这么消耗内存呢

因为传输的数据是视频。
视频数据不同于文字和简单的网页,数据量巨大,
并且在直播环境下还要保证实时性,

一个很简答的例子,传送一个100M的文件给别人,
取决于双方的网速,传输时间很久。

但视频直播不一样,要保证传输的实时性,只能减少传输的
数据大小,但是视频的内容又要保证质量

唯一的办法就是压缩,将摄像头捕捉的视频,压缩成小的视频
传输给客户端,客户端接收到了视频,再解压缩为大的文件。

保证实时性的话 就传输压缩的图像,客户端不断接收到文件,不断转换为图像就可以了。

为此 有一个视频传输的编码标准,被称为H.264 在世界范围内通用,
他采用的压缩算法,能够很好的适应网络环境,并极大的压缩图像的尺寸的同事,保证图像的质量,因此成为协议的标准,我们对视频的处理,很多都是针对H.264展开的。

我们把视频图像转换为H.264的过程 称为编码,把H.264 转换为真实图像的过程,称为解码。

这里我们只讲解码的过程。

iOS 的软解码 是用的 FFMpeg 来进行的
iOS 的硬解码 是用的 VideoToolbox 来进行的


一般在模拟的时候 都会找个h.264的文件来模拟硬解码的解析。

在真实环境中H.264 是以流的方式传递的,数据会一帧一帧的传输过来。

我们来梳理以下到显示到屏幕上所经历的过程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值