实时音视频开发学习14 - 常见问题

2020-08-30 18:20:35 浏览数 (1)

常见问题

防火墙限制问题

客户端Native SDK需要配置的端口或域名

WebRTC需要配置的端口和白名单

小程序trtc-room需要配置的白名单

TRTC V1和V2版本区别

V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。

版本切换需要提交申请,包括个人姓名、邮箱、联系电话、业务信息、业务所处的阶段以及项目的SDKAPPID和申请原因。我们会在保护客户隐私的情况下,等待若干工作日即可。

功能相关问题

1.实时音视频支持同时并发存在4294967294个房间,累计房间数量无限制。

2.实时音视频服务端带宽无限制,但不支持私有化部署

3.实时音视频延时低于300ms

4.实时音视频支持蓝牙耳机和在国外使用

5.实时音视频在小程序端体验高于公众号

6.直播录制视频不能直接保存至本地,但录制结束后可以在云点播平台自行下载至手机中

7.TRTC 与移动直播后台方案架构不同,所以不支持直接相互通信,仅可从 TRTC 后台旁路推流到 CDN。

8.支持拉流播放RTMP/FLV,目前 TRTC SDK 中已打包 TXLivePlayer。如果有更多播放器功能需求,可以直接使用 LiteAVSDK_Professional 版本,包含了全部功能。

9.通话模式下,单个房间最多支持300人同时在线,最多支持30人同时开启摄像头或麦克风。直播模式下,单个房间支持10万人以观众身份在线观看,最多支持30人以主播身份开启摄像头或麦克风。

10.房间号取值区间为1 - 4294967295,由开发者自行维护和分配。UserID取值范围长度建议不超过32字节。请使用英文字符、数字或下划线,不能全为数字,不区分大小写.

11.房间生命周期,第一个加入房间的用户为当前房间的所有者,但该用户无法主动解散房间。所有用户都主动退出当前房间时,后台会立即解散房间如果房间内的单个用户异常掉线,30秒后服务端会将该用户清理出当前房间。如果房间内的所有用户都异常掉线,30秒后服务端会自动解散当前房间。当用户要加入的房间不存在时,后台会自动创建一个房间

桌面浏览器问题

SDK支持哪些浏览器

对桌面版的Chrome浏览器、Safari浏览器以及移动版的Safari浏览器支持,可以通过WEBRTC能力测试浏览器是否支持

出现“RtcError: no valid ice candidate found”或"RtcError: ICE/DTLS Transport connection failed" 或 “RtcError: DTLS Transport connection timeout”

检查防火墙配置TCP 端口:8687。UDP 端口:8000,8080,8800,843,443,16285。域名:qcloud.rtc.qq.com

桌面浏览器端 SDK 日志中报错 NotFoundError、NotAllowedError、NotReadableError、OverConstrainedError 以及 AbortError 分别是什么意思

桌面浏览器端 SDK 怎么录制纯音频推流

创建客户端对象是设置pureAudioPushMode用于开启纯音频推流模式,1表示本次纯音频推流且不需要录制MP3文件,2则表示纯音频推流,但录制文件为MP3。

如何确保正常获取设备

调用navigator.mediaDevices.enumerateDevices()可确保获取设备列表,该值返回一个Promise,里面有MediaDeviceInfo对象数组,数组中每一个元素对应一个可用的媒体设备。然后再使用getUserMedia({audio:true,video:true})获取设备。

截图功能

截图功能使用的是实例 HTMLVideoElement中的takeSnapshot方法,该方法支持一个回调函数并传递了一个url。可以将该作为新创建的img对象的src地址。

由于截屏功能最好是在进房之后才有的功能,因此也是需要在login登录之后才能实现。见demo10

小程序端运行出错,该如何排查?

首先检查开通的小程序类目是否正确,<live-pusher> 和 <live-player> 标签是否已开启。然后确认已将小程序域名白名单添加到小程序 request 合法域名,或已开启调试模式。接着重新解压小程序端 Demo 直接运行,若运行正常,建议参考快速集成(小程序) 重新集成 SDK。

