【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

如何实现 70% 丢包下音视频的高可用之数据篇

  • 2019-12-19
  • 本文字数:2143 字

    阅读完需:约 7 分钟

如何实现70%丢包下音视频的高可用之数据篇

基于卓越的自研音视频引擎,即构科技实现了超低时延的多路音视频通信和优异的音频体验。通过深度优化音视频数据处理、传输策略和音视频信令服务,让音视频服务在各种环境下保持超高的可用性和优良的体验。


以下为在上行丢包 70%和下行丢包 70%网络环境下的可用性展示:


上行丢包 70%:



下行丢包 70%:



从数据可以看到,在上下行 70%的高丢包环境下,即构示例 APP 依然可保持每秒 15 帧的流畅音视频通话。

如何实现音视频云服务在弱网环境下高可用

音视频云服务,核心是对音频/视频数据的处理和传输。但在实际应用场景中,除了音视频数据,还有一些非音视频数据需要同步处理,比如设备初始化、登录通信房间、发起推/拉流消息等服务,这些非音视频数据的处理通常由信令服务来支持。


因此音视频云服务的弱网高可用需要从音视频数据信令服务两方面入手。

音视频数据

在数据处理上,需要适应网络带宽的变化,动态调整音视频码率大小,通过牺牲一定的音视频质量来保证弱网环境下音视频服务的可用性和流畅度;


在数据传输上,传输信道要足够“智能”,能够视具体网络环境保证所需的音视频数据能够顺利传达。

信令服务

音视频信令服务需要在弱网环境下保证服务的高效稳定,实现信令的精准传达。


针对弱网处理的两个方面,我们的教程将分为上下两篇,本文为上篇,介绍的是对音视频数据的处理。


音视频数据的弱网高可用,我们可以从传输协议、信道 QoS 算法以及智能 QoS 策略来实现。

传输协议的选择

互联网的数据传输协议有 TCP UDP


TCP 可靠、稳定,但是建连需要经过 3 次握手,相对繁琐、效率低且占用系统资源高。


UDP 效率高、快、轻量、占用系统资源较少,但是存在不可靠、无序等缺点。


在网络环境好的情况下,只要音视频编解码器相同,TCP 和 UDP 的传输效率是相当的;而在网络环境较差的情况下,基于 UDP 的私有协议对端到端全链条可控,包括码率自适应、丢包重传和前向纠错等信道 QoS 策略,对抗恶劣网络环境会更有保障。


考虑到上述传输协议的特性,即构科技自研音视频引擎,使用基于 UDP 的私有协议来保证音视频数据的处理和传输。

信道 QoS 算法

常见的信道 QoS 算法有码率自适应、丢包重传、前向纠错、错误隐藏等,以下为不同算法的简单介绍:

码率自适应(ABC)

服务端和推流端协作控制码率来自动适应网络环境变化的技术。在网络好的情况下,适当提高码率,提高语音视频的质量;在网络差的情况下,适当降低码率(帧率和分辨也可能会降低),保障音视频通话的可用性和流畅性。

丢包重传(ARQ)

通过重传关键数据包来纠错的信道保护算法。具体地来说,发送端给每一个数据包都植入序列号和时间戳,序列号代表被发送数据包的顺序,允许接收端通过监测顺序号码来发现是否丢包;时间戳代表语音视频数据包采集的时间点。

前向纠错(FEC)

通过增加冗余数据对丢失数据包进行恢复的信道编码算法。具体地说,由发送端对原始数据进行 FEC 编码,生成冗余奇偶校验数据包,原始数据和冗余数据包合并称作 FEC 数据块,发送端发送 FEC 数据块,接收端接收到 FEC 数据块后,通过冗余数据包和原始数据包来恢复出丢失或者出错的数据包。

错误隐藏(PLC)

应用于实时语音通话的场景。为了减少语音数据包丢失造成对语音通话质量的伤害,错误隐藏 PLC 算法通过前一个语音数据包和后一个语音数据包的相关性来“推测出”当前丢失的语音数据包,从而“隐藏”了信道传输所造成的错误。

即构推出智能 QoS 策略

上面介绍了信道保护的各种 QoS 算法,然而单纯依靠某一种算法无法解决所有问题。即构科技推出一套智能 QoS 策略,既保持媒体数据传输的实时性,又具有优良的网络抗性。以下为即构智能 QoS 策略的介绍:

混合 FEC&ARQ


FEC 和 ARQ 各有优缺点。即构的做法是把 FEC 和 ARQ 通过智能策略混合使用,即混合型 HARQ(Hybrid ARQ)。


混合型 HARQ 的智能策略要充分考虑网络情况,需要根据 RTT 和 PLR(丢包率)的数值来智能地决定使用 FEC 还是 ARQ,以及两者都使用的比例。以下为参考值:


带宽估算

无论是 ABC、FEC 还是 ARQ,都要依赖带宽估算算法来工作。ABC 根据带宽估算的结果来自动调节码率;FEC 和 ARQ 根据带宽估算的结果来分配冗余数据所占的带宽。


