直播带货系统发展到现在,已经覆盖了h5、小程序和app等多个平台。但就目前市场情况来看,很多用户还是比较钟情于app,觉得它可靠,相比起小程序来讲,对于功能定制的可选性更多。所以有些开发商把大部分精力都放在了直播带货系统app版本的开发上。但是,在开发直播带货系统的过程中,有一些“坑”需要各位开发者格外注意,而这些“坑”主要是“直播功能”上的问题。
如何减少音视频的延迟情况,对于直播来说,是一块比较难啃的骨头,尤其是在app中,其设备受环境影响的因素比较多,信号延迟率就比较高。根据开发直播带货系统总结下来的经验,app上直播的“坑”主要有两个方面:设备差异,以及网络环境这些场景下带来的技术考验。
那么,如何做?
一、了解不同芯片平台上的编码差异
音视频编码解码的速度高低会直接影响到信号输出的效率,给用户一种“延迟”的感觉。通常情况下,iOS平台无论硬编还是软编,由于是苹果一家公司出厂,几乎不存在因为芯片平台不同而导致的编码差异。
然而,在 安卓平台上,Android Framework SDK提供的MediaCodec编码器,在不同的芯片平台上,其差异表现很大。其具体表现为:不同的厂家使用不同的芯片,而不同的芯片平台上Android MediaCodec表现略有差异,再加上通常实现全平台兼容的成本也不低,因此,若在Android上对信号使用硬编,那么效率肯定不统一。此外,Android MediaCodec硬编层面的H.264编码画质参数是固定的baseline,所以画质表现通常也一般。因此,在安卓平台上,推荐用软编处理信号,好处是画质可调控,兼容性也更好,处理效率更高。
二、考虑如何在低端设备上进行高性能地采集和编码
例如相机采集输出的可能是图片,一张图的体积并不会小,如果采集的频次很高,编码的帧率很高,每张图都经过编码器,那么编码器又可能会出现过载。移动直播设备(主要是手机)对于音视频信号的采集也是同样一个道理。这个时候,在不影响画质的前提下,可以考虑在编码前,进行选择性丢帧,比如优先丢视频参考帧(不丢I帧和音频帧 ),以此来降低编码环节的功耗开销。
三、要尽量在弱网环境下保障高清流畅推流
移动网络下,通常容易遇到网络不稳定、连接被重置、断线重连的情况。一方面频繁重连,建立连接需要开销。另一方面,当发生GPRS、2G、3G 、4G、5G切换时,带宽可能出现瓶颈。当带宽不够,帧率较高、码率较高的内容较难发送出去,这个时候就需要可变码率支持。具体实现方式:在推流端,可通过检测网络状态和简单测速,进行动态切换码率,以保障网络切换时的推流流畅。
以上,就是在开发直播带货系统时,需要注意的,尤其是在“直播功能”上的坑。只有解决好这个问题,才能让主播顺畅的带货不是吗?
声明:以上内容为作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任。