全部产品
云市场

视频水印

更新时间:2019-06-12 12:23:28

初始化客户端

使用前请先初始化客户端,参考 initVodClient 接口。

添加水印

接口参数和返回字段请参考 AddWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. * 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
  8. */
  9. Json::Value buildImageWatermarkConfig() {
  10. Json::Value watermarkConfig;
  11. //水印的横向偏移距离
  12. watermarkConfig["Dx"] = "8";
  13. //水印的纵向偏移距离
  14. watermarkConfig["Dy"] = "8";
  15. //水印显示的宽
  16. watermarkConfig["Width"] = "55";
  17. //水印显示的高
  18. watermarkConfig["Height"] = "55";
  19. //水印显示的相对位置(左上、右上、左下、右下)
  20. watermarkConfig["ReferPos"] = "BottomRight";
  21. //水印显示的时间线(开始显示和结束显示时间)
  22. Json::Value timeline;
  23. //水印开始显示时间
  24. timeline["Start"] = "2";
  25. //水印结束显示时间
  26. timeline["Duration"] = "ToEND";
  27. watermarkConfig["Timeline"] = timeline;
  28. return watermarkConfig;
  29. }
  30. /**
  31. * 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
  32. */
  33. Json::Value buildTextWatermarkConfig() {
  34. Json::Value watermarkConfig;
  35. //文字水印显示的内容
  36. watermarkConfig["Content"] = "testwatermark";
  37. //文字水印的字体名称
  38. watermarkConfig["FontName"] = "SimSun";
  39. //文字水印的字体大小
  40. watermarkConfig["FontSize"] = "25";
  41. //文字水印的颜色(也可为RGB颜色取值,例如:#000000)
  42. watermarkConfig["FontColor"] = "Black";
  43. //文字水印的透明度
  44. watermarkConfig["FontAlpha"] = "0.2";
  45. //文字水印的字体描边颜色(也可为RGB颜色取值,例如:#ffffff)
  46. watermarkConfig["BorderColor"] = "White";
  47. //文字水印的描边宽度
  48. watermarkConfig["BorderWidth"] = "1";
  49. //文字水印距离视频画面上边的偏移距离
  50. watermarkConfig["Top"] = "20";
  51. //文字水印距离视频画面左边的偏移距离
  52. watermarkConfig["Left"] = "15";
  53. return watermarkConfig;
  54. }
  55. /**
  56. * 添加水印配置信息函数
  57. */
  58. VodApiResponse addWatermark(VodCredential authInfo) {
  59. string apiName = "AddWatermark";
  60. map<string, string> args;
  61. //水印名称
  62. args["Name"] = "testaddwatermark";
  63. //获取水印文件在oss的URL
  64. string fileUrl = "http://test-bucket.oss-cn-shanghai.aliyuncs.com/watermark/test.png";
  65. //图片水印必传图片文件的oss文件地址,水印文件必须和视频在同一个区域,例如:华东2视频,水印文件必须存放在华东2
  66. args["FileUrl"] = fileUrl;
  67. //水印配置数据
  68. Json::Value watermarkConfig;
  69. //图片水印的位置配置数据
  70. watermarkConfig = buildImageWatermarkConfig();
  71. //文字水印的位置配置数据
  72. //watermarkConfig = buildTextWatermarkConfig();
  73. args["WatermarkConfig"] = watermarkConfig.toStyledString();
  74. //文字水印:Text; 图片水印:Image
  75. args["Type"] = "Image";
  76. return getAcsResponse(authInfo, apiName, args);
  77. }
  78. // 请求示例
  79. void main() {
  80. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  81. VodApiResponse response = addWatermark(authInfo);
  82. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  83. }

修改水印

