什么叫TRTC
TRTC 即 Tencent RTC,中文名是腾讯实时音视频,源自 QQ 音视频团队,是基于 QQ 十几年来 的音视频技术积累,在腾讯云上部署售卖的 RTC 云服务,致力于帮助企业快速搭建低成本、高品质、 跨平台的实时音视频互动能力的完整解决方案。 功能上支持语音通话、视频通话、连麦互动、美颜滤镜、旁路推流、视频录制、混流转码、交互式 白板、桌面分享、截图、鉴黄等,并提供微信小程序、 WebRTC、APP、PC、MAC 等全平台互联互 通能力,很好地应用于云游戏、云会议、快直播、实时音视频 PaaS 服务等领域。
什么叫实时
技术定义上,一般我们对端到端的通信,按延时情况分为以下三种:
- <1000ms,称为实时,常见的应用有语音通话、视频通话、视频会议等。
- 1000-3000ms,称为准实时,常见的应用有即时通讯、电子邮件等。
- >3000ms,称为伪实时,常见的应用有短信、传真、直播等。
TRTC可用于什么场景
TRTC的核心是端到端1000ms以内的音视频技术,适用于实时性要求高的业务,例如腾讯云搭建于TRTC之上的业务
- 云游戏
云端游戏渲染,利用 TRTC 传输,打开浏览器即可实时在线玩游戏。
- 云会议
利用 TRTC 实现云端会议系统,跨省、跨国随时异地开会办公。
- 快直播
CDN 2.0,高并发、低延时、标准化的下一代内容分发网络 。
- 实时音视频PaaS服务
RTC 云服务 PaaS 解决方案,覆盖两大核心场景:多人实时互动、十万人低延时直播。
具体应用场景
10人以内互动:1V1、1V4、1VN ()N<10
- 教育:一对一专人教育,1V2 1V4小班课
- 泛互:1V1、多人通话,语聊,狼人杀,相亲,约会,桌游等
- 金融/政企/企业:客服会议
10-100 人互动
- 教育:大班课、超级小班课
- 泛互:连麦、直播小房间、聊天室、小公会
- 企业:业务大会、跨区异地会议
100 人以上互动
- 教育:大型公开课、大班课
- 泛互:直播大房间、大公会、万人大房间
TRTC产品特质
以小程序和web也就是浏览器之间的的视频通讯为例 很显然,有着一个小难点,跨平台了。这时候,我们可以用到TRTC在微信小程序端的SDK和web端的SDK,先去和TRTC云服务进行通讯,由TRTC云服务去对双方的音视频数据进行处理和传输。
SDK是什么? SDK是软件开发工具包,由开发人员使用其工具包提供的接口,去对接TRTC的云服务。同时,各平台的SDK由于使用协议和规则不同,使用方面在风格统一的模式下,又略有差异。
云服务是什么? 这个的涉及面比较广,粗略的说一下吧,一则是云服务器,以TRTC为例,通过TRTC的SDK,可以访问到TRTC的专有服务器。二则,是云计算,同样以TRTC为例,音视频压缩算法,协议转换交互,状态控制推送等。简单来讲就是,你通过SDK访问我服务器,我通过你的设置和链接,进通讯处理和传输。
由此可知,TRTC本质上就是一个音视频通讯的云服务,TRTC的SDK则是你使用它的工具和桥梁。
基础音视频通话
提供多平台互通、高品质、可定制实时视频通话服务,无论手机 QQ / 微信小程序 / 公众号 / QQ 浏览器,还是其它所有接入了 TBS 的 App(20000 ) 中,在无需音视频技术基础的情况 下,都可以通过本方案从零开始即刻搭建出音视频通信平台。
- 支持终端用户在微信公众号、微信小程序、手机 QQ、QQ 浏览器、Chrome、Safari、App 等 快速发起/接受/断开音视频通话
- 可通过< webrtc-room>自定义组件快速实现小程序与 WebRTC 互通
- 支持窄带、宽带语音链接,保证高质量音频通信。
- 支持 1080P 超高清视频,云端流控策略优化,保证高质量视频通信。
十万人低延时直播
腾讯实时音视频(TRTC)服务在快直播领域,提供基于 CDN 2.0,平滑上下麦,单房间支持 10 万人并发<1000ms 低延迟播放解决方案。
CDN旁路直播
麦上低延时、麦下 CDN,腾讯实时音视频(TRTC)服务支持通过旁路直播节省带宽费用,实现
云端视频录制
商用的音视频解决方案,出于取证、质检以及审核的要求,可能会有录制需求。腾讯云实时音视 频服务提供全程的云端录制服务,录制下来的视频可以通过 云点播平台 获取。
基本概念
SDKAppID
应用标志的ID,是腾讯云后台用来区分不同TRTC应用的唯一标志,可以借助辅助开发,实现快速跑通demo同时生成SDKAppID。一个ID可以在云直播、云点播中共同使用,但是不同ID之间的数据是不互通的。
UserID
用户标志,用于在一个TRTC应用中唯一标志的用户。可以用来作为登录音视频的账号,开发者可以直接使用用户名作为UserID,但是其取值范围最好不超过32个字节,需要使用英文字符、数字或下划线,泵全为数字。在音视频开发过程中,通过判断UserID的不同可以给房间添加成员。
RoomID
房间ID是一个音视频的空间,同一房间的用户可以互相接收对方的实时视频数据。在开发中用来作为主播的推流房间,粉丝的拉流房间。需要注意的是,TRTC房间是一个虚拟概念,用于用户之间的相互隔离,不同房间的用户不能接收音视频,且一个用户同时只能进入一个房间。取值范围:1 - 4294967295。
对于类似的狼人杀的音视频功能,第一个加入房间的用户成为房主,但是不能主动解散房间。只有所有用户都主动退出房间后或者房间所有用户都掉线,30秒后服务端会自动解散当前房间。而单个用户掉线,在30秒后就会自行解散。
UserSig
用户签名,是腾讯云设计的一种安全保护签名,用于对一个用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击盗用者盗用用户云服务的使用权。密钥采用的是HMAC SHA256 加密算法,结合SDKAppID,SECRETKEY和 EXPIRETIME三个关键信息计算得出,只用攻击者不能伪造UserSIg,就无法盗用您的云服务流量。也可以在实时控制台切换老版本的ECDSA-SHA256加密形式。
推送
推送只用户将本地音视频数据上传给TRTC服务端的操作,相当于主播,对应推流过程。
订阅
TRTC支持主播anchor和观众audience两种角色,主播既支持向服务端推送自己的音视频数据,也支持从服务端订阅并播放其他主播角色的影视数据。而观众仅支持从服务端订阅并播放主播角色的音视频数据。
角色
TRTC支持主播anchor和观众audience两种角色,主播既支持向服务端推送自己的音视频数据,也支持从服务端订阅并播放其他主播角色的影视数据。而观众仅支持从服务端订阅并播放主播角色的音视频数据。
但是观众可以通过切换身份的形式同主播进行连麦,或者在通话模式下,所有进房间的用户均为“主播”角色。