Watermark水印
更新时间:2023-04-23
数字水印是向数据多媒体(如图像、音频、视频信号等)中添加某些数字信息以达到文件真伪鉴别、版权保护等功能。嵌入的水印信息隐藏于宿主文件中,不影响原始文件的可观性和完整性。
用户可以将BOS中的一个Object创建为水印,获得对应的watermarkId。然后在转码任务中将此水印添加到目的多媒体文件。
创建水印
如果需要创建一个水印, 指定水印的位置, 并获得水印的唯一ID(其中bucket是水印文件所在bucket名称,key是水印文件在该bucket中的文件名),可以参考如下代码:
args := &api.CreateWaterMarkArgs{}
args.Bucket = "go-test"
args.Key = "01.jpg"
args.HorizontalAlignment = "right"
args.VerticalAlignment = "top"
createWaterMarkResponse, err := MEDIA_CLIENT.CreateWaterMark(args)
if err != nil {
fmt.Printf("create watermark job error: %+v\n", err)
return
}
fmt.Println("create watermark job success Id: ", createWaterMarkResponse.WatermarkId)
如果需要创建一个水印, 指定水印的位置、显示时间段、重复显示次数(动态水印)、自动缩放, 并获得水印的唯一ID,可以参考如下代码:
args := &api.CreateWaterMarkArgs{}
args.Bucket = "go-test"
args.Key = "01.jpg"
args.HorizontalAlignment = "left"
args.VerticalAlignment = "top"
args.HorizontalOffsetInPixel = 20
args.VerticalOffsetInPixel = 10
timeline := &api.Timeline{}
timeline.StartTimeInMillisecond = 1000
timeline.DurationInMillisecond = 3000
args.Timeline = timeline
args.Repeated = 1
args.AllowScaling = true
createWaterMarkResponse, err := MEDIA_CLIENT.CreateWaterMark(args)
if err != nil {
fmt.Printf("create watermark job error: %+v\n", err)
return
}
fmt.Println("create watermark job success Id: ", createWaterMarkResponse.WatermarkId)
查询指定水印
如果需要查询已创建的水印,可以参考如下代码:
waterMarkId := "wmk-xxx"
response, err := MEDIA_CLIENT.GetWaterMark(waterMarkId)
if err != nil {
fmt.Printf("get watermark job error: %+v\n", err)
return
}
fmt.Printf("get watermark job success: %+v\n", response)
查询当前用户水印
如果需要查询出本用户所创建的全部水印,可以参考如下代码:
response, err := MEDIA_CLIENT.ListWaterMark()
if err != nil {
fmt.Printf("get watermark job error: %+v\n", err)
return
}
for _, watermark := range response.Watermarks {
fmt.Printf("watermark job: %+v\n", watermark)
}
删除水印
如果需要删除某个已知watermarkId的水印,可以参考如下代码:
waterMarkId := "wmk-xxx"
err := MEDIA_CLIENT.DeleteWaterMark(waterMarkId)
if err != nil {
fmt.Printf("delete watermark job error: %+v\n", err)
return
}
fmt.Println("delete watermark success")