接口参数和返回字段请参考 UpdateWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. * 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
  8. */
  9. Json::Value buildImageWatermarkConfig() {
  10. Json::Value watermarkConfig;
  11. //水印的横向偏移距离
  12. watermarkConfig["Dx"] = "8";
  13. //水印的纵向偏移距离
  14. watermarkConfig["Dy"] = "8";
  15. //水印显示的宽
  16. watermarkConfig["Width"] = "55";
  17. //水印显示的高
  18. watermarkConfig["Height"] = "55";
  19. //水印显示的相对位置(左上、右上、左下、右下)
  20. watermarkConfig["ReferPos"] = "BottomRight";
  21. //水印显示的时间线(开始显示和结束显示时间)
  22. Json::Value timeline;
  23. //水印开始显示时间
  24. timeline["Start"] = "2";
  25. //水印结束显示时间
  26. timeline["Duration"] = "ToEND";
  27. watermarkConfig["Timeline"] = timeline;
  28. return watermarkConfig;
  29. }
  30. /**
  31. * 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
  32. */
  33. Json::Value buildTextWatermarkConfig() {
  34. Json::Value watermarkConfig;
  35. //文字水印显示的内容
  36. watermarkConfig["Content"] = "testwatermark";
  37. //文字水印的字体名称
  38. watermarkConfig["FontName"] = "SimSun";
  39. //文字水印的字体大小
  40. watermarkConfig["FontSize"] = "25";
  41. //文字水印的颜色(也可为RGB颜色取值,例如:#000000)
  42. watermarkConfig["FontColor"] = "Black";
  43. //文字水印的透明度
  44. watermarkConfig["FontAlpha"] = "0.2";
  45. //文字水印的字体描边颜色(也可为RGB颜色取值,例如:#ffffff)
  46. watermarkConfig["BorderColor"] = "White";
  47. //文字水印的描边宽度
  48. watermarkConfig["BorderWidth"] = "1";
  49. //文字水印距离视频画面上边的偏移距离
  50. watermarkConfig["Top"] = "20";
  51. //文字水印距离视频画面左边的偏移距离
  52. watermarkConfig["Left"] = "15";
  53. return watermarkConfig;
  54. }
  55. /**
  56. * 修改水印配置信息函数
  57. * 注意:不支持图片文件地址的修改,如果更换请创建新的水印信息
  58. */
  59. VodApiResponse updateWatermark(VodCredential authInfo) {
  60. string apiName = "UpdateWatermark";
  61. map<string, string> args;
  62. //需要更新配置信息的水印ID
  63. args["WatermarkId"] = "421ddddd4f6e734a526fd2e442";
  64. //水印配置数据
  65. Json::Value watermarkConfig;
  66. //图片水印的位置配置数据
  67. watermarkConfig = buildImageWatermarkConfig();
  68. //文字水印的位置配置数据
  69. //watermarkConfig = buildTextWatermarkConfig();
  70. args["WatermarkConfig"] = watermarkConfig.toStyledString();
  71. return getAcsResponse(authInfo, apiName, args);
  72. }
  73. // 请求示例
  74. void main() {
  75. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  76. VodApiResponse response = updateWatermark(authInfo);
  77. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  78. }

删除水印

接口参数和返回字段请参考 DeleteWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. *删除水印配置信息函数
  8. */
  9. VodApiResponse deleteWatermark(VodCredential authInfo) {
  10. string apiName = "DeleteWatermark";
  11. map<string, string> args;
  12. args["WatermarkId"] = "53f9d796fad9d7b862b2e5e5b";
  13. return getAcsResponse(authInfo, apiName, args);
  14. }
  15. // 请求示例
  16. void main() {
  17. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  18. VodApiResponse response = deleteWatermark(authInfo);
  19. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  20. }

查询水印列表

接口参数和返回字段请参考 ListWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. * 查询水印配置信息列表函数
  8. */
  9. VodApiResponse listWatermark(VodCredential authInfo) {
  10. string apiName = "ListWatermark";
  11. map<string, string> args;
  12. return getAcsResponse(authInfo, apiName, args);
  13. }
  14. // 请求示例
  15. void main() {
  16. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  17. VodApiResponse response = listWatermark(authInfo);
  18. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  19. }

查询单个水印

接口参数和返回字段请参考 GetWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. * 查询单个水印配置信息函数
  8. */
  9. VodApiResponse getWatermark(VodCredential authInfo) {
  10. string apiName = "GetWatermark";
  11. map<string, string> args;
  12. args["WatermarkId"] = "96d4f6e734a526fd2e442";
  13. return getAcsResponse(authInfo, apiName, args);
  14. }
  15. // 请求示例
  16. void main() {
  17. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  18. VodApiResponse response = getWatermark(authInfo);
  19. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  20. }

设置默认水印

接口参数和返回字段请参考 SetDefaultWatermark

  1. #include <stdio.h>
  2. #include <string>
  3. #include <map>
  4. #include <jsoncpp/json/json.h>
  5. #include "vod_sdk/openApiUtil.h"
  6. /**
  7. * 设置默认水印配置信息函数
  8. */
  9. VodApiResponse setDefaultWatermark(VodCredential authInfo) {
  10. string apiName = "SetDefaultWatermark";
  11. map<string, string> args;
  12. args["WatermarkId"] = "96d4f6e734a526fd2e442";
  13. return getAcsResponse(authInfo, apiName, args);
  14. }
  15. // 请求示例
  16. void main() {
  17. VodCredential authInfo = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");
  18. VodApiResponse response = setDefaultWatermark(authInfo);
  19. printf("httpCode: %d, result: %s\n", response.httpCode, response.result.c_str());
  20. }