RTC Engine
  • 产品概述
  • Web
    • 跑通 Demo
    • SDK 快速启动
    • 基础功能
      • 屏幕分享
      • 直播
      • 媒体设备
      • 音量
      • 设置编码配置文件
      • 检测网络质量
      • 检测能力
    • 高级功能
      • 启用 AI 降噪
      • 启用混音
      • 启用水印
      • Enable Virtual Background
      • 启用美颜和特效
      • 数据消息
      • 自定义采集和渲染
    • 接口列表
    • 发布说明
    • 支持平台
    • Web 常见问题
      • 优化多人视频通话
      • 处理自动播放受限
      • 应对防火墙限制
      • 其他
  • Android
    • Run Sample Code
    • Integration
    • 集成
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 设置视频质量
      • 10. 旋转视频
    • Advanced Features
      • 测试网络质量
      • 自定义采集和渲染
      • 自定义音频采集和播放
    • 客户端API
      • 产品概述
      • TRTCCloud
      • TRTCStatistics
      • TRTCCloudListener
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • 类型定义
      • 废弃接口
      • 错误码
    • 解决方案
      • 实时合唱 (TUIKaraoke)
        • 快速集成
        • 实施步骤
        • 歌曲同步
        • 歌词同步
        • 语音同步
        • 混流解决方案
        • TRTCKaraoke 相关接口
        • 常见问题
    • 发布说明
  • iOS
    • Run Sample Code
    • Integration
    • 集成
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 设置视频质量
      • 10. 旋转视频
    • Advanced Features
      • 测试网络质量
      • 自定义采集和渲染
      • 自定义音频采集和播放
    • 客户端API
      • 产品概述
      • TRTCCloud
      • TRTCCloudDelegate
      • TRTCStatistics
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • 类型定义
      • 废弃接口
      • ErrorCode
    • 解决方案
      • 快速集成
      • 实施步骤
      • 歌曲同步
      • 歌词同步
      • 语音同步
      • 混流解决方案
      • TRTCKaraoke 相关接口
      • 常见问题
    • 发布说明
  • macOS
    • Run Sample Code
    • Integration
    • 集成
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 共享电脑声音
      • 10. 设置视频质量
      • 11. 旋转视频
    • Advanced Features
      • 测试硬件设备
      • 测试网络质量
      • 自定义采集和渲染
      • 自定义音频采集和播放
    • 客户端API
      • 产品概述
      • TRTCCloud
      • TRTCCloudDelegate
      • TRTCStatistics
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • 类型定义
      • 废弃接口
      • ErrorCode
      • 发布说明
    • 发布说明
  • Windows
    • Run Sample Code
    • Integration
    • 集成
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 设置视频质量
      • 10. 旋转视频
    • Advanced Features
      • 测试硬件设备
      • 测试网络质量
      • 自定义采集和渲染
      • 自定义音频采集和播放
    • 客户端API
      • 产品概述
      • ITRTCCloud
      • ITRTCStatistics
      • TRTCCloudCallback
      • ITXAudioEffectManager
      • ITXDeviceManager
      • 类型定义
      • 废弃接口
      • 错误码
    • 发布说明
  • Electron
    • 集成
      • 1. 接口示例
      • 2. 导入 SDK
      • 3. 进入房间
      • 4. 订阅音视频流
      • 5. 发布音视频流
      • 6. 退出房间
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 共享电脑声音
      • 10. 设置视频质量
      • 11. 旋转视频
    • 客户端API
      • 产品概述
      • 错误码
  • Flutter
    • 集成
      • 1. 接口示例
      • 2. 导入 SDK
      • 3. 进入房间
      • 4. 订阅音视频流
      • 5. 发布音视频流
      • 6. 退出房间
      • 7. 检测网络质量
      • 8. 开启屏幕共享
      • 9. 共享电脑声音
      • 10. 设置视频质量
      • 11. 旋转视频
    • 客户端API
      • 产品概述
      • 错误码
  • Unity
    • 集成
      • 1. 接口示例
      • 2. 导入 SDK
    • 客户端API
      • 产品概述
      • 错误码
  • QT
    • 集成
      • 1. 导入 SDK
  • 产品概述
    • 产品概述
  • 概念
  • 产品特性
  • 性能统计
  • 价格中心
    • 免费时长
    • RTC-Engine 套餐
    • 订阅套餐时长计费说明
    • 现收现付
      • 音视频时长计费说明
      • 云端录制计费说明
      • 混流转码与旁路转推计费说明
  • 常见问题
    • 入门常见问题
    • 迁移指南
      • Twilio Video 到 TRTC 的迁移
      • 计费
      • 产品特性
      • UserSig
      • 防火墙限制
      • 如何缩减安装包
      • TRTCCalling Web 相关
      • 音视频质量
      • 其他
