You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
视频管理
镜像
复制全文
下载 pdf
镜像

适用场景

在这些场景下,你可能需要对本地渲染和(或)发布到远端的视频画面进行水平翻转,使其呈现镜像效果。

行业

场景

在线课堂

课堂直播真实还原线下课堂,例如:卡片跟读,游戏互动,音乐、舞蹈教学

互动娱乐

直播间内主播与其他主播或观众实时互动时,收到有关方位的指令

视频通话

会议通话时,参会者需要与主讲人的讲解方位保持一致

远程医疗

进行远程问诊、在线咨询时,针对正确部位进行看诊(例:左眼)

本文介绍如何使用 RTC SDK 的镜像接口,实现不同的镜像需求。

名词解释

  • 镜像:指将人或物体各部分的排列以水平翻转的形式呈现在视频画面中。
  • 本地预览镜像: 也叫本地渲染镜像。是本地用户的画面镜像处理后渲染到本地视图,即自己在手机上看自己;
  • 编码传输镜像: 本地用户发布的视频流编码时进行镜像处理。将自己给所有人的画面镜像,影响远端所有用户。
  • 远端渲染镜像:将远端的画面在本地用户设备上单独进行镜像,只影响本地用户自己观看。
  • 视频前处理:对视频图像进行特效处理,例如,美颜、动态贴纸、虚拟背景等。

前提条件

你已经集成了 3.29 及以上版本的 RTC SDK,并实现音视频通话功能。
支持镜像功能的 SDK 详见API 参考

功能说明

作用范围

  • 镜像功能对前置摄像头、后置摄像头和自定义视频采集均有效。
  • 镜像功能对共享屏幕流无效,即,无论是否设置镜像模式,本地渲染或编码传输到远端的共享屏幕流都不呈现镜像效果。
  • 使用外部渲染器时,本地预览和编码传输镜像(MIRROR_TYPE_RENDER_AND_ENCODER(3))和无镜像(MIRROR_TYPE_NONE(0))选项有效,编码传输镜像选项 (MIRROR_TYPE_RENDER(1)) 无效。
rtcVideo.setLocalVideoMirrorType(MirrorType.MIRROR_TYPE_NONE);

初始值

在调用镜像接口设置镜像类型之前,不同视频源的镜像设置具有不同的初始值,如下表

前置摄像头/ PC 摄像头

后置摄像头

视频外部源

移动端

本地渲染:镜像
编码传输:原始

本地渲染:原始
编码传输:原始

本地渲染:原始
编码传输:原始

PC 端

本地渲染:镜像
编码传输:原始

不适用

本地渲染:原始
编码传输:原始

镜像模式

SDK 支持四种镜像模式,分别为

  • 开启本地渲染镜像
  • 开启编码镜像
  • 开启本地渲染镜像和编码镜像
  • 关闭镜像

镜像模式的效果

假设现实中看到的人和物如下图:
Image
设置不同的镜像模式后,本地用户预览效果和远端用户看到的效果如下表。

镜像模式

本地用户预览效果

远端用户看到的效果

开启本地渲染镜像

Image

Image

开启编码镜像

Image

Image

开启本地渲染镜像和编码镜像

Image

Image

关闭镜像

Image

Image

镜像模式下添加贴纸的效果

在实际应用中,可能还需要对视频进行其他前处理,例如添加动态贴纸、虚拟背景等。
假设现实中看到的人和物如左图,前处理中添加的贴纸如右图。

Image

Image

现实中看到的人和物

在 RTC 中添加的笑脸贴纸

在添加贴纸的场景中设置不同的镜像模式后,本地用户预览效果和远端用户看到的效果如下表。

镜像模式

本地用户预览效果

远端用户看到的效果

本地和远端看到的图像是否一致

开启本地渲染镜像

镜像Image
摄像头采集到的画面镜像
笑脸贴纸为镜像

原始Image

开启编码镜像

镜像Image
摄像头采集到的画面镜像
笑脸贴纸为镜像

镜像Image
摄像头采集到的画面镜像
笑脸贴纸为初始状态

开启本地渲染镜像和编码镜像

镜像Image
摄像头采集到的画面镜像
笑脸贴纸为初始状态

镜像Image
摄像头采集到的画面镜像
笑脸贴纸为初始状态

关闭镜像

原始Image

原始Image

数据流转图

下图分别展示了,在不同镜像模式下,对视频流进行镜像处理和其他前处理的过程

  • 开启本地渲染镜像
    Image
  • 开启本地渲染镜像和编码镜像
    Image
  • 开启编码镜像
    Image

注意事项

  • 在调用镜像接口设置镜像类型之前,调用 switchCamera 切换摄像头时,将自动恢复为初始值。
    例如,在引擎的生命周期内没有调用过镜像接口的前提下,从后置摄像头切到前置摄像头后,本地渲染将从原始状态变成镜像。
  • 初始值仅存在于调用镜像模式之前。一旦设置了镜像模式,即使调用 switchCamera 切换摄像采集源,镜像模式的设置也将继续生效,不会自动恢复为初始值。
    例如,当前摄像头为后置摄像头,将镜像模式设置为本地渲染镜像和编码镜像,此后切换为前置摄像头时,镜像模式仍为本地渲染镜像和编码镜像,直到调用镜像接口重新设置为其他模式。

示例项目

API 参考

说明:表格中的 macOS API 接口为 Objective-C,而示例项目中的 macOS 项目使用的是 Windows SDK 中的 API 接口。

平台

Android

iOS

macOS

Windows

Electron

Unity

Flutter

Web

版本

3.29 及以后版本

3.29 及以后版本

3.44 及以后版本

3.29 及以后版本

自首个对外版本

自首个对外版本

自首个对外版本

3.22.x 及以后版本
支持本地渲染镜像

设置镜像模式

setLocalVideoMirrorType

setLocalVideoMirrorType:

setLocalVideoMirrorType:

setLocalVideoMirrorType

setLocalVideoMirrorType

SetLocalVideoMirrorType

setLocalVideoMirrorType

setLocalVideoMirrorType

切换摄像头

switchCamera

switchCamera:

SwitchCamera

switchCamera

setVideoCaptureDevice

最近更新时间:2026.06.15 21:13:33
这个页面对您有帮助吗?
有用
有用
无用
无用