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