3 视频处理

视频处理模块主要展示视频转码相关的API调用和代码示例。包含转码模板的管理、水印模板的管理、视频转码及回调信息等。

3.1 视频转码

3.1.1 创建视频转码模板

3.1.1.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/preset/create

用于视频文件转码,创建模板。可使用云信的默认格式模板或自定义格式参数。

3.1.1.2 输入参数
参数 类型 必须 说明
presetName String 视频转码模板的名称
sdMp4 Int 流畅Mp4格式(1表示选择,0表示不选择)
hdMp4 Int 标清Mp4格式(1表示选择,0表示不选择)
shdMp4 Int 高清Mp4格式(1表示选择,0表示不选择)
copyMp4 Int 使用copy模式转码成Mp4格式(1表示选择,0表示不选择)
sdFlv Int 流畅Flv格式(1表示选择,0表示不选择)
hdFlv Int 标清Flv格式(1表示选择,0表示不选择)
shdFlv Int 高清Flv格式(1表示选择,0表示不选择)
copyFlv Int 使用copy模式转码成Flv格式(1表示选择,0表示不选择)
sdHls Int 流畅Hls格式(1表示选择,0表示不选择)
hdHls Int 标清Hls格式(1表示选择,0表示不选择)
shdHls Int 高清Hls格式(1表示选择,0表示不选择)
copyHls Int 使用copy模式转码成Hls格式(1表示选择,0表示不选择)
aacAudio Int aac音频格式(1表示选择,0表示不选择)
mp3Audio Int mp3音频格式(1表示选择,0表示不选择)
transConfig List 自定义模板信息,不设置为系统默认转码信息
transConfig参数详细说明
参数 类型 必须 说明
presetType Int 自定义模板格式:1表示sdMp4,2表示hdMp4,3表示shdMp4,4表示sdFlv,5表示hdFlv,6表示shdFlv,7表示sdHls,8表示hdHls,9表示shdHls,16表示aac,17表示mp3
video String 视频流配置,JSON对象,见参数video详情,若不设置表示转码为纯音频格式,对应presetType为16或17
audio String 音频流配置,JSON对象,见参数audio详情
segmentTime Int hls格式的分片时长,取值范围:1-60,presetType为7、8、9时有效
textMarks List 文字水印配置信息列表,JSON对象,见参数textMarks详情
参数video详情
参数 类型 必须 说明
codec String 输出文件的视频编解码格式,包含:libx264,lib265,默认是libx264。其中lib265仅支持mp4和hls格式
bitRate String 输出文件的视频码率,单位为bps。可设置值为auto或大于0的整数,默认是auto。auto表示跟随源视频码率
frameRate String 输出文件的视频帧率,单位fps。可设置值为:auto、大于0,默认值为auto,auto表示跟随源视频帧率
maxWidth String 输出文件的视频宽度,单位px。可设置值为:auto、0、[128,4096],默认值为auto,auto表示跟随源视频宽度,0表示保持视频宽高比的前提下,缩放视频使得视频高度等于maxHeight,注:此情况下,paddingPolicy必需是NoPad,maxHeight不能为0
maxHeight String 输出文件的视频高度,可设置值为:auto、0、[128,4096],默认值为auto,auto表示跟随源视频高度,0表示保持视频宽高比的前提下,缩放视频使得视频宽度等于maxWidth,注:此情况下,paddingPolicy必需是NoPad,maxWidth不能为0
paddingPolicy String 输出文件的缩放策略,输出视频若不能覆盖maxWidth*maxHeight区域,是否通过填补黑边将视频扩充到目标大小。可设置值为:NoPad、Pad,NoPad表示不填补黑边,Pad表示填补黑边
resolutionAdaptive Int 是否开启分辨率自适应,1为开启,0为不开启,默认不开启;开启时,maxWidth 代表视频的长边,maxHeight 表示视频的短边;关闭时,maxWidth 代表视频的宽度,maxHeight 表示视频的高度
参数audio详情
参数 类型 必须 说明
codec String 输出文件的音频编解码格式,包含:aac、mp3,默认是aac
bitRate String 输出文件的音频码率,单位为bps。可设置值为:32000、64000、92000、128000、192000、256000、auto,默认是auto。auto表示跟随源音频码率
sampleRate String 输出文件的音频采样率,单位为Hz。可设置值为:8000、11025、22050、32000、44100、48000、96000、auto,默认值是auto,auto表示跟随源音频采样率。注:若视频容器格式为flv,音频编解码格式选择为mp3时,采样率只能设置为44100或22050或11025
channel String 输出文件的音频声道数,可设置值为:1、2、auto。默认值是auto,auto表示跟随源音频声道数
参数textMarks详情
参数 类型 必须 说明
content String 文字内容
fontName String 字体名字,目前支持:
(1) pingfang_bold (2) pingfang_light (3) pingfang_medium (4) pingfang_regular
fontSize Int 字体大小,单位px,默认值是24
fontColor String 文字颜色,取值#000000~#FFFFFF,默认值是#FFFFFF
fontOpacity Float 文字透明度,取值范围0.0~1.0,0.0透明,1.0不透明,默认值是1.0
coordinate String 相对于视频左上角的位置,支持两种格式:
(1)相对于左上角的绝对位置(单位px):如5_5
(2)相对于左上角的相对位置:如5%_5%
默认值是5%_5%
shadowX Int 文字阴影x轴偏移量,单位px,默认是0
shadowY Int 文字阴影y轴偏移量,单位px,默认是0
borderWidth Int 文字边框宽度,单位px,默认是0
borderColor String 文字边框颜色,取值#000000~#FFFFFF,默认值是#FFFFFF
borderOpacity Double 文字边框透明度,取值范围0.0~1.0,0.0透明,1.0不透明,默认值是1.0
3.1.1.3 输出参数
参数 类型 说明
code Int 状态码
presetId Int 新生成的视频转码模板Id
msg String 错误信息
3.1.1.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.1.5 示例代码
使用云信默认的格式模板请求示例

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"presetName":"全高清","sdMp4":0,"hdMp4":1,"shdMp4":0,"sdFlv":0,"hdFlv":1,"shdFlv":0,"sdHls":0,"hdHls":1,"shdHls":0}' https://vcloud.163.com/app/vod/preset/create

