实时音视频 TRTC 常见问题汇总—咨询问题篇

TRTC 是腾讯云基于 QQ 十多年来在音视频通话技术上积累,结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。
(1)您可以通过“crtl+F”(win)、“command+F”(mac)搜索关键字。
(2)若没有您想要的问答,欢迎在评论区提问、留言和交流,笔者会定期解答疑惑。
(3)最新产品动态与变更以官网文档为准。

一、功能咨询

1. TRTC 支持哪些平台?

支持平台: iOS、Android、Win(C++)、Win(C#)、Mac、Web、Electron、微信小程序、Linux服务端

快速入门:https://cloud.tencent.com/document/product/647/17195

官方Demo体验:https://cloud.tencent.com/document/product/647/17021

官方Demo及SDK下载:https://cloud.tencent.com/document/product/647/32689

2. TRTC 是否支持音视频通话免提模式?

  • 支持,免提模式其实就是设置音频路由。原生SDK通过 setAudioRoute 接口切换,小程序通过 live-player 标签的 sound-mode 属性设置。

3. TRTC 是否支持音量大小提示?

4. TRTC 是否支持设置镜像画面?

5. TRTC 是否支持录制通话过程中的音频到本地文件?

  • 支持,通过 startAudioRecording 接口可以将通话过程中的所有音频(包括本地音频,远端音频,BGM 等)录制到一个文件里,目前支持的音频格式有 PCM, WAV, AAC。

6. TRTC 是否支持音视频互通过程中的视频录制成文件?

  • 暂不支持本地录制,可以用云端旁路录制视频。

7. TRTC 是否支持类似微信视频通话的悬浮窗、大小画面切换等功能?

  • 这些属于UI布局逻辑,SDK并不限制UI上的展示处理。在官方Demo中提供了画面前后堆叠和九宫格布局模式的示例代码,并且支持悬浮窗、大小画面切换和画面拖动,可以直接参考 官方Demo

8. TRTC 怎么实现纯音频通话?

  • TRTC没有音频和视频通道的区分,都是统一传输的,集成了 SDK 进入房间的时候,只调用 startLocalAudio() 接口开启本地音频采集,不调用 startLocalPreview() 接口开启摄像头采集,即纯音频通话模式。

9. TRTC 是否支持自定义采集和渲染音视频数据?

10. TRTC 纯音频通话怎么实现旁路推流和录制?

  • TRTC SDK版本在6.9之后,在进房时选择场景参数为 TRTCAppSceneAudioCall 或 TRTCAppSceneVoiceChatRoom 即可;若 TRTC SDK版本在6.9之前,请查看此文档纯音频旁路和录制参考

11. TRTC 房间能不能支持踢人、禁止发言、静音?

  • 可以。
  • 如果是简单地信令操作,可以使用 TRTC 的自定义信令接口 sendCustomCmdMsg,开发者自己定义相应的控制信令,收到控制信令的通话方执行对应操作既可,比如踢人就是定义一个踢人的信令,收到此信令的用户就自行退出房间。需要注意的是,sendCustomCmdMsg 只针对有上行数据的用户才有效。
  • 如果是需要实现更完善的操作逻辑,建议开发者通过 IM 来实现相关逻辑,将 TRTC 的房间与 IM 群组进行映射,在 IM 群组中收发自定义消息来实现相应的操作。

12. TRTC 能支持拉流播放 RTMP/FLV 流吗?

  • 支持,TRTCSDK 里目前打包了 TXLivePlayer,另外如果有更多播放器功能需求,可以直接使用 LiteAVSDK_Professional 版本,包含了全部功能。

13. TRTC 能不能支持屏幕共享?

平台

描述

iOS/Android

当前版本Android支持手机录屏,iOS支持APP内录屏

Windows/Mac

当前版本的SDK已经支持

WebRTC

当前版本的SDK已经支持

Electron

当前版本的SDK已经支持

小程序

暂不支持

14. TRTC 最多支持多少人通话?

  • 通话模式下,单房间支持300人同时在线,50人同时上行数据。
  • 直播模式下,单房间支持10万人以观人角色观看,50人以主播角色上行数据。

15. 实时音视频(TRTC)是否可以移动直播通信?

  • TRTC与移动直播后台方案架构不同,所以不支持直接相互通信。

16. TRTC 进房 UserID 是什么?取值范围是多少?

UserID 即用户ID,用于在一个实时音视频应用中唯一标识一个用户,用户可以自行设置。取值范围长度建议不超过32字节。请使用英文字母、数字或下划线,区分大小写。

17. TRTC 房间的生命周期是多久?

  • 第一个加入房间的用户为当前房间的所有者,但该用户无法主动解散房间。
  • 通话模式下:所有用户都主动退房时,后台立即解散房间。
  • 直播模式下:最后一个退房的用户是主播角色时,后台立即解散房间;最后一个退房的用户是观众角色时,后台等待10分钟后解散房间。
  • 如果房间内的单个用户异常掉线,90秒后服务端会将该用户清理出当前房间。如果房间内的所有用户都异常掉线,90秒后服务端会自动解散当前房间。
  • 当用户要加入的房间不存在时,后台会自动创建一个房间。

18. TRTC 是否支持自定义旁路推流的流 ID?

支持,您可以通过 enterRoom 的参数 TRTCParams 指定 streamId,也可以调用 startPublishing 接口传参数 streamId。

19.TRTC 直播支持什么角色?有什么区别?

直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)支持 TRTCRoleAnchor(主播)和 TRTCRoleAudience(观众)两种角色,区别是主播角色可以同时上行、下行音视频数据,观众角色只支持下行播放其他人的数据。您可以通过调用 switchRole() 进行角色切换。