发送端和服务端协同对网络带宽进行检测和估算,发送端把网络带宽的统计信息上报给服务端,服务端把网络带宽的估算结果反馈给发送端。当然,也可以完全在发送端进行带宽估算。

带宽分配

码率自适应 ABC 模块估算出带宽以后,发送端把带宽分配给原始数据包、FEC 校验包和 ARQ 重传包,这里需要智能的带宽分配策略。带宽分配策略是根据网络情况,包括 RTT 和 PLR 等因素,为原始数据包和冗余数据包分配带宽。


冗余数据包的带宽分配得越多,QoS 信道保护算法的纠错能力就越强,然而原始数据包就相应分配得越少,语音视频的质量也就相对降低。


冗余数据包的带宽分配得越少,QoS 信道保护算法的纠错能力就越弱,但原始数据包的带宽分配得越多,语音视频的质量也就相对得到保障。


因此,智能的带宽分配策略是要在语音视频的质量和 QoS 信道保护算法的纠错能力之间寻找平衡点。


以下为智能的带宽分配策略示例(仅作为参考):




基于 UDP 协议自研音视频引擎卓越的性能,配以针对性调校的信道 QoS 策略,即构科技在音视频数据的处理和传输上具有优秀的网络抗性,在复杂环境下依然可实现稳定高质的低延时多路音视频通话。


2019-12-19 10:272548

评论 1 条评论

发布
用户头像
即构的音视频解决方案可以看看
2020-01-06 17:35
回复
没有更多了
发现更多内容

2021阅读总结

俞凡

阅读

TAOS Data 陶建辉:一个开源项目要成功,最关键的是定位 | 大话开源Vol.12

OpenTEKr

大话开源

一个cpp协程库的前世今生(七)ctx的状态与标识位

SkyFire

c++ cocpp

如何在 Windows Server 上搭建 Git Repository Server?

DisonTangor

git windows

模块八作业-消息队列表设计

Geek_cb2b43

瞰见|即将上市的云明星 HashiCorp 走过的开源之路

OpenTEKr

开源 狄安瞰源

VMware 任道远:中国的开源生态还处在萌芽发展的青春期,需要多元力量和全球化协作 I OpenTEKr 大话开源 Vol.9

OpenTEKr

大话开源

瞰见|从电厂螺蛳里看 Elastic 与亚马逊云的恩怨情仇

OpenTEKr

狄安瞰源

一个cpp协程库的前世今生(六)管理器manager

SkyFire

c++ cocpp

架构实战营 - 模块四

Geek_e6f7f6

架构训练营

盘点 2021|鲜花怒马少年时,一日看尽长安花

AXYZdong

盘点 2021

操作系统之进程管理、内存管理总结

yuexin_tech

内存 进程 操作性

KubeEdge 王泽锋:只有代码没有生命力,凝聚开发者的社区才能活力无限Vol.8

OpenTEKr

大话开源

Kyligence 韩卿:开源改变了人类生产软件的方式 | 大话开源Vol.10

OpenTEKr

大话开源

APISIX 温铭:开源的本质是要撬动开发者的杠杆 | 大话开源Vol.13

OpenTEKr

大话开源

开源社林旅强:开源之于创新,有时无招胜有招

OpenTEKr

大话开源

架构实战-模块八-作业

无名

「架构实战营」

瞰见 | 美股新贵Confluent背后的卡夫卡,不是那个魔幻小说家

OpenTEKr

狄安瞰源

yuye 个人介绍

努力努力再努力

Java 中间件

【LeetCode】将一维数组转变成二维数组Java题解

Albert

LeetCode 每日一题 1月月更

我选择了VSCode

xcbeyond

vscode 28天写作 12月日更

01 Prometheus之监控基础知识

穿过生命散发芬芳

Prometheus 1月月更

SkyWalking 吴晟:好的开源项目,要能解决真实且有共性的问题

OpenTEKr

大话开源

模块八作业:设计消息队列存储消息数据的 MySQL 表格

dean

架构实战营

LabVIEW图像灰度测量(基础篇—7)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 图像灰度测量 像素灰度

从零打造WhatsApp

俞凡

架构 大厂实践 whatsapp

盘点2021 | 本命年的自我救赎之路

打工人!

盘点 2021 1月月更

IntelliJ IDEA激活码

Geek甜甜

SphereEx 潘娟:玩开源,我们就要秀出别样 My Way 来构建活力生态 | 大话开源Vol.11

OpenTEKr

大话开源

Wechaty 李卓桓:我想要某种功能,你没有?那我来一个

OpenTEKr

开源 大话开源

链游平台 Gacube Finance 登陆虎符Hoo Labs空投

区块链前沿News

Hoo 虎符交易所 GaCubeFinance

如何实现70%丢包下音视频的高可用之数据篇_架构_即构_InfoQ精选文章