前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TRTC零基础上手 -- 视频异常篇

TRTC零基础上手 -- 视频异常篇

原创
作者头像
天上云间
修改2022-01-09 22:57:40
2.4K0
修改2022-01-09 22:57:40
举报
文章被收录于专栏:云学堂云学堂

本文将就接入TRTC中常碰到视频相关的问题进行分析和探讨,由于小编水平有限,如有误的地方,欢迎读者朋友评论指正。

随着移动互联网普及,移动设备和高清摄像头在日常生活和工作中大量使用,人们产生海量的视频数据,如何高效实时采集、传输、显示视频数据,成为当下各方参与者摩拳擦掌的竞技舞台,TRTC是将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,TRTC音视频解决方案是其中的佼佼者。

TRTC上手系列文章

? TRTC视频问题排查

在开发者接入TRTC时候常常会遇到一些困难情况,作为一线的开发人员该如何排查这些问题呢?下面小编整理了一些视频相关的问题供大家参考。

1. 黑屏问题如何入手排查?

黑屏就视频画面不显示,通常分为推流端端预览画面黑屏和拉流端的拉流画面黑屏,这时候需要根据场景来判断。

? 推流端原因

  • 采集出现问题 在推流端如果未获得摄像头权限或者摄像头故障,会导致打开摄像头失败,进而导致视频推流失败。遇到这种情况,可以通过后台监控观察视频的采集帧率、采集分辨率,如果两者都是0或者直接没有曲线显示,说明上采集出问题了,需要排查摄像头是否存在问题。
  • 网络异常导致 如果帧率、分辨率正常,但是上行码率为0,说明采集到的数据无法发送到云端服务器,这时候需要查看设备是否已断网导致。另外查看丢包率是否正常,如果丢包率在70%以上,可能会导致黑屏。应该提醒用户切换网络后重试。
  • 多端互踢推流失败 SDK不支持多个终端用同一个UserId同时进入房间,如果出现这种情况可能会导致互踢,这时候推流会失败,导致远端看到的是黑屏。
  • 设备性能不足 因为视频编码需要一定的CPU资源,如果设备的CPU占用超过90%,可能会导致编码器工作异常,帧率和码率不稳定等情况,甚至视频编码数据里没有画面信息导致黑屏。这时候可以查看仪表盘的设备性能图表数据。

? 拉流端原因

  • 网络异常导致 如果房间内有其他用户在同时拉流并显示正常视频画面,只有当前用户看到对方是黑屏,可以判断是拉流端的问题,优先查看网络是否断开,或者观察网络是否存在非常卡的情况,如果存在,建议用户切换网络或者靠近路由器避开遮挡物。
  • 显示组件设置问题 SDK在拉远端流时候,都是需要先设置显示组件,如果在开始拉流时候该组件(View)还没有初始化,或者组件的宽高为0,都会导致没有画面显示。这时候需要断点调试该问题,如果是线上用户,需要捞到本地日志进行排查。

? 业务逻辑原因

  • 误调 stopLocalPreview 如果应用层意外调用stopLocalPreview(停止采集)接口,预览和视频推流将会停止,这时候远端拉流看到将是黑屏。这时候可以在仪表盘的事件列表里看到有关闭视频的事件。
  • 误调 muteLocalVideo 如果应用层意外调用muteLocalVideo(true)(暂停视频)接口,远端将看到视频是黑屏的,可以通过本地日志查看推流端是否调用了该接口。
  • 直播模式切换为观众身份 如果由主播身份切换到观众身份,将会停止采集和推流,远端将看到视频是黑屏的,可以通过本地日志查看推流端是否调用了该接口。
  • 没有调用startRemoteView订阅远端视频 在推流端主播推流视频流之后,SDK不会自动订阅,需要拉流端主动调用startRemoteView订阅该视频流,如果因为某种原因没有订阅,拉流画面就会黑屏。

2. 视频花屏问题如何排查?

视频花屏问题比较少见,这类问题通常是涉及到底层的硬件编码器解码异常导致的。

? 网络问题导致

如果网络出现严重的丢包和延时,可能会导致 I 帧导致,因为 P 帧和 B 帧的解码都依赖于 I 帧,如果 I 帧丢失了,P 帧和 B 帧都会解码失败,于是画面就会花屏、拖影、绿屏等情况,可以用ffplay、VLC、Potplayer 同时播放一下同一路流,如果播放器都出现花屏、绿屏的情况,通常就是音视频源码流就存在问题。

? 硬件编解码器的兼容性问题

这类情况通常出现在 Android 设备上,一些 Android 设备的硬件编解码器实现不好,兼容性不佳。这种情况,最好的办法,换软编软解对比。

? Metadata 发生变化

大多数的播放器一般只会在开始解码之前解析一次 metadata 设置解码参数,当画面发生变化,例如分辨率变化了,但播放器解码参 数没有重新配置,就有可能导致花屏、绿屏,这种情况下,最好的办法是推流端 在直播过程中不改变编码参数,这样就不会引起 metadata 信息的修改。

? 推流端和播放端颜色格式不一致导致