20. TRTC 精简版、专业版、企业版各个版本区别?

详情请参见 各版本差异对照表

21. 实时音视频最多可以同时创建多少个房间?

支持同时并发存在4294967294个房间,累计房间数量无限制。

22. 实时音视频是否支持私有化部署?

实时音视频私有化部署未完全开放。若您需咨询或使用私有化服务,请填写 私有化问卷。我们会在2个-3个工作日内完成评估并反馈结果。

23. 实时音视频开通旁路直播,域名是否需要进行备案使用?

如需开通旁路直播,依据国家相关部门要求,播放域名需要备案才能使用,更多详情请参见CDN 直播观看

24. 实时音视频是否支持主动呼叫功能?

需要结合信令通道解决,例如使用即时通信 IM服务的自定义消息实现呼叫,可以参考SDK源码中的场景化 Demo 示例。

25. 实时音视频是否支持在国外使用?

支持。TRTC 提供覆盖全球的高连通、高可靠、强安全的网络连接通道,自研多重最优寻址算法实现全网调度,具有丰富的高带宽资源储备、全球节点布局。 点击查看TRTC产品地理区域部署

26. 实时音视频延时大约多少?

全球端到端平均延时小于300ms。

27. 实时音视频能否把直播视频录制后存储在手机本地?

不支持直接存储在手机本地,录制后视频文件默认存储在云点播平台,您可以自行下载并保存到手机中,更多详情请参见 云端录制和回放

28. 一个房间里可以同时有多路屏幕分享吗?

目前一个房间只能有一路辅流的屏幕分享。

29. 指定窗口分享(SourceTypeWindow),当窗口大小变化时,视频流的分辨率会不会也跟着变化?

默认情况下,SDK 内部会自动根据分享的窗口大小进行编码参数的调整。

如需固定分辨率,需调用 setSubStreamEncoderParam 接口设置屏幕分享的编码参数,或在调用 startScreenCapture 时指定对应的编码参数。

30. TRTC 是否可以自定义采集数据?

部分平台支持,详细信息请参见自定义采集和渲染

31. TRTC 是否支持音视频通话免提模式?

支持,免提模式通过设置音频路由实现,Native SDK 通过 setAudioRoute 接口切换,小程序端通过 <live-player> 标签的 sound-mode 属性设置。

32. TRTC SDK 播放背景音是否支持循环播放?是否支持调整背景音的播放进度?

支持,循环播放可以在完成回调里面重新调用播放,播放进度可以通过 TXAudioEffectManager seekMusicToPosInMS 设置。

说明:
setBGMPosition() 在 v7.3 版本废弃,通过 TXAudioEffectManager seekMusicToPosInMS 替代。

33. TRTC 有没有房间成员进出房间的监听回调?onUserEnter/onUserExit 是否可以用?

有,TRTC 使用 onRemoteUserEnterRoom/onRemoteUserLeaveRoom 监听房间成员进出房间(有上行音视频权限的用户才会触发)。

说明:
onUserEnter/onUserExit 在 6.8 版本废弃,通过 onRemoteUserEnterRoom/onRemoteUserLeaveRoom 替代。

