视频水印

本篇文档提供了PHP SDK视频水印模块相关功能的API调用示例。包含添加水印、修改水印、删除水印、查询水印等。

初始化客户端

使用前请先初始化客户端,请参见初始化

添加水印

调用AddWatermark接口,完成添加水印功能。

接口参数和返回字段请参见AddWatermark。调用示例如下:

/**
 * 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
 * @return
 */
function buildImageWatermarkConfig() {
    $watermarkConfig = array();
    //水印的横向偏移距离
    $watermarkConfig["Dx"] = "8";
    //水印的纵向偏移距离
    $watermarkConfig["Dy"] = "8";
    //水印显示的宽
    $watermarkConfig["Width"] = "55";
    //水印显示的高
    $watermarkConfig["Height"] = "55";
    //水印显示的相对位置(左上、右上、左下、右下)
    $watermarkConfig["ReferPos"] = "BottomRight";

    //水印显示的时间线(开始显示和结束显示时间)
    $timeline = array();
    //水印开始显示时间
    $timeline["Start"] = "2";
    //水印结束显示时间
    $timeline["Duration"] = "ToEND";
    $watermarkConfig["Timeline"] = $timeline;

    return json_encode($watermarkConfig);
}

/**
 * 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
 * @return
 */
function buildTextWatermarkConfig() {
    $watermarkConfig = array();
    //文字水印显示的内容
    $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 json_encode($watermarkConfig);
}

/**
 * 添加水印配置信息函数
 */
function addWatermark($client) {
    $request = new vod\AddWatermarkRequest();
    //水印名称
    $request->setName("addwatermark");

    //水印文件在oss的URL
    //图片水印必传图片文件的oss文件地址,水印文件必须和视频在同一个区域,例如:华东2视频,水印文件必须存放在华东2
    $request->setFileUrl("http://192.168.0.0/16/watermark/test.png");

    //水印配置数据
    //图片水印的位置配置数据
    $request->setWatermarkConfig(buildImageWatermarkConfig());
    //文字水印的位置配置数据
    //$request->setWatermarkConfig(buildTextWatermarkConfig());

    //文字水印:Text; 图片水印:Image
    $request->setType("Image");

    return $client->getAcsResponse($request);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = addWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}

修改水印

调用UpdateWatermark接口,完成修改水印功能。

接口参数和返回字段请参见UpdateWatermark。调用示例如下:

/**
 * 构建图片水印的配置数据,根据具体设置需求修改对应的参数值
 * @return
 */
function buildImageWatermarkConfig() {
    $watermarkConfig = array();
    //水印的横向偏移距离
    $watermarkConfig["Dx"] = "10";
    //水印的纵向偏移距离
    $watermarkConfig["Dy"] = "10";
    //水印显示的宽
    $watermarkConfig["Width"] = "66";
    //水印显示的高
    $watermarkConfig["Height"] = "66";
    //水印显示的相对位置(左上、右上、左下、右下)
    $watermarkConfig["ReferPos"] = "BottomRight";

    //水印显示的时间线(开始显示和结束显示时间)
    $timeline = array();
    //水印开始显示时间
    $timeline["Start"] = "2";
    //水印结束显示时间
    $timeline["Duration"] = "ToEND";
    $watermarkConfig["Timeline"] = $timeline;

    return json_encode($watermarkConfig);
}

/**
 * 构建文字水印的配置数据,根据具体设置需求修改对应的参数值
 * @return
 */
function buildTextWatermarkConfig() {
    $watermarkConfig = array();
    //文字水印显示的内容
    $watermarkConfig["Content"] = "testwatermark";
    //文字水印的字体名称
    $watermarkConfig["FontName"] = "SimSun";
    //文字水印的字体大小
    $watermarkConfig["FontSize"] = "40";
    //文字水印的颜色(也可为RGB颜色取值,例如:#000000)
    $watermarkConfig["FontColor"] = "Black";
    //文字水印的透明度
    $watermarkConfig["FontAlpha"] = "0.2";
    //文字水印的字体描边颜色(也可为RGB颜色取值,例如:#ffffff)
    $watermarkConfig["BorderColor"] = "White";
    //文字水印的描边宽度
    $watermarkConfig["BorderWidth"] = "2";
    //文字水印距离视频画面上边的偏移距离
    $watermarkConfig["Top"] = "20";
    //文字水印距离视频画面左边的偏移距离
    $watermarkConfig["Left"] = "15";

    return json_encode($watermarkConfig);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = updateWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}

删除水印

调用DeleteWatermark接口,完成删除水印功能。

接口参数和返回字段请参见DeleteWatermark。调用示例如下:

/**
 * 删除水印配置信息函数
 */
function deleteWatermark($client) {
    $request = new vod\DeleteWatermarkRequest();
    //设置水印ID
    $request->setWatermarkId("e7d983370268092176588a2c452****");

    return $client->getAcsResponse($request);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = deleteWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}

查询水印列表

调用ListWatermark接口,完成查询水印列表功能。

接口参数和返回字段请参见ListWatermark。调用示例如下:

/**
 * 查询水印配置信息列表函数
 */
function listWatermark($client) {
    $request = new vod\ListWatermarkRequest();
    return $client->getAcsResponse($request);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = listWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}

查询单个水印

调用GetWatermark接口,完成查询单个水印功能。

接口参数和返回字段请参见GetWatermark。调用示例如下:

/**
 * 查询单个水印配置信息函数
 */
function getWatermark($client) {
    $request = new vod\GetWatermarkRequest();
    //需要查询水印信息的水印ID
    $request->setWatermarkId("bfc084674fb64486b6e5bace3052****");

    return $client->getAcsResponse($request);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = getWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}

设置默认水印

调用SetDefaultWatermark接口,完成设置默认水印功能。

接口参数和返回字段请参见SetDefaultWatermark。调用示例如下:

/**
 * 设置默认水印配置信息函数
 */
function setDefaultWatermark($client) {
    $request = new vod\SetDefaultWatermarkRequest();
    //设置默认的水印ID
    $request->setWatermarkId("bfc084674fb64486b6e5bace3052****");

    return $client->getAcsResponse($request);
}

/**
 * 以下为调用示例
 * @param args
 */
try {
    $client = initVodClient("<AccessKeyId>", "<AccessKeySecret>");

    $result = setDefaultWatermark($client);
    var_dump($result);
} catch (Exception $e) {
    print $e->getMessage()."\n";
}