实时音视频 TRTC 常见问题汇总---质量篇

2021-10-10 15:45:09 浏览数 (1)

腾讯实时音视频(Tencent Real-Time Communication,TRTC)是腾讯云基于 QQ 十多年来在音视频通话技术上积累,并结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 **实时音视频互通服务** 解决方案。

为了方便开发者技术选型、开发集成,以下是针对不同问题场景整理的 TRTC 常见问题汇总,后续会持续更新,欢迎反馈。

  • 咨询问题篇
  • 集成接入篇
  • WebRTC篇
  • 小程序篇
  • Electron篇
  • Flutter篇
  • 录制混流问题篇
  • 质量篇
  • 计费篇

质量篇

1. 播放远端观众画面出现黑边

如下代码所示,播放远端观众的画面渲染模式选择 TRTC_VIDEO_RENDER_MODE_FIT模式, 当渲染控件 View 的宽高比与视频宽高此不一致时,有黑边情况。

  • Android 示例代码
代码语言:txt复制
mTRTCCloud.setRemoteViewFillMode(userId, TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_FIT);
mTRTCCloud.startRemoteView(userId, renderView);
  • iOS 示例代码
代码语言:txt复制
[_trtc startRemoteView:userId view:remoteView];
[_trtc setRemoteViewFillMode:userId mode:TRTCVideoFillMode_Fit];

解决方案

1.确保渲染控件 View 宽高和视频宽高一致

2.渲染模式选择TRTC_VIDEO_RENDER_MODE_FIT,但画面可能会出现能会被拉伸裁剪的情况。

2. 播放远端观众画面出现卡顿

1.检测网络情况,建议更换网络重现

2.找到 roomid、userid ,然后到控制台的 监控仪表盘 ,自主查询用户的卡顿情况。

3. 打开摄像头失败

  • 确认摄像头权限是否授予
  • 如果设备是电视、盒子等,使用的摄像头是外接的。目前 TRTCSDK 是支持识别外接摄像头的。因此,需要确认摄像头接头和设备是否接触良好。

4. 预览/播放画面出现旋转

使用TRTCSDK摄像头采集

  1. 建议更新 SDK 版本到最新版本。
  2. 如果是特殊设备,可以使用本地预览画面渲染角度接口setLocalViewRotation ,远端视频画面的渲染角度接口setRemoteViewRotation ,设置编码器输出的画面渲染角度接口setVideoEncoderRotation进行调整。具体接口使用说明文档见视频画面旋转

使用自定义视频采集

  1. 建议更新 SDK 版本到最新版本。
  2. 确认下将采集的视频画面的角度是正确。
  3. 将视频数据填充给 TRTCSDK,检查是否给TRTCCloudDef.TRTCVideoFrame设置旋转角度
  4. 如果是特殊设备,可以使用本地预览画面渲染角度接口setLocalViewRotation ,远端视频画面的渲染角度接口setRemoteViewRotation ,设置编码器输出的画面渲染角度接口setVideoEncoderRotation进行调整。具体接口使用说明文档见视频画面旋转

5. 视频镜像问题

使用前摄像头进行视频通话,会有镜像效果,所以本地预览和远端观众画面是左右颠倒。如果开发者想让两端画面一致,可以参考文档使用前摄像头进行视频通话,本地预览和远端观众画面是左右颠倒?

6. 如何横屏推流

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

7. 杀死进程,如何确认主播是否在直播中?

该场景适用于 iOS/Mac、Android 、Windows 平台。

在 TRTC 房间中有推流上行的用户,当应用进程被杀死或者主动断开网络,超过 30 秒之后,主播还没有恢复推流。TRTC 房间里面其他用户会收到主播(有推流上行的用户)退出房间的回调。

8. 直播中出现播放黑屏、花屏、绿屏,是什么原因呢?

黑屏的原因:

1) 播放失败或解码失败,参看播放失败的处理办法。

2) Metadata 问题,比如 metadata 中只有音频流信息,但实际数据中即有音频也有

视频;或者是开始的数据只有音频,但播放一段时间后又加入了视频信息。这种

情况一般建议修改源流的 metadata 信息。

3) 视频编码数据里没有画面信息,只有类似 SEI 之类的帧时,解码也没有画面,自

然就黑屏了,这种一般是定制类的视频数据。

花屏、绿屏的原因:

1) 一般是丢失了 I 帧导致,因为 P 帧和 B 帧的解码都依赖于 I 帧,如果 I 帧丢失了,

P 帧和 B 帧都会解码失败,于是画面就会花屏、拖影、绿屏等情况,先使用不同 播放器如 ffplay、VLC、Potplayer 同时播放一下同一路流,如果播放器都出现花 屏、绿屏的情况,通常就是音视频源码流就存在问题,需要检查源码流。

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

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

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

9. TRTC有哪些技术统计指标?

该场景适用于 iOS/Mac、Android 、Windows 平台。

SDK 提供回调方法 onStatistics(TRTCStatistics statics),每 2 秒回一次技术指标。包括当前 appCpu(App 的 CPU 使用率)、systemCpu(当前系统的 CPU 使用率)、rtt(延迟)、upLoss(上行丢包率)、downLoss(下行丢包率)以及本地成员和远端成员的音视频统计信息,具体参数可参考 TRTCStatistics 类型说明文档。

技术支持

亲爱的开发者,如果在使用产品过程中遇到任何问题,欢迎到 云 社区GitHub 提问或者查询历史问题以及解决方案。

  • **云 社区各产品问答页查询及提问:**

实时音视频:https://cloud.tencent.com/developer/tag/10373?entry=ask

即时通信:https://cloud.tencent.com/developer/tag/126?entry=ask

移动直播:https://cloud.tencent.com/developer/tag/10374?entry=ask

短视频:https://cloud.tencent.com/developer/tag/10375?entry=ask

超级播放器:https://cloud.tencent.com/developer/tag/10855?entry=ask

互动直播:https://cloud.tencent.com/developer/tag/10379?entry=ask

  • **GitHub 的 issue 页面:**

移动直播:https://github.com/tencentyun/MLVBSDK/issues

实时音视频:https://github.com/tencentyun/TRTCSDK/issues

播放器:https://github.com/tencentyun/SuperPlayer_Android/issues、https://github.com/tencentyun/SuperPlayer_iOS/issues

即时通信IM:https://github.com/tencentyun/TIMSDK/issues

0 人点赞