34. TRTC 怎么监测断网和重连?

通过以下监听回调监听:

  • onConnectionLost:SDK 跟服务器的连接断开。
  • onTryToReconnect:SDK 尝试重新连接到服务器。
  • onConnectionRecovery:SDK 跟服务器的连接恢复。

35. TRTC 是否支持视频画面截图功能?

目前在 iOS/Android 端调用 snapshotVideo() 支持本地及远端视频画面截图。

36. TRTC 有没有首帧渲染回调?能否监听画面开始渲染,声音开始播放?

支持,通过 onFirstVideoFrame/onFirstAudioFrame 可以监听。

37. TRTC 接入蓝牙耳机等外设异常?

目前 TRTC 有对主流的蓝牙耳机和外设做兼容,但是还会遇到某些设备上有兼容问题。建议使用官方 Demo 以及微信、QQ音视频通话测试对比下是否都正常。

38. TRTC 播放背景音乐接口 playBGM() 是否支持在线音乐?

目前只支持本地音乐,可以先下载至本地再调用 playBGM() 播放。

39. stopLocalPreview 和 muteLocalVideo 有什么区别?

  • stopLocalPreview 是停止本地视频采集,调用该接口后自己本地和远端画面都将是黑屏。
  • muteLocalVideo 是设置是否向后台发送自己的视频画面,调用该接口后其他用户观看的画面将变成黑屏,自己本地的预览还是能看到画面。

40. stopLocalAudio 和 muteLocalAudio 的区别是什么?

  • stopLocalAudio 是关闭本地音频的采集和上行。
  • muteLocalAudio 并不会停止发送音视频数据,而是会继续发送码率极低的静音包。

41. TRTC SDK 都支持哪些分辨率?

建议参考 设定画面质量 配置分辨率达到更合适的画面质量。

42. TRTC SDK 怎么设置上行视频码率、分辨率、帧率?

可以通过 TRTCCloud 的 setVideoEncoderParam() 接口设置 TRTCVideoEncParam 参数中 videoResolution(分辨率)、videoFps(帧率)、videoBitrate(码率)。

43. SDK 控制画面角度与方向是如何实现的?

详情请参见 视频画面旋转和缩放

44. 怎样实现横屏视频通话?

详情请参见 实现横屏视频通话视频画面旋转和缩放

45. TRTC 本地和远端画面方向不一致怎么调整?

详情请参阅 视频画面旋转和缩放

46. TRTC 有没有推荐的画面质量(码率、分辨率、帧率)相关参数配置?

详情请参见 推荐的配置

47. TRTC 是否支持对网络测速?如何操作?

详情请参见 通话前网络测速

48. TRTC 是否支持对房间进行权限校验,例如会员才能进入的场景?

支持,详情请参见 进房权限保护

49. TRTC 音视频流是否支持通过 CDN 拉流观看?

支持,详情请参见 实现 CDN 直播观看

50. TRTC 自定义渲染支持哪些格式?

  • iOS 端支持 i420、NV12 和 BGRA。
  • Android 端支持 I420 和 texture2d。

51. 实时音视频如何实现服务端录制?

服务端录制需要使用 Linux SDK。Linux SDK 暂未完全开放,若您需咨询或使用相关服务,请填写 Linux SDK 问卷。我们会在2个-3个工作日内完成评估并反馈结果。

二、方案咨询

1. TRTC V2版本和V1版本有哪些区别?怎么实现旧版本(iLiveSDK)升级 TRTC V2方案?

V1内嵌并绑定了IMSDK,V2版本不再内嵌绑定,开发者可自由选择产品组合; V1版本使用的音视频引擎因为定版较早,对于最近两年出来的设备兼容性不是很好,比如蓝牙耳机、外接设备等,而V2版本是从新设计的,因此对新近几年的设备支持情况好很多; V1版本因定版较早,网络优化策略相对较旧,弱网下的稳定性相比而言不如V2,V2使用了更新更先进的网络优化算法,在70%以上丢包下仍可以语音通话。

2. 腾讯云移动直播、实时音视频、旁路推流的区别及关系?

  • 移动直播

关键词:一对多,RTMP/HLS/HTTP-FLV 协议,CDN

