Others

直播、互动直播、实时音视频以及旁路直播有什么区别和关系?

  • 直播(关键词:一对多,RTMP/HLS/HTTP-FLV,CDN)
    直播分为推流端、播放端以及直播云服务,云服务使用 CDN 进行直播流的分发。推流使用的是通用标准的协议 RTMP,经过 CDN 分发后,播放时一般可以选择 RTMP、HTTP-FLV 或 HLS(H5 支持)等方式进行观看。
  • 互动直播(关键词:连麦、PK)
    互动直播是一种业务形式,指主播与观众之间进行互动连麦,主播与主播之间进行互动PK的一种直播类型。
  • 实时音视频(关键词:多人互动,UDP 私有协议,低延时)
    实时音视频(Tencent Real-Time Communication,TRTC)主要应用场景是音视频互动和低延时直播,使用基于 UDP 的私有协议,其延迟可低至100ms,典型的场景就是 QQ 电话、腾讯会议、大班课等。 腾讯云实时音视频(TRTC)覆盖全平台,除了iOS/Android/Windows之外,还支持小程序以及 WebRTC 互通,并且支持通过云端混流的方式将画面旁路直播到 CDN。
  • 旁路直播(关键词:云端混流,RTC 旁路转推,CDN)
    旁路直播是一种技术,指的是将低延时连麦房间里的多路推流画面复制出来,在云端将画面混合成一路,并将混流后的画面推流给直播 CDN 进行分发播放。

两台设备同时运行 Demo,为什么看不到彼此的画面?

请确保两台设备在运行 Demo 时使用的是不同的 UserID,TRTC 不支持同一个 UserID (除非 SDKAppID 不同)在两个设备同时使用。

为什么使用 CDN 直播观看时房间里只有一个人时画面又卡又模糊?

请将 enterRoom 中 TRTCAppScene 参数指定为 TRTCAppSceneLIVE
VideoCall 模式针对视频通话做了优化,所以在房间中只有一个用户时,画面会保持较低的码率和帧率以节省用户的网络流量,看起来会感觉又卡又模糊。

为什么线上的房间都进不去了?

可能因为房间权限控制已开启。房间权限控制开启后,当前 SDKAppID 下的房间将需要在 TRTCParamEnc 中设置 privateMapKey 才能进入。如果您线上业务正在运营中,并且线上版本并没有加入 privateMapKey 的相关逻辑,请不要开启该功能,更多详情请参见 进房权限保护

如何查看 TRTC 日志?

TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。

  • iOS&Mac:sandbox的Documents/log
  • Android:
    • 6.7及之前的版本:/sdcard/log/tencent/liteav
    • 6.8之后的版本:/sdcard/Android/data/包名/files/log/tencent/liteav/
    • 8.5之后的版本:/sdcard/Android/data/包名/files/log/liteav/
  • Windows:
    • 8.8之前的版本:%appdata%/tencent/liteav/log
    • 8.8以及8.8之后的版本:%appdata%/liteav/log
  • Web:打开浏览器控制台,或使用 vConsole 记录 SDK 打印信息
说明:

  • 查看 .xlog 文件需要下载解密工具,在python 2.7环境中放到 xlog 文件同目录下直接使用 python decode_mars_log_file.py 运行即可。
  • 日志解密工具下载地址:dldir1.qq.com/hudongzhibo/log_tool/decode_mars_log_file.py

出现10006 error 该如何处理?

如果出现"Join room failed result: 10006 error: service is suspended,if charge is overdue,renew it",请确认您的实时音视频应用的服务状态是否为可用状态。
登录 实时音视频控制台 > 应用管理 ,选择您创建的应用,单击 应用信息 ,在应用信息面板即可确认服务状态。

进入房间返回错误码-100018是什么原因?

原因是 UserSig 校验失败,可能情况如下:

  • 参数 SDKAppID 传入不正确,可登录实时音视频控制台,选择 应用管理 并查看对应的 SDKAppID。
  • 参数 UserID 对应的验证签名 UserSig 传入不正确,可登录实时音视频控制台,选择 开发辅助 > UserSig生成&校验 校验 UserSig。

如何跨房连麦(主播 PK)?

可以使用 connectOtherRoom 接口。主播调用 connectOtherRoom() 后,可以通过 onConnectOtherRoom 回调得到跨房 PK 的结果。主播一所在房间里的所有人,都会通过 onUserEnter 的回调,得到主播二进房的通知。主播二所在房间的所有人,也都会通过 onUserEnter 的回调得到主播一进房的通知。

离开房间接口 exitRoom() 是否必须调用?

不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。

旁路录制的各种场景下生成录制文件是什么格式的?

实时音视频控制台 中配置录制文件格式为准。

如何判断音视频通话是否推流成功?

通过回调方法 onSendFirstLocalVideoFrame,在 enterRoom 并 startLocalPreview 成功后开始摄像头采集,并将采集到的画面进行编码。 当 SDK 成功向云端送出第一帧视频数据后,会抛出这个回调事件。

如何判断纯音频通话是否推流成功?

