视频点播开发者实战:视频水印动态替换-阿里云开发者社区

开发者社区> 樰篱> 正文

视频点播开发者实战:视频水印动态替换

简介: 在某些特定场景,不同的视频需要压制不同的水印信息,例如:短视频需要压制不同用户的昵称等,以表示不同视频版权属于不同的上传用户。
+关注继续查看

简介

在某些特定场景,不同的视频需要压制不同的水印信息,例如:短视频需要压制不同用户的昵称等,以表示不同视频版权属于不同的上传用户。

水印动态替换前提

配置转码模板时绑定指定的水印ID,换暂只替换对已经绑定的水印文件、水印文字的内容进行替换,不支持对未在转码模板上绑定过的水印进行替换。

水印动态替换步骤

1、创建转码模板并绑定水印ID

调用 AddTranscodeTemplateGroup 接口创建转码模板,并设置需要绑定的水印ID列表。

说明:更多接口调用详情请参考 SDK Demo示例

2、提交媒体转码

调用 SubmitTranscodeJobs 接口对指定视频发起转码。

说明:对水印信息的替换都将通过SubmitTranscodeJobs接口的OverrideParams参数来完成,参数详情请参考 OverrideParams

接口请求处理代码示例:

提交媒体转码

SubmitTranscodeJobsRequest request = new SubmitTranscodeJobsRequest();
  //需要转码的视频ID
  request.setVideoId("34a6ca54f5c140eece85a289096d");
  //转码模板组ID(模板组下包含的模板绑定需要替换参数的水印ID)
  request.setTemplateGroupId("e8aa925a9798c630d30cd737d4");
  //构建需要替换的水印参数(只有需要替换水印相关信息才需要构建)
  JSONObject overrideParams = buildOverrideParams();
  //覆盖参数,暂只支持水印部分参数替换(只有需要替换水印相关信息才需要传递)
  request.setOverrideParams(overrideParams.toJSONString());
  SubmitTranscodeJobsResponse response = client.getAcsResponse(request);

构建覆盖参数

public static JSONObject buildOverrideParams() {
    JSONObject overrideParams = new JSONObject();
    JSONArray watermarks = new JSONArray();
    //图片水印文件地址替换
    JSONObject filewatermark = new JSONObject();
    //模板上面关联需要替换的水印文件图片水印ID
    filewatermark.put("WatermarkId", "2ea5875a42fa88e7a1bc8b5742d7");
    //需要替换成对应图片水印文件的OSS地址,水印文件存储源站需要和视频存储源站一致
    filewatermark.put("FileUrl", "https://outin-40564284ef05110163e1403e7.oss-cn-shanghai.aliyuncs.com/watermark/02A1B22DF25D46C4BB84E0C163C725A4-6-2.png");
    //watermarks.add(filewatermark);

    //文字水印内容替换
    JSONObject txtwatermark = new JSONObject();
    //模板上面关联需要替换内容的文字水印ID
    txtwatermark.put("WatermarkId", "d297ba3906e061ac5242d2071bf7");
    //需要替换成对应的内容
    txtwatermark.put("Content", "用户ID:99999");
    watermarks.add(txtwatermark);
    overrideParams.put("Watermarks", watermarks);
    return overrideParams;
}

水印替换效果

c4d1c5f54eb2af2cb83f1d402bb2d3a1

阿里云开年Hi购季,视频直播、视频点播、CDN全线折扣,错过这次,再等一年!点击了解活动详情

image

image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python爬虫入门教程 51-100 Python3爬虫通过m3u8文件下载ts视频-Python爬虫6操作
什么是m3u8文件 M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。 原视频数据分割为很多个TS流,每个TS流的地址记录在m3u8文件列表中 比如我这里有一个m3u8文件...
1632 0
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(九)
Spring Cloud微服务架 Spring Cloud微服务架构设计与开发实战课时1.9—微服务架构中的经典设计模式 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
78 0
【整理】波罗密多老师python视频
作者:david_zhang@sh 【转载时请以超链接形式标明文章】链接:http://www.cnblogs.com/david-zhang-index/archive/2012/08/07/2627213.
632 0
视频点播开发者实战:视频水印动态替换
在某些特定场景,不同的视频需要压制不同的水印信息,例如:短视频需要压制不同用户的昵称等,以表示不同视频版权属于不同的上传用户。
2698 0
iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?
如果你的公司也正计划跟随 iOS 软件开发,那么你需要作出一个至关重要的决定。你需要为你的产品选择合适的技术组合。你的目标是什么?如果是原生应用开发而不是跨平台软件,你会选用哪种编程语言?久经考验的 Objective-C 还是 Swift?
1339 0
+关注
樰篱
阿里云产品运营,专注边缘计算和视频云产品与技术传播
527
文章
59
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载