写点什么

音视频媒体 QoS 保障机制

  • 2020-02-04
  • 本文字数:1409 字

    阅读完需:约 5 分钟

音视频媒体QoS保障机制

低延迟连麦技术

目前大多数的互动直播都是主播与观众的一对多模式,观众与主播的互动主要通过使用文字、点赞、礼物等方式进行。在这种模式下,主播和观众的互动性不够直观和及时。考虑到直播时观众若能与主播进行实时的音视频互动,将会大大提高用户的参与感、增加用户粘性,目前很多直播平台都支持或者正在开发支持观众和主播连麦互动的功能,这也是目前各直播平台主要的竞争技术点之一。



连麦的简单过程如下:


  • 主播正常开始直播,观众进入房间观看主播直播画面(普通直播);

  • 直播过程中,想要连麦互动的观众发起连麦请求,进入连麦申请列表;

  • 主播从连麦申请列表中选择一名或多名观众进行连麦互动,主播可以看到并听到连麦观*众的声音画面;观众也可以看到并听到主播和其他观众的声音画面(连麦直播);

  • 连麦结束,恢复原来的主播单人直播模式。


由此可知,“连麦”要求主播和上麦的观众能够展开实时的音视频互动,这对音视频的延时和同步提出了很高的要求。

那么它该如何实现呢?

音视频实验室互动直播 SDK 针对以下几个方面持续地进行优化:


首先,在上麦时刻,基于 SDK 的秒进房特性(在另外一篇 SDK 介绍文章《音视频实验室:服务于 130+客户的直播 SDK 是怎样炼成的》中有详细介绍),连麦观众能够实现快速进房间,主播也能够快速看到上麦观众的音视频画面。

其次,在编解码端,我们对编码器效率的持续优化使得编码器耗时更小,在同等质量下码率更低,从而需要传输的数据量更小,更有利于延迟的减少;对于视频编码,我们支持 IOS、Android、PC 三端的硬件编解码,使得编码耗时更低;同时也支持软、硬件编码实时互相切换,调整更灵活,响应及时。

接着,在传输端,我们采用基于实时性很高的 UDP 协议而优化的私有的 UDT 协议,而不是直播行业常用的 RTMP、HLS、FLV 等方式,从而减小了延迟,适合于对实时性要求高的应用场景。


小科普:


RTMP、HLS、FLV 等传输协议是基于 TCP 的上层协议。TCP 协议的几次握手挥手过程和丢包重传特性都会使得延迟无法降到很低,尤其当网络有丢包和抖动时,延迟变得更加不可控。


UDP 协议就没有这些繁琐的过程,因此它有非常高的实时性,延迟能够达到 1s 以下,因此一般用在视频会议、监控、IP 电话等实时场景。但 UDP 是简单不可靠的传输方式,本身没有 QoS 的保障机制,存在丢包和乱序现象,必须要额外增加网络 QoS 机制来保证传输的质量。



我们自研的 UDT 协议通过一系列策略优化,既保证了网络 QoS 抗性,也保证了连麦场景下能够有较高的实时性:


在流控层,连麦场场景下,专门调测一组低延迟的、对音视频质量无明显影响的编解码参数和网络传输控制参数。


在接入层,依托腾讯在全球强大的服务器部署,利用智能的接入分配策略,实现最优的就近接入、跨地域、跨运营商优化接入。


基于上述几个方面的优化,音视频实验室互动直播 SDK 的连麦场景实现了最低可达到 400ms,普通网络下平均 600+ms 的低延迟连麦体验,在兼顾低延迟的同时还能保证抗性能抗最大 45%的网络丢包:


结语

本文简单介绍了最近很火的互动直播基本情况和技术特性,接着对音视频实验室互动直播 SDK 及其音视频核心技术特点进行了分享(点击阅读原文按钮,可查看上篇直播 SDK 技术揭秘)。


针对音视频实验室互动直播 SDK 现有的高性能,我们还将持续深入地优化、精益求精,以实现更丰富多样的功能性、更强的网络适应性,和更优质的音视频体验。


本文转载自腾讯多媒体实验室公众号。


原文链接:https://mp.weixin.qq.com/s/BmLeVbM5wsZUKVcCH1skbw


2020-02-04 20:381164

评论

发布
暂无评论
发现更多内容

你的“数学潜意识”原来可以被唤醒!

博文视点Broadview

java培训如何用反射做简易 Spring IOC 容器

@零度

Java springloc

从多快好省到好快省多,您的项目管理走对了吗?

禅道项目管理

项目管理

Meetup预告|云原生时代热门监控利器解析与应用

云智慧AIOps社区

运维 云原生 安全 监控工具

知识管理在企业竞争发展中的作用

小炮

知识管理

大数据培训连续登录经典面试案例

@零度

大数据

项目管理标准化的武林秘籍

大智若愚

团队管理 项目管理 标准化 软技能 标准框架

SeaTunnel 在 oppo 的特征平台实践 | ETL 平台数据处理集成

Apache SeaTunnel

Big Data 大数据平台 大数据开发 apache 社区 opensource

云原生时代已来,计算机教育如何因「云」而变?

阿里云弹性计算

云原生 ECS 计算机教育

揭秘!网易有道技术岗实习生都在做什么?

有道技术团队

招聘 实习 网易有道

手把手教你从Apk中取出算法

奋飞安全

android 安全 java

windows下C与C++执行cmd命令并实时获取输出

DS小龙哥

3月月更

WebGL 及其在 WebRTC 中的应用

ZEGO即构

WebRTC WebGL 实时音视频 即构科技

OceanBase 源码解读(九):存储层代码解读之「宏块存储格式」

OceanBase 数据库

源码剖析 oceanbase

无监控不运维—浅述各种监控方案使用场景

穿过生命散发芬芳

3月月更

【愚公系列】2022年03月 Docker容器 Kafka集群的搭建

愚公搬代码

3月月更

ABAP 文件上/下载

Jasen Ye

upload abap download template GRAPHICS

实践丨SpringBoot整合Mybatis-Plus项目存在Mapper时报错

华为云开发者联盟

spring 容器 Spring Boot 测试 Mybatis-Plus

微服务架构下消息服务多通道设计思路

全象云低代码

微服务 低代码 后端开发 消息中间件 后端技术

ABAP excel数据上传函数改造

Jasen Ye

Excel upload abap

【直播回顾】OpenHarmony知识赋能第四期第三课——I2C驱动开发

OpenHarmony开发者

OpenHarmony 驱动开发

web前端培训如何用CSS来实现透明方格

@零度

CSS web前端

加快云原生技术转型, 智能调度登陆华为云DevOps: 增速,节源

华为云开发者联盟

软件 DevOps 代码托管 智能调度 华为云DevOps

从HDFS的写入和读取中,我发现了点东西

华为云开发者联盟

hdfs HDFS写入 HDFS读取 文件读取

Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB

PingCAP

一首古诗带来的图数据库大冒险

NebulaGraph

知识图谱 实践案例 分布式图数据库

从0到1落地电商小程序之微服务设计

晨亮

「架构实战营」

数仓如何设置大小写不敏感函数

华为云开发者联盟

MySQL DWS GaussDB(DWS) 大小写不敏感函数 GUC参数

如何升级到 React 18

CRMEB

速度和质量不可兼得,为什么DevOps落地如此困难?

飞算JavaAI开发助手

对于金融机构而言,为什么选择私有化IM比企业微信、钉钉更好?

BeeWorks

音视频媒体QoS保障机制_文化 & 方法_腾讯多媒体实验室_InfoQ精选文章