直播水印

  • macOS

更新时间不可用

addVideoWatermark:

向本地视频添加水印图像。

Objective-C
- (int)addVideoWatermark:(AgoraImage * _Nonnull)watermark NS_SWIFT_NAME(addVideoWatermark(_:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead.");

废弃

自 v4.5.0 版本废弃,请改用 addVideoWatermarkWithConfig:。

该方法在直播场景中向本地视频流添加 PNG 格式的水印图像。添加水印图像后,频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该图像。如果你只想向 CDN 推流添加水印,请参见 startRtmpStreamWithTranscoding: 方法。

注:

  • 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
  • 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会裁剪该文件以符合设置。
  • SDK 仅支持在本地视频或 CDN 推流中添加一个水印图像。新添加的水印图像会替换之前的图像。

参数

参数名描述
watermark

要添加到本地直播中的水印图像。详见 AgoraImage。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

addVideoWatermark:options:

向本地视频添加水印图像。

Objective-C
- (int)addVideoWatermark:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options NS_SWIFT_NAME(addVideoWatermark(_:options:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead.");

废弃

自 v4.5.0 版本废弃,请改用 addVideoWatermarkWithConfig:config。

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 水印图像的坐标依赖于 setVideoEncoderConfiguration: 方法中的设置:

  • 如果编码视频的方向模式(AgoraVideoOutputOrientationMode)为固定横屏或自适应横屏模式,水印图像将使用横屏方向。
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将使用竖屏方向。
  • 设置水印位置时,区域必须小于 setVideoEncoderConfiguration: 方法中设置的尺寸,否则水印图像将被裁剪。

你可以通过调用该方法时设置 visibleInPreview 参数来控制水印在预览中的可见性。但其最终是否生效还取决于调用 setupLocalVideo: 时设置的 position 参数。:

  • 观察位置 AgoraVideoModulePositionPostCapture(默认):visiblePreview 为 YES,则水印可见;visiblePreview 为 NO,则水印不可见。
  • 观察位置 AgoraVideoModulePositionPreEncoder:visiblePreview 为 YES,则水印可见;visiblePreview 为 NO,则水印仍可见。

注:

  • 请确保在调用该方法前已调用 enableVideo。
  • 如果你只想为媒体推流添加水印,可以调用该方法或 startRtmpStreamWithTranscoding:transcoding: 方法。
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • 如果你为本地视频启用了镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。

参数

参数名描述
url

要添加的水印图像的本地文件路径。该方法支持使用本地的绝对路径或相对路径添加水印图像。

options

水印图像的相关选项。详见 WatermarkOptions。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

addVideoWatermarkWithConfig:

向本地视频添加水印图像。

Objective-C
- (int)addVideoWatermarkWithConfig:(WatermarkConfig* _Nonnull)config NS_SWIFT_NAME(addVideoWatermark(_:));

自从

自 v4.6.0 版本新增。

你可以使用此方法在本地视频流上叠加水印图像,并通过 WatermarkConfig 配置水印的位置、大小以及在预览中的可见性。

参数

参数名描述
config

水印图像的配置。详见 WatermarkConfig。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

addVideoWatermarkEx:options:connection:

向本地视频添加水印图像。

Objective-C
- (int)addVideoWatermarkEx:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:options:connection:)) __deprecated_msg("use addVideoWatermark:config connection instead.");

废弃

自 v4.5.0 版本废弃,请改用 addVideoWatermark:config connection。

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 水印图像的坐标依赖于 setVideoEncoderConfigurationEx 方法中的设置:

  • 如果编码视频的方向模式(AgoraVideoOutputOrientationMode)为固定横屏或自适应横屏模式,水印图像将采用横屏方向。
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将采用竖屏方向。
  • 设置水印位置时,区域必须小于 setVideoEncoderConfigurationEx 方法中设置的尺寸,否则水印图像将被裁剪。

注:

  • 请确保你在调用该方法前已调用 enableVideo。
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • 如果你已通过调用 startPreview 方法启用本地视频预览,可使用 visibleInPreview 成员设置水印是否在预览中可见。
  • 如果你已为本地视频启用镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。

适用场景

该方法适用于多频道场景。

参数

参数名描述
url

要添加的水印图像的本地文件路径。该方法支持从本地绝对路径或相对路径添加水印图像。

options

水印图像的选项。详见 WatermarkOptions。

connection

连接信息。详见 AgoraRtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

addVideoWatermarkEx:connection:

向本地视频添加水印图像。

Objective-C
- (int)addVideoWatermarkEx:(WatermarkConfig* _Nonnull)configs connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:connection:));

自从

自 v4.6.0 版本新增。

适用场景

该方法适用于多频道场景。

参数

参数名描述
configs

水印配置。详见 WatermarkConfig。

connection
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

clearVideoWatermarkEx:

从视频流中移除水印图像。

Objective-C
- (int)clearVideoWatermarkEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(clearVideoWatermarkEx(_:));

适用场景

该方法适用于多频道场景。

参数

参数名描述
connection

连接信息。详见 AgoraRtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

clearVideoWatermarks

从视频流中移除水印图像。

Objective-C
- (int)clearVideoWatermarks NS_SWIFT_NAME(clearVideoWatermarks());

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

removeVideoWatermark:

从本地视频中移除水印图像。

Objective-C
- (int)removeVideoWatermark:(NSString* _Nonnull)id NS_SWIFT_NAME(removeVideoWatermark(_:));

自从

自 v4.6.0 版本新增。

该方法使用你指定的唯一标识符,从本地视频流中移除之前添加的水印图像。

参数

参数名描述
id

要移除的水印的标识符。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

removeVideoWatermarkEx:connection:

从本地或远端视频流中移除指定的水印图像。

Objective-C
- (int)removeVideoWatermarkEx:(NSString* _Nonnull)id connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(removeVideoWatermarkEx(_:connection:));

自从

自 v4.6.0 版本新增。

适用场景

该方法适用于多频道场景。

参数

参数名描述
id

要移除的水印的标识符。

connection

连接信息。详见 AgoraRtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类