锐智转码(avsmart)
接口简介
- 锐智转码接口可根据视频场景内容自适应进行转码,在不损失画质的情况下(肉眼无感知)以总体更低的码率进行转码,实现视频转码的质量更高和输出视频体积更小的兼得。对于简单场景的视频,锐智转码可以调整编码组合使得码率更低一些,用户就能够在相同码率下观看更高分辨率的视频,在带宽节省的同时观看体验更佳。对于复杂场景的视频,锐智转码在编码过程中可以更加高效地分配比特,在保持总体码率不变情况下改善编码视频的视觉质量。通过加入这种场景内容自适应技术,原有的分辨率和码率组合会更加精简,从而有效降低内容提供商的存储和分发开销。
- 不同于基础音视频转码(avthumb),锐智转码无需用户指定输出视频的码率帧率等,而是由锐智转码依据源视频场景内容智能匹配最佳转码参数组合。
接口规格
- 现在锐智转码功能已经和转码
avthumb
功能合并,可以转码的同时支持锐智转码(即视频瘦身)。
avthumb/<format>
/...
/avsmart/<0|1>
/smtType/<avsmart>
/smtEnhance/<Enhance>
/smtQuality/<Quality>
参数名称 | 必填 | 说明 |
---|---|---|
... |
参考其他参数 avthumb | |
/avsmart/<avsmart> |
N | 是否启用视频瘦身,设置为 1 时开启。smtType 1仅支持H.264;smtType 2支持H.264和H.265。默认使用H.264编码。注意:该参数会使 vb 失效。使用 avsmart 的计费和 avthumb 有区别 。 |
/smtType/<avsmart> |
N | 开启avsmart 时生效。视频瘦身模型,不同的视频内容场景适配不同的的模型,详情可咨询客服。整数,取值范围[1,2],默认值为 1。 |
/smtQuality/<quality> |
N | 开启avsmart 时生效。瘦身时的转码质量等级,值越大,画质越好。smtType 1时,整数,取值范围[1,5];smtType 2时,整数,取值范围[-5,5]。 注意:该参数会使 vb 失效。 |
/smtEnhance/<Enhance> |
N | 开启avsmart 时生效。视频增强开关,仅适用smtType 1。设置为 "0" 时关闭,默认开启。 |
注意:
avsmart
转码的结果会保存在原文件的空间中,但是文件名按照默认规则生成,为了方便获取转码后资源链接,建议自定义处理结果资源的名称,请参考处理结果另存 (saveas)。- 支持的视频编码器(Codec)目前有:
libx264
。
使用限制
对于其他规格的视频,为避免转码处理超时,目前对于视频时长有一些限制。不同规格的视频时长限制如下:
规格 | 时长限制(s) |
---|---|
720p | 9000 |
1080p | 5400 |
2K | 1800 |
4K | 600 |
参数设置举例
- 以预转持久化]形式,将mp4视频进行锐智转码(即视频瘦身),设置视频编码格式为x264,分辨率为480x260,并关闭视频增强:
{
"scope": "qiniu-ts-demo:thinking-in-go.mp4",
"deadline": 1390528576,
"persistentOps": "avthumb/mp4/vcodec/libx264/s/480x360/avsmart/1/enhance/0",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}
- 以持久化数据处理(即
触发持久化
)形式,将mp4视频进行锐智转码(即视频瘦身),设置视频编码格式为x264,分辨率为480x260,并开启视频增强:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox <AccessToken>
bucket=qiniu-ts-demo
&key=thinking-in-go.mp4
&fops=avthumb%2Fmp4%2Fvcodec%2Flibx264%2Fs%2F480x360%2Favsmart%2F1
¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify
注意:要在Authorization
头部的<AccessToken>
前添加QBox
和半角空格。
接口响应
响应内容:
锐智转码为异步处理,因此响应分为2步:
- 创建异步处理任务,如成功,返回异步处理任务 ID。示例:16864pauo1vc9nhp12;
- 返回异步处理结果;
异步处理返回码:
返回码 | 含义 |
---|---|
0 | 成功。 |
1 | 等待处理 |
2 | 正在处理 |
3 | 处理失败 |
4 | 处理成功但通知失败 |
注:
如果,处理失败,可通过持久化处理状态查询查看具体失败原因。
调用示例
触发持久化
以Python Sdk为例,本例将空间名为bucket_name
中的视频 key
转码为MP4的视频文件,并且保存到目标Bucket_Name
,且文件名为自定义文件key
。
注意:
其他语言 SDK 可在官方 SDK下载,可以通过查看 SDK 使用指南中触发持久化
使用。
from qiniu import Auth, PersistentFop, build_op, op_save, urlsafe_base64_encode
# 对已经上传到七牛的视频发起异步转码操作
# access_key,secret_key在个人面板的密钥管理处获得,非个人账号密码
access_key = '...'
secret_key = '...'
q = Auth(access_key, secret_key)
# 要转码的文件所在的空间和文件名。
bucket_name = '...'
key = '...'
# 是使用的队列名称,不设置代表使用默认队列。
pipeline = 'your_pipeline'
# 要进行锐智转码的操作,并关闭视频增强。
fops = 'avthumb/mp4/vcodec/libx264/s/480x360/avsmart/1/enhance/0'
# 可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间
saveas_key = urlsafe_base64_encode('目标Bucket_Name:自定义文件key')
fops = fops+'|saveas/'+saveas_key
pfop = PersistentFop(q, bucket_name, pipeline)
ops = []
ops.append(fops)
ret, info = pfop.execute(key, ops, 1)
print(info)
assert ret['persistentId'] is not None
预转持久化
以Python Sdk为例,本例中将上传的视频转码为MP4的视频文件,保存到目标Bucket_Name
,且文件名为自定义文件key
,原上传视频保存到bucket_name
空间,且文件名为key
。
注意
其他语言 Sdk 可在官方 Sdks 下载,可以通过查看 Sdk 使用指南中预转持久化
使用。
from qiniu import Auth, put_file, etag, urlsafe_base64_encode
import qiniu.config
# access_key,secret_key在个人面板的密钥管理处获得,非个人账号密码
access_key = '...'
secret_key = '...'
# 初始化Auth状态
q = Auth(access_key, secret_key)
# 你要测试的空间, 并且这个key在你空间中存在
bucket_name = '...'
key = '...'
# 是使用的队列名称,不设置代表使用默认队列。
pipeline = 'your_pipeline'
# 要进行锐智转码的操作,默认开启视频增强。
fops = 'avthumb/mp4/vcodec/libx264/s/480x360/avsmart/1'
# 通过添加'|saveas'参数,指定处理后的文件保存的bucket和key,不指定默认保存在当前空间,bucket_saved为目标bucket,bucket_saved为目标key
saveas_key = urlsafe_base64_encode('bucket_saved:bucket_saved')
fops = fops+'|saveas/'+saveas_key
# 在上传策略中指定fobs和pipeline
policy={
'persistentOps':fops,
'persistentPipeline':pipeline
}
token = q.upload_token(bucket_name, key, 3600, policy)
# 视频所在的本地路径
localfile = './python_video.flv'
ret, info = put_file(token, key, localfile)
print(info)
assert ret['key'] == key
assert ret['hash'] == etag(localfile)
计费说明
服务价格
编码格式 | 输出规格 | 单价(元/分钟) |
---|---|---|
H264 | 4K(3840*2160) | 0.64 |
H264 | 2K(2560*1440) | 0.32 |
H264 | HD(1920*1080) | 0.16 |
H264 | SD(1280*720)及以下 | 0.08 |
文档反馈
(如有产品使用问题,请提交工单)