前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何巧妙地规避移动直播场景中的延迟“坑”?

如何巧妙地规避移动直播场景中的延迟“坑”?

作者头像
就爱吃小笼包
修改2020-01-07 18:10:13
1.1K0
修改2020-01-07 18:10:13
举报

避免延迟,对于直播来说,一直是一块比较难啃的骨头,而这块“骨头”却为移动直播源码开发凿出了一个又一个的“坑”,根据实践总结下来的经验,移动平台上视频直播的坑主要有两个方面:设备差异,以及网络环境这些场景下带来的技术考验。那么对这几个坑如何进行有效规避呢,下面我们就来具体看看。

一、了解不同芯片平台上的编码差异

iOS平台上无论硬编还是软编,由于是Apple一家公司出厂,几乎不存在因为芯片平台不同而导致的编码差异。 然而,在 Android平台上,Android Framework SDK提供的MediaCodec编码器,在不同的芯片平台上,差异表现很大,不同的厂家使用不同的芯片,而不同的芯片平台上Android MediaCodec表现略有差异,通常实现全平台兼容的成本不低。 另外就是Android MediaCodec硬编层面的 H.264编码画质参数是固定的 baseline,所以画质通常也一般。因此,在 Android平台下,推荐是用软编,好处是画质可调控,兼容性也更好。

二、在低端设备上进行高性能地采集和编码

例如Camera采集输出的可能是图片,一张图的体积并不会小,如果采集的频次很高,编码的帧率很高,每张图都经过编码器,那么编码器又可能会出现过载。 这个时候,可以考虑在编码前,不影响画质的前提下(前面我们讲过帧率的微观意义),进行选择性丢帧,以此降低编码环节的功耗开销。

三、弱网环境下保障高清流畅推流

移动网络下,通常容易遇到网络不稳定,连接被重置,断线重连,一方面频繁重连,建立连接需要开销。另一方面尤其是发生GPRS / 2G / 3G / 4G 切换时,带宽可能出现瓶颈。当带宽不够,帧率较高/码率较高的内容较难发送出去,这个时候就需要可变码率支持。 即在推流端,可检测网络状态和简单测速,动态来切换码率,以保障网络切换时的推流流畅。 其次编码、封包、推流 这一部分的逻辑也可以做微调,可以尝试选择性丢帧,比如优先丢视频参考帧(不丢I帧和音频帧 ),这样也可以减少要传输的数据内容,但同时又达到了不影响画质和版视听流畅的目的。

在直播源码开发过程中做到以上这些,就能巧妙地避开移动直播场景中的延迟“坑”。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档