其他问题

最近更新时间:2021-04-14 09:52:05

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

  • 直播(关键词:一对多,RTMP/HLS/HTTP-FLV,CDN)
    直播分为推流端、播放端以及直播云服务,云服务使用 CDN 进行直播流的分发。推流使用的是通用标准的协议 RTMP,经过 CDN 分发后,播放时一般可以选择 RTMP、HTTP-FLV 或 HLS(H5 支持)等方式进行观看。
  • 互动直播(关键词:连麦、PK)
    互动直播是一种业务形式,指主播与观众之间进行互动连麦,主播与主播之间进行互动PK的一种直播类型。
  • 实时音视频(关键词:多人互动,UDP 私有协议,低延时)
    实时音视频(Real-Time Communication, RTC)主要应用场景是音视频互动和低延时直播,使用基于 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/
  • Windows:%appdata%/tencent/liteav/log
  • Web:打开浏览器控制台,或使用 vConsole 记录 SDK 打印信息
  • 小程序:启用 <live-pusher> 和 <live-player> 标签的 debug 属性,使用 vConsole 记录打印信息
说明:

  • 查看 .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() 接口会执行退出房间的相关逻辑,例如释放音视频设备资源和编解码器资源等,硬件设备的释放是异步操作,待资源释放完毕,SDK 会通过 TRTCCloudListener 中的 onExitRoom() 回调通知上层。如果您要再次调用 enterRoom() 或切换到其他的音视频 SDK,请等待 onExitRoom() 回调到来之后再执行相关操作。

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

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

TRTC 视频画面出现黑边怎么去掉?

设置 TRTCVideoFillMode_Fill(填充)即可解决,TRTC 视频渲染模式分为填充和适应,本地渲染画面可以通过 setLocalViewFillMode() 设置,远端渲染画面可以通过 setRemoteViewFillMode 设置:

  • TRTCVideoFillMode_Fill:图像铺满屏幕,超出显示视窗的视频部分将被截掉,所以画面显示可能不完整。
  • TRTCVideoFillMode_Fit:图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。

TRTC 自己的本地画面和远端画面左右相反?

本地默认采集的画面是镜像的。App 端可以通过 setLocalViewMirror 接口设置,该接口只改变本地摄像头预览画面的镜像模式;也可以通过 setVideoEncoderMirror 接口设置编码器输出的画面镜像模式,该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制下来的)画面效果。Web 端可以通过 createStream 接口修改 mirror 参数来设置。

TRTC 设置视频编码输出的方向没有效果?

需要设置 setGSensorMode() 为 TRTCGSensorMode_Disable,关闭重力感应,否则调用 setVideoEncoderRotation 后远端用户观看到的画面不会变化。

TRTC 的通话同时用了点播播放器 TXVodPlayer 播放,为什么播放声音很小?

通过 setSystemVolumeType 接口设置通话时使用的系统音量类型,设置为媒体音量模式 TRTCSystemVolumeTypeMedia 即可解决。

TRTC 正常上行有数据,为什么旁路拉流失败看不到画面?

请确认是否已在 【应用管理】>【功能配置】中开启自动旁路推流。

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

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

如何选择媒体音量和通话音量?

通过 setSystemVolumeType 接口,支持自主选择通话音量和媒体音量。

  • TRTCAudioVolumeTypeAuto :默认类型,麦上通话音量、麦下媒体音量;
  • TRTCAudioVolumeTypeVOIP :始终使用通话音量
  • TRTCAudioVolumeTypeMedia :始终使用媒体音量。

如何判断打开摄像头成功?

通过回调方法 onCameraDidReady,当收到该回调时表示摄像头已经准备就绪。

如何判断打开麦克风成功?

通过回调方法 onMicDidReady,当收到该回调时表示麦克风已经准备就绪。

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

通过回调方法 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
  4. 录制任务完成后,云直播会将文件写入到云点播,并通过 录制回调事件通知

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 怎么监测网络状态,实现信号强弱展示功能?

可以使用 onNetworkQuality() 监听当前网络的上行和下行质量,可以参考 官方 Demo 实现信号强弱功能。

TRTC 如何知道自己用的是新的 mcu 混流还是老的云端混流?

满足下述条件,且客户端日志打印 mcumix = 1,则使用的是新的 mcu 混流。

  • 2020年01月09日及此后新建的应用。
  • TRTC SDK 版本在6.9之后。

TRTC 调用混流接口失败,没有效果怎么排查?

  1. 确保已在 实时音视频控制台 开启【自动旁路推流】。
  2. 监听 onSetMixTranscodingConfig() 接口,根据返回的错误信息修改。
  3. 若通过 SDK 接口自定义了旁路流 ID,老的云端混流方式会混流失败。
  4. 若 onSetMixTranscodingConfig() 返回成功但旁路 CDN 拉流仍没有效果,可能是播放域名没有配置所导致的,建议检查播放域名相关配置。

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

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

TRTC 出现卡顿怎么排查?

可以通过对应的 RoomID、UserID 在实时音视频控制台的【监控仪表盘】页面查看通话质量:

  • 通过接受端视角查看发送端和接收端用户情况。
  • 查看发送端和接收端是否丢包率比较高,如果丢包率过高一般是网络状况不稳定导致卡顿。
  • 查看帧率和 CPU 占用率,帧率比较低和 CPU 使用率过高都会导致卡顿现象。

TRTC 出现画质不佳,模糊、马赛克等现象怎么排查?

  • 清晰度主要和码率有关,检查 SDK 码率是否配置的比较低,如果高分辨率低码率容易产生马赛克现象。
  • TRTC 会通过云端 QOS 流控策略,根据网络状况动态调整码率、分辨率,网络比较差时容易降低码率导致清晰度下降。
  • 检查进房时使用的 VideoCall 模式还是 Live 模式,针对通话场景 VideoCall 模式主打低延时和保流畅,所以在弱网情况下会更容易牺牲画质确保流畅,对画质更加看重的场景建议使用 Live 模式。

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

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

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

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

目录