本篇文档提供了C/C++ SDK视频水印模块相关功能的API调用示例。包含添加水印、修改水印、删除水印、查询水印、设置默认水印等。
初始化客户端
使用前请先初始化客户端,请参见初始化。
添加水印
调用AddWatermark接口,完成添加水印功能。
接口参数和返回字段请参见AddWatermark。调用示例如下:
说明
获取文件上传地址和凭证详细参数请参见CreateUploadAttachedMedia。
水印文件OSS上传详细参数请参见OSS文件上传。
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
* 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
*/
Json::Value buildImageWatermarkConfig() {
Json::Value watermarkConfig;
//水印的横向偏移距离
watermarkConfig["Dx"] = "8";
//水印的纵向偏移距离
watermarkConfig["Dy"] = "8";
//水印显示的宽
watermarkConfig["Width"] = "55";
//水印显示的高
watermarkConfig["Height"] = "55";
//水印显示的相对位置(左上、右上、左下、右下)
watermarkConfig["ReferPos"] = "BottomRight";
//水印显示的时间线(开始显示和结束显示时间)
Json::Value timeline;
//水印开始显示时间
timeline["Start"] = "2";
//水印结束显示时间
timeline["Duration"] = "ToEND";
watermarkConfig["Timeline"] = timeline;
return watermarkConfig;
}
/**
* 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
*/
Json::Value buildTextWatermarkConfig() {
Json::Value watermarkConfig;
//文字水印显示的内容
watermarkConfig["Content"] = "testwatermark";
//文字水印的字体名称
watermarkConfig["FontName"] = "SimSun";
//文字水印的字体大小
watermarkConfig["FontSize"] = "25";
//文字水印的颜色(也可为RGB颜色取值,例如:#000000)
watermarkConfig["FontColor"] = "Black";
//文字水印的透明度
watermarkConfig["FontAlpha"] = "0.2";
//文字水印的字体描边颜色(也可为RGB颜色取值,例如:#ffffff)
watermarkConfig["BorderColor"] = "White";
//文字水印的描边宽度
watermarkConfig["BorderWidth"] = "1";
//文字水印距离视频画面上边的偏移距离
watermarkConfig["Top"] = "20";
//文字水印距离视频画面左边的偏移距离
watermarkConfig["Left"] = "15";
return watermarkConfig;
}
/**
* 添加水印配置信息函数
*/
VodApiResponse addWatermark(VodCredential authInfo) {
string apiName = "AddWatermark";
map<string, string> args;
//水印名称
args["Name"] = "testaddwatermark";
//获取水印文件在oss的URL
string fileUrl = "http://test-bucket.oss-cn-shanghai.aliyuncs.com/watermark/test.png";
//图片水印必传图片文件的oss文件地址,水印文件必须和视频在同一个区域,例如:华东2视频,水印文件必须存放在华东2
args["FileUrl"] = fileUrl;
//水印配置数据
Json::Value watermarkConfig;
//图片水印的位置配置数据
watermarkConfig = buildImageWatermarkConfig();
//文字水印的位置配置数据
//watermarkConfig = buildTextWatermarkConfig();
args["WatermarkConfig"] = watermarkConfig.toStyledString();
//文字水印:Text; 图片水印:Image
args["Type"] = "Image";
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = addWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
修改水印
调用UpdateWatermark接口,完成修改水印功能。
接口参数和返回字段请参见UpdateWatermark。调用示例如下:
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
* 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
*/
Json::Value buildImageWatermarkConfig() {
Json::Value watermarkConfig;
//水印的横向偏移距离
watermarkConfig["Dx"] = "8";
//水印的纵向偏移距离
watermarkConfig["Dy"] = "8";
//水印显示的宽
watermarkConfig["Width"] = "55";
//水印显示的高
watermarkConfig["Height"] = "55";
//水印显示的相对位置(左上、右上、左下、右下)
watermarkConfig["ReferPos"] = "BottomRight";
//水印显示的时间线(开始显示和结束显示时间)
Json::Value timeline;
//水印开始显示时间
timeline["Start"] = "2";
//水印结束显示时间
timeline["Duration"] = "ToEND";
watermarkConfig["Timeline"] = timeline;
return watermarkConfig;
}
/**
* 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
*/
Json::Value buildTextWatermarkConfig() {
Json::Value watermarkConfig;
//文字水印显示的内容
watermarkConfig["Content"] = "testwatermark";
//文字水印的字体名称
watermarkConfig["FontName"] = "SimSun";
//文字水印的字体大小
watermarkConfig["FontSize"] = "25";
//文字水印的颜色(也可为RGB颜色取值,例如:#000000)
watermarkConfig["FontColor"] = "Black";
//文字水印的透明度
watermarkConfig["FontAlpha"] = "0.2";
//文字水印的字体描边颜色(也可为RGB颜色取值,例如:#ffffff)
watermarkConfig["BorderColor"] = "White";
//文字水印的描边宽度
watermarkConfig["BorderWidth"] = "1";
//文字水印距离视频画面上边的偏移距离
watermarkConfig["Top"] = "20";
//文字水印距离视频画面左边的偏移距离
watermarkConfig["Left"] = "15";
return watermarkConfig;
}
/**
* 修改水印配置信息函数
* 注意:不支持图片文件地址的修改,如果更换请创建新的水印信息
*/
VodApiResponse updateWatermark(VodCredential authInfo) {
string apiName = "UpdateWatermark";
map<string, string> args;
//需要更新配置信息的水印ID
args["WatermarkId"] = "421ddddd4f6e734a526fd2e****;
//水印配置数据
Json::Value watermarkConfig;
//图片水印的位置配置数据
watermarkConfig = buildImageWatermarkConfig();
//文字水印的位置配置数据
//watermarkConfig = buildTextWatermarkConfig();
args["WatermarkConfig"] = watermarkConfig.toStyledString();
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = updateWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
删除水印
调用DeleteWatermark接口,完成删除水印功能。
接口参数和返回字段请参见DeleteWatermark。调用示例如下:
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
*删除水印配置信息函数
*/
VodApiResponse deleteWatermark(VodCredential authInfo) {
string apiName = "DeleteWatermark";
map<string, string> args;
args["WatermarkId"] = "53f9d796fad9d7b862b2e5****;
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = deleteWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
查询水印列表
调用ListWatermark接口,完成查询水印列表功能。
接口参数和返回字段请参见ListWatermark。调用示例如下:
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
* 查询水印配置信息列表函数
*/
VodApiResponse listWatermark(VodCredential authInfo) {
string apiName = "ListWatermark";
map<string, string> args;
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = listWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
查询单个水印
调用GetWatermark接口,完成查询单个水印功能。
接口参数和返回字段请参见GetWatermark。调用示例如下:
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
* 查询单个水印配置信息函数
*/
VodApiResponse getWatermark(VodCredential authInfo) {
string apiName = "GetWatermark";
map<string, string> args;
args["WatermarkId"] = "96d4f6e734a526fd2****";
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = getWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
设置默认水印
调用SetDefaultWatermark接口,完成设置默认水印功能。
接口参数和返回字段请参见SetDefaultWatermark。调用示例如下:
#include <stdio.h>
#include <string>
#include <map>
#include <jsoncpp/json/json.h>
#include "vod_sdk/openApiUtil.h"
/**
* 设置默认水印配置信息函数
*/
VodApiResponse setDefaultWatermark(VodCredential authInfo) {
string apiName = "SetDefaultWatermark";
map<string, string> args;
args["WatermarkId"] = "96d4f6e734a526fd2****";
return getAcsResponse(authInfo, apiName, args);
}
// 请求示例
void main() {
VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
VodApiResponse response = setDefaultWatermark(authInfo);
printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
}
在文档使用中是否遇到以下问题
更多建议
匿名提交