输出1

{
  "ret": {
    "presetId": 184
  },
  "code": 200
}
使用自定义的格式参数请求示例

输入2

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"presetName":"自定义流畅转码模板","sdMp4":1,"hdMp4":0,"shdMp4":0,"sdFlv":0,"hdFlv":0,"shdFlv":0,"sdHls":0,"hdHls":0,"shdHls":0,"transConfig":[{"presetType":1,"video":{"codec":"libx264","maxWidth":"640","MaxHeight":"0","bitRate":"600000","paddingPolicy":"NoPad"},"audio":{"codec":"aac","sampleRate":"44100","channel":"auto","bitRate":"128000"},"textMarks":[{"content":"网易云信","fontName":"pingfang_bold","fontSize":24,"fontColor":"#FFFFFF","fontOpacity":1.0,"coordinate":"5%_5%","shadowX":0,"shadowY":0,"borderWidth":1,"borderColor":"#000000","borderOpacity":1.0}]}]}' https://vcloud.163.com/app/vod/preset/create

输出2

{
  "ret": {
    "presetId": 185
  },
  "code": 200
}

3.1.2 修改视频转码模板

3.1.2.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/preset/update

用于视频文件转码,修改转码模板,可修改:视频转码模板名称、视频转码模板对应的格式。

3.1.2.2 输入参数
参数 类型 必须 说明
presetId Int 视频转码模板的Id
presetName String 视频转码模板的名称
sdMp4 Int 流畅Mp4格式(1表示选择,0表示不选择)
hdMp4 Int 标清Mp4格式(1表示选择,0表示不选择)
shdMp4 Int 高清Mp4格式(1表示选择,0表示不选择)
sdFlv Int 流畅Flv格式(1表示选择,0表示不选择)
hdFlv Int 标清Flv格式(1表示选择,0表示不选择)
shdFlv Int 高清Flv格式(1表示选择,0表示不选择)
sdHls Int 流畅Hls格式(1表示选择,0表示不选择)
hdHls Int 标清Hls格式(1表示选择,0表示不选择)
shdHls Int 高清Hls格式(1表示选择,0表示不选择)
aacAudio Int aac音频格式(1表示选择,0表示不选择)
mp3Audio Int mp3音频格式(1表示选择,0表示不选择)
transConfig List 自定义模板信息,JSON对象,不设置为系统默认转码信息
3.1.2.3 输出参数
参数 类型 说明
code Int 状态码
msg String 错误信息
3.1.2.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.2.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"presetId":184,"presetName":"全转码","sdMp4":1,"hdMp4":1,"shdMp4":1,"sdFlv":1,"hdFlv":1,"shdFlv":1,"sdHls":1,"hdHls":1,"shdHls":1}' https://vcloud.163.com/app/vod/preset/update

输出1

{
  "ret": {},
  "code": 200
}

3.1.3 删除视频转码模板

3.1.3.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/preset/presetDelete

删除视频转码模板。

3.1.3.2 输入参数
参数 类型 必须 说明
presetId Int 视频转码模板Id
3.1.3.3 输出参数
参数 类型 说明
code Int 状态码
msg String 错误信息
3.1.3.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.3.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"presetId":184}' https://vcloud.163.com/app/vod/preset/presetDelete

输出1

{
  "ret": {},
  "code": 200
}

3.1.4 查询视频转码模板信息

3.1.4.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/preset/get

获取单个视频转码模板信息,包括:Id、视频转码模板名称、视频转码模板对应的格式。

3.1.4.2 输入参数
参数 类型 必须 说明
presetId Int 视频转码模板Id
3.1.4.3 输出参数
参数 类型 说明
code Int 状态码
presetName String 视频转码模板的名称
sdMp4 Int 流畅Mp4格式(1表示包含,0表示不包含)
hdMp4 Int 标清Mp4格式(1表示包含,0表示不包含)
shdMp4 Int 高清Mp4格式(1表示包含,0表示不包含)
sdFlv Int 流畅Flv格式(1表示包含,0表示不包含)
hdFlv Int 标清Flv格式(1表示包含,0表示不包含)
shdFlv Int 高清Flv格式(1表示包含,0表示不包含)
sdHls Int 流畅Hls格式(1表示包含,0表示不包含)
hdHls Int 标清Hls格式(1表示包含,0表示不包含)
shdHls Int 高清Hls格式(1表示包含,0表示不包含)
aacAudio Int aac音频格式(1表示选择,0表示不选择)
mp3Audio Int mp3音频格式(1表示选择,0表示不选择)
isDel Int 是否允许被删除(默认模板不允许删除),1:允许,0:不允许
transConfig List 自定义模板信息,JSON对象,如果模板为自定义,则包含此元素
msg String 错误信息
3.1.4.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.4.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"presetId":184}' https://vcloud.163.com/app/vod/preset/get

输出1

