Function Description
This article introduces how to use the watermark plugin to add image watermarks on camera streams.
Prerequisites
- TRTC Web SDK version >= 5.3.0.
Implementation Steps
Install Watermark Plugin
import { Watermark } from 'trtc-sdk-v5/plugins/video-effect/watermark';
let trtc = TRTC.create({ plugins: [Watermark] });
Open Camera
await trtc.startLocalVideo({
view: 'local-video'
option: {
mirror: false
}
});
Start Watermark Plugin
await trtc.startPlugin('Watermark', {
imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/trtc-watermark-test.png'
});
After testing, you can replace the test image URL with your own watermark image. It is recommended to use a transparent PNG format.
Stop Watermark Plugin
await trtc.stopPlugin('Watermark');
API Description
trtc.startPlugin('Watermark', options)
Start watermark plugin.
options
Name | Type | Attributes | Description |
---|---|---|---|
imageUrl | string |
Required | Image watermark URL |
x | string |
Optional | Watermark left margin |
y | string |
Optional | Watermark top margin |
size | string \| number \| object |
Optional | When passing a string: - "cover" scales the background image to fully cover the background area, which may cause parts of the background image to be invisible. - "contain" scales the background image to fit entirely within the background area, possibly leaving some areas blank. When passing a number: - x scales the background image by x times, e.g., 0.5, with a valid range of (0,1] When passing an object: - You can specify manually by passing {width: 200, height: 300} The default is cover |
Example:
await trtc.startPlugin('Watermark', {
imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
size: 'contain'
});
await trtc.startPlugin('Watermark', {
imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
size: 'cover'
});
await trtc.startPlugin('Watermark', {
imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
x: 0,
y: 0,
size: 0.5
});
await trtc.startPlugin('Watermark', {
imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
x: 0,
y: 0,
size: {
width: 100,
height: 200
}
});
trtc.stopPlugin('Watermark')
Stop watermark plugin.
Example:
await trtc.stopPlugin('Watermark');
Q&A
1. Is the watermark mirrored?
The local preview image is enabled by default, so the watermark will also be mirrored. You can disable the local preview mirror image.
await trtc.updateLocalVideo({
option: {
mirror: false
}
});