00:02
大家好,我是腾讯云音视频产品架构师涂千航,今天我带来的分享主题是破局音视频终端困境,快速实现多种音视频应用。今天的主题主要会分为四大块内容去介绍,第一个是呃,音视频终端应用开发者遇到了什么样的困境,然后第二个会简单介绍一下腾讯立方SDK产品是什么,以及它的应用场景,最后一块会讲一下立方的技术优化。在分享开始之前,我先来介绍一下当前很多音视频业务开发者一般会面临的问题。一个常规的泛娱乐社交在线教育音视频应用,通常通常包含了多个业务模块,那每一个业务模块需要用到的音音视频能力各不相同。举个简单的例子,一个社交娱乐平台可能会有短视频模块、视频连麦交友模块、秀场直播模块,分别对应短视频、实时音视频、通信直播能力。
01:15
当前现状是,A厂商可能比较专注于短视频的SDK,厂商只有实时音视频的SDK,那C厂商可能比较擅长直播,那开发者需要集成多家的厂商的SDK才可以完成这些模块的开发。这就带来了一些问题。第一点是开发者需要集成的SDK数量比较多,那多个SDK依赖的库有时候又是比较类似的,这就容易造成业务包体冗余过大。第点重要的就是,呃,接入本及S尽相同,那各个SDK只顾好自己的一亩三分地,不从业务的角度去思考和解决问题,给业务开发者联调带来了非常大的困扰。
02:10
还有一点就是管理混乱。那不同的业务模块的license和健全密钥的规则是不一样的,包括它到期时间、版本都可能不一样,这也给业务开发者带来了非常大的困扰。因此,腾讯云提出了四立方的解决方案。四立方是腾讯云在2021年底发布的一个音视频终端SDK的产品合集。这个SDK合集里面集成了直播推流、视频播放、短视频、实时音视频通信模块,一个音视频应用常用的功能模块,用这一个十立方SDK就能搞定。一次接入复用底层的依赖库,精简包体的同时统一接口调用的规则,降低业务开发者熟悉不同文档的作同时立方SDK也用一个license就可以理多的不同的那个能模块,包括短视频、直播、推流颜都是用一个license。
03:20
这就管理,这就解决了版本迭代过程中管理混乱的一个问题。这就是立方SDK的一个逻辑架构,我们从腾讯服务的海量视频上提炼出了六大功能模块的需求啊,包括主播开播啊,主播连麦PK,然后视频的录制、上传、直播观看、点播观看以及音视频通话等。将他们打包组成了一个四立方的SDK。那这个四立方的SDK也分为多个版本,那业务开发者可以根据自己的需求,如搭建积木一般,去自由组合自己所需的SDK即可。
04:04
那对于业务比较复杂,比较综合性的一些业务场景来说,那就直接可以使用全功能版本的SDK,它包含了这所有的功能模块。对于垂直业务领域啊,比如说呃,那个只需要做一些视频通话,或者只需要播放一些直播流的场景,那直接使用子功能版本的SDK即可,体会比较小。此外,我们还提供了搭配音视频常用到的多个增值服务功能。比如说需要搭建超低延时、可靠的消息传输,我们有I'm的SDK。那需要对直播过程中的主播加一些美颜滤镜,或者说加一些虚拟的背景啊,我们有腾讯特效的SDK,如果说需要在房间里面播放背景音乐,我们也有正版的曲库SDK,那避免侵权的风险。
05:02
总之就是强调一个all in one的一个全家桶的概念,音视频应用里面需要用到的东西,咱们腾讯云都有对应的解决方案。端上的SDK,当然是需要搭配云端的能力才能发挥出来。腾讯云音视频在云上的解决方案就是一个网络。R to包含三个网络,TRTC实时音视频通信网络、I'm即时通信网络以及CDN流媒体分发网络。我们把这三张网络整合成了一张网络底层技术复用,互相融合,互相赋能,满足客户各种多变的实时互动场景。目前r one在全球已经拥有超过了2800多个CDN的加速节点,而且整一个数量还在持续增长中。除了我们自建的那个节点之外,我们还在第三方的合作伙伴上面去搭建我们的音视频以及IM者即时通信服务。
06:08
此外,RT还拥有超过了200TB的一个带宽储备,满足客户对超低延时、大规模互动的音视频和及时消息收发的需求。总结一下,就是一个R万加四立方,腾讯云能给那个音视频业务开发者提供整一个云加端一体的。稳快权。稳怎么去体现?示例方式,基于QQ20多年来音视频技术的积累,以pass的产品形式交付出来的一个音视频通讯云服务。我们可以说是市面上同时唯一唯一同时具备这三个网络的pass服务厂商。
07:03
在音视频综合产品方案上的市场排名是第一的,那覆盖了90%的音视频客户,使用非常的稳定。全,全指的是全终端的SDK,我们除了刚刚提到的功能上的全,就是覆盖了这些视频采集、推流、移动直播等这些功能的SDK之我们平台也是比较。那比如说呃,安卓iOS程序以及平台的一些APP,我们都有相应的SDK,那一次接入处调用。各端之间都可以互联互通。怎么去体现呢?就是说除了立方底层的这些视频通信能力之外,我们面对垂直场景,比如说视频通话、场播等,还装各的源组场。
08:07
又想快速上线的一些应用。这种代码的接入方案,现在咱们也有不少客户在用到,其中不乏一些比较大的客户也有用到这些组件。这个图呈现的就是咱们I加四立方的一个架构流程图,那左边蓝色的这一块就是实时音视频TRTC的模块,可以看到多端啊都可以进行一个私有协议的超低延时的一个互动通信。当然在TRTC进行连麦的过程中,我们也可以把流通过旁路直播给到我们的CDN分发网络啊,给到可以给到观众进行一个大规模的公有协议的一个并发拉流。那在直播的同时,我们还还可以将直播内容进行录制,存储到我们的云点播平台,用于后续的视频回溯以及点播回放。
09:05
还有原创多媒体引擎,提供了丰富的视频剪辑以及视频处理功能。右上角是我们呃经常会协同四立方用到的一些增值服务功能模块,比如说即时通信IM用来做消息的收发,腾讯特效引擎用来做一些背景分割以及以及一些美颜滤镜等等。正版曲库刚刚提到了,就是播放一些背景音乐,或者说一些K歌的玩法里面会用到。那互动白板,它是经常搭配在线教育的实时音视频里面使用到的一个,呃,白板的一个工具。然后天域内容审核安全,它可以做一些呃直播过程中的实时语音,实时视频,包括文字的内容审核,然后及时发现一些敏感的一些问题,及时采取一些预警的措施,然后语音识别ASR,这个是主要用来做呃搭配TRTC或者直播用来做一些直播的字幕等。
10:10
还有PSTN的话,它是提供了一个TRTC转协议的一个网关,然后它可以实现类似于腾讯会议电话接入这样子的一个功能。前面讲完了示立方是什么以及它的架构之后,那我们来了解一下它的接入流程啊,只需要这五步,就可以轻松的将一个音视频通信能力嵌入到你的产品应用里面。首先确认的是你的产品的类场景,是一个播类,是一个视频类,是视频通话类的一个呃应用,那分别下载对应的SDK,那开通对应的license,那如果是TTC的话,就创建一个呃TTC的应用即可。
11:02
然后最后选择你的那个集成方式,如果对那个UI没有过高的要求,那我们也提供低代码的UI的接入方式,那如果您需要呃自由的去组合一些比较灵活的业务场景,那我们也提供这种更偏底层的不含UI的集成方式。那通过这五步,最快一天就可以在你的项目应用里面跑通一个音视频通信或者直播的能力,非常的快捷。四立方是一个音视频产品的功能合集啊,接下来我会从这六个方面的能力分别去阐述一下它具体的一些应用场景。首先是TRTC模块,那TRTC全称是腾讯云实时音视频通信,这是四立方里面最核心的功能模块,也是延时最低、品质最好的音视频通信模块,至今已经有每天30亿分钟的上行时长,以及5000多家月活客户的一个规模。
12:15
全球端到端的延时一般是低于300毫秒的,这个TC也广泛的应用于社交、泛娱乐、在线教育、视频会议、智能硬件、金融双录等场景。他强调的是一个实时性啊,只要需要用到实时互动通信场景的业务,那都是TRTC的应用场景。啊,比如说社交泛娱乐里面包含有很多语音社交、视频互动社交的场景啊,最传统的是像视频直播,语音直播等,大家的大部类社交应用产品,其实都是腾讯。
13:05
珍爱网、陌陌等。还有一些比较新兴的业务场景,如云游戏、实时合唱,还有虚拟世界等啊,其实也是融入了TRTC啊,利用利用了TRTC超低延时的优化以及空间、音频等一些特性打造出来的一些创新的应用场景。然后视频会议就不用说了,咱们腾讯会议就是TTC最好的一个能力体现。还有之前比较火的,比如说在线教育的小班课课程,音乐陪练课程,都是TRTC主流的应用场景。此外还有一些像智能手表,然后机器人有化的客是T。
14:02
直播SDK是一个强大功能强大的终端推流推拉流工具啊,主要用于各类的高并发大规模的单向直播场景,比如说呃,标准的秀场直播、电商直播、赛事直播、展会直播等。但有别于传统的直播推流具,腾讯直播云直播SDK合了TT快直播、标准直播的能力,扩展性非常的强,它上行支持RTP以及RTC的推流方式,下行支持TRTC快直播以及标准直播的播放。于播产来需要一简单播需。那他只需要将直播连麦的上下行都切换成TRTC做推拉流,再进行旁路给到云直播给观众观看即可。
15:01
原有的业务逻辑都不需要改动。那如果说客户对延时还是不满意,那就可以将普通的CDN直播升级为快直播,那这个只需要简单的一些参数配置修改就完成。这也是腾讯云音视频产品融合互通的特性表现,目前咱们像市面上看到的斗鱼小儿通都是用用到了咱们的直播SDK的能力。发,还有云点播的能力,那提供了集成了采集、剪辑、编辑、拼接、特效、分享、播放等功能的客户端SDK类移动端的场景,比如一些视频的新视频,以及电信游戏里面一些呃精彩的剪辑片段等。
16:08
也是提供了带UI以及不含不含UI的集成方式,帮助客户聚焦于业务本身啊,快速轻松的实现基于移动端的一个视频应用。播放器SDK产品功能非常的全面,适合腾讯视频同款的一个视频播放器,可用于直播观看和点播播放。SDKS。那个播放器SDK最大的特点就是功能全面,支持RTMP。还有还有视频安全倍数精准,首屏秒秒开的预加载的那个能力。
17:05
同时针对点播和直播的业务,我们也提供这种场景化的数据指标啊,比如说一些卡顿率啊,一些播放成功率等统计数据。可以帮助业有效运营决。那腾讯特效的引擎SDK就是咱们常提到的美颜的功能,这个SDK是整合了天天P图以及微视的美妆滤镜、贴纸等动效资源啊,基于腾讯优图的强大的AI算法检测能力,提供业界领先的那个美颜的功能。那它也可以搭配直播SDK,搭配视频,搭配TRTC都可以使用。之人皆有之,好的形象一般让人看起来会比较服一些,所以括频场景里面都经常会用到这一个SDK,在秀场直播的呃,主播开播的呃过程中,通常会用来做一些像美容,美容美妆,然后美颜这一些功能。
18:16
然后在一些金融视频客服的场景,那除了一些基础的美颜能力之外,那呃,客服的背景不好统一,那美颜的人像分割以及虚拟背景的功能就派上用场。最后一个模块是即时通信I'm的模块,它其实不是在视立方SDK里面啊,但是音视频通信场景一般也离不开它。I'm SDK是一个基于QQ底层I'm能力开发的一个SDK,那业务开发者只需要植入SDK就可以轻松的获得啊。消息传输、会话管理、关系链管理、群主管理等这些能力帮助业务开发者去实现文字、图片、短视频、短语音这一些媒体的消息的收发。
19:10
典型的应用场景就是一切需要做,呃,发送消息的场景,比如说一些私聊、群聊,那直播弹幕评论,还有打赏送礼物,还有一些业务信令的传输,都是即时通信I'm的应用场景。目前使用腾讯云I'm的月活用户数在全球范围内也已经超过了10亿的用户规模。前面提到了这么多的产品能力及应用场景,接下来我们来看一下四立方在满足众多复杂业务场景需求的过程中,都做了哪一些技术实践的优化。首先是在视频方面,我们针对视频的编解码策略是多做了比较多呃不同应用场景的技术优化的,那比如说在一些呃下行带宽比较有限的场景下,我们有这一个时域的SVC分成编码。
20:17
那什么是这个十月SVC分成编码,那一般的直播产品在处理下行带宽限速的那个场景下,它会使用转码的技术,那就是说我主播可能推出来的是一个超高清的流,那我在云直播的平台上去进行一个转码,将这个原始的码流转成呃,超高清、标清以及高清等多种不同质量的流,然后下行去根据不同的网络质量情况去切换拉不同质量的流。但是RTC由于延时以及成本的考虑,那一般不会做房间内的转码,那所以我们需要在编码的时候就去进行这一个分层,那所以时域分层编码就是做这样一个事情的一个编码技术。
21:10
他在上行端,那我主播编码的时候,通过增加一定的比较小的一个带宽,那我就可以将这个码流编成两啊,分为一个基础层,还有一个增强层。那面对那个下行带宽不足的时候,那我只需要拉一个基础层画面啊,就可以看到一个比较完整流畅的一个画面,那面对一些呃,那个网络正常比较质量比较好的网络情况,那我可以把那个增强层也同步的拉下来,那就可以带来一个更好的一个画质体验,这就是呃时域分成编码,用来保障不同下行网络带宽的一些用户观看体验的一种编解码技术。另外一个经常跟时域分层编码搭配使用的就是咱们的RPS参考帧编码。
22:06
那什么是RPS参考帧编码?它其实是二六里面经常会用到的一种编编码策略。那一般情况下,咱们都是一个构分组内的帧,都是做就近参考帧的编解码的。那假如说网络情况不好,那到接收端的时候就近参考帧丢了,那后续的帧可能就无法解码了,这就会造成一些呃卡顿的情况,那这个时候我们就可以做这个夸张的参考编解码。那跨展参参考编解码,它就可以参考前项的多个帧去做解码,这样即使就近的帧丢了,那我们也依然可以从算法得出关联性较强的多个前项批针上面去做参考解码。我们把这种编解码策略也融入到了TRTC的编解码策略里面,去保障视频在弱网情况下的一个流畅性。
23:07
然后还有在编码效率方面,我们还会采用LY的那个感兴趣区域编码。其基础,其基础的基本的一个原理就是说我在一个重要的LY区域,我会增大其码率,会用更多的码率去编码,那比如说在一些比较关键的地方的一些背景,那我就呃更少的码率去保证总码率不会超出我设置的一个编码码率。呃,从而得到一个比较高质量的一个画面。那实验测试也证明了,在高码率的场景下,呃,主观质量基本不变的一幅图像,那么用I编码,它的码率大概可以节省20%~30%,这是对贷款敏感型的一些呃场景或者客户是一个比较好的一个编码,一个策略。
24:06
啊,除了视频,咱们对音频也是一样,做了非常多的呃,弱网抗性优化。啊,比如说在一些突发的呃丢包的一些网络问题下面,会造成呃声音的卡顿,在语音通话的过程中会严重的影响体验。那传统的RTC技术是提供了像纠错、丢包补偿等技术,但是这一些技术也只能对的丢包进行一些补偿或者纠错啊,对于一些更长的丢包,他们就无能为力了。那鉴于此,那腾讯的天籁实验室也研发了自主的,自主研发了这种cec以及clc的技术组合,融合了经典信号处理以及深度学习算法,以非常低的代价就可以覆盖呃,成功覆盖高达20毫秒到一百二十一百二十毫秒的音频丢包场景,那对对比op原生的这个丢包补偿跟前向纠错,我们可以看到在不同的丢包率情况下,我们的音频的这个MOS值评分啊都是比较高的。
25:17
它效果也是比较显著的,那所以说在弱网情况下,也能保障一个比较优质的音频连续性,以及呃语音质量。最后一个需要提到的技术优化时间点就是咱们的云端智能系统。TTC支持一个呃,动态调整客端QOS的策略,可以动态的去配置呃,客户端跟服务端之间的拥塞控制啊fec的比例,以及AQ的一个比例。首先这是一个基于云端的控制引擎,那把控制引擎放在云端的好处就是说可以减少终端版本迭代的一个兼容性问题,并且也可以比较方便的进行算法的A的那个效果验证。
26:12
那云端的智能流控系统是可以细化到呃用户级别的。那用户即使身处一个房间啊,也能做到啊,每个用户的独立调控,保障每一个用户的音视频体验。这个用户级别的调控通常是SDK内部的逻辑机制啊,无需业务开发者去搞清楚复杂的流控策略,那TRT息会自动的根据客户端到服务端之间的丢包率、延时啊,抖动设备信息等一些指标来做出总体的流控决策。比如说在秀场直播场景里面啊,通常对主播的画质要求会比较高,那我们在弱网的情况下,就可以使用优先降帧率画质的一些流控策略。
27:06
那在在线教育的场景里面啊,一般对流畅性的敏感度是会比较高的啊,因为学生需要完整的听清楚老师说的每句话,否则会产生一些歧义,那么在这种情况下网的时候,我们就可以通过一些画质降低编码的分辨率来保障整一个课堂的流畅性的一个策略。最后我们会根据这些历史的音质评分,画质评分啊,流畅度表现啊,不断的去收集bad case啊,并且通过这些case的那个积累大量的流控规则,让我们的云端调控更加的具有针对性,更加的智能,给不同业务场景啊,不同的用户下发更加智能的流量控制策略。以上就是咱们这个音视频技术实践优化的一些关键点。
我来说两句