实时音视频开发学习1 - 音视频初体验

2020-08-25 13:11:57 浏览数 (1)

TRTC基本内容

随着移动互联网速度越来越快的发展,实时音视频的发展也越来越收到重视。腾讯实时音视频(Tencent Real-Time Communication,TRTC)经过了10多年在网络音视频技术的发展与积累,并以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,使得开发者能快速实现低成本、低延时、高品质的音频互动解决方案。

产品架构

实时音视频TRTC主打平台互通的多人音视频和低延时直播互动解决方案,提供了小程序端、web端以及终端的SDK用于快速集成,并与云服务后台连通。此外,通过腾讯云不同产品间的互动联动,还能快速实现音视频TRTC与IM、CSS、VOD等云产品协同使用。以下为产品架构:

通常需要进行一些前端展示,那么建议使用Chrome52 ,而微信小程序上,IOS最低版本为7.0.9,Android最低版本为7.0.8,并且小程序基础库最低版本要求为2.10.0。更多请参考:https://cloud.tencent.com/document/product/647/16788

产品功能

TRTC产品功能齐全,种类丰富,包含基础功能、一些高级功能以及拓展功能。基础功能包括视频通话,即两人或多人视频通话,支持高清和全高清画面;语音通话,即两或多人语音通话,支持48KHz,支持双声道;视频互动直播,包含观众互麦、主播跨房低延时等;语音互动直播,功能同视频互动直播。

高级功能方面,操作上支持互动连麦、跨房PK、屏幕分享、云端录制以及服务端本地录制;性能上支持高音频、高画面、美颜、音效、BGM、混响等;自定义方面支持自定义音视频数据和通过SEI帧自定义信息到视频流中。

拓展功能上方面,借助CDN直播观看,实现线下观众无线量。连通即时通信IM实现单聊、群聊、弹幕、送礼、点赞等。也可开通互动白板,实现多人在线实时共享白板交互,实现互动课堂。此外在安全方面也增设了音视频内容审核,对涉黄、涉政等内容进行安全检查,给用户更好的体验。

产品优势

国际上,TRTC产品在业界真正实现全平台互动连通解决方案,5000 终端完美适配,不仅适用于各平台全球互通,还能在微信、QQ、企业微信的小程序中使用TRTC服务。使用上,低延时,保证国际链路端到端平均延时<300ms;低卡顿,实测抗丢包率超过40%、抗网络抖动超过1000ms;高品质,支持720P、1080P高清画质。学习上,低门槛跨度接入,仅需2行代码即可跑通测试Demo,10行代码完成通用能力接入,并且场景化定制组件更能帮助开发者以最简单的方式快速实现功能落地。

应用场景

TRTC应用场景主要分为四个方面,语音互动直播、视频互动直播、语音通话以及视频通话。语音互动直播上包含语聊房、语音电台和在线K歌,实现用户在线聊天、在线K歌,并提供点赞、送礼、加特效等人性化服务。视频互动直播包括秀场直播、课堂、小程序直播和直播答题,提供主播和观众互麦联动、上下平滑切换,点播,点赞送礼,满足直播下各种高频互动需求;课堂上也为老师和学生提供了屏幕共享、互动白板和录制回放等多种课堂应用功能。

语音通话包含多人语音通话、双人语音通话、语音会议和狼人杀等,支持低延时、抗丢包、抗网络抖动等,为用户提供了良好的会议和游戏体验。视频通话上包含单/多人视频、在线医疗、在线客服等,不仅拥有低延时好、抗丢包性强和抗网络抖动特性,还提供了高质量的视频通话模式,而且还能结合即时通信IM、屏幕分享、录制、互动白板等多种功能,触达各种应用场景。

基本概念

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服务端请求拉去指定用户音视频数据的操作,相当于粉丝观看,对应拉流过程。

角色

TRTC支持主播anchor和观众audience两种角色,主播既支持向服务端推送自己的音视频数据,也支持从服务端订阅并播放其他主播角色的影视数据。而观众仅支持从服务端订阅并播放主播角色的音视频数据。

但是观众可以通过切换身份的形式同主播进行连麦,或者在通话模式下,所有进房间的用户均为“主播”角色。

CDN直播

TRTC 采用旁路推流的方式使用云直播的能力为您提供全程的云端录制功能(即录音/录像),并将录制下来的文件存储到云点播平台,保证录制过程的可靠性和实时性。

云端混流转码

在 CDN 直播观看和云端录制等应用场景中,可能需要将 TRTC 房间里的多路音视频流混合成一路,可以使用 TRTC 云服务后台的MCU混流转码集群来完成该项工作。MCU 集群能将多路音视频流进行按需混合,并将最终生成的视频流分发给直播 CDN 和云端录制系统。

注:来自学习的笔记综合

0 人点赞