00:00
VLC做了什么事情呢?其实VLC是什么封装的?它是基于FPI一个封装的。他是七月份怕一个风撞的。那他比别的播放器做了什么事情呢?他多做了一件事情,那就是当他拿到HR64的时候。他首先干嘛呢?他首先进行解码。也就是说他解码,解码了之后干嘛,解码了之后在渲染,这个时候他播放出来的视频呢?有内容对吧?有图像,但没有声音,对,没有声音,为什么呢?因为你只是一个视频图像压缩文件对吧?To,什么图像压缩文件啊,用play呢,用F的话呢,其实你还是需要先解码才能做到啊,好,然后呢,我们再来往下看,这个时候呢,我们来看一下为什么我们目前做直播也好,做小视频也好,都会选择用HR64对不对?是不是很好奇这个问题,难道没有别的编码方式吗?为什么非得要用H264呢?面试官也会问你这个问题,那我告诉大家,只要你告诉他一个优点就可以了,对吧?你可以看到他的优点有这么多,是不是记不住对不对?好,我只要告诉他一个问题。
01:05
大家能够做到什么呢?H264编码的这个算法呢,能够直接将88G的视频降到879兆,所以说它的高压缩比就让我们选择用到了HR64,明白了吗?明白了扣个六,所以说你可以看到这个算法是非常非常了不起的,它能够让一个88G的原视频。直接降到879兆,所以说我们为什么选择它,只要这个理由就可以让我们选择它了,对不对,当然还有其他的理由,我们只要记住这一点就可以了,好,然后呢,再来往下看,接下来呢,我们来讲第二个地方,我们了解了什么叫视频,对不对?MP4是什么?它是一个视频容器,对吧?它是一个视频容器,那还有哪些视频容器呢?在我们今天晚上的资料里面啊。我找一下啊。在今天晚上的资料里面。我是不是讲过看啊。这里面有一个视频容器的对比啊,大家自己去看啊。
02:02
对吧,比如说我们的mov是什么,然后呢,包括我们其他的是什么都会解释啊,在这个文档里面自己去看好,然后呢,第四。这个时候呢,我们来看一下,在我们面试里面,很多面试官喜欢问你GP,或者问你IBP对吧,老师这是什么东西对吧?啊老师是什么东西,那我们来看一下这个地方呢,我们就来看一下视频压缩的原理。视频压缩的原理,为什么H264?它的压缩比可以达到102:1,对吧,为什么呢?哎,我们来探索一下它的原理对吧?了解一下,记住了,这个原理呢,有两个作用,为什么要了解原理,第一个是了解它的本质,对吧?你只有了解一个问题的本质才能去解决,第二个在了解本质的过程中会衍生出啊,衍生出很多实际的项目问题的解决方案。啊,听清说啊解决方案,所以说现在呢,我们来看一下它的原理明白了没有,明白了扣个六,所以说这个原理呢,会涉及到面试啊,你在面试的时候问你对标,第二个就是我们实际问题解决的时候,是需要依赖你对原理的了解才能提出好的解决方案,好那我们先来看一下,首先呢,四老师准备了一个小视频,这就是视频的本质对不对,一个视频是由啊60FPS对吧,也可以16也可以30都可以由这种视频帧组成的,就一张这样图片组成的,我们来看一下这个动画。
03:31
好,他在滚,对不对?好,注意了,大家有没有发现这其实是一个我们小时候玩的游戏,但是它就是整个视频的本质,我们所看到的视频其实就是按照这个原理在处理的,对不对?在一秒钟有很多很多张的图片快速的在我们的眼前轮转,所以这个时候我们就以为他是一个连续的动画的视频,对不对?好,那大家注意看,在这个过程中间,我们到底是怎么做压缩的呢?来入一个新的概念,叫IBP,对不对,关键帧啊。
04:04
这个APP呢,是一个面试中间最喜欢问的,所以说你要准备好啊,准备好那我们来看一下今天我给你的资料里面的介绍,特别的有官方的啊,有口语化的。看啊。在这里面大家可以看到。来,注意看这一段话。这段话的话,大家可以发现字我都认识对不对,每个字我都认识,但是老师连起来的时候,我发现我没有那么容易的去明白它到底是什么意思,有没有发现,有发现的扣个六啊,比如说我们的真类编码对吧,前后预测编码,双向预测编码,你会发现老师我看这个字的时候我都能理解,但是。组合在一起我就不知道了,所以老师用比较快速简单的方式让大家了解什么叫IBP,对吧?每个同学都能听懂啊,每个同学都能在这个过程中快速了解。首先我们会发现。在这个过程中,我们在视频快速的跑的过程中,你会发现我问大家这个背景是不是重复的,这个狗在跑动过程中,它的背景是不是重复的。
05:03
是不是扣个六。对不对,所以说你会发现这些重复的数据有必要保存吗。就我们俩一模一样对吧?啊,我们都穿黑衣服,这个黑色就不需要每次都保存了,所以说H264的关键就在于它的重复的冗余数据被干掉了,那他是怎么干掉的呢?对吧?怎么把这些重复的数据干掉呢?就来自于三个非常关键的概念,叫癌症。P帧和B帧,好,这个时候老师讲完这个概念的时候,有同学想,那他是怎么做到的呢?哎,我注意了啊,这时候提一个要求,只要理解。理解就可以了,不需要想他是怎么做到的啊。怎么做到这个东西不需要iOS开发者去考虑啊。听到没有,就是你只要理解IBP的概念就可以了,和它的这个作用就行了,不需要其他是怎么去做到的,为什么这叫什么,这叫HR64。算法就他算法的问题了,所以这个时候来自于什么,比如说有很多研究史啊,就搞这些对吧,研究识别搞这些,比如说大家经常会听到的一个东西叫雷神。
06:10
对吧,雷神啊啊,非常了不起的人物,对吧,他就搞这一块的啊,所以说大家暂时不需要去研究这些东西,明白吗?就是如果你要考研啊,考博啊,这是一个很好的方向,但是咱们如果说从业务开发这个东西跟咱们就是还是有很大的距离啊好,那我们先来看一下什么叫I针。I针呢,顾名思义它叫关键帧,什么叫关键针呢?名字很简单,来看一下啊,关键帧的话呢,第一个呢,就是它在解码的时候是必须要的啊,必须要的,为什么这么说呢?因为我已经把这些重复的数据干掉了,对不对,那我是不是解码的目的是什么?还原是不是要还原对不对,所以说如果我没有这些。参考图片我就无法还原对不对,没有参考图片我就无法还原好,所以说这个时候关键帧呢,会选择性啊,会选择保存一张完整的图片啊,完整的图片,假设我们现在用16张作为一组啊,作为。
07:11
一组GOP,那这个时候我们会选择一张图片作为它的I帧,那我给大家一个选择题,从第一张到16张,你会选择哪一张图片作为它的关键帧呢?大家可以打出来啊,对不对啊,大家可以选择一张图片对吧?作为它的关键帧啊,作为他的关键帧,大家如果有时间也去看一看雷神的博客,还是很具有学习性的,对吧?有些同学选第八章,有同学选第一章,对吧?各有各的答案,各有的出发点。那我们来看一下,这个时候呢,我的建议呢,啊,他是选择第一张。对吧,第一章也就是说,当这个视频从采集的过程中采集过来之后,我就会选择这个啊,这一组图片的第一张作为关键帧啊,作为关键帧把它保存起来,把它完整的保存起来啊,然后呢,不不丢失任何数据,好这个时候呢,大家看一下,为什么要选择这张图片呢?因为它的P帧P针呢,它有个别名叫向前预测,什么意思呢?就是我的第二张图片,听清楚啊,我举个例子啊。
08:12
你不要真的以为123对不对,第二张图片,那我会怎么做呢?我不会把它完整的保存起来,我会怎么做?跟第一张挨针和挨针就是它的上一针。进行比较。啊,进行比较,你会发现这两张图片里面有95%都是重复的。对吧,一个视频里面一秒钟16张图片,你会发现有95%以上是重复的,而这些重复的数据我将把它干掉。把它干掉,明白了没有,明白了扣个六,剩下的5%把它保存起来。OK,这叫向前参考帧,所以说批证的工作机制就这样子,它和前一张图片进行比较,只保存它的差异之处,OK,好,那我们来看一下B针。
09:03
B着是怎么做呢?逼着很聪明对吧,他和第一张图片,假设他是第三张图片啊,他会和第二张图片以及第四张图片进行比较,就我前后间隔的比,他发现他们两个就他会前后进行比较啊,那这个时候重叠数据就更高了,对不对啊,重叠数据可能达到98%。对吧,那这个时候我就需要干嘛,我只需要保存那个2%就可以了,明白了没有,明白了扣个六,一个呢是向前参考,一个是向前向后参考,好这个时候面试官问到这个地方呢,他还会问你一个问题,比如说。我们经常会出现在视频中间花屏的现象。对吧,花屏的现象,那这个时候怎么去解决呢?诶他就来源于这个本质,比如说我们早期大家看视频的时候,经常会看到屏幕的某一个地方,对吧,有些花瓶或者不清楚,那是什么原因导致呢?其实最本质的原因就是我们。
我来说两句