视频常见问题排查
更新时间: 2024/09/18 16:26:13
监控通话质量
本文以新版控制台配套的指南针上的操作为例,旧版控制台的操作请参见质量数据监控。
-
登录网易云信控制台,点击左侧导航栏中的指南针。
-
在指南针页面的左侧导航栏中选择音视频通话 > 通话调查。
-
在页面顶部选择对应的应用和时间区间。
-
输入需要查询的用户ID,单击操作列中的通话详情。
-
在通话质量详情区域,选择按发送端视角或接收端视角查看通话详情。单击 UID 右侧的查看发送端详情,或选择发送端查看详情。
如果是按接收端视角,请单击选择发送端查看详情,选择对应的发送端 UID 后,才能查看详情。
-
单击视频页签,查看视频上行网络状态、设备状态、视频帧率、视频分辨率。
看不到远端的画面
假设用户 A 看不到用户 B 的画面,问题排查的思路如下:
步骤1 问题自查
-
在服务监控平台查看视频上行码率和视频下行码率,具体步骤请参见监控通话质量。
- 如果没有视频上行码率,则是发送端问题,请执行步骤 2 排查发送端的问题。
- 如果有视频上行码率和视频下行码率,则是接收端问题,请执行步骤 3 排查接收端的问题。
- 如果有视频上行码率,没有视频下行码率,可能是网络异常。
-
排查发送端的问题。
-
检查用户 B 是否已调用
enableLocalVideo
开启本地视频采集。- true: 表示开启本地视频采集。
- false: 表示关闭本地视频采集。
-
检查用户 B 的摄像头是否打开失败,如果日志中有
no camera permission
报错,可以尝试更换或重启手机测试。 -
在服务监控平台查看视频上行帧率,如果上行帧率远低于
setLocalVideoConfig
中设置的帧率,可能是相机有问题或手机性能有问题。
-
-
排查接收端的问题。
- 检查用户 A 是否已调用
subscribeRemoteVideoStream
订阅用户 B 的视频。 - 检查用户 A 是否已调用
setupRemoteVideoCanvas
设置用户 B 的画布。
NERtcVideoView remoteView = (NERtcVideoView)findViewById(R.id.remote_view); NERtcEx.getInstance().setupRemoteVideoCanvas(remoteView,uid);
- 检查是否用户 A 给用户 B 设置了画布,但是画布没有放到 UI 上或被销毁。可以检查一下日志中是否有打印
Dropping frame - No surface
。 - 检查用户 A 和用户 B 是否已加入同一个音视频房间。通过
channelName
检查用户 A 和用户 B 加入的房间名,通过onUserJoin userID
,检查有没有监测到对端有加入房间。
- 检查用户 A 是否已调用
步骤2 联系技术支持
如果通过以上步骤,问题仍无法解决,请联系网易云信技术支持工程师,并提供以下信息,方便工程师快速定位问题:
信息类别 | 信息详情 |
---|---|
必要信息 | 房间名称(channelName)。 |
视频发送方和接收方的用户的 uid。 | |
问题发生的时间。 | |
辅助信息 | SDK 日志文件。具体如何获取日志请参见 SDK 的日志从哪里获取。 |
NERTC SDK 版本号、手机的型号,手机系统的版本号,如果有外接设备(摄像头、耳麦等等),提供设备的型号。 |
视频画面模糊、马赛克
可能原因
视频模糊一般是由视频码率或分辨率过低导致。
步骤1 问题自查
-
查看
setLocalVideoConfig
中设置的分辨率是否和您的应用场景相匹配。如果高分辨率低码率容易产生马赛克现象。各场景的音视频属性设置的最佳实践请参见音视频参数配置推荐。
-
在服务监控平台查看相关的通话质量数据,具体步骤请参见监控通话质量。
- 查看发送端的视频上行码率和接收端的下行码率,确认接收端接收的是大流还是小流。
- 如果订阅的是小流,视频略微模糊是符合预期的,您可以调用
subscribeRemoteVideoStream
接口,将NERtcRemoteVideoStreamType
参数的值设置为kNERtcRemoteVideoStreamTypeHigh
,订阅大流。 - 如果订阅的是大流,请继续执行下一步。
- 如果订阅的是小流,视频略微模糊是符合预期的,您可以调用
- 请查看视频上行丢包率和下行丢包率是否正常。网络比较差时容易降低码率导致清晰度下降。
- 查看发送端的视频上行码率和接收端的下行码率,确认接收端接收的是大流还是小流。
-
检查是否有视频前处理,例如美颜等,请先关闭前处理,检查模糊是否由于前处理导致。
步骤2 联系技术支持
如果通过以上步骤,问题仍无法解决,请联系网易云信技术支持工程师,并提供以下信息,方便工程师快速定位问题:
信息类别 | 信息详情 |
---|---|
必要信息 | 房间名称(channelName)。 |
视频发送方和接收方的用户的 uid。 | |
视频模糊的时间段。 | |
辅助信息 | SDK 日志文件。具体如何获取日志请参见 SDK 的日志从哪里获取。 |
NERTC SDK 版本号、手机的型号,手机系统的版本号,如果有外接设备(摄像头、耳麦等等),提供设备的型号。 |
视频卡顿
可能原因
视频卡顿问题一般由网络、设备性能等原因造成。
步骤1 问题自查
-
判断是持续性的还是一次性的卡顿。一次性的卡顿是由网络和设备的随机性导致,属于正常现象。
-
在服务监控平台查看相关的通话质量数据,具体步骤请参见监控通话质量。
- 查看视频上行帧率,如果上行帧率太低,请查看
setLocalVideoConfig
设置的帧率是否正常。
- 在通信模式下,建议您将帧率设置为 24 fps,用户在视觉上不会出现卡顿现象。
- 在直播模式下,建议您将帧率适当降低至 15 fps,保证直播画面的高清晰度。
- 如果设置的帧率正常,但服务监控平台上查看的上行帧率远低于设置的帧率,大概率是设备的CPU和内存占用过高导致卡顿,请尝试更换设备。
- 查看视频下行帧率,如果下行帧率太低,请查看视频上行丢包率和下行丢包率是否正常。如果丢包率过高一般是网络状况不稳定导致卡顿。
- 查看视频上行帧率,如果上行帧率太低,请查看
-
检查是否有视频前处理,例如美颜等,请先关闭前处理,检查卡顿是否由于前处理导致。
-
请确认是否存在一直进出频道或者一直切换订阅流的情况,导致的卡顿。
步骤2 联系技术支持
如果通过以上步骤,问题仍无法解决,请联系网易云信技术支持工程师,并提供以下信息,方便工程师快速定位问题:
信息类别 | 信息详情 |
---|---|
必要信息 | 房间名称(channelName)。 |
视频发送方和接收方的用户的 uid。 | |
出现卡顿的时间段。 | |
辅助信息 | SDK 日志文件。具体如何获取日志请参见 SDK 的日志从哪里获取。 |
NERTC SDK 版本号、手机的型号,手机系统的版本号,如果有外接设备(摄像头、耳麦等等),提供设备的型号。 |
音频和画面不同步
可能原因
音频和画面不同步主要是接收端的问题。在 webrtc 中负责音频和画面同步的主要是接收模块中的 jitter buffer 模块,在 jitter buffer 中会去取 audio
的 max_delay
,根据这个 max_delay
来估算视频的 delay
,决定视频 jitter buffer
什么时候出帧。
视频帧率过低,音频丢包严重等原因也有可能造成音频和画面不同步。
步骤1 问题自查
-
在服务监控平台查看相关的通话质量数据,具体步骤请参见监控通话质量。
- 查看视频上行帧率,如果上行帧率太低,请查看
setLocalVideoConfig
设置的帧率是否正常。
- 在通信模式下,建议您将帧率设置为 24 fps,用户在视觉上不会出现卡顿现象。
- 在直播模式下,建议您将帧率适当降低至 15 fps,保证直播画面的高清晰度。
- 如果设置的帧率正常,但服务监控平台上查看的上行帧率远低于设置的帧率,大概率是设备的CPU和内存占用过高导致卡顿,请尝试更换设备。
- 查看视频下行帧率,如果下行帧率太低,请查看视频上行丢包率和下行丢包率是否正常。如果丢包率过高一般是网络状况不稳定导致音频和画面不同步。
- 查看视频上行帧率,如果上行帧率太低,请查看
-
检查视频帧的
timeStamp
参数的传参是否正确。timeStamp
的单位是毫秒。
步骤2 联系技术支持
如果通过以上步骤,问题仍无法解决,请联系网易云信技术支持工程师,并提供以下信息,方便工程师快速定位问题:
信息类别 | 信息详情 |
---|---|
必要信息 | 房间名称(channelName)。 |
视频发送方和接收方的用户的 uid。 | |
出现音频和画面不同步的时间段。 | |
辅助信息 | SDK 日志文件。具体如何获取日志请参见 SDK 的日志从哪里获取。 |
NERTC SDK 版本号、手机的型号,手机系统的版本号,如果有外接设备(摄像头、耳麦等等),提供设备的型号。 |