咱们须要避免移动直播场景的坑,那么该如何采起相应的规避措施?今天本篇内容为你们阐述。网络
1不一样芯片平台上的编码差别性能
iOS 平台上不管硬编仍是软编,因为是 Apple 一家公司出厂,几乎不存在由于芯片平台不一样而致使的编码差别。编码
然而,在 Android 平台上,Android Framework SDK 提供的 MediaCodec 编码器,在不一样的芯片平台上,差别表现很大, 不一样的厂家使用不一样的芯片,而不一样的芯片平台上 Android MediaCodec 表现略有差别,一般实现全平台兼容的成本不低。spa
另外就是 Android MediaCodec 硬编层面的 H.264 编码画质参数是固定的 baseline,因此画质一般也通常。所以,在 Android 平台下,推荐是用软编,好处是画质可调控,兼容性也更好。视频
2低端设备如何上高性能地采集和编码?图片
例如 Camera 采集输出的多是图片,一张图的体积并不会小,若是采集的频次很高,编码的帧率很高,每张图都通过编码器,那么编码器又可能会出现过载。这个时候,能够考虑在编码前,不影响画质的前提下(前面咱们讲过帧率的微观意义),进行选择性丢帧,以此下降编码环节的功耗开销。开发
3弱网下如何保障高清流畅推流直播
移动网络下,一般容易遇到网络不稳定,链接被重置,断线重连,一方面频繁重连,创建链接须要开销。另外一方面尤为是发生 GPRS / 2G / 3G / 4G 切换时,带宽可能出现瓶颈。当带宽不够,帧率较高/码率较高的内容较难发送出去,这个时候就须要可变码率支持。it
即在推流端,可检测网络状态和简单测速,动态来切换码率,以保障网络切换时的推流流畅。class
其次编码、封包、推流 这一部分的逻辑也能够作微调,能够尝试选择性丢帧,好比优先丢视频参考帧(不丢 I 帧和音频帧 ),这样也能够减小要传输的数据内容,但同时又达到了不影响画质和版视听流畅的目的。
4须要区分直播流的状态和业务状态
直播是媒体流、APP 的交互是 API 信令流,二者的状态不能混为一谈。尤为是不能基于 APP 的交互的 API 状态来判断直播流的状态。
以上是移动直播场景下常见的几个坑和规避措施。图玩智能科技为企业提供直播平台二次开发服务,搭建更完善更妥当的直播系统,欢迎随时咨询www.toivan.com.