直播水印
addVideoWatermark [1/3]
向本地视频流添加 PNG 格式的水印图像。
C++
virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0;
废弃
添加水印图像后,频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该图像。如果你只想在 CDN 推流中添加水印,请参见 startRtmpStreamWithTranscoding。
信息
- 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
- 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会裁剪该文件以符合设置。
- 声网 SDK 仅支持在本地视频或 CDN 推流中添加一张水印图像。新添加的水印图像会替换之前的图像。
参数
- watermark
- 水印图像。详见 RtcImage。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
addVideoWatermark [2/3]
向本地视频添加 PNG 格式的水印图像。
C++
virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
废弃
该方法在直播中向本地视频添加 PNG 格式的水印图像。添加后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 每次仅支持添加一张水印图像,新添加的图像会替换之前的图像。 水印图像的坐标依赖于 setVideoEncoderConfiguration 方法中的设置:
- 如果编码视频的方向模式(ORIENTATION_MODE)为固定横屏模式或自适应横屏模式,水印图像将采用横屏方向。
- 如果编码视频的方向模式为固定竖屏模式或自适应竖屏模式,水印图像将采用竖屏方向。
- 设置水印位置时,区域必须小于 setVideoEncoderConfiguration 中设置的视频尺寸,否则水印图像将被裁剪。
visibleInPreview 参数控制预览时水印是否可见。但其最终是否生效还取决于调用 setupLocalVideo 时设置的视频帧位置(position): - 观察位置
VIDEO_MODULE_POSITION_POST_CAPTURER(默认):visiblePreview为 true,则水印可见;visiblePreview为 false,则水印不可见。 - 观察位置
VIDEO_MODULE_POSITION_PRE_ENCODER:visiblePreview为 true,则水印可见;visiblePreview为 false,则水印仍可见。
信息
- 请确保在调用该方法前已调用 enableVideo。
- 如果你只想为媒体推流添加水印,可以调用该方法或 startRtmpStreamWithTranscoding 方法。
- 该方法仅支持添加 PNG 格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
- 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
- 如果你为本地视频启用了镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
参数
- watermarkUrl
- 要添加的水印图像的本地文件路径,支持使用本地绝对路径或相对路径。
- options
- 水印图像的选项。详见 WatermarkOptions。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
addVideoWatermark [3/3]
向本地视频流添加水印图像。
C++
virtual int addVideoWatermark(const WatermarkConfig& configs) = 0;
自从
自 v4.6.0 版本新增。
你可以使用该方法在本地视频流中叠加水印图像,并通过 WatermarkConfig 设置水印在预览画面中的位置、大小和可见性。
参数
- configs
- 水印配置。详见 WatermarkConfig。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
addVideoWatermarkEx [1/2]
向本地视频添加水印图像。
C++
virtual int addVideoWatermarkEx(const char* watermarkUrl, const WatermarkOptions& options, const RtcConnection& connection) = 0;
废弃
addVideoWatermarkEx(const WatermarkConfig& config, const RtcConnection& connection)。该方法在直播中向本地视频添加 PNG 格式的水印图像。添加后,频道中的所有观众(包括 CDN 观众)和采集设备都可以看到并采集该图像。声网 SDK 每个直播视频流仅支持添加一张水印图像,新添加的图像会替换之前的图像。 水印图像的位置依赖于 setVideoEncoderConfigurationEx 方法中的设置:
- 如果编码视频的方向模式(ORIENTATION_MODE)为固定横屏或自适应横屏,水印将按横屏方向显示。
- 如果方向模式为固定竖屏或自适应竖屏,水印将按竖屏方向显示。
- 设置水印位置时,区域必须小于 setVideoEncoderConfigurationEx 中设置的视频尺寸,否则水印图像会被裁剪。
信息
- 请确保在调用该方法前已调用 enableVideo。
- 该方法仅支持 PNG 格式的水印图像。支持的 PNG 像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
- 如果 PNG 图像尺寸与该方法设置不一致,图像将被裁剪或缩放以适配设置。
- 如果已调用
startPreview启用本地视频预览,可通过visibleInPreview成员设置水印是否在预览中可见。 - 如果启用了本地视频的镜像模式,水印也会被镜像。为避免水印被镜像,声网建议不要同时使用镜像和水印功能。你也可以在应用层实现水印功能。
适用场景
该方法适用于多频道场景。
参数
- watermarkUrl
- 要添加的水印图像的本地文件路径,支持本地绝对路径或相对路径。
- options
- 水印图像的相关设置,详见 WatermarkOptions。
- connection
- 连接信息,详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
addVideoWatermarkEx [2/2]
向本地视频添加水印图像。
C++
virtual int addVideoWatermarkEx(const WatermarkConfig& config, const RtcConnection& connection) = 0;
自从
自 v4.6.0 版本新增。
适用场景
该方法适用于多频道场景。
参数
- config
- 水印配置,详见 WatermarkConfig。
- connection
- RtcConnection 对象,详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
clearVideoWatermarkEx
移除视频流中的水印图像。
C++
virtual int clearVideoWatermarkEx(const RtcConnection& connection) = 0;
适用场景
该方法适用于多频道场景。
参数
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
clearVideoWatermarks
removeVideoWatermark
removeVideoWatermarkEx
从本地或远端视频流中移除指定的水印图像。
C++
virtual int removeVideoWatermarkEx(const char* id, const RtcConnection& connection) = 0;
自从
自 v4.6.0 版本新增。
适用场景
该方法适用于多频道场景。
参数
- id
- 水印 ID。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。