{
  "ret": {
    "sdHls": 0,
    "isDel": 1,
    "shdHls": 0,
    "hdHls": 1,
    "presetId": 184,
    "sdMp4": 0,
    "sdFlv": 0,
    "shdMp4": 0,
    "shdFlv": 0,
    "presetName": "全高清",
    "hdFlv": 1,
    "hdMp4": 1
  },
  "code": 200
}

3.1.5 查询视频转码模板列表

3.1.5.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/preset/list

获取视频转码模板列表,并做分页返回处理。单个视频转码模板的信息包括:Id、视频转码模板名称、视频转码模板对应的格式。

3.1.5.2 输入参数
参数 类型 必须 说明
currentPage Int 获取视频转码模板列表分页后的索引
pageSize Int 获取视频转码模板列表一页的记录数,取值范围:[1,500]
3.1.5.3 输出参数
参数 类型 说明
code Int 状态码
currentPage Int 当前取得页数
pageSize Int 一页的记录数目
pageNum Int 总页数
totalRecords Int 获取视频转码模板列表的数目
list List 获取的视频转码模板列表
list.presetId Int 视频转码模板Id
list.presetName String 视频转码模板的名称
list.sdMp4 Int 流畅Mp4格式(1表示包含,0表示不包含)
list.hdMp4 Int 标清Mp4格式(1表示包含,0表示不包含)
list.shdMp4 Int 高清Mp4格式(1表示包含,0表示不包含)
list.sdFlv Int 流畅Flv格式(1表示包含,0表示不包含)
list.hdFlv Int 标清Flv格式(1表示包含,0表示不包含)
list.shdFlv Int 高清Flv格式(1表示包含,0表示不包含)
list.sdHls Int 流畅Hls格式(1表示包含,0表示不包含)
list.hdHls Int 标清Hls格式(1表示包含,0表示不包含)
list.shdHls Int 高清Hls格式(1表示包含,0表示不包含)
list.aacAudio Int aac音频格式(1表示选择,0表示不选择)
list.mp3Audio Int mp3音频格式(1表示选择,0表示不选择)
list.isDel Int 是否允许被删除(默认模板不允许删除),1:允许,0:不允许
list.transConfig List 自定义模板信息,JSON对象,如果模板为自定义,则包含此元素
3.1.5.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.5.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"currentPage":1,"pageSize":2}' https://vcloud.163.com/app/vod/preset/list

输出1

{
  "ret": {
    "pageSize": 2,
    "totalRecords": 8,
    "list": [
      {
        "sdHls": 0,
        "isDel": 0,
        "shdHls": 0,
        "hdHls": 0,
        "presetId": 39,
        "sdMp4": 0,
        "sdFlv": 0,
        "shdMp4": 0,
        "shdFlv": 0,
        "presetName": "默认模板",
        "hdFlv": 0,
        "hdMp4": 0
      },
      {
        "sdHls": 0,
        "isDel": 1,
        "shdHls": 0,
        "hdHls": 0,
        "presetId": 40,
        "sdMp4": 1,
        "sdFlv": 1,
        "shdMp4": 0,
        "shdFlv": 0,
        "presetName": "dd",
        "hdFlv": 0,
        "hdMp4": 0
      }
    ],
    "currentPage": 1,
    "pageNum": 4
  },
  "code": 200
}

3.1.6 视频文件转码

3.1.6.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/transcode/resetmulti

用于视频转码,批量进行视频转码(只有处于正常或转码失败状态的视频才允许执行此操作)。

3.1.6.2 输入参数
参数 类型 必须 说明
vids List 多个视频Id组成的列表
presetId Int 转码模板Id
watermarkId Int 视频水印Id(不填写为不添加水印,且若填写,presetId值不能为默认模板)
userDefInfo String 用户自定义信息,回调会返回此信息
transOffset Int 视频转码处理裁剪视频的起始位置(单位:秒)
transDuration Int 视频转码处理裁剪视频的视频时长(单位:秒)
dynamicTransConfig List 视频动态转码详细参数配置列表,不设置则以presetId的配置为准,设置则会覆盖presetId对应的transConfig中相同presetType的配置。详见参数dynamicTransConfig
参数dynamicTransConfig详情
参数 类型 必须 说明
presetType Int 自定义模板格式:1表示sdMp4,2表示hdMp4,3表示shdMp4,4表示sdFlv,5表示hdFlv,6表示shdFlv,7表示sdHls,8表示hdHls,9表示shdHls,16表示aac,17表示mp3
textMarks List 文字水印配置信息列表,JSON对象,详见本文4.1.2小节参数textMarks
3.1.6.3 输出参数
参数 类型 说明
code Int 状态码
successCount Int 转码成功的数量
failCount Int 转码失败的数量
passCount Int 转码忽略的数量,即已经存在该转码格式视频
msg String 错误信息
3.1.6.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.1.6.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"vids":[29,30],"presetId":174,"watermarkId":23,"dynamicTransConfig":[{"presetType":1,"textMarks":[{"content":"网易云信","fontName":"pingfang_bold","fontSize":24,"fontColor":"#FFFFFF","fontOpacity":1.0,"coordinate":"5%_5%","shadowX":0,"shadowY":0,"borderWidth":1,"borderColor":"#000000","borderOpacity":1.0}]}]}' https://vcloud.163.com/app/vod/transcode/resetmulti

输出1

{
  "ret": {
    "passCount": 0,
    "failCount": 0,
    "successCount": 2
  },
  "code": 200
}
3.1.6.6 结果回调

转码是异步处理任务,可以设置相关回调,回调设置见第5节:设置回调。

