音视频开发:码率、延时、花屏、卡顿

1. 视频码率通常设多大?android

 

对于1080P的视频而言,蓝光视频的码率是20Mb/s,通常下载的视频码率大都是10Mb/s,一些IPCamera/无人机的码率是2~8Mb/s,而不少视频网站的码率甚至低于5M/s。微信

 

同等分辨率的状况下,码率越大,清晰度越大,但同时对网络带宽的占用也越大,具体码率该设置为多少,须要看应用的具体场景了。网络

 

2. 播放中出现“跳跃”和“花屏”现象?学习

 

“跳跃”和“花屏”现象绝大多数缘由是网络传输过程当中因为信号很差致使丢失了“关键帧”/“参考帧” 引发的,下面来进一步解释。测试

 

视频在网上传播以前是须要压缩的,而简单来解释视频压缩的核心思想就是:每隔10~50帧取视频中的一帧图像做为“关键帧”,而随后的几帧图像因为时间/空间的冗余和相关性,咱们只需记录其与关键帧的“差别”信息便可,这样视频文件就能够不用把每一帧完整的图像数据所有保存下来,从而起到了节省空间的效果。网站

 

因而可知,若是丢失掉了“关键帧”,随后的几帧图像天然就没法正常地解码了,所以产生了“花屏”现象。编码

 

从技术的角度,怎么解决“花屏”现象呢?——当咱们在视频传输过程当中,经过帧序号发现丢帧后,能够跳过随后的非“关键帧”,直到遇到下一个关键帧再送入解码。这样的确能够解决“花屏”现象,可是因为跳跃了不少帧,所以会出现视频图像的不连续状况(即“跳跃”现象)。.net

 

3. 播放过程当中出现“卡顿”现象?线程

 

因为网络是很不稳定的,所以,音视频数据的传输也是时快时慢的,在播放网络视频流的过程当中,必定要根据时间戳来决定什么时候解码什么时候显示,而不是来一帧就播放一帧,另外,添加必定数量的“帧缓冲区”能够有效地下降因为网络抖动带来的“卡顿”现象。视频

 

4. 音视频实时传输的延时主要来自哪里 ?

 

(1) 编码器/解码器通常须要缓冲2~4帧

(2) 编码/解码的耗时

(3) 业务代码中的帧缓冲区

(4) 网络传输延时

(5) 代码中的数据拷贝

 

通常状况下,帧率为30f/s的视频,每缓冲n帧,就会增长1000/30*n毫秒的延时。所以,要想减小延时,则必须经过分析和测试找到上述每一部分的延时,尽可能减小数据的拷贝和缓冲。

 

5. 边下边播的原理 ?

 

边下边播与播放本地文件其实差很少,只不过是文件数据不在本地,在播放器播放到指定位置以前,后台线程把须要的数据提早下载下来而已。

 

关于Android中使用开发HTTP边下边播的功能,能够参考个人这篇文章:《Android HTTP边下边播》

 

6. 小结

 

免费学习更多精品课程,登陆乐搏学院官网http://www.learnbo.com/

或关注咱们的官方微博微信,还有更多惊喜哦~

 

本文出自 “Jhuster的专栏” 博客,请务必保留此出处http://ticktick.blog.51cto.com/823160/1722446

相关文章
相关标签/搜索