影响音视频延迟的关键因素(三):传输、渲染

影响音视频延迟的种因素有很多,此前我们已分享了不同流媒体系统对时延影响,数据流动过程中采集、前处理、编解码三个环节是怎样引入时延的,今天我们将分享在流媒体数据传输、渲染环节,有哪些因素会导致时延。

1传输

流媒体数据传输是非常复杂的过程,涉及到运营商、物理距离、接入方式以及节点部署等多方面因素。传输的极限是光速,光在光纤中的传输速度大概是28万每秒,从北京到深圳,大概需要10ms,但在实际传输过程中,使用光纤到户这种方式传输大概需要20ms,用4G的话会达到80ms,我们实测的5G会好很多,5G更接近光纤。

在传输方面做延迟的优化,可以通过以下几个方面来实现:

第一,更好的基础设施。比如FTTH(光纤到户)、5G,如果没有好的网络,做低延迟的优化是不现实的,所以首先是要加强网络建设;

第二,合理部署服务。让我们的服务本身足够靠近用户,做好全链路最优路由;

第三,针对实时流媒体优化传输控制协议。现实的网络中抖动、丢包是不可避免的,我们需要针对这种特性去设计我们实时流媒体传输控制协议,包括重传、估算可用带宽、编码,根据网络情况加入编码冗余;为了对抗抖动要加dejitter等

5G对低延迟的影响有这两个方面:第一高可靠低时延通信,它的空口时延号称达到1ms,我们自测的话是接近光纤,基于此我们可以实现一些关键操作,比如远程控制,工业的自动化;另一个是增强型移动宽带,它可以达到很大的上行,我们测的话可以达到7/800兆,上传4K、8K的视频没有太大压力。
image

即构很期待5G的到来和铺开的,首先我们方案是转控分离的,我们的信令面和媒体转发面是分开的,转发面我们就可以从一个localDC到另一个localDC,不需要再往上面去扩,这样更靠近用户走更短的路径,有时延的优化;第二是我们控制面是有状态的,那我们还是往上走,控制面并不影响数据的延迟。

2渲染

最后一个是渲染,渲染时会调用系统的接口,因此系统接口的类别对时延的影响很大。如安卓我们用OPENSL ES,这个是低时延的关键,还有一些厂商做的私有接口优化,比如耳返。在某些场景耳返是个重要功能,如唱歌过程中歌声需要实时返回耳朵来判断唱的准不准,那这里的时延就非常关键,如果不做耳返优化,在VIVOX9它的时延可能达到了209ms,而当开启优化之后,时延降低到14ms,这是非常明显的优化。

即构的接口SDK已经去适配这些厂商,拿到了他们的文档、接口,我们做了适配,选择即构的方案,就可以即插即用。

以上就是分环节分析延迟产生的各种因素,但降低延迟是一个系统性工程,任何单个节点出现异常,都会引发整体异常。

下图上下两部分是两个极端,上半部分粒度很粗,采集、前处理、编码一起做完给传输,对端解码、后处理、渲染也一口气做完。这样做,在设备性能好的情况下,延迟是可以比下面的流水线实现低的,但是吞吐是有问题的;
image

另一个极端是把每个环节拆的很细,采集、前处理、编码、后处理等环节都当成一个个单独的任务,拆的很细就会有另一个overhead,我们把数据从前一个抛给后一个是生产者和消费者的关系,这样是自带buffer的,buffer就意味着延迟。

因此我们需要权衡考虑设备的能力和怎么去拆解每个环节任务,做更合理的分割。

音视频云服务商

30 声望
11 粉丝
0 条评论
推荐阅读
音视频开发进阶|第七讲:分辨率与帧率·上篇
在视频系列的前几篇推文中,我们已经接触了视频相关的不少概念,它们都是围绕着几个核心角色 :色彩、像素、图像和视频来展开的。这几个核心角色之间的关系,大家应该都有了基本的了解,我们再来简单回顾一下。

ZEGO即构科技阅读 390

ChatGPT 插件上线!亲测,更加便捷!
ChatGPT 正火的时候,还有很多人都在忙着搜教程,大家想亲自体验原汁原味的 ChatGPTt,可搜到的资源要不是很难用,或者无法科学上网,挺折腾的,现在终于不用那么麻烦了。

Postcat2阅读 693评论 4

就这些了, 常见 6 款API 文档工具推荐
Swagger: Swagger 是一个开源的 API 文档管理工具,可以通过注解自动生成 API 文档,并提供交互式 UI 和 API 调试功能。 Swagger 支持多种语言和格式,包括 Java、Python、JSON、YAML 等。

圆圆大姐头3阅读 301

搞懂 API :API 鉴权有哪些分类,这些重点不要错过
API鉴权是保证API安全性和可用性的一项重要措施。通过API鉴权,系统可以对用户或者应用进行有效的身份认证和权限管理。一般来说,在实际开发中,我们使用以下几种API鉴权方式:

气势凌人的柿子2阅读 470

两次登上了 Github trending!这个 API 管理工具厉害了!
昨天我在逛Github上的时候,无意发现我最近在用的这个Postcat ,居然登上了 Github trending !这个还是很厉害的!那种心情你们应该懂的吧,就是自己发现的工具,居然也被大家知道了,很开心!

气势凌人的柿子2阅读 454

Chatgpt 对程序员而言有这些妙用
ChatGPT是一种基于人工智能技术的对话机器人,可以在各种场景下辅助用户解决问题,提高效率。对于程序员而言,ChatGPT的智能化和语义理解能力,可以帮助他们更好地完成编程工作。

气势凌人的柿子2阅读 432

Postcat IDEA 插件,最全的使用教程
Postcat 插件不会入侵到代码内部,无需添加任何jar包依赖,这个真的很香!下面说一说,这个插件如何使用,是时候展现真正的技术了~如何安装配置?IDEA 版本需大于 IntelliJ IDEA 2022.03在 IDEA “设置-插件-Marke...

圆圆大姐头2阅读 426

音视频云服务商

30 声望
11 粉丝
宣传栏