转码成功回调内容示例
{"sdFlvAddr":"http://vodk32ywxdf.vod.126.net/vodk32ywxdf/flv/rDM5V7HM_1021_sd.flv","name":"snow.mp4","type":"transcode","vid":1021,"user_defined":"userId=123456"}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
type String 回调类型,上传回调固定为“transcode”
vid Long 视频文件标识
name String 视频文件名称
sdMp4Addr String 流畅mp4视频的播放地址
hdMp4Addr String 标清mp4视频的播放地址
shdMp4Addr String 高清mp4视频的播放地址
sdFlvAddr String 流畅flv视频的播放地址
hdFlvAddr String 标清flv视频的播放地址
shdFlvAddr String 高清flv视频的播放地址
sdHlsAddr String 流畅hls视频的播放地址
hdHlsAddr String 标清hls视频的播放地址
shdHlsAddr String 高清hls视频的播放地址
user_defined String 用户自定义字段值(转码时设置的值)
转码失败回调内容示例
{"error":{"msg":"Failed","type":"transcode","vid":1021,"user_defined":"userId=123456","name":"snow.mp4"}}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
type String 回调类型,上传回调固定为“transcode”
vid Long 视频文件标识
name String 视频文件名称
msg String 转码失败原因
user_defined String 用户自定义字段值(转码时设置的值)

3.2 视频水印

3.2.1 创建视频水印模板

3.2.1.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/watermark/create

用于视频文件管理水印,增加水印模板。

3.2.1.2 输入参数
参数 类型 必须 说明
watermarkName String 视频水印的名称
imageId Int 视频水印图片的Id
description String 视频水印的描述信息
coordinate String 视频水印左上角的坐标,其值为相对值,比如:
8%_6%表示在视频左上角的偏右8%视频宽度、偏下6%视频高度的位置。
如果不选填,默认设置为5%_5%
scale String 视频水印的长宽,其值为相对值,比如:
10%x15%表示宽为视频宽度的10%,高为视频高度的15%。
如果不选填,默认设置为不缩放或拉伸

重要提示:不建议设置水印的scale参数,缩放或拉伸水印图片会影响水印图片的效果,可能会出现模糊现象。

3.2.1.3 输出参数
参数 类型 说明
code Int 状态码
watermarkId Int 视频水印Id
msg String 错误信息
3.2.1.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.2.1.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"watermarkName":"梅花水印","imageId":1,"description":"梅花水印","coordinate":"8%_6%"}' https://vcloud.163.com/app/vod/watermark/create

输出1

{
  "ret": {
    "watermarkId": 16
  },
  "code": 200
}

3.2.2 修改视频水印模板

3.2.2.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/watermark/update

用于修改水印模板,可修改:视频转码模板名称、视频转码模板对应的格式。

3.2.2.2 输入参数
参数 类型 必须 说明
watermarkId Int 视频水印模板Id
watermarkName String 视频水印的名称
description String 视频水印的描述信息
coordinate String 视频水印左上角的坐标,其值为相对值,比如:
8%_6%表示在视频左上角的偏右8%视频宽度、偏下6%视频高度的位置。
如果不选填,默认设置为5%_5%
scale String 视频水印的长宽,其值为相对值,比如:
10%x15%表示长为视频宽度的10%,宽为视频宽度的15%。
如果不选填,默认设置为不缩放或拉伸
imageId Int 水印图片Id
3.2.2.3 输出参数
参数 类型 说明
code Int 状态码
msg String 错误信息
3.2.2.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.2.2.5 示例代码

输入1

curl -X POST-H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"watermarkId":6,"watermarkName":"haha","coordinate":"20%_20%"}' https://vcloud.163.com/app/vod/watermark/update

输出1

{
  "ret": {},
  "code": 200
}

3.2.3 删除视频水印模板

3.2.3.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/watermark/delete

删除水印模板。

3.2.3.2 输入参数
参数 类型 必须 说明
watermarkId Int 视频水印模板Id
3.2.3.3 输出参数
参数 类型 说明
code Int 状态码
msg String 错误信息
3.2.3.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.2.3.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"watermarkId":6}' https://vcloud.163.com/app/vod/watermark/delete

输出1

{
  "ret": {},
  "code": 200
}

3.2.4 查询视频水印模板信息

3.2.4.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/watermark/get

获取单个视频水印模板信息,包括:Id、视频水印模板名称、视频水印模板对应的配置参数。

3.2.4.2 输入参数
参数 类型 必须 说明
watermarkId Int 视频水印模板Id
3.2.4.3 输出参数
参数 类型 说明
code Int 状态码
watermarkId Int 视频水印模板Id
watermarkName String 视频水印模板的名称
description String 视频水印的描述信息
coordinate String 视频水印左上角的坐标,其值为相对值,比如:
8%_6%表示在视频左上角的偏右8%视频宽度、偏下6%视频高度的位置。
如果不选填,默认设置为5%_5%
scale String 视频水印的长宽,其值为相对值,比如:
10%x15%表示长为视频宽度的10%,宽为视频宽度的15%。
如果不选填,默认设置为不缩放或拉伸
imageId Int 水印图片Id
imageUrl String 水印图片URL
isDel Int 是否允许被删除(默认水印不允许删除),1:允许,0:不允许
msg String 错误信息
3.2.4.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.2.4.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"watermarkId":16}' https://vcloud.163.com/app/vod/watermark/get

输出1