推流端和播放端颜色格式不一致导致,例如推流端使用的是 NV12,而播放端支持的是 I420,则解码时就会因为颜色格式不一致而显示为花屏、绿屏等情况。这 种情况下,统一推拉流两端的颜色格式。

3. 画面模糊是什么原因?

? 清晰度和码率有关

清晰度主要和码率有关,这时候需要检查 SDK 码率是否配置的比较低,如果高分辨率低码率容易产生马赛克等模糊现象。

? 云端 QOS 流控策略

TRTC 会通过云端 QOS 流控策略,根据网络状况动态调整码率、分辨率,网络比较差时容易降低码率导致清晰度下降。如果想避免画面模糊的情况,可以把最小码率和码率设置为同一个值。

? 使用VideoCall 模式

检查进房时使用的 VideoCall 模式还是 Live 模式,针对通话场景 VideoCall 模式主打低延时和保流畅,所以在弱网情况下会更容易牺牲画质确保流畅,对画质更加看重的场景建议使用 Live 模式。

4. 暂停画面,重新进房后为什么还会显示?

使用muteLocalVideo,muteRemoteVideoStream接口暂停视频都只会在当前房房间内有效,在退出房间后,这些状态将会重置。如果在重新进入房间后,要继续保存暂停状态,需要重新调用muteLocalVideo。

5. 视频卡顿问题如何排查?

? - 网络异常导致

当推流端上行带宽或拉流端下行带宽不足,都会出现丢包现象,如果发送帧率远低于采集帧率,比如:采集15帧,到达云端只有8帧,拉流端观看的视频画面会出现卡顿现象。这是需要排查一下用户网络是否拥堵。另外,采集分辨率是否设置过高,超过用户上行下行的带宽对情况。

? 设备性能不足

查看帧率和 CPU 占用率,帧率比较低和 CPU 使用率过高都会导致卡顿现象。这需要关闭占有CPU较高的应用,观察是否恢复正常的帧率和CPU使用率。

6. 视频丢包很严重怎么办?

? 上行或下行带宽不足

如果用户的网络拥堵,剩余带宽不足以满足视频流推流和拉流的码率要求,会出现丢包现象,另外如果网络连接不稳定也会出现,比如连的是4G网络在信号较差的地方。这时候需要提醒用户切换网络。

? 多端互踢原因

如果同一个房间有两个以上的相同UserId进房,并同时推流,拉流端会出现严重的丢包现象。这时候属于非法操作,应该排查原因,并避免相同UserId用户进房。

7. 拉流端只显示远端视频的一部分是该如何修复?

SDK渲染远端视频分为填充和适应两种方式。在显示View组件的宽和高跟视频分辨率比例不一致时候,就会按这两种方式渲染,其中默认的渲染方式是填充,该模式下会把视频等比例拉伸,直至填满View的可视区域,不可避免的出现一部分视频画面被剪裁的情况。如果需要显示完整视频的画面,需要把渲染模式改为“适应模式”。

参考文档:画面渲染模式

8. 视频有黑边如何消除?

SDK渲染远端视频分为填充和适应两种方式。在适应模式下,在显示View宽和高跟视频分辨率比例不一致会导致出现黑边现象,如果需要消除黑边现象,可以把渲染模式设置为“填充模式”,视频画面会被放大一部分,直至填充满整个显示组件。

? 预览画面黑边

通过setLocalRenderParams接口设置本地画面渲染参数,把TRTCRenderParams.fillMode 设置为 TRTCVideoFillMode_Fill模式。

? 远端画面黑边

通过setRemoteRenderParams接口设置远端画面渲染参数,把TRTCRenderParams.fillMode 设置为 TRTCVideoFillMode_Fill模式。

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

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

参考文档

TRTC本地日志提取和解码

新手常见问题

音视频常见问题

代码示例

视频质量

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TRTC上手系列文章
  • ? TRTC视频问题排查
    • 1. 黑屏问题如何入手排查?
      • ? 推流端原因
      • ? 拉流端原因
      • ? 业务逻辑原因
    • 2. 视频花屏问题如何排查?
      • ? 网络问题导致
      • ? 硬件编解码器的兼容性问题
      • ? Metadata 发生变化
      • ? 推流端和播放端颜色格式不一致导致
    • 3. 画面模糊是什么原因?
      • ? 清晰度和码率有关
      • ? 云端 QOS 流控策略
      • ? 使用VideoCall 模式
    • 4. 暂停画面,重新进房后为什么还会显示?
      • 5. 视频卡顿问题如何排查?
        • ? - 网络异常导致
        • ? 设备性能不足
      • 6. 视频丢包很严重怎么办?
        • ? 上行或下行带宽不足
        • ? 多端互踢原因
      • 7. 拉流端只显示远端视频的一部分是该如何修复?
        • 8. 视频有黑边如何消除?
          • ? 预览画面黑边
          • ? 远端画面黑边
        • 9. TRTC 设置视频编码输出的方向没有效果?
        • 参考文档
        相关产品与服务
        实时音视频
        实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com