多码率自适应转码(adapt)
简介
多码率自适应转码(adapt)用于对已经上传到七牛云的视频转码成包含多种码率的HLS视频流。以便能随着终端网络带宽的变化动态选择适应的码率播放。
参数说明
adapt/<Format>
    /envBandWidth/<EnvBandWidth>
    /multiAb/<MultiAb>
    /multiVb/<MultiVb>
    /multiResolution/<MultiResolution>
    /multiPrefix/<MultiPrefix> 
    /vb/<VideoBitrate>
    /ab/<AudioBitrate>
    /resolution/<Resolution>
    /multiPrefix/<MultiPrefix> 
    /hlstime/<HlsTime>
    /wmImage/<Encodedkodocheme>
    /wmText/<EncodedText>
    /wmFont/<Font>
    /wmFontSize<FontSize>
    /wmFontColor/<FontColor>
    /wmBorderWidth/<BorderWidth>
    /wmBorderColor/<BorderColor>
    /wmGravity/<Gravity>
    /wmGravityText/<GravityText>
    /wmOffsetX/<offsetX>
    /wmOffsetY/<offsetY>
| 参数名称 | 类别 | 必填 | 说明 | 
|---|---|---|---|
| <Format> | V | 是 | 目前只支持 m3u8格式 | 
| /envBandWidth/<EnvBandWidth> | V | 是 | 不同码流切换的带宽标准,采用符号 ,分隔多个网络带宽,个数范围[2,5],取值范围[50000,30000000],单位是b/s。注:个数与存在的multi参数值个数需要保持一致,建议与设置的码率值接近,带宽值采用升序方式。 | 
| /multiAb/<MultiAb> | V | 否 | 与ab参数不共存,单位:比特每秒(bit/s),采用符号 ,分隔多个音频码率,个数范围[2,5],例如64k,128k,256k。注:码率个数与其他存在的multi参数值个数需要保持一致,魔法变量$(origin)表示原音频码率。 | 
| /multiVb/<MultiVb> | V | 否 | 与vb参数不共存,单位:比特每秒(bit/s),采用符号 ,分隔多个视频码率,个数范围[2,5],例如128k,600k,1.25m。注:码率个数与其他存在的multi参数值个数需要保持一致,魔法变量$(origin)表示原视频码率。 | 
| /multiResolution/<MultiResolution> | V | 否 | 与resolution参数不共存,分辨率格式为 w:h,vcodec 为libx265/libx264时,w取值范围[20,8192],h取值范围[20,4320]。vcodec 取其他值时w取值范围[20,3840],h 取值范围[20,2160],采用符号,分隔多个视频分辨率,个数范围[2,5],例如 320:240,640:480,1080:720。注:会改变DAR,分辨率个数与其他存在的 multi 参数值个数需要保持一致,魔法变量$(origin)表示原视频分辨率。 | 
| /vb/<VideoBitRate> | V | 否 | 视频码率,单位:比特每秒(bit/s),常用视频比特率:128k, 1.25m, 5m 等。 若未指定码率,转码结果的码率会小于等于原音视频码率,若指定码率大于原音视频码率,转码操作会使用原视频码率进行转码。 | 
| /ab/<AudioBitRate> | V | 否 | 音频码率,单位:比特每秒(bit/s),常用码率:320k, 256k, 192k, 128k, 64k 等。 | 
| /resolution/<Resolution> | V | 否 | 指定视频分辨率,格式为 w:h 或者预定义值,w取值范围[20,3840],h取值范围[20,2160]。 | 
| /multiPrefix/<MultiPrefix>  | V | 否 | 设置文件内的m3u8名称,同时该名称作为子m3u8的所有ts文件名的前缀。如果输出多个m3u8文件,则采用字符 ,来分隔。示例: /multiPrefix/cWluaXUtYQ==,cWluaXUtYg==,其中cWluaXUtYQ==是定义的第一个m3u8文件的前缀,是qiniu-a的URL安全的Base64编码,cWluaXUtYg==是定义的第二个m3u8文件的前缀,是qiniu-b的URL安全的Base64编码,每个子m3u8文件中的ts名称为前缀名称-$(count).ts,其中$(count)是六位占位符数字串,最后得到的结果中会有两个子m3u8,名称为qiniu-a.m3u8 (内部ts为qiniu-a_000000.ts,qiniu-a_000001.ts…)和 qiniu-b.m3u8(内部ts为qiniu-b_000000.ts,qiniu-b_000001.ts…)。 | 
| /hlstime/<HlsTime> | V | 否 | 用于 HLS 自定义每一小段音/视频流的播放时间长度,取值范围为: 2 - 60 (秒),默认值为 10(单位:秒)。 | 
视频水印参数
| 分类 | 参数名称 | 类别 | 必填 | 说明 | 
|---|---|---|---|---|
| 图片水印 | /wmImage/<Encodedkodocheme> | V | N | 1、图片水印的源路径,目前支持 kodo 资源。kodo 资源可由 kodo://<bucketname>/<key>表示(此时 bucketname 需要与输入源在同一区域),均需要经过urlsafe_base64_encode。2、支持的格式有:图片、部分动图(GIF、APNG)。 | 
| 文字水印 | /wmText/<EncodedText> | V | N | 水印文本内容,需要经过 urlsafe_base64_encode。 | 
| /wmFont/<Font> | V | N | 文本字体(详见支持字体列表 ),需要经过 urlsafe_base64_encode。存在/wmText/时生效。 注意:默认为方正黑体。 | |
| /wmFontSize<FontSize> | V | N | 水印文字大小,单位: px。存在 /wmText/时生效,默认值为16px。 | |
| /wmFontColor/<FontColor> | V | N | 水印文字颜色,需要经过 urlsafe_base64_encode,RGB格式,可以是颜色名称(例如red)或十六进制(例如#FF0000),参考RGB颜色编码表。存在/wmText/时生效,默认为黑色。 | |
| /wmBorderWidth/<BorderWidth> | V | N | 水印文字描边宽度,单位:像素,取值范围[0,4096]。 | |
| /wmBorderColor/<BorderColor> | V | N | 水印文字描边颜色,需要经过 urlsafe_base64_encode,RGB格式,可以是颜色名称(例如red)或十六进制(例如 #FF0000),参考RGB颜色编码表。存在/wmText/时生效,默认为黑色 | |
| 水印位置 | /wmGravity/<Gravity> | V | N | 视频或者图片水印位置。存在 /wmImage/` or `/wmVideo/时生效。 | 
| /wmGravityText/<GravityText> | V | N | 文本位置,存在 /wmText/时生效,默认 NorthEast。 | |
| /wmOffsetX/<offsetX> | V | N | 设置图片、文字、视频水印位置的相对横向偏移量,当值为正数时则向右偏移,反之向左。位置里包含West时,默认有+10的固定偏移,位置里包含East时,默认有-10的固定偏移,中间位置则固定偏移为0。 | |
| /wmOffsetY/<offsetY> | V | N | 设置图片、文字、视频水印位置的相对纵向偏移量,当值为正数时则向下偏移,反之向上。位置里包含North时,默认有+10的固定偏移,位置里包含South时,默认有-10的固定偏移,中间位置则固定偏移为0。 | 
操作方式
您可以通过以下几种方式来创建任务:
方式一:使用任务触发器
- 
对符合规则策略的上传文件自动触发:在具体空间下,选择任务与工作流,进入任务触发器页面,点击新建 任务触发器;创建完成后,需要开启 上传触发开关,然后通过左侧文件管理或 API/SDK 上传文件到触发器指定的输入路径;将对符合规则策略的上传文件自动触发多媒体处理,并将结果文件保存到目标路径。 
方式二:使用对象存储控制台
- 
上传文件手动触发:在具体空间下, 上传文件 时,指定工作流模板 。 
- 
指定文件手动触发:有两种指定单个文件创建任务的入口- 
第一个入口:在具体空间下,在文件列表中指定文件,在操作栏【更多】中点击【创建多媒体任务】。  注意:仅对音视频/gif动图/webp动图文件提供该操作。
- 
第二个入口:在具体空间下,选择任务与工作流,进入任务管理页面,点击【新建任务】。  
 
- 
方式三:使用API
- 资源上传时手动触发:可以在构造上传凭证时在上传策略中,设置相关字段,在资源文件上传时触发处理。
- 对已有资源手动触发:可以在调用 持久化数据处理(pfop) 时,设置相关字段,对已存在空间中的资源文件发起处理。
方式四:使用SDK
- 查看各语言 SDK 使用指南中 持久化数据处理章节,可在七牛官方SDK 进行下载。
操作示例
对已有资源手动触发的形式,使用 adapt 命令把源mp4视频转成包含如下四路HLS码流(分辨率:320*240 码率:200KB;分辨率:640*480 码率:1200KB;分辨率:1280*720 码率:6500KB;分辨率:1920*1080 码率:8500KB;)的自适应HLS码流:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com  
Content-Type: application/x-www-form-urlencoded  
Authorization:  Qiniu <AccessToken>  
  bucket=publicbucket_z0&key=4k.mp4&fops=adapt/m3u8/multiResolution/320:240,640:480,1280:720,1920:1080/envBandWidth/200000,800000,1700000,2400000/multiVb/200k,1200k,6500k,8500k/hlstime/10/multiPrefix/cWluaXUtMjQw,cWluaXUtNDgw,cWluaXUtNzIw,cWluaXUtMTA4MA==
注意:要在Authorization头部的
计费说明
多码率自适应转码(adapt),服务价格=普通转码价格,定价参考 智能多媒体服务定价 。
    文档反馈
    (如有产品使用问题,请 提交工单)