面试官:现在还有不会音视频的Android开发?
1.1 什么是视频?
首先我们需要理解一个最基本的概念:视频。从感性的角度来看,视频就是一部充满趣味的影片, 可以是电影,可以是短片,是一连贯的视觉冲击力表现丰富的画面和音频。
图像 ( Image ) 音频 ( Audio )
1.2 视频是如何播放的
对于H.264来讲,我们常见的有I帧,P帧,和B帧。
它是一个完整信息帧,你可以理解为它就类似一个jpg图片,它里头所有的数 据,你解出来之 后,它就是一整张图片。
它压缩比是最小的,因为它要包括整个图片所有的数据在里头。
I帧可以直接解析
P帧就是保留变的部分,不变的部分你去上一个或者几个帧里面找就行。P帧只是负责向前引用, 也就是任何一个P帧,它只看它往前的这些帧的数据。
P帧不可以直接解析
B帧不可以直接解析
GOP实际上是两个I帧之间的序列帧
意味着无法在第一帧拿到I帧,则必须等待,哪怕是拿到了数据,也必须地球
1.3.2 改写播放器逻辑让播放器拿到第一个关键帧后就给予显示。
如果直播服务器支持 GOP 缓存,意味着播放器在和服务器建立连接后可立即拿到数据,从而省却跨地域和跨运营商的回源传输时间。
服务器只需存储上一个GOP即可,主播端在推最新的视频流时,会实时更新服务器保存的上一个 GOP,以便客户端会拿到上一次完整GOP,而完整GOP第一帧就是I帧
1.3.3 关键帧设置频率一般是多少?有没有根据接入动态设置?过长首屏秒会很难做到。
评论