通过回调方法 onSendFirstLocalAudioFrame,在 enterRoom 并 startLocalPreview 成功后开始麦克风采集,并将采集到的声音进行编码。 当 SDK 成功向云端送出第一帧音频数据后,会抛出这个回调事件。

我能否查询所有的 UserID?

暂不支持统计所有 UserID,可以在客户端用户注册帐号成功后将用户信息一并写入 SQL 中进行管理或查询。

相同 UserID 是否支持同时进入多个房间?

TRTC 同一时间不支持两个相同的 userId 进入房间,否则会相互干扰。

为什么调用 setAudioRoute 设置音频路由(听筒/扬声器)不生效?

只能在通话音量模式下切换听筒/扬声器,即仅在2个及以上用户连麦时调用才生效。

TRTC 只支持腾讯云控制台开启自动录制吗?怎么实现手动开启录制?

TRTC 支持手动录制,具体操作办法如下:

  1. 进入 应用管理 > 功能配置 ,开启 自动旁路推流 ,不开启 启动云端录制
  2. 用户进房间后,按照流 ID 生成规则,计算出 userid 对应的 streamid。
  3. 使用云直播的 创建录制任务 API,对 streamid 启动录制任务。
  • DomainName 为 [bizid].livepush.myqcloud.com
  • AppName 为 trtc_[sdkappid]
  • StreamName 为 streamid
  1. 录制任务完成后,云直播会将文件写入到云点播,并通过 录制回调事件通知

TRTC 怎么校验生成的 UserSig 是否正确?进房报错-3319、-3320错误怎么排查?

可登录实时音视频控制台,选择 开发辅助>UserSig生成&校验 校验 UserSig。

TRTC 如何查看通话时长和使用量?

可在实时音视频控制台的 用量统计 页面查看。

TRTC 如何维护用户列表、统计直播间的观看人数?

如果开发者项目工程中有集成 即时通信IM,可以直接通过 IM 群人数统计接口进行统计。但该方案统计出的人数不是很准确,如果开发者对在线人数要求不高,可以直接上述方案。
如果开发者需要很准确的统计在线人数,建议自行实现统计逻辑:

  1. 增加观众数(Client -> Server)当有新的观众加入时,意味着某个房间的观众数要 + 1,可以让 App 的观众端在进入房间时向 Server 发送一次累加请求。
  2. 减少观众数(Client -> Server)当有观众退出房间时,意味着某个房间的观众数要 - 1,可以让 App 的观众端在退出房间时向 Server 发送一次累减请求。

进房时报-100013错误码,错误信息为 ERR_SERVER_INFO_SERVICE_SUSPENDED,是什么问题?

该错误表示服务不可用。请检查:

  • 套餐包剩余分钟数是否大于0。
  • 腾讯云账号是否欠费。

TRTC 启动云端录制但没有生成录制文件怎么排查?

  1. 确保已在 实时音视频控制台 开启 自动旁路推流启动云端录制
  2. TRTC 房间中有用户正常上行音视频数据才会开始录制。
  3. 旁路 CDN 拉流正常才会有录制文件生成。
  4. 若刚开始只有音频,中途切换了视频,根据录制模板的不同可能会只生成视频时间段的录制文件,或只生成音频时间段的录制文件。

邀请嘉宾连线如何告知嘉宾房间号?

告知嘉宾房间号的操作可以加在自定义消息中,解析消息内容获取 roomid,相关说明请参见 创建自定义消息TIMMsgSendNewMsg

是否可以至少两个人进入房间,才开始录音?

可以。若您需获取录制混流后的音频数据,您可在 启动云端混流 后,制定输出流 ID,并调用直播接口 创建录制任务

Windows 端怎么采集到被分享应用播放的声音?

通过调用 startSystemAudioLoopback 接口,可打开系统声音采集。

Windows 会议模式中,如何实现主播对观众发起音视频连线的功能?

需要搭配另一个云产品 即时通信 IM 达成连线需求。

呼叫的大致逻辑为:A 给 B 发送自定义消息 X 并唤起呼叫页面,X 展示效果自行处理,B 接收到 X 后调起被呼叫页面,B 单击 enterRoom 进入房间,并发送自定义消息 X1 给 A,A 收到 X1(自行决定是否展示)同时调用 enterRoom 进入房间。使用 IM 来发送自定义消息。

观众如何查看房间里连线的画面?

当观众使用直播模式时,观众进入房间观看会通过 TRTCCloudDelegate 中的 onUserVideoAvailable 回调获知主播的 userid(连麦的人也会 enterRoom 进房,对于观众来说也是主播)。然后观众可以调用 startRemoteView 方法来显示主播的视频画面。
更多详细操作,请参见 跑通直播模式(Windows)

TRTC 有 Linux SDK 吗?

Linux SDK 暂未完全开放,若您需咨询或使用相关服务,请联系:colleenyu@tencent.com。

TRTC 是否支持在视频通话(或连麦互动)时进行屏幕分享吗?

支持。TRTC 连麦互动或者视频通话时,摄像头采集画面作为主流画面,同时还支持屏幕分享作为辅流画面。分享出去的屏幕就是当前手机屏幕画面,包含连麦互动或者视频通话的窗口。