{
  "ret": {
    "scale": null,
    "watermarkName": "梅花水印",
    "coordinate": "8%_6%",
    "description": "梅花水印",
    "watermarkId": 16,
    "imageId": 21,
    "imageUrl": "http://vodk32ywxdf.nosdn.127.net/fda0bee8-6b96-45e4-9455-0490f84acc8a.jpg",
    "isDel": 1
  },
  "code": 200
}

3.2.5 查询视频水印模板列表

3.2.5.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/watermark/list

获取视频水印模板列表,并做分页返回处理。单个视频水印模板的信息包括:Id、视频水印模板名称、视频水印模板对应的配置参数。

3.2.5.2 输入参数
参数 类型 必须 说明
currentPage Int 获取视频水印模板列表分页后的索引
pageSize Int 获取视频水印模板列表一页的记录数,取值范围:[1,500]
3.2.5.3 输出参数
参数 类型 说明
code Int 状态码
currentPage Int 当前取得页数
pageSize Int 一页的记录数目
pageNum Int 总页数
totalRecords Int 获取视频水印转码模板列表的分类数目
list List 获取的视频水印模板列表
list.watermarkId Int 视频水印模板Id
list.watermarkName String 视频水印模板的名称
list.description String 视频水印的描述信息
list.coordinate String 视频水印左上角的坐标,其值为相对值,比如:
8%_6%表示在视频左上角的偏右8%视频宽度、偏下6%视频高度的位置。
如果不选填,默认设置为5%_5%
list.scale String 视频水印的长宽,其值为相对值,比如:
10%x15%表示长为视频宽度的10%,宽为视频宽度的15%。
如果不选填,默认设置为不缩放或拉伸
list.imageId Int 水印图片Id
list.imageUrl String 水印图片URL
list.isDel Int 是否允许被删除(默认水印不允许删除),1:允许,0:不允许
3.2.5.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
711 请求参数非法,具体信息见msg
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.2.5.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"currentPage":1,"pageSize":2}' https://vcloud.163.com/app/vod/watermark/list

输出1

{
  "ret": {
    "pageSize": 2,
    "totalRecords": 9,
    "list": [
      {
        "scale": "10%x15%",
        "watermarkName": "小熊水印",
        "coordinate": "20%_12%",
        "description": "ss",
        "watermarkId": 6,
        "imageId": 21,
        "imageUrl": "http://vodk32ywxdf.nosdn.127.net/fda0bee8-6b96-45e4-9455-0490f84acc8a.jpg",
        "isDel": 1
      },
      {
        "scale": "10%x15%",
        "watermarkName": "royen_test",
        "coordinate": "5%_5%",
        "description": null,
        "watermarkId": 7,
        "imageId": 21,
        "imageUrl": "http://vodk32ywxdf.nosdn.127.net/fda0bee8-6b96-45e4-9455-0490f84acc8a.jpg",
        "isDel": 1
      }
    ],
    "currentPage": 1,
    "pageNum": 5
  },
  "code": 200
}

3.3 视频截图

3.3.1 生成视频截图

3.3.1.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/snapshot/create

针对具体文件,获取其不同尺寸下的截图URL地址。支持截图的文件格式:
mpegts、mov、mp4、m4a、3gp、3g2、mj2、rm、asf、flv、avi、matroska、
webm、mpeg、mpeg、mpegtsraw、mpegvideo、mtv、mv、mvi、nuv、3gp、
avs、avsvideo、adxl、dv、dvd、flic、flac、h261、h263、h264、hls、m4v、
mjpeg、rawvideo、rpl、avcd、truehd、vc-1、vcd。
如有不支持格式视频,请进行转码,接口会根据转码后的视频截取图片。

截取图片比例如果和视频尺寸比例不相符合,会自动填充黑边,保证图片显示正常。

3.3.1.2 输入参数
参数 类型 必须 说明
vid Long 视频Id
size Int 截图尺寸,包含以下几种值:
0表示原始视频比例,1表示640x360,2表示400x300,3表示320x180,
4表示200x150,5表示1280x720,6表示960x720,7表示360x640,
8表示300x400,9表示180x320,10表示150x200,11表示720x1280,
12表示720x960,13表示180x180,14表示360x360,15表示720x720
offset Int 截图偏移,包含以下几种值:
0表示视频第一秒,1表示时间轴10%位置,2表示时间轴20%位置,
3表示时间轴30%位置,4表示时间轴40%位置,5表示时间轴50%位置,
6表示时间轴60%位置,7表示时间轴70%位置,8表示时间轴80%位置,
9表示时间轴90%位置
customWidth Int 自定义截图宽度,可设置值为(0,4000]
customHeight Int 自定义截图高度,可设置值为(0,4000]
customOffset Long 自定义截图时间戳,单位毫秒
style Int 视频转码格式(0表示源视频,1表示流畅mp4,2表示标清mp4,3表示高清mp4, 4表示流畅flv,5表示标清flv,6表示高清flv, 7表示流畅hls,8表示标清hls,9表示高清hls) 如果设置了style,则会根据指定格式的视频进行截图

重要提示

3.3.1.3 输出参数
参数 类型 说明
code Int 状态码
url String 截图地址
width String 截图宽度
height String 截图高度
msg String 错误信息
3.3.1.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.3.1.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"vid":12,"size":1,"offset":0}' https://vcloud.163.com/app/vod/snapshot/create

输出1

"Content-Type": "application/json; charset=utf-8"
{
    "ret" : {
        "url" : "http://vodk32ywxdf.nosdn.127.net/fsfs-gdgs-gdgd-gdgds_snapshot_0_640.jpg",
        "width" : "640",
        "height" : "320"
    },
    "code" : 200
}

3.3.2 设置视频封面

3.3.2.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/snapshot/set