直播分为推流端、源站、CDN、播放端,使用的是通用标准的协议如RTMP,经过CDN分发后,播放时一般可以选择RTMP、HTTP-FLV或HLS(H5支持)等方式。直播的特点是只有一个推流端,以及多个的观看端

  • 实时音视频

关键词:双人/多人通话,多人连麦,UDP 私有协议,低延时

实时音视频(Real-Time Communication, RTC)主要应用场景是音视频双向互动,技术关注点是低延时,使用基于UDP的私有协议,其延迟可低于100ms,典型的场景是QQ电话、微信电话。另外针对直播场景支持10万人大房间,主播间延时能保证最低延时到200ms,普通观众的延时在1s以内。

  • 旁路直播

关键词:云端混流,转推,CDN

将主/副播实时音视频通话时的整个房间的画面复制一份到云端进行云端混流,并将混流后的画面推流给腾讯云直播系统的工作方式。

因为混流后的视频数据流和主/副播通话房间实际上并不是同一路流,而是在另外平行的一路,因而称为旁路,即不在主路。云端录制时,录制的流也是通过旁路的方式从流媒体中心引出,存到COS中。

3. 想做一个类似微信音视频通话的应用怎么实现?

  • 微信音视频通话的流程是用户A呼叫用户B,用户B接通后开始音视频通话。这里呼叫其实就是一个信令交互的过程,可以使用腾讯云提供的即时通信方案,音视频通话其实就是进入同一个TRTC的房间就能实现交互。

步骤

角色

详情

步骤1

用户A

用户A调用 IMSDK 接口发送一条自定义消息给用户B

步骤2

用户B

用户B收到这条自定义消息之后可以展示一个 UI 提示,询问主播要不要接受通话。

步骤3

用户B

用户B调用 IMSDK 接口发送一条自定义消息通知对方是否接受通话请求。

步骤4

用户A

用户A如果请求被同意,则调用 TRTC 接口打开摄像头麦克风进入房间。

步骤5

用户B

当用户A进入通话状态后,用户B需要收到一个消息通知。

步骤6

用户B

用户B调用 TRTC 接口打开摄像头麦克风进入房间就可以看到连麦观众的视频画面。

注:这里需要同时集成2套SDK,分别是用作信令交互的即时通信 TXIMSDK,以及用作音视频互通的实时音视频 TXLiteAVSDK

4. TRTC 怎么实现直播场景类应用?

  • 实时音视频(TRTC)专门针对在线直播场景推出了10万人低延时互动直播解决方案,能保证主播与连麦主播的最低延时到200ms,普通观众的延时在1s以内,并且超强的抗弱网能力适应移动端复杂的网络环境。具体接入可以参考文档:https://cloud.tencent.com/document/product/647/35429

5. TRTC 防火墙配置规则?

注:因为服务端IP是动态更新的,不会固定,因此不提供IP白名单。

6. TRTC web 端内网环境怎么设置代理?

可采用 Nginx+coturn 代理方案,详情请参见 云+社区

方案名

适用场景

网络要求

方案一

允许客户端访问特定的外网代理服务器

允许客户端访问外网的 proxy server

方案二

允许客户端通过内网代理服务器访问外网

允许 proxy server 访问外网

7. TRTC 移动端怎么实现录屏(屏幕分享)?

  • 目前移动端从7.2版本开始 Android 支持手机录屏,iOS 支持 APP 内录屏,可以直接参考官方Demo源码

8. TRTC 房间支持哪些应用场景?

支持以下场景:

  • TRTCAppSceneVideoCall :视频通话场景,适合1对1视频通话、300人视频会议、在线问诊、视频聊天、远程面试等。
  • TRTCAppSceneLIVE :视频互动直播,适合视频低延时直播、十万人互动课堂、视频直播 PK、视频相亲房、互动课堂、远程培训、超大型会议等。
  • TRTCAppSceneAudioCall :语音通话场景,适合1对1语音通话、300人语音会议、语音聊天、语音会议、在线狼人杀等。
  • TRTCAppSceneVoiceChatRoom:语音互动直播,适合:语音低延时直播、语音直播连麦、语聊房、K 歌房、FM 电台等。

技术交流

亲爱的开发者,如果在使用产品过程中遇到任何问题,欢迎到 云+社区GitHub 查询历史问题以及解决方案,您也可以在专栏下方评论提问。

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/212465.html

(0)
上一篇 2021年12月16日
下一篇 2021年12月16日

相关推荐

发表回复

登录后才能评论