# 直播水印 (/zh-CN/api-reference/rtc/unreal-cpp/video/video-prenpro/watermark)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_watermark"></a>

<a id="api_irtcengine_addvideowatermark"></a>

<a id="ariaid-title2"></a>

## addVideoWatermark [1/2] [#addvideowatermark-12]

添加本地视频水印。

<a id="api_irtcengine_addvideowatermark__prototype"></a>

```cpp
virtual int addVideoWatermark(const RtcImage& watermark) = 0;
```

<a id="api_irtcengine_addvideowatermark__detailed_desc"></a>

### 详情 [#详情]

<a id="弃用"></a>

:::error[弃用：]
该方法已废弃，请使用
                        [addVideoWatermark [2/2]](/zh-CN/api-reference/rtc/unreal-cpp/video/video-prenpro/watermark#api_irtcengine_addvideowatermark2) 作为替代。
:::

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上，同一直播频道中的用户，旁路推流观众，甚至采集设备都能看到或采集到该水印图片。如果你仅仅希望在旁路直播推流中添加水印，请参考 [startRtmpStreamWithTranscoding](/zh-CN/api-reference/rtc/unreal-cpp/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithtranscoding) 中描述的用法。

:::caution
注意：

- 在本地直播和旁路推流中，URL 的定义不同。本地直播中，URL 指本地直播视频上图片的本地绝对/相对路径；旁路推流中，URL 指旁路推流视频上图片的地址。
- 待添加图片的源文件格式必须是 PNG。如果待添加的 PNG 图片的尺寸与你该方法中设置的尺寸不一致，SDK 会对 PNG 图片进行裁剪，以与设置相符。
- 声网当前只支持在直播视频流中添加一个水印，后添加的水印会替换掉之前添加的水印。
:::

<a id="api_irtcengine_addvideowatermark__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="watermark"></a>
<Parameter name="watermark">

待添加在本地直播推流中的水印图片：[RtcImage](/zh-CN/api-reference/rtc/unreal-cpp/class-rtcimage)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_addvideowatermark__return_values"></a>

### 返回值 [#返回值]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类]

- [IRtcEngine](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_addvideowatermark2"></a>

<a id="ariaid-title3"></a>

## addVideoWatermark [2/2] [#addvideowatermark-22]

添加本地视频水印。

<a id="api_irtcengine_addvideowatermark2__prototype"></a>

```cpp
virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
```

<a id="api_irtcengine_addvideowatermark2__detailed_desc"></a>

### 详情 [#详情-1]

<a id="api_irtcengine_addvideowatermark2__desc1"></a>

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上，同一直播频道中的用户、旁路直播观众和采集设备都能看到或采集到该水印图片。当前只支持在直播视频流中添加一个水印，后添加的水印会替换掉之前添加的水印。

水印坐标和 [setVideoEncoderConfiguration](/zh-CN/api-reference/rtc/unreal-cpp/video/video-basic#api_irtcengine_setvideoencoderconfiguration) 方法中的设置有依赖关系：

- 如果视频编码方向（[ORIENTATION_MODE](/zh-CN/api-reference/rtc/unreal-cpp/enum-orientationmode)）固定为横屏或自适应模式下的横屏，那么水印使用横屏坐标。
- 如果视频编码方向（ORIENTATION_MODE）固定为竖屏或自适应模式下的竖屏，那么水印使用竖屏坐标。
- 设置水印坐标时，水印的图像区域不能超出 setVideoEncoderConfiguration 方法中设置的视频尺寸，否则超出部分将被裁剪。

:::caution
注意：

- 你需要在调用 [enableVideo](/zh-CN/api-reference/rtc/unreal-cpp/video/video-basic#api_irtcengine_enablevideo) 方法之后再调用该方法。
- 如果你只是在旁路推流时添加水印，你可以使用该方法或 [startRtmpStreamWithTranscoding](/zh-CN/api-reference/rtc/unreal-cpp/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithtranscoding) 方法设置水印。
- 待添加水印图片必须是 PNG 格式。该方法支持所有像素格式的 PNG 图片：RGBA、RGB、Palette、Gray 和 Alpha_gray。
- 如果待添加的 PNG 图片的尺寸与你在该方法中设置的尺寸不一致，SDK 会对 PNG 图片进行缩放或裁剪，以与设置相符。
- 如果你已设置本地视频为镜像模式，那么此处的本地水印也为镜像。为避免本地用户看本地视频时的水印也被镜像，建议你不要对本地视频同时使用镜像和水印功能，请在应用层实现本地水印功能。
:::

<a id="api_irtcengine_addvideowatermark2__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="watermarkurl"></a>
<Parameter name="watermarkUrl">

待添加的水印图片的本地路径。该方法支持从本地绝对/相对路径添加水印图片。

</Parameter>
<a id="options"></a>
<Parameter name="options">

待添加的水印图片的设置选项，详见 [WatermarkOptions](/zh-CN/api-reference/rtc/unreal-cpp/class-watermarkoptions)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_addvideowatermark2__return_values"></a>

### 返回值 [#返回值-1]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-1]

- [IRtcEngine](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_addvideowatermarkex"></a>

<a id="ariaid-title4"></a>

## addVideoWatermarkEx [#addvideowatermarkex]

添加本地视频水印。

<a id="api_irtcengineex_addvideowatermarkex__prototype"></a>

```cpp
virtual int addVideoWatermarkEx(const char* watermarkUrl,
    const WatermarkOptions& options,
    const RtcConnection& connection) = 0;
```

<a id="api_irtcengineex_addvideowatermarkex__detailed_desc"></a>

### 详情 [#详情-2]

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上，同一直播频道中的用户、旁路直播观众和采集设备都能看到或采集到该水印图片。当前只支持在直播视频流中添加一个水印，后添加的水印会替换掉之前添加的水印。

水印坐标和 [setVideoEncoderConfigurationEx](/zh-CN/api-reference/rtc/unreal-cpp/video/video-basic#api_irtcengineex_setvideoencoderconfigurationex) 方法中的设置有依赖关系：

- 如果视频编码方向（[ORIENTATION_MODE](/zh-CN/api-reference/rtc/unreal-cpp/enum-orientationmode)）固定为横屏或自适应模式下的横屏，那么水印使用横屏坐标。
- 如果视频编码方向（ORIENTATION_MODE）固定为竖屏或自适应模式下的竖屏，那么水印使用竖屏坐标。
- 设置水印坐标时，水印的图像区域不能超出 setVideoEncoderConfigurationEx 方法中设置的视频尺寸，否则超出部分将被裁剪。

:::caution
注意：

- 你需要在调用 [enableVideo](/zh-CN/api-reference/rtc/unreal-cpp/video/video-basic#api_irtcengine_enablevideo) 方法之后再调用本方法。
- 待添加水印图片必须是 PNG 格式。本方法支持所有像素格式的 PNG 图片：RGBA、RGB、Palette、Gray 和 Alpha_gray。
- 如果待添加的 PNG 图片的尺寸与你在本方法中设置的尺寸不一致，SDK 会对 PNG 图片进行缩放或裁剪，以与设置相符。
- 如果你已经使用 [startPreview [2/2]](/zh-CN/api-reference/rtc/unreal-cpp/video/video-basic#api_irtcengine_startpreview2) 方法开启本地视频预览，那么本方法的 `visibleInPreview` 可设置水印在预览时是否可见。
- 如果你已设置本地视频为镜像模式，那么此处的本地水印也为镜像。为避免本地用户看本地视频时的水印也被镜像，建议你不要对本地视频同时使用镜像和水印功能，请在应用层实现本地水印功能。
:::

<a id="api_irtcengineex_addvideowatermarkex__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="watermarkurl-1"></a>
<Parameter name="watermarkUrl">

待添加的水印图片的本地路径。该方法支持从本地绝对/相对路径添加水印图片。

</Parameter>
<a id="options-1"></a>
<Parameter name="options">

待添加的水印图片的设置选项，详见 [WatermarkOptions](/zh-CN/api-reference/rtc/unreal-cpp/class-watermarkoptions)。

</Parameter>
<a id="connection"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/unreal-cpp/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_addvideowatermarkex__return_values"></a>

### 返回值 [#返回值-2]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-2]

- [IRtcEngineEx](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_clearvideowatermarks"></a>

<a id="ariaid-title5"></a>

## clearVideoWatermarks [#clearvideowatermarks]

删除已添加的视频水印。

<a id="api_irtcengine_clearvideowatermarks__prototype"></a>

```cpp
virtual int clearVideoWatermarks() = 0;
```

<a id="api_irtcengine_clearvideowatermarks__return_values"></a>

### 返回值 [#返回值-3]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-3]

- [IRtcEngine](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_clearvideowatermarkex"></a>

<a id="ariaid-title6"></a>

## clearVideoWatermarkEx [#clearvideowatermarkex]

删除已添加的视频水印。

<a id="api_irtcengineex_clearvideowatermarkex__prototype"></a>

```cpp
virtual int clearVideoWatermarkEx(const RtcConnection& connection) = 0;
```

<a id="api_irtcengineex_clearvideowatermarkex__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="connection-1"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/unreal-cpp/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_clearvideowatermarkex__return_values"></a>

### 返回值 [#返回值-4]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [IRtcEngineEx](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengineex)