为视频设置显示封面。

3.3.2.2 输入参数
参数 类型 必须 说明
vid Long 视频Id
type Int 封面设置方法:1表示使用截图URL,2表示使用本地上传图片
path String type值为1,则代表截图URL;type值为2,则代表本地图片路径
data String type值为2时,需填写,代表本地图片数据的base64编码字符串数据

重要提示:使用截图URL设置视频封面的URL必需是存储在网易云信点播服务的URL,暂不支持第三方URL。

3.3.2.3 输出参数
参数 类型 说明
code Int 状态码
url String 截图地址
msg String 错误信息
3.3.2.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.3.2.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"vid":12,"type":1,"path":"http://vodk32ywxdf.nosdn.127.net/fsfs-gdgs-gdgd-gdgds_snapshot_0_640.jpg"}' https://vcloud.163.com/app/vod/snapshot/set

输出1

"Content-Type": "application/json; charset=utf-8"
{
    "ret" : {
        "url" : "http://vodk32ywxdf.nosdn.127.net/fsfs-gdgs-gdgd-gdgds_snapshot_0_640.jpg"
    },
    "code" : 200
}

3.3.3 生成视频动图

3.3.3.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/video/videoPreview

为视频生成动图预览,包括:动图和视频。

3.3.3.2 输入参数
参数 类型 必须 说明
vid Long 视频的标识
format Int 生成的视频预览格式,1表示webp格式,2表示mp4格式,3表示flv格式,4表示hls格式,5表示gif格式
samplings List 采样的视频时间区间列表,包含一组sampling,
区间个数最多5个,单位为秒,区间时长小于等于3s区间,可以有重合,区间顺序有意义
callbackUrl String 处理完成后回调的URL地址(需标准http格式),如不设置,使用默认的转码回调地址
userDefInfo String 用户自定义信息,回调会返回此信息
keepAspectRatio Int 是否保持输出文件与原视频宽高比,0表示不保持,1表示保持,默认为1
outputWidth Int 输出文件的宽度,取值大于等于0且小于等于4096,默认为0
outputHeight Int 输出文件的高度,取值大于等于0且小于等于4096,默认为0
frameRate Int 输出帧率,取值不超过30且大于0,若等于0,则保持与原视频一致,默认为8
bitRate Int 比特率,取值大于0,不设置则保持和原视频相同
enableLoop Int webp格式的预览是否循环, 0表示不循环, 1表示循环,默认为0
sampling参数详细说明
参数 类型 必须 说明
start Int 采样的视频时间区间开始时间
end Int 采样的视频时间区间结束时间

重要提示

3.3.3.3 输出参数
参数 类型 说明
code Int 状态码
url String 截图地址
msg String 错误信息
3.3.3.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.3.3.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"vid":32,"format":1,"samplings":[{"start":1,"end":3},{"start":4,"end":6},{"start":8,"end":9},{"start":12,"end":13},{"start":21,"end":23}],"userDefInfo":"userId=123456"}' https://vcloud.163.com/app/vod/video/preview

输出1

"Content-Type": "application/json; charset=utf-8"
{
    "requestId" : "e49fdc9a-d59d-480d-b3ef-c91b37f8f664",
    "code" : 200,
    "ret": {}
}
3.3.3.6 结果回调

视频预览的生成为异步处理,处理完成回回调给请求参数设置的callbackUrl,如果未设置,回调给默认的转码地址。

生成预览图成功回调内容示例
{
    "previewAddr" : "vodk32ywxdf.vod.126.net/vodk32ywxdf/abcsdf.mp4",
    "type" : "videoPreview",
    “originVid” : 32,
    "previewVid" : 1243,
    q"user_defined" : "userId=123456"
}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
type String 回调类型,预览图生成回调固定为“videoPreview”
originVid Long 原始视频文件视频标识
previewVid String 生成的预览视频标识
previewAddr String 生成视频预览访问地址
user_defined String 用户自定义字段值
生成预览图失败回调内容示例
{
    "error" : {
        "msg" : "Failed",
        "type" : "videoPreview",
        "originVid" : 32,
        "user_defined" : "userId=123456"
    }
}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
type String 回调类型,预览图生成回调固定为“preview”
originVid Long 原始视频文件视频标识
msg String 转码失败原因
user_defined String 用户自定义字段值

3.4 视频裁剪

3.4.1 视频裁剪

3.4.1.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/video/clip

对视频进行裁剪,针对每个采样区间生成独立的视频。

3.4.1.2 输入参数
参数 类型 必须 说明
vid Long 视频的标识
format Int 生成的视频预览格式,1表示mp4格式,2表示flv格式
samplings List 采样的视频时间区间列表,包含一组sampling,
区间个数最多10个,单位为秒,可以有重合,区间顺序有意义
callbackUrl String 处理完成后回调的URL地址(需标准http格式),如不设置,使用默认的回调地址
userDefInfo String 用户自定义信息,回调会返回此信息
sampling参数详细说明
参数 类型 必须 说明
start Int 采样的视频时间区间开始时间
end Int 采样的视频时间区间结束时间
cropArea object 采样区间内对画面进行扣取
cropArea参数说明
参数 类型 必须 说明
width Int 扣取画面的宽,例如640,50,此值可表示绝对值也可表示相对值,取决于whType,当whType取值为2时,不允许大于100
height Int 扣取画面的高,例如360,50,此值可表示绝对值也可表示相对值,取决于whType,当whType取值为2时,不允许大于100
whType Int 取值1或者2。1-表示上面的宽高为绝对值,传入为640*360,那么扣取画面的宽高就是640*360;2-表示相对值,表示传入的宽高为相对原视频宽高的百分比。例如传入5050,那么扣取的视频画面宽为src_width\59%,同理高为src_height*50%
x Int 采样画面左上角相对于原视频的左上角的横坐标
y Int 采样画面左上角相对于原视频的左上角的纵坐标
xyType Int 用于表示x,y是绝对值还是百分比,1-绝对值,例如120,120。2-百分比,表示才用原视频宽高的百分比

