tencent cloud

文档反馈

音视频质量相关

最后更新时间:2022-09-06 16:56:27

    一、视频问题

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

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

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

    TRTC 出现卡顿怎么排查?

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

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

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

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

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

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

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

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

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

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

    预览/播放画面出现旋转?

    • 使用 TRTCSDK 摄像头采集
      • 建议更新 SDK 版本到最新版本。
      • 如果是特殊设备,可以使用本地预览画面渲染角度接口 setLocalViewRotation,远端视频画面的渲染角度接口 setRemoteViewRotation,设置编码器输出的画面渲染角度接口 setVideoEncoderRotation 进行调整。具体接口使用说明请参见 视频画面旋转
    • 使用自定义视频采集
      • 建议更新 SDK 版本到最新版本。
      • 确认下将采集的视频画面的角度是正确。
      • 将视频数据填充给 TRTCSDK,检查是否给 TRTCCloudDef.TRTCVideoFrame 设置旋转角度
      • 如果是特殊设备,可以使用本地预览画面渲染角度接口 setLocalViewRotation,远端视频画面的渲染角度接口 setRemoteViewRotation,设置编码器输出的画面渲染角度接口 setVideoEncoderRotation 进行调整。具体接口使用说明请参见 视频画面旋转

    视频出现镜像问题?

    使用前摄像头进行视频通话,会有镜像效果,所以本地预览和远端观众画面是左右颠倒。

    如何横屏推流?

    开发者可能用设备是电视或者因场景需要横屏推流,具体实现请参见视频画面旋转和缩放

    直播中出现播放黑屏是什么原因呢?

    • 播放失败或解码失败,参看播放失败的处理办法。
    • Metadata 问题,例如 metadata 中只有音频流信息,但实际数据中即有音频也有视频;或者是开始的数据只有音频,但播放一段时间后又加入了视频信息。这种情况一般建议修改源流的 metadata 信息。
    • 视频编码数据里没有画面信息,只有类似 SEI 之类的帧时,解码也没有画面,自然就黑屏了,这种一般是定制类的视频数据。

    直播中出现播放花屏、绿屏,是什么原因呢?

    • 一般是丢失了 I 帧导致,因为 P 帧和 B 帧的解码都依赖于 I 帧,如果 I 帧丢失了,P 帧和 B 帧都会解码失败,于是画面就会花屏、拖影、绿屏等情况,先使用不同 播放器如 ffplay、VLC、Potplayer 同时播放一下同一路流,如果播放器都出现花 屏、绿屏的情况,通常就是音视频源码流就存在问题,需要检查源码流。
    • Metadata 发生变化,大多数的播放器一般只会在开始解码之前解析一次 metadata 设置解码参数,当画面发生变化,例如分辨率变化了,但播放器解码参 数没有重新配置,就有可能导致花屏、绿屏,这种情况下,最好的办法是推流端 在直播过程中不改变编码参数,这样就不会引起 metadata 信息的修改。
    • 硬件编解码的兼容性问题,这类情况通常出现在 Android 设备上,一些 Android 设备的硬件编解码器实现不好,兼容性不佳。这种情况,最好的办法,换软编软 解对比。
    • 推流端和播放端颜色格式不一致导致,例如推流端使用的是 NV12,而播放端支持的是 I420,则解码时就会因为颜色格式不一致而显示为花屏、绿屏等情况。这 种情况下,统一推拉流两端的颜色格式。

    二、音频问题

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

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

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

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

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

    声音小怎么处理?

    • 所有观众听到的声音都小,则是上行因素导致:
      • 检查 Windows 和 mac 的 setCurrentDeviceVolume、全平台的 setAudioCaptureVolume 接口的 volume值是否小于50,可以适当调大音量。
      • 检查3A处理的 AGC 自动增益是否开启。
      • 检查是否是由于蓝牙耳机导致。
    • 部分观众听到声音小,则是下行因素导致:

    声音卡顿断续?

    打开 监控仪表盘,在音频选项卡中查看:

    • 若接收端和发送端“设备状态”的 CPU 超过90%,建议关闭其他后台程序。
    • 若音频上下行存在明显丢包,rtt 值波动较大,表明当前用户网络质量不佳,建议切换稳定网络。

    为什么有回声?

    通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点;是否误关了 3A 处理的 AEC 回声消除。

    声音音质差或者声音忽大忽小?

    若您外接了声卡,开了耳返,当连麦时就会引发此问题,建议您在外接声卡时关闭耳返,因为声卡一般自带了耳返功能。

    Web 通话过程中出现回声、杂音、噪声、声音小?

    通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点。当其他端听到 Web 端的声音存在回声、噪声、杂音等情况时,说明 Web 端的 3A 处理没有生效。 若您使用了浏览器原生 getUserMedia API 进行自定义采集,则需要手动设置 3A 参数:

    • echoCancellation:回声消除开关。
    • noiseSuppression:噪声抑制开关。
    • autoGainControl:自动增益开关。

    若您使用 TRTC.createStream 接口进行采集,则无需手动设置 3A 参数,SDK 默认开启 3A。

    三、其他问题

    TRTC 怎么监测网络状态,实现信号强弱展示功能?

    可以使用 onNetworkQuality() 监听当前网络的上行和下行质量,以Android为例,可参考 TRTC-API-Example 实现信号强弱功能。

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

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

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

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

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

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

    打开摄像头失败?

    • 确认摄像头权限是否授予
    • 如果设备是电视、盒子等,使用的摄像头是外接的。目前 TRTCSDK 是支持识别外接摄像头的。因此,需要确认摄像头接头和设备是否接触良好。

    TRTC 有哪些技术统计指标?

    注意:

    该场景适用于 iOS/Mac、Android 、Windows 平台。

    SDK 提供回调方法 onStatistics(TRTCStatistics statics),每 2 秒回一次技术指标。包括当前 appCpu(App 的 CPU 使用率)、systemCpu(当前系统的 CPU 使用率)、rtt(延迟)、upLoss(上行丢包率)、downLoss(下行丢包率)以及本地成员和远端成员的音视频统计信息,具体参数请参见 TRTCStatistics 类型说明。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持