TRTC 出现卡顿怎么排查?

可以通过对应的 RoomID、UserID 在实时音视频控制台的【监控仪表盘】页面查看通话质量:通过接受端视角查看发送端和接收端用户情况。查看发送端和接收端是否丢包率比较高,如果丢包率过高一般是网络状况不稳定导致卡顿。查看帧率和 CPU 占用率,帧率比较低和 CPU 使用率过高都会导致卡顿现象。

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

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

跑通直播问题

问题描述

如何证明自己拉流成功,为何打印两次main类型,为何在浏览器运行时报两次错,并且第一次运行正常,刷新后就会产生异常?

解决方案

当我们监听远端流stream-added时会订阅远端流信息,在stream-subscribed中发布订阅信息并使用remoteStream.play()进行播放,如果页面显示了直播内容就说明拉流成功。

对于stramType连续打印两次main类型,主要是因为浏览器默认的主流视频就是main类型,即直播类型。

浏览器报两次错误是因为,拉流过程中出现音视频拉去失败,每一此需打印一次。并且该错误产生的原因主要是因为浏览器在2018年4月份就正式关闭了自动播放,并且声音无法自动播放在IOS/Android上无法自动播放也是一个常态。我们可以手动的调用client对象中的resume方法进行手动打开。而事实上这并不会影响到实际的业务内容。

其它问题

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

直播分为推流端、播放端以及直播云服务,云服务使用 CDN 进行直播流的分发。推流使用的是通用标准的协议 RTMP,经过 CDN 分发后,播放时一般可以选择 RTMP、HTTP-FLV 或 HLS(H5 支持)等方式进行观看。

互动直播是一种业务形式,指主播与观众之间进行互动连麦,主播与主播之间进行互动PK的一种直播类型。

实时音视频(Real-Time Communication, RTC)主要应用场景是音视频互动和低延时直播,使用基于 UDP 的私有协议,其延迟可低至100ms,典型的场景就是 QQ 电话、腾讯会议、大班课等。 腾讯云实时音视频(TRTC)覆盖全平台,除了iOS/Android/Windows之外,还支持小程序以及 WebRTC 互通,并且支持通过云端混流的方式将画面旁路直播到 CDN。

旁路直播是一种技术,指的是将低延时连麦房间里的多路推流画面复制出来,在云端将画面混合成一路,并将混流后的画面推流给直播 CDN 进行分发播放。

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

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

如何查看 TRTC 日志?

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

出现10006 error 该如何处理?

请确认您的实时音视频应用的服务状态是否为可用状态。登录实时音视频控制台,单击您创建的应用,单击【帐号信息】,在帐号信息面板即可确认服务状态。

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

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

为什么设备摄像头或麦克风出现被占用等异常现象?

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

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

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

TXVodPlayer播放声音小

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

TRTC 调用混流接口失败

首先,确保已在 实时音视频控制台 开启【自动旁路推流】。然后,监听 onSetMixTranscodingConfig() 接口,根据返回的错误信息修改。若通过 SDK 接口自定义了旁路流 ID,老的云端混流方式会混流失败。最后若 onSetMixTranscod-

ingConfig() 返回成功但旁路 CDN 拉流仍没有效果,可能是播放域名没有配置所导致的,建议检查播放域名相关配置。

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

1.确保已在实时音视频控制台开启【自动旁路推流】和【启动云端录制】。2.TRTC 房间中有用户正常上行音视频数据才会开始录制。

3.旁路 CDN 拉流正常才会有录制文件生成。

4.若刚开始只有音频,中途切换了视频,根据录制模板的不同可能会只生成

视频时间段的录制文件,或只生成音频时间段的录制文件。

注:更多内容请关注https://cloud.tencent.com/document/product/647/17249

0 人点赞