注:callbackUrl如果不设置,会采用默认的视频裁剪地址回调。 默认视频裁剪地址回调设置接口参考 5.1节 设置回调地址接口

3.4.1.3 输出参数
参数 类型 说明
requestId String 请求标识
code Int 状态码
taskId Long 任务标识
msg String 错误信息

注:taskId是媒体处理任务的唯一标识,用户可以通过taskId主动查询任务的执行状态。 详情见 3.5节 任务查询接口

3.4.1.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.4.1.5 示例代码

输入1

curl -X POST \
https://vcloud.163.com/app/vod/video/clip \
-H "Content-Type: application/json;charset=utf-8" \ 
-H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" \ 
-H "Nonce: 1" \
-H "CurTime: 1465723418" \
-H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" \
-d '{
    "vid":32,
    "format":1,
    "samplings":[
        {
            "start":1,
            "end":3
            "cropArea":{
                "width":120,
                "height":120,
                "whType":1,
                "x":0,
                "y":0,
                "xyType":1
            }
        },
        {
            "start":4,
            "end":6,
            "cropArea":{
                "width":20,
                "height":20,
                "whType":2,
                "x":0,
                "y":0,
                "xyType":1
            }
        },
        {
            "start":8,
            "end":9
        },
        {
            "start":12,
            "end":13
        },
        {
            "start":21,
            "end":23
        }
    ],
    "userDefInfo":"userId=123456"
}' 

输出1

"Content-Type": "application/json; charset=utf-8"
{
    "requestId" : "vode49fdc9a-d59d-480d-b3ef-c91b37f8f664",
    "code" : 200,
    "ret": {
    "taskId": 5
    }
}
3.4.1.6 结果回调

视频裁剪的生成为异步处理,处理完成会回调给请求参数设置的callbackUrl,如果未设置,回调给默认的裁剪地址。

视频裁剪回调内容示例
{
    "videoClipJobResult":[
        {
            "sampling":{
                "start":1,
                "end":3,
                "cropArea":{
                    "width":120,
                    "height":120,
                    "whType":1,
                    "x":0,
                    "y":0,
                    "xyType":1
                }
            },
            "status":"SUCCESS",
            "vid":111
        },
        {
            "sampling":{
                "start":4,
                "end":6,
                "cropArea":{
                    "width":20,
                    "height":20,
                    "whType":2,
                    "x":0,
                    "y":0,
                    "xyType":1
                }
            },
            "status":"SUCCESS",
            "vid":112
        },
        {
            "sampling":{
                "start":8,
                "end":9
            },
            "status":"FAILED",
            "msg":"Fail"
        }
    ],
    "type":"VIDEO_CLIP",
    "originVid":1021,
    "user_defined":"userId=123456",
    "requestId":"vode49fdc9a-d59d-480d-b3ef-c91b37f8f664"
}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
type String 回调类型,视频裁剪生成回调固定为“VIDEO_CLIP”
originVid Long 原始视频文件视频标识
user_defined String 用户自定义字段值
requestId String 用户调用视频裁剪接口时返回的请求标识
videoClipJobResult Json对象 视频裁剪任务结果
videoClipJobResult参数详细说明
参数 类型 说明
sampling String 采样的视频时间区间
status String 状态,FAILED 处理失败 SUCCESS 处理成功
vid Long 采样区间生成的对应视频ID

注意:sampling为实际生成视频的区间,例如设置区间[1, 11] 但是视频实际时长只有10,则返回的区间是[1,10]

3.4.2 视频合并

3.4.2.1 接口描述

域名:vcloud.163.com

接口名:POST /app/vod/nts/merge

1.视频合并,来源视频必须是点播库中的视频,参数为vid视频id;

2.仅支持一次性合并20个视频;

3.来源视频的总时长不得超过8小时;

4.因为来源视频的分辨率、bit等都不尽相同,现在默认使用时长最长的视频的分辨率等参数;

5.分辨率等比例缩放时,如果高度为最大时,宽度使用填充黑边,反之高度使用填充黑边(具体可以使用widthCutStyle、heightCutStyle指定);

例如:最大时长的分辨率是1000(宽)*800(高),比例是1000/800。 其中一个视频的分辨率是500*300,则等比例缩放到1000*800后,高度不够的使用填充黑边;

6.提交后的任务,可以通过回调接口接收回调信息,也可以通过taskId主动查询任务的执行状态。 详情见3.5节 任务查询接口

3.4.2.2 输入参数
参数 类型 必须 说明
videos Array 待合并的视频列表,参见 MergeVideo 参数说明
widthCutStyle Int 参见 KeepAspectRatioStyle 参数说明, 默认填充黑边
heightCutStyle Int 参见 KeepAspectRatioStyle 参数说明, 默认填充黑边
callbackUrl String 处理完成后回调的URL地址(需标准http格式)
userDefInfo String 用户自定义信息,回调会返回此信息
MergeVideo 参数详细说明
参数 类型 必须 说明
vid Long 视频id
KeepAspectRatioStyle 参数详细说明
参数值 类型 说明
0 Int 填充黑边
1 Int 平均切割
2 Int 如果要切宽的时候只切左边保留右边
3 Int 如果要切宽的时候只切右边保留左边
4 Int 如果要切高的时候只切上边保留下边
5 Int 如果要切高的时候只切下边保留上边

