要更好的使用TRTC必须要先仔细的了解此产品,所谓知己知彼,百战不殆,我们就先了解下TRTC的底层基本架构组成。TRTC既然是提供实时音视频的SDK,那按照一般的音视频流程(采集-处理-渲染-传输)处理来看TRTC。
我们通过TRTC SDK 下载链接(选择iOS ZIP包下载,根据自己的需求选择专业版或者企业版),下载SDK后会得到一个命名为“TXLiteAVSDK_TRTC_iOS_latest.zip”的压缩文件,将其解压后会得到如下目录文件:
可以看到TRTC SDK主要是在LiteAVSDK上进行封装的,那LiteAVSDK又是个什么呢?
音视频引擎LiteAV
什么是音视频引擎?
音视频引擎负责音视频采集、预处理、编码、传输等过程的处理,音视频数据就是其“燃料” ,源数据经音视频引擎处理后,可以被方便地进行操作与展示。
通用音视频引擎架构示意图
一般的音视频引擎中,都会包含音频引擎、视频引擎、网络传输及基础功能,将这些基本功能封装起来,提供API以供开发者使用和管理,我们在开中一般使用的只是API调用层,下图为通用的音视频音频结构示意图:
LiteAV引擎框架
LiteAV引擎在基本的音视频引擎基础上进行了更多的封装操作,其主要分为两个层级,分别为上层API和底层LiteAVCore,在API层其提供了多个模块主要包括:移动直播(LiteAV_Smart)、短视频(LIteAV_UGC)、超级播放器(LIteAV_Player)、实时音视频(LIteAV_TTRTC)。LiteAVCore包括音视频引擎、网络协议栈、编解码、音视频的JitterBuffer 、人脸识别、状态管理等,在向下层还包括一些Base库如:Thread Pool线程管理、Log日志管理、Encrypt/Decrypt加解密、网络管理。基本图表如下:
LiteAVSDK能力划分
LiteAVSDK从能力上又可分为五个部分:
一、API上层业务调用
二、LocalVideoStream本地视频流预览、美颜、滤镜、动效
三、RemoteVideoStream播放远端数据流、视频解码、渲染
四、AudioCenter声音处理
五、Network网络推拉流。
基本图表见下图:
LiteAVSDK版本关系
这里有各版本详细差异对比
各模块介绍
超级播放器 LIteAV_Player
LiteAVSDK_Player 基于支持网络或者本地 .flv/.m3u8/.mp4 文件播放,主要功能包括 play/stop/pause/resume/seek/mute 等,支持预加载、倍速播放、硬件加速、边下边播。
基于 LiteAVSDK_Player 封装的 SuperPlayer,更能快速的集成视频信息拉取、横竖屏切换、清晰度无缝切换、弹幕、直播时移等功能,灵活易用,可高度定制和二次开发。
其主要流程为:
短视频 LiteAVSDK_UGC
LiteAVSDK_UGC 提供短视频录制、视频编辑、美颜动效、视频特效、声音特效、背景音乐、时间轴预览、视频合唱、贴纸、字幕等功能。
基于 LiteAVSDK_UGC 封装的 UGCKit 组件,支持二次开发,自定义主题,方便开发者集成与修改。使用UGCKit搭建的开源的“小视频”APP,为开发者提供更有效的参考。
注:短视频SDK 产品通过 licence 授权方式在腾讯云上进行售卖,不同级别 licence 差异在这里查看
短视频模块架构示意
移动直播 LiteAV_Smart
LiteAVSDK_Smart 包含 TXLivePusher 和 TXLivePlayer 两部分,前者用于 RTMP 协议的推流,后者支持 RTMP以及HTTP-FLV 协议的拉流。
TXLivePusher 通过引入 RTMP over QUIC 实现低延时推流,抗 30% 丢包的 RTMP 上行推流优化,增强直播推流稳定性;通过引入TRAE,支持耳返、背景音乐、变声变调、混响等声音处理,提升移动直播的可玩性;支持 SEI 编码。
TXLivePlayer 针对直播场景中的分辨率变化、音画同步、缓冲调整等做了适配与优化,增强直播观看的稳定性;通过适配云直播,实现分辨率无缝切换、时移回看等功能;通过 RTMP over QUIC 实现 RTMP 加速播放;支持 SEI 解析。
移动直播主要流程:
实时音视频 TRTC
LiteAVSDK_TRTC 提供 RTC 能力,使用 UDP 私有协议,落地于两大低延时场景:支持 300 人同时通话的多人互动通话,以及 10 万级别人数同时在线播放的低延时互动直播。
TRTC 全球端到端平均延时低于 300ms(最低可达100ms以下);视频抗50%丢包,音频抗70%丢包,1000ms延时抖动可正常互动通话;支持1080P全高清视频,48kHz高清语音;领先行业的 TRAE 语音引擎,出色的 3A 处理,满足单讲、双讲等各种场景下的音质需求。
TRTC主要流程:
下一篇文章将进行demo试跑前的准备工作。