RTC Engine

10. 设置视频质量

内容介绍

在 TRTCCloud 中,您可以通过以下方式调整画质:
TRTCCloud.enterRoom 中的 TRTCAppScene 参数:用于选择您的应用场景。
TRTCCloud.setVideoEncoderParam:用于设置编码参数。
TRTCCloud.setNetworkQosParam:用于设置网络调控策略。
本文主要介绍如何配置上述参数,使 TRTC SDK 的画质效果符合您的项目需要。 您也可以参考以下 Demo:

支持的平台

iOS
Android
Mac OS
Windows
Web
Electron
Flutter
Web端设定画面质量的详细操作,请参见 设定指引

房间场景

场景类型
场景介绍
TRTC_APP_SCENE_VIDEOCALL
在视频通话场景中,支持 720p 和 1080p 高清图像质量。单个房间可容纳最多300名同时在线用户,最多50人同时发言。
TRTC_APP_SCENE_LIVE
在互动视频直播场景中,麦克风可以顺畅地打开/关闭,无需等待切换,主播延迟低至300毫秒以下。支持数十万并发观众用户的直播,播放延迟降至1000毫秒。
注意:在此场景下,您必须使用 TRTCParams 中的 role 字段指定当前用户的角色。
TRTC_APP_SCENE_AUDIOCALL
在音频通话场景中,支持48 kHz双声道音频通话。单个房间可容纳最多300名同时在线用户,最多50人同时发言。
TRTC_APP_SCENE_VOICE_CHATROOM
在互动音频直播场景中,麦克风可以顺畅地打开/关闭,无需等待切换,主播延迟低至300毫秒以下。支持数十万并发观众用户的直播,播放延迟降至1000毫秒。
注意:在此场景下,您必须使用 TRTCParams 中的 role 字段指定当前用户的角色。

TRTCVideoEncParam

推荐的配置

应用场景
videoResolution
videoFps
videoBitrate
视频通话(手机)
640x360
15
550kbps
视频会议(主画面 @ Mac Win)
1280x720
15
1200kbps
视频会议(主画面 @ 手机)
640x360
15
900kbps
视频会议(小画面)
320x180
15
250kbps
在线教育(老师 @ Mac Win)
960x540
15
850kbps
在线教育(老师 @ iPad)
640x360
15
550kbps
在线教育(学生)
320x180
15
250kbps

各字段详解

(int) videoResolution 编码分辨率(TRTCCloudDef.TRTC_VIDEO_RESOLUTION_ ),例如 640 x 360 是指编码出的画面的宽(像素) x 高(像素),我们在 TRTCVideoResolution 枚举定义里只定义了宽 >= 高的横屏(Landscape)分辨率,如果想要使用竖屏分辨率,需要将 resMode 设置为 Portrait。
注意:
由于很多硬件编解码器只支持能被 16 整除的像素宽度,所以 SDK 实际编码出的分辨率并不一定完全按照参数自定,而是会自动进行 16 整除修正。例如 640 x 360 的分辨率,在 SDK 内部有可能会适配为 640 x 368。
(int) videoResolutionMode 指横屏或竖屏分辨率(TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_ ),由于 TRTCVideoResolution 中只定义了横屏分辨率,如果您希望使用 360 x 640 这样的竖屏分辨率,就需要指定 resMode 为 TRTCVideoResolutionModePortrait。一般 PC 和 Mac 采用横屏(Landscape)分辨率,手机采用竖屏(Portrait)分辨率。
(int) videoFps 帧率(FPS),也就是每秒钟要编码多少帧画面。推荐设置为 15 FPS,这样既能保证画面足够流畅,又不会因为每秒帧数太多而拉低单幅画面的清晰度。如果您对流畅度要求比较高,可以设置为 20 FPS 或 25 FPS。但请不要设置 25 FPS 以上的数值,因为电影的常规帧率也只有 24 FPS。
(int) videoBitrate 视频码率(Bitrate),即每秒钟编码器输出多少 Kbit 的编码后的二进制数据。如果您将 videoBitrate 设置为 800kbps,那么每秒钟编码器会产生 800kbit 的视频数据,这些数据如果存储成一个文件,那么文件大小就是 800kbit,也就是100KB,也就是 0.1M。
视频码率并不是越高越好,它跟分辨率之间要有比较恰当的映射关系,如下表所示。

