文档中心
极速直播 (Legacy)
Console 官网 社区 技术支持

为什么我的视频会出现花屏或绿屏?

分类: 质量类    平台: Android / iOS / macOS / Windows / Unity / Electron / React Native / Flutter / Flutter2   最后更新时间: 2023/01/12 23:36:53

花屏指视频画面中出现颜色错误的不规则像素块,导致视频无法正常显示。

花屏与视频模糊不同。视频模糊一般由于分辨率或码率过低导致。在模糊的视频中画面依然是完整的。

绿屏是指视频画面中出现绿色色块,导致视频无法正常显示。

花屏或绿屏可能由摄像头、第三方美颜 SDK、视频分辨率、或采集和渲染模块的问题导致。你可以参考以下步骤解决问题。

用户自检

发送端花屏

  1. 按照以下步骤排查摄像头、第三方美颜 SDK、视频分辨率的问题:
    1. 确认摄像头是否可以正常工作。
    2. 检查第三方美颜 SDK。如果你使用了第三方美颜 SDK,尝试关闭美颜功能并检查是否花屏。如果花屏现象消失,那么可能是第三方美颜 SDK 的问题,请联系第三方美颜 SDK 的技术支持。
    3. 检查视频分辨率是否是声网推荐的分辨率。如果不是,尝试改变视频分辨率。
  2. 排查采集和渲染模块的问题:
    1. 如果发送端使用自采集、自渲染,你需要自行排查自采集模块的问题。如果自采集模块没有问题,再自行排查自渲染模块的问题。你可以参考声网提供的自采集自渲染的示例项目。
    2. 如果发送端使用自采集、RTC SDK 渲染,你需要自行排查自采集模块的问题。你可以参考声网提供的自采集的示例项目。
    3. 如果发送端使用 RTC SDK 采集、自渲染,你需要自行排查自渲染模块的问题。你可以参考声网提供的自渲染的示例项目。
    4. 如果发送端使用 RTC SDK 采集、RTC SDK 渲染,请提交工单联系声网技术支持。
发送端使用 YUV 数据自渲染时,检查 VideoFrameStride 参数和 width 参数的使用是否混淆。

接收端花屏

如果发送端和接收端同时出现花屏,你需要首先参考发送端花屏排查发送端的问题。如果只有接收端花屏,请参考以下步骤排查:

  1. 无论接收端使用 RTC SDK 渲染还是自渲染,首先你需要排查发送端的问题。如果发送端使用了自采集,你需要检查发送端自采集的数据在传给 SDK 的过程中是否存在问题。
  2. 如果接收端使用自渲染,你需要自行排查接收端自渲染模块的问题。
接收端使用 YUV 数据自渲染时,检查 VideoFrameStride 参数和 width 参数的使用是否混淆。

发送端绿屏

如果发送端出现绿屏,按照以下步骤排查发送端绿屏问题:

  1. 按照以下步骤排查摄像头、第三方美颜 SDK、视频分辨率的问题:
    1. 确认摄像头是否可以正常工作。
    2. 检查第三方美颜 SDK。如果你使用了第三方美颜 SDK,尝试关闭美颜功能并检查是否绿屏。如果绿屏现象消失,那么可能是第三方美颜 SDK 的问题,请联系第三方美颜 SDK 的技术支持。
    3. 检查视频分辨率是否是声网推荐的分辨率。如果不是,尝试改变视频分辨率。
  2. 排查采集和渲染模块的问题:
    • 如果发送端使用自采集、自渲染,在使用 setVideoSource 设置自定义视频源时,你需要检查在 getBufferType 中指定的视频数据格式和通过 IVideoFrameConsumer 传回 SDK 的视频数据格式是否一致。如果格式不一致,需要修改为一致的格式后,再检查视频是否绿屏。如果自采集没有问题,你需要自行排查自渲染的问题。
    • 如果发送端使用自采集、RTC SDK 渲染,你需要自行排查自采集模块的问题。在使用 setVideoSource 设置自定义视频源时,你还需要检查在 getBufferType 中指定的视频数据格式和通过 IVideoFrameConsumer 传回 SDK 的视频数据格式是否一致。如果格式不一致,需要修改为一致的格式后,再检查视频是否绿屏。如果自采集模块没有问题,你还需要检查自采集的数据在传给 SDK 的过程中是否存在问题。
    • 如果发送端使用 RTC SDK 采集、自渲染,你需要自行排查自渲染模块的问题。
    • 如果发送端使用 RTC SDK 采集、RTC SDK 渲染,请提交工单联系声网技术支持。
对于 Android 平台,如果你在通信场景下使用自采集,请检查使用的视频数据格式是否是 Texture。RTC SDK for Android 不支持在通信场景下接收 Texture 格式的视频数据,你需要更换为 YUV 格式之后,再检查视频是否绿屏。

接收端绿屏

如果发送端和接收端同时出现绿屏,你需要首先参考发送端绿屏排查发送端的问题。如果只有接收端绿屏,请参考以下排查步骤。

  • 无论接收端使用 RTC SDK 渲染还是自渲染,首先你需要排查发送端的问题。如果发送端使用了自采集,你需要检查发送端自采集的数据在传输给 SDK 的过程中是否存在问题。发送端在使用 setVideoSource 设置自定义视频源时,你还需要检查在 getBufferType 中指定的视频数据格式和通过 IVideoFrameConsumer 传回 SDK 的视频数据格式是否一致。如果格式不一致,需要修改为一致的格式后,再检查接收端视频是否绿屏。
对于 Android 平台,如果你在通信场景下使用自采集,请检查使用的视频数据格式是否是 Texture。RTC SDK for Android 不支持在通信场景下接收 Texture 格式的视频数据,你需要更换为 YUV 格式之后,再检查视频是否绿屏。

联系技术支持

如果上述的自查无法帮助你解决问题,请提交工单联系声网技术支持。为了更好地帮助您快速解决问题,请提供以下信息。

必要信息

  • 出现花屏、绿屏的频道名。
  • 出现花屏、绿屏时,发送端和接收端用户的 UID 以及设备型号。
  • 花屏、绿屏的截图。
  • 问题出现的时间点或时间段。
  • 发送端和接收端的采集和渲染方式:RTC SDK 采集、自采集、RTC SDK 渲染、自渲染。
  • SDK 日志文件,参考如何设置日志文件

更多信息

  • 用其他分辨率可否重现花屏和绿屏。
  • 其他应用是否出现花屏和绿屏。
  • 在其他机型上可否重现花屏和绿屏。