在直播源码开发中,有几个“坑”需要特别注意
如何减少音视频的延迟情况,对于直播来说,一直是一块比较难啃的骨头,尤其是在移动直播中,其设备受环境影响的因素比较多,信号延迟率就比较高。想要降低延迟率,就不得不在直播源码开发过程中,规避一些“坑”。根据实践总结下来的经验,移动平台上直播的坑主要有两个方面:设备差异,以及网络环境这些场景下带来的技术考验。那么如何有效规避呢,下面我们就来带大家具体看看。
一、首先,了解不同芯片平台上的编码差异
音视频编码解码的速度高低会直接影响到信号输出的效率,给用户一种“延迟”的感觉。通常情况下,iOS平台无论硬编还是软编,由于是Apple一家公司出厂,几乎不存在因为芯片平台不同而导致的编码差异。
然而,在 Android平台上,Android Framework SDK提供的MediaCodec编码器,在不同的芯片平台上,其差异表现很大。其具体表现为:不同的厂家使用不同的芯片,而不同的芯片平台上Android MediaCodec表现略有差异,再加上通常实现全平台兼容的成本也不低,因此,若在Android上对信号使用硬编,那么效率肯定不统一。此外,Android MediaCodec硬编层面的H.264编码画质参数是固定的baseline,所以画质表现通常也一般。因此,在Android平台上,推荐用软编处理信号,好处是画质可调控,兼容性也更好,处理效率更高。
二、其次,要考虑低端设备上进行高性能地采集和编码
例如相机采集输出的可能是图片,一张图的体积并不会小,如果采集的频次很高,编码的帧率很高,每张图都经过编码器,那么编码器又可能会出现过载。移动直播设备对于音视频信号的采集也是同样一个道理。这个时候,在不影响画质的前提下,可以考虑在编码前,进行选择性丢帧,比如优先丢视频参考帧(不丢I帧和音频帧 ),以此来降低编码环节的功耗开销。
三、最后,要尽量在弱网环境下保障高清流畅推流
移动网络下,通常容易遇到网络不稳定、连接被重置、断线重连的情况。一方面频繁重连,建立连接需要开销。另一方面,当发生GPRS、2G、3G 、4G切换时,带宽可能出现瓶颈。当带宽不够,帧率较高、码率较高的内容较难发送出去,这个时候就需要可变码率支持。其具体实现方式:在推流端,可通过检测网络状态和简单测速,进行动态切换码率,以保障网络切换时的推流流畅。
如果开发者在直播源码开发过程中做到以上几部,就能巧妙地避开移动直播场景中关于延迟的“坑”。如果您对直播源码开发的其他事项感兴趣,欢迎咨询官方客服。
本文章声明原创,转载请注明出自云豹科技www.yunbaokj.com