分辨率码率参照表

分辨率定义
宽高比
建议码率(VideoCall)
建议码率(LIVE)
TRTCVideoResolution_120_120
1:1
80kbps
120kbps
TRTCVideoResolution_160_160
1:1
100kbps
150kbps
TRTCVideoResolution_270_270
1:1
200kbps
300kbps
TRTCVideoResolution_480_480
1:1
350kbps
525kbps
TRTCVideoResolution_160_120
4:3
100kbps
150kbps
TRTCVideoResolution_240_180
4:3
150kbps
225kbps
TRTCVideoResolution_280_210
4:3
200kbps
300kbps
TRTCVideoResolution_320_240
4:3
250kbps
375kbps
TRTCVideoResolution_400_300
4:3
300kbps
450kbps
TRTCVideoResolution_480_360
4:3
400kbps
600kbps
TRTCVideoResolution_640_480
4:3
600kbps
900kbps
TRTCVideoResolution_960_720
4:3
1000kbps
1500kbps
TRTCVideoResolution_160_90
16:9
150kbps
250kbps
TRTCVideoResolution_256_144
16:9
200kbps
300kbps
TRTCVideoResolution_320_180
16:9
250kbps
400kbps
TRTCVideoResolution_480_270
16:9
350kbps
550kbps
TRTCVideoResolution_640_360
16:9
550kbps
900kbps
TRTCVideoResolution_960_540
16:9
850kbps
1300kbps
TRTCVideoResolution_1280_720
16:9
1200kbps
1800kbps
TRTCVideoResolution_1920_1080
16:9
2000kbps
3000kbps

TRTCNetworkQosParam

QosPreference

在网络带宽比较充裕的情况下,清晰和流畅是可以兼顾的,但当用户的网络并不理想时,究竟是优先保证清晰还是优先保证流畅?您可以通过指定 TRTCNetworkQosParam 中的 preference 参数来做出选择。
流畅优先(TRTCVideoQosPreferenceSmooth) 在用户遭遇弱网环境时,画面会变得模糊,且会有较多马赛克,但可以保持流畅或轻微卡顿。
清晰优先(TRTCVideoQosPreferenceClear) 在用户遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿。

ControlMode

controlMode 参数选择 TRTCQosControlModeServer 即可,TRTCQosControlModeClient 是腾讯云研发团队做内部调试用的,请勿关注。

常见的误区

1. 分辨率越高越好? 较高的分辨率也需要较高的码率来支撑,如果分辨率选择 1280 x 720,但码率却指定为 200kbps,画面就会有大量的马赛克。推荐参考 分辨率码率参照表 进行设置。
2. 帧率越高越好? 由于摄像头采集的画面是曝光阶段中所有现实物体的完整映射,所以并不是帧率越高,感官就越流畅,这一点跟游戏里的FPS是不一样的。恰恰相反,帧率过高,会拉低每帧画面的画质,也会减少摄像机的曝光时间,效果可能会更差。
3. 码率越高越好? 较高的码率也需要较高的分辨率来匹配,对于 320 x 240 这样分辨率,1000kbps 的码率就很浪费了,推荐参考 分辨率码率参照表 进行设置。
4. 用 Wi-Fi 的时候就可以设置很高的分辨率和码率 并不是说 Wi-Fi 的网速是恒定不变的,如果离无线路由器较远, 或者路由器信道被占用,可能网速还不如 4G。 针对这种情况, TRTC SDK 提供了测速功能,可以在视频通话前先进行测速,根据打分值来确定网络好坏。