本篇文档主要介绍如何在视频流上添加水印。
实现步骤
开启摄像头
trtcCloud.startLocalPreview(isFrontCamera, viewId);
添加水印
假设我们需要在主画面 (TRTC_VIDEO_STREAM_TYPE_BIG
)添加本地图片 bg_main_title.png
作为水印:
trtcCloud.setWatermark("images/bg_main_title.png", TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, 0.3, 0.4, 0.4);
水印的位置是通过 rect 参数来指定的,rect 是一个四元组参数,其格式为 (x,y,width,height)
x:水印的坐标,取值范围为0 - 1的浮点数。
y:水印的坐标,取值范围为0 - 1的浮点数。
width:水印的宽度,取值范围为0 - 1的浮点数。
height:是不用设置的,SDK 内部会根据水印图片的宽高比自动计算一个合适的高度。
参数设置举例:
如果当前视频的编码分辨率是 540 × 960,且 rect 参数被您设置为(0.1,0.1,0.2,0.0),
那么水印的左上坐标点就是(540 × 0.1,960 × 0.1)即(54,96),水印的宽度是 540 × 0.2 = 108px,水印的高度会根据水印图片的宽高比由 SDK 自动算出。
注意:
水印图片必须使用透明底色的 png 格式。
通过 setWatermark 接口添加的水印在本地预览中不可见。要查看水印效果,您需要从远端获取已设置水印的用户流。
拉取带水印的视频流
在另一台设备上拉取添加了水印的用户的视频流。
trtcCloud.startRemoteView("denny", TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, viewId);
取消水印
通过传入空值,可以取消自身发布视频流中的水印。
trtcCloud.setWatermark("", TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, 0.3, 0.4, 0.4);
本页内容是否解决了您的问题?