水印

最近更新时间:2019-05-17 11:57:19

打水印是在视频转码或截图时,将特定的图片或文字附加在画面指定位置的过程,是一种离线任务。云点播支持以下类型的水印:

  • 静态图片水印:PNG 格式的图片水印,可以是版权方的 Logo、台标等,常用于表明视频的版权归属。
  • 动态图片水印:APNG 格式的动态图片水印,可以实现水印图片动态变化的效果。
  • 文字水印:多语言的文字形式水印,可以是用户昵称等,常用于短视频中标识视频制作者。

云点播支持为视频或截图打多个水印,并可以指定各个水印在画面中的大小和位置。

水印模板

水印的目标规格包含了水印类型、宽高和位置等参数。云点播使用水印模板表示水印参数集合,通过水印模板,可以指定以下水印相关参数。

参数 说明
水印类型(Type) 可以打图片和文字两种类型的水印:
  • 图片水印:静态图片和动态图片。
  • 文字水印:支持多种语言的文字。
  • 水印位置(Position) 水印在视频画面中的相对位置。
    图片大小(ImageSize) 图片水印占视频画面的大小。
    图片内容(ImageContent) 图片水印中图片的二进制内容。
    字体大小(FontSize) 文字水印中字体的大小。
    字体类型(FontType) 文字水印中文字的字体类型(如宋体)。
    字体颜色(FontColor) 文字水印中文字的颜色(0xRRGGBB)。
    文字透明度(FontAlpha) 文字水印中文字的透明度(0 - 100%)。

    您可以通过控制台(具体操作请参考 模板设置)或调用 服务端 API 创建和管理自定义水印模板。

    任务发起

    打水印需要发起转码任务,有“通过服务端 API 直接发起”,“通过控制台直接发起”和“上传时指定要执行的任务”三种方式。具体请参照视频处理的 任务发起

    以下是各种方式发起带水印的转码任务的说明:

    • 调用服务端 API ProcessMedia 发起任务:在请求中的MediaProcessTask.TranscodeTaskSet参数指定 水印模板 的模板 ID;
    • 调用服务端 API ProcessMediaByUrl 发起任务:在请求中的MediaProcessTask.TranscodeTaskSet参数指定 水印模板 的模板 ID;
    • 通过控制台对视频发起任务:在控制台 添加任务流,任务流中设置转码时所打水印的目标规格;在控制台使用该任务流 发起视频处理
    • 服务端上传时指定任务:在控制台 添加任务流,任务流中设置转码时所打水印的目标规格;申请上传 中的procedure参数指定为该任务流;
    • 客户端上传时指定任务:在控制台 添加任务流,任务流中设置转码时所打水印的目标规格;在 客户端上传签名 中的procedure指定该任务流;
    • 控制台上传:在控制台 添加任务流,任务流中设置转码时所打水印的目标规格;通过控制台上传视频,选择【上传的同时对视频进行处理操作】并指定视频上传后执行该任务流。

    结果获取

    发起打水印的转码任务后,您可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取截图任务的执行结果。下面是发起带有水印的转码任务后,普通回调方式下结果通知的示例(省略了值为 null 的字段):

    {
        "EventType":"ProcedureStateChanged",
        "ProcedureStateChangeEvent":{
            "TaskId":"1256768367-Procedure-2e1af2456351812be963e309cc133403t0",
            "Status":"FINISH",
            "FileId":"5285890784246869930",
            "FileName":"动物世界",
            "FileUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/AtUCmy6gmIYA.mp4",
            "MetaData":{
                "AudioDuration":60,
                "AudioStreamSet":[
                    {
                        "Bitrate":383854,
                        "Codec":"aac",
                        "SamplingRate":48000
                    }
                ],
                "Bitrate":1021028,
                "Container":"mov,mp4,m4a,3gp,3g2,mj2",
                "Duration":60,
                "Height":480,
                "Rotate":0,
                "Size":7700180,
                "VideoDuration":60,
                "VideoStreamSet":[
                    {
                        "Bitrate":637174,
                        "Codec":"h264",
                        "Fps":23,
                        "Height":480,
                        "Width":640
                    }
                ],
                "Width":640
            },
            "MediaProcessResultSet":[
                {
                    "Type":"Transcode",
                    "TranscodeTask":{
                        "Status":"SUCCESS",
                        "ErrCode":0,
                        "Message":"",
                        "Input":{
                            "Definition":220,
                            "WatermarkSet": [
                                {
                                    "Definition": 23120
                                }
                            ]
                        },
                        "Output":{
                            "Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/v.f20.m3u8",
                            "Size":63120997,
                            "Container":"mov,mp4,m4a,3gp,3g2,mj2",
                            "Height":1086,
                            "Width":1920,
                            "Bitrate":513402,
                            "Md5":"084d403c73930ca2f835679af1f37bd3",
                            "Duration":60,
                            "VideoStreamSet":[
                                {
                                    "Bitrate":473101,
                                    "Codec":"h264",
                                    "Fps":24,
                                    "Height":480,
                                    "Width":640
                                }
                            ],
                            "AudioStreamSet":[
                                {
                                    "Bitrate":48581,
                                    "Codec":"aac",
                                    "SamplingRate":44100
                                }
                            ],
                            "Definition":220
                        }
                    }
                }
            ],
            "TasksPriority":0,
            "TasksNotifyMode":""
        }
    }

    回调结果中,ProcedureStateChangeEvent.MediaProcessResultSet有一个TypeTranscode类型的转码结果:转码的规格Definition为220,转码的同时打了一个水印,水印的规格Definition为23120。