音视频质量相关

最近更新时间:2023-11-13 10:50:02

我的收藏

一、视频问题

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 进行调整。具体接口使用说明请参见 视频画面旋转

视频出现镜像问题?

使用前摄像头进行视频通话,会有镜像效果,所以本地预览和远端观众画面是左右颠倒。若您想让两端画面一致,请参见 使用前摄像头进行视频通话,本地预览和远端观众画面是左右颠倒

如何横屏推流?

开发者可能用设备是电视或者因场景需要横屏推流,具体实现请参见 Android TRTC 实现横屏视频通话

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

播放失败或解码失败,参见 播放失败的处理办法
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 :始终使用媒体音量。

TRTC 上下行无声怎么处理?

具体请参见 上下行无声排查

声音小怎么处理?

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

声音卡顿断续?

打开 监控仪表盘,在音频选项卡中查看:
若接收端和发送端“设备状态”的 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 类型说明。
http://www.vxiaotou.com