注:callbackUrl如果不设置,会采用默认的视频合并地址回调。 默认视频合并地址回调设置接口参考 9.3节 设置回调地址接口

3.4.2.3 输出参数
参数 类型 说明
requestId String 请求标识
code Int 状态码
taskId Long 任务标识
msg String 错误信息
3.4.2.4 响应状态码
状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制
3.4.2.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"videos":[{"vid":123}],"widthCutStyle":1,"heightCutStyle":3,"userDefInfo":"job_id:123132"}' https://vcloud.163.com/app/vod/nts/merge

输出1

"Content-Type": "application/json; charset=utf-8"
{
    "requestId" : "vode49fdc9a-d59d-480d-b3ef-c91b37f8f664",
    "code" : 200,
    "ret": {
    "taskId": 5
    }
}
3.4.2.6 结果回调

视频合并的生成为异步处理,处理完成会回调给请求参数设置的callbackUrl,如果未设置,回调给默认的视频合并地址。

视频裁剪回调内容示例
{
    "taskId" : 214123123,
    "status": "SUCCESS",
    "failMsg": "asdasdasd",
    "vid": 1010,
    "jobRequestId": "vod213asdd12313asd123123"  //任务追踪用
}

注意:请以实际收到的body字段为准,以下仅为body字段示例。

参数 类型 说明
taskId Long 媒体处理任务标识
status String 任务状态,SUCCESS表示成功
vid Long 合并后的视频文件标识
failMsg String 失败原因
jobRequestId String 用户调用视频合并接口时返回的请求标识

3.5 任务查询

用于查询异步处理的任务。

3.5.1 接口描述

域名:vcloud.163.com

接口名:/app/vod/task/get

通过任务ID查询任务执行状况。仅支持查询最近7天的任务信息。

3.5.2 输入参数

参数 类型 必须 说明
taskId Long 任务标识

3.5.3 输出参数

参数 类型 说明
requestId String 请求标识
code Int 状态码
msg String 错误信息
ret JSON对象 结果集,JSON对象
ret.task JSON对象 任务执行状况
input JSON对象 任务输入
input.vid Long 任务输入视频标识
result JSON对象 任务输出结果
result.videoClipJobResult JSON对象 视频裁剪任务结果,参见videoClipJobResult参数详细说明
status String 任务状态: INIT表示提交中,FAILED表示处理失败, PROCESSING表示处理中, SUCCESS表示处理成功
taskId Long 任务标识
type String 任务类型: VIDEO_CLIP表示视频裁剪任务, MERGE_VIDEO表示视频合并任务
userDefinedInfo String 用户自定义信息
failMsg String 失败原因
createTime String 任务创建时间 yyyy-MM-dd HH:mm:ss
endTime String 任务结束时间 yyyy-MM-dd HH:mm:ss
videoClipJobResult参数详细说明
参数 类型 说明
sampling String 采样的视频时间区间
status String 状态,FAILED表示处理失败, SUCCESS表示处理成功
vid Long 采样区间生成的对应视频ID

注意:sampling为实际生成视频的区间,例如设置区间[1, 11] 但是视频实际时长只有10,则返回的区间是[1,10]

3.5.4 响应状态码

状态码 含义
200 操作成功
400 请求报文格式错误,报文构造不正确或者没有完整发送
700 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决
710 权限认证失败,请参考文档中的接口鉴权部分
720 访问失败,余额不足。
721 服务未开通,请前往开通页面申请服务开通
722 服务开通审核中,请联系客服人员开通服务
723 请求的次数超过了配额限制

3.5.5 示例代码

输入1

curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d '{"taskId":1}' https://vcloud.163.com/app/vod/task/get

视频裁剪任务查询输出

"Content-Type": "application/json; charset=utf-8"
{
    "ret": {
        "task": {
            "createTime": "2018-11-22 15:32:55", 
            "endTime": "2018-11-22 15:33:02", 
            "failMsg": "", 
            "input": {
                "vid": 24
            }, 
            "result": {
                "videoClipJobResult": [
                    {
                        "sampling": {
                            "start": 1, 
                            "end": 3
                        }, 
                        "status": "SUCCESS", 
                        "vid": 111
                    }, 
                    {
                        "sampling": {
                            "start": 4, 
                            "end": 6
                        }, 
                        "status": "SUCCESS", 
                        "vid": 112
                    }, 
                    {
                        "sampling": {
                            "start": 8, 
                            "end": 9
                        }, 
                        "status": "FAILED", 
                        "msg": "Fail"
                    }
                ]
            }, 
            "status": "SUCCESS", 
            "taskId": 1, 
            "type": "VIDEO_CLIP", 
            "userDefinedInfo": ""
        }
    }, 
    "requestId": "vodc90605aa-24c4-4e17-8b07-0a041a0506d9", 
    "code": 200
}

视频合并任务查询输出

"Content-Type": "application/json; charset=utf-8"
  {
    "ret": {
        "task": {
            "createTime": "2018-12-06 17:51:34",
            "endTime": "2018-12-06 17:52:22",
            "failMsg": "",           
            "result": {
                "vid": 1
            },
            "status": "SUCCESS",
            "taskId": 1,
            "type": "MERGE_VIDEO",
            "userDefinedInfo": "auto视频合并"
        }
    },
    "requestId": "vod8867f143-a5b3-4e11-a234-1e2025af61e3",
    "code": 200
 }