视频转码模板接口
更新时间:2024-10-15
创建模板
接口描述
当系统预设的Preset无法满足需求时,用户可以通过此接口创建自定义的Preset。
请求(Request)
-
请求语法:
Http1POST /v{version}/preset HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: {utc-date-string} 4connection: keep-alive 5accept: */* 6host: media.bj.baidubce.com 7x-bce-request-id: {bce-request-id} 8content-type: application/json 9authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数(以下均为Requestbody参数):
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
presetName | String | 必选 | 模板名称 | - | - |
description | String | 可选 | 转码模板描述 | - | - |
container | String | 必选 | 音视频文件的容器 | mp4, flv, hls, mp3, m4a, webm, a-hls, pcm, dash, ts | - |
transmux | Bool | 可选 | 是否仅执行容器格式转换 | true, false | false |
clip | Object | 可选 | 是否截取音视频片段 | - | - |
+ startTimeInSecond | Number | 可选 | 视频片段的起始时间 | - | - |
+ durationInSecond | Number | 可选 | 视频片段的持续时间 | - | - |
audio | Object | 可选 | 音频输出信息的集合,不设置audio相关参数则转码输出不包含音频流,如果保留音频流则必须设置此对象 | - | - |
+ codec | String | 可选 | 音频编码格式 | aac, mp3, ac3, pcm, opus | - |
+ bitRateInBps | Number | 可选 | 音频目标码率(输出为pcm格式时不可选,设置静音mute时可不填,否则必选) | 大于0 | - |
+ sampleRateInHz | Number | 可选 | 音频采样率 | 22050, 32000, 44100, 48000, 96000 | 不填写,表示与输入保持一致 |
+ channels | Number | 可选 | 音频声道数目 | 1, 2 | 不填写,表示与输入一致 |
+ pcmFormat | String | 可选 | PCM音频格式,仅当container=pcm时有效 | s16le | - |
+ volumeAdjust | Object | 可选 | 音量相关参数设置 | - | - |
++ mute | Bool | 可选 | 是否进行静音操作,当设置了mute时,Job中不允许有audio类型的insert。mute和其它audio参数同时设置时,优先进行静音(mute)操作 | true, false | false |
++ norm | Bool | 可选 | 是否进行音频归一化操作 | true, false | false |
++ gain | Number | 可选 | 音量调节的大小,单位db,值为正则增大音量 | -60 ~ 60 | - |
+ denoise | Object | 可选 | 音频降噪参数设置 | - | - |
++ strength | Number | 可选 | 音频降噪强度, 值越高降噪能力越强 | 0.1 ~ 1.0 | - |
video | Object | 可选 | 视频输出信息的集合,不设置video相关参数则转码输出不包含视频流,如果保留视频流则必须设置此对象 | - | - |
+ codec | String | 可选 | 视频编码格式 | h264, h265(搭配选择profile字段为main), h265_bd265, svt_av1, vp8, vp9 | h264 |
+ codecOptions | Object | 可选 | 视频编码的配置选项 | - | - |
++ profile | String | 可选 | 档次 | baseline, main, high | baseline |
++ bFrames | Number | 可选 | B帧数 | 0-7 | - |
++ bPyramid | String | 可选 | 使用B帧作为参考帧(ps:当选择codec为h264才可以设置此参数。)none:禁用;strict:严格分层的金字塔结构;normal:非严格分层的金字塔结构;hieb:多层级的参考B帧(当bFrames=7且profile=main/high时才能开启多层级的参考B帧)。 | none, normal, hieb | normal |
+ rateControl | String | 可选 | 码率控制方式,crf模式通过调整码率来实现最优质量;相较于vbr,cbr生成的视频码率在目标码率上下浮动范围小,更接近目标码率。感知编码由cae模式控制码率实现。 | crf,vbr,cbr,cae | crf |
+ codecEnhance | Boolean | 必选 | ROI增强,是感知编码核心参数:针对人脸区域提升画质、显著性增强。 | true,false | false |
+ crf | Number | 可选 | 恒定质量因子,若设置了crf值,bitRateInBps可表示最大目标码率 | 1 ~ 51 | - |
+ bitRateInBps | Number | 必选 | 视频目标码率 | 32000bps ~ 500Mbps | - |
+ maxRateInBps | Number | 可选 | 视频最大码率 。若选择码率控制方式为crf/cae,需要设置最大码率,在保证视频质量最优的同时,最终码率不超过设置的最大码率上限。 | 32000bps ~ 500Mbps | - |
+ maxFrameRate | Number | 可选 | 目标视频最大帧率 | 10,15, 23.97, 24, 25, 29.97, 30, 50, 60 | - |
+ maxWidthInPixel | Number | 可选 | 目标视频的最大宽度 | 128 ~ 8192 | 不填写,表示与原始视频保持一致 |
+ maxHeightInPixel | Number | 可选 | 目标视频的最大高度 | 96 ~ 7680 | 不填写,表示与原始视频保持一致 |
+ sizingPolicy | String | 可选 | 尺寸伸缩策略 | keep、shrinkToFit、stretch、shrinkToFitBlur,keep表示保持原始视频宽高比,shrinkToFit表示保持原始视频宽高比并加黑边,stretch表示拉伸原始视频,shrinkToFitBlur同shrinkToFit除了黑边替换为高斯模糊 | keep |
+ autoAdjustResolution | Bool | 可选 | 当原视频为竖形时,自动调整模板的宽小于高,保证缩放比最小,反之亦然(仅当sizingPolicy为keep时可以设置) | true,false | false |
+ playbackSpeed | Number | 可选 | 回放速度,值低于1.0时为减速视频,高于1.0时为加速视频(不可同时指定音频设置) | 0.05 ~ 20.0 | - |
encryption | Object | 可选 | HLS加解密信息的集合 | - | - |
+ strategy | String | 必选 | 视频加密策略 | Fixed: 表示固定密钥加密,使用用户指定的密钥对视频进行加密,此时需要aesKey; Open:开放密钥,系统自动生成加密密钥,密钥公开,不设访问控制; PlayerBinding:绑定播放器,系统自动生成加密密钥,密钥设有访问控制; PlayerBinding模式下密钥设有访问控制,安全性比较高,推荐使用PlayerBinding模式。 |
- |
+ aesKey | String | 必选 | AES128加密密钥 | - | - |
watermarkId | String | 可选 | 水印id(当transmux=true时不允许添加水印) | - | - |
watermarks | Object | 可选 | 多水印设置,不可同时指定watermarkId和watermarks | - | - |
+ image | Array | 必选 | 多水印watermarkId数组 | size最大为5 | - |
digitalWmId | String | 可选 | 需嵌入的数字水印模板ID | 需从用户已创建的数字水印模板选择 | - |
digitalWmSecretKeyId | String | 可选 | 数字水印密钥模板ID,密钥用于对水印加密嵌入,提取水印需提供正确密钥 | 需从用户已创建的数字水印密钥模板选择,生效优先级高于转码模板中的密钥 | - |
digitalWmAlgVersion | Integer | 可选 | 算法版本号 | 0 ~ 2 | 0 |
digitalWmStrength | Double | 可选 | (算法1、2有效)数字水印嵌入强度,对同一算法,强度越高则抗攻击能力越强,隐蔽性越差 | 0 ~ 1 | 0.5 |
transCfg | Object | 可选 | 转码配置信息 | - | - |
+ transMode | String | 必选 | 转码模式 | normal, twopass, cae, cae_enhanced, cae_external, cae_external_sr,cae_external_sr_vis super_resolution,super_resolution_vis。当转码模式为twopass, cae, cae_enhanced时,video不能为空;cae_external_sr cae带主观增强,cae_external_sr_vis cae带主观增强vis模型。super_resolution 超分辨率。super_resolution_vis vis模型超分辨率 | - |
extraCfg | Object | 可选 | 转码额外配置/视频处理类 | ||
+ watermarkDisableWhitelist | String | 可选 | 设置不加水印的条件 | 当前可设置 portrait,表示竖屏视频不加水印 | - |
+ segmentDurationInSecond | Number | 可选 | 设置分片时长(仅当container为hls,a-hls,dash时可以设置) | 取值范围 1.0 ~ 60.0,浮点数精度为小数点后三位以内 | - |
+ gopLength | Number | 可选 | 设置gop长度(仅当配置了video参数时可以设置;当segmentDurationInSecond和gopLength参数共存时,建议保证 segmentDurationInSecond*原视频帧率 为gopLength的整数倍) | [0, 500],其中0表示结果视频只包含i帧 | - |
+ skipBlackFrame | Bool | 可选 | 智能检测并裁剪片头黑帧,最长截取前5s黑帧 | true,false | false |
+ horiToVeri | Bool | 可选 | 视频横转竖 | true, false | false |
+ stabilization | Bool | 可选 | 视频去抖动 | true, false | false |
+ autoDesubtitle | Integer | 可选 | 智能去字幕 | 1: 字幕区域填充背景;2: 裁剪掉字幕区域 | NULL |
+ autoDelogo | Bool | 可选 | 是否自动去水印。默认手动去水印(位置大小参数需在转码任务参数内配置) | true,false | false |
+ delogoMode | String | 可选 | 去水印模式 | Normal:高斯模糊;Inpainting:背景填充 | Normal |
+ colorEnhance | Bool | 可选 | 色彩增强 | true,false | false |
+ aiVideoEnhance | Bool | 可选 | 视频细节增强,不改变分辨率 | true,false | false |
+ enhanceStrength | Float | 可选 | 细节增强强度,越大越锐利 | 0-1 | 1 |
+ faceEnhanceModel | String | 可选 | 人脸增强 | 根据人脸增强时的细节生成水平,可选strong_generative,ultra_generative | - |
+ aiSdrToHdr | Bool | 可选 | 智能HDR | true,false;ps:智能hdr必须选择h265编码,main10编码规格 | false |
+ superResolution | Bool | 可选 | 超分辨率,ps:最多可超分3-5倍 | true,false | false |
+ superResolutionVersion | Integer | 可选 | 超分模型选择 | -1:仅缩放 ;0: 模型0,速度较快,适合互联网UGC内容;1:模型1,速度慢,适合影视剧;2:模型2,速度慢,适合较老的影视剧;3:模型3,速度快,适合UGC和影视剧,细节生成能力较弱;4:模型4,速度快,适合UGC和影视剧,细节生成能力强 | 0 |
+ frameInterpolate | Bool | 可选 | 智能插帧 | true, false | false |
+ aiVideoScratchRemove | Float | 可选 | 老片修复_去划痕 | 0~1 数字越大,去划痕灵敏度越高 | - |
+ aiVideoDenoise | Float | 可选 | 老片修复_去噪 | 0~1 数字越大,去噪强度越大 | - |
+ aiVideoColorization | Bool | 可选 | 老片修复_上色 | true,false | false |
+ preserveMetadata | Bool | 可选 | 保留源视频的metadata | true, false | false |
-
请求示例:
Http1POST /v3/preset HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: 2015-03-24T13:08:44Z 4host: media.bj.baidubce.com 5accept: */* 6connection: keep-alive 7x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 8content-type: application/json 9authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:08:44Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9 10 11{ 12 "presetName": "customlized_preset", 13 "description": "A example preset description", 14 "container": "mp4", 15 "clip": { 16 "startTimeInSecond": 0, 17 "durationInSecond": 60 18 }, 19 "audio": { 20 "bitRateInBps": 256000, 21 "volumeAdjust": { 22 "norm": true, 23 "gain": 10, 24 } 25 }, 26 "video": { 27 "codec": "h264", 28 "codecOptions": { 29 "profile": "baseline" 30 }, 31 "bitRateInBps": 1024000, 32 "crf": 20, 33 "maxFrameRate": 30, 34 "maxWidthInPixel": 4096, 35 "maxHeightInPixel": 3072, 36 "sizingPolicy": "keep", 37 "autoAdjustResolution": true, 38 "playbackSpeed": 1.5 39 }, 40 "watermarks": { 41"image": ["wmk-idkmvixzaia83bem","wmk-hkjws5t44gunyz8m"] 42} 43}
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:无
-
响应示例:
Http1HTTP/1.1 200 OK 2Transfer-Encoding: chunked 3x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 4Cache-Control: no-cache 5Server: BWS 6 Date: Tue, 24 Mar 2015 13:37:10 GMT 7Content-Type: application/json;charset=UTF-8
查询指定模板
接口描述
通过presetName查询指定的模板信息。
请求(Request)
-
请求语法:
Http1GET /v{version}/preset/{presetId} HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: {utc-date-string} 4host: media.bj.baidubce.com 5accept: */* 6connection: keep-alive 7x-bce-request-id: {bce-request-id} 8content-type: application/json 9authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:无
-
请求示例:
Http1GET /v3/preset/bce.video_mp4_1920x1080_3660kbps HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: 2015-03-24T13:37:10Z 4host: media.bj.baidubce.com 5accept: */* 6connection: keep-alive 7x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 8content-type: application/json 9authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:37:10Z/1800/host;x-bce-date/3e1bf9f50ae1fca2d704d61567810dde946fff3ca2e455676455a6f5c8cce596
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:与[创建模板/请求/请求参数]保持一致,增加以下字段
字段名称 | 字段类型 | 字段描述 |
---|---|---|
state | String | 模板状态,ACTIVE/INACTIVE |
createdTime | String | 模板创建的UTC格式的时间 |
-
响应示例:
Http1HTTP/1.1 200 OK 2Transfer-Encoding: chunked 3x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 4Cache-Control: no-cache 5Server: BWS 6Date: Tue, 24 Mar 2015 13:37:10 GMT 7Content-Type: application/json;charset=UTF-8 8 9{ 10 "state": "ACTIVE", 11 "createdTime": "2015-03-24T13:34:07Z", 12 "presetName": "bce.video_mp4_1920x1080_3660kbps", 13 "description": "A example preset description", 14 "container": "mp4", 15 "clip": { 16 "startTimeInSecond": 0, 17 "durationInSecond": 60 18 }, 19 "audio": { 20 "bitRateInBps": 256000, 21 "channels": "auto" 22 }, 23 "video": { 24 "codec": "h264", 25 "codecOptions": { 26 "profile": "baseline" 27 }, 28 "bitRateInBps": 3660000, 29 "maxFrameRate": 15, 30 "maxWidth": 1920, 31 "maxHeight": 1080, 32 "sizingPolicy": "keep", 33 "autoAdjustResolution": true, 34 "playbackSpeed": 1.5 35 }, 36 "watermarkId": { 37"image": ["wmk-idkmvixzaia83bem","wmk-hkjws5t44gunyz8m"] 38 } 39}
查询当前用户模板及所有系统模板
接口描述
用户查询其名下及系统提供的所有的模板,具体有哪些系统模板可以参考系统内置模板。
请求(Request)
-
请求语法:
Http1GET /v{version}/preset HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: {utc-date-string} 4connection: keep-alive 5accept: */* 6host: media.bj.baidubce.com 7x-bce-request-id: {bce-request-id} 8content-type: application/json 9authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:无
-
请求示例:
Http1GET /v3/preset HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: 2015-03-24T13:37:10Z 4host: media.bj.baidubce.com 5accept: */* 6connection: keep-alive 7x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 8content-type: application/json 9authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:37:10Z/1800/host;x-bce-date/3e1bf9f50ae1fca2d704d61567810dde946fff3ca2e455676455a6f5c8cce596
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:与[创建模板/请求/请求参数]保持一致,增加以下字段
字段名称 | 字段类型 | 字段描述 |
---|---|---|
state | String | 模板状态,ACTIVE/INACTIVE |
createdTime | String | 模板创建的UTC格式的时间 |
-
响应示例:
Http1HTTP/1.1 200 OK 2Transfer-Encoding: chunked 3x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 4Cache-Control: no-cache 5Server: BWS 6Date: Tue, 24 Mar 2015 13:37:10 GMT 7Content-Type: application/json;charset=UTF-8 8 9{ 10 "presets": [ 11 { 12 "presetName": "bce.audio_hls_128kbps", 13 "description": "hls audio,128kbps", 14 "container": "hls", 15 "transmux": false, 16 "clip": { 17 "startTimeInSecond": 0 18 }, 19 "audio": { 20 "sampleRateInHz": 44100, 21 "channels": 2 22 }, 23 "createTime": "2015-04-07T12:01:08Z" 24 }, 25 { 26 "presetName": "bce.audio_hls_160kbps", 27 "description": "hls audio,160kbps", 28 "container": "hls", 29 "transmux": false, 30 "clip": { 31 "startTimeInSecond": 0 32 }, 33 "audio": { 34 "sampleRateInHz": 44100, 35 "channels": 2 36 }, 37 "createTime": "2015-04-07T12:01:08Z" 38 }, 39 { 40 "presetName": "bce.audio_hls_64kbps", 41 "description": "hls audio,64kbps", 42 "container": "hls", 43 "transmux": false, 44 "clip": { 45 "startTimeInSecond": 0 46 }, 47 "audio": { 48 "sampleRateInHz": 22050, 49 "channels": 2 50 }, 51 "createTime": "2015-04-07T12:01:08Z" 52 }, 53 { 54 "presetName": "bce.audio_mp3_128kbps", 55 "description": "mp3 audio,128kbps", 56 "container": "mp3", 57 "transmux": false, 58 "clip": { 59 "startTimeInSecond": 0 60 }, 61 "audio": { 62 "sampleRateInHz": 44100, 63 "channels": 2 64 }, 65 "createTime": "2015-04-07T12:01:09Z" 66 }, 67 { 68 "presetName": "bce.audio_mp3_160kbps", 69 "description": "mp3 audio,160kbps", 70 "container": "mp3", 71 "transmux": false, 72 "clip": { 73 "startTimeInSecond": 0 74 }, 75 "audio": { 76 "sampleRateInHz": 44100, 77 "channels": 2 78 }, 79 "createTime": "2015-04-07T12:01:09Z" 80 }, 81 { 82 "presetName": "bce.audio_mp3_192kbps", 83 "description": "mp3 audio,192kbps", 84 "container": "mp3", 85 "transmux": false, 86 "clip": { 87 "startTimeInSecond": 0 88 }, 89 "audio": { 90 "sampleRateInHz": 44100, 91 "channels": 2 92 }, 93 "createTime": "2015-04-07T12:01:09Z" 94 }, 95 { 96 "presetName": "bce.audio_mp3_320kbps", 97 "description": "mp3 audio,320kbps", 98 "container": "mp3", 99 "transmux": false, 100 "clip": { 101 "startTimeInSecond": 0 102 }, 103 "audio": { 104 "sampleRateInHz": 44100, 105 "channels": 2 106 }, 107 "createTime": "2015-04-07T12:01:08Z" 108 }, 109 { 110 "presetName": "bce.audio_mp3_64kbps", 111 "description": "mp3 audio,64kbps", 112 "container": "mp3", 113 "transmux": false, 114 "clip": { 115 "startTimeInSecond": 0 116 }, 117 "audio": { 118 "sampleRateInHz": 22050, 119 "channels": 2 120 }, 121 "createTime": "2015-04-07T12:01:09Z" 122 } 123 ] 124}
删除指定模板
接口描述
用于删除用户指定presetName的用户模板
请求(Request)
-
请求语法:
Http1DELETE /v{version}/preset/{presetName} HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: {utc-date-string} 4connection: keep-alive 5accept: */* 6host: media.bj.baidubce.com 7x-bce-request-id: {bce-request-id} 8content-type: application/json 9authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:无
-
请求示例:
Http1DELETE /v3/preset/user-video-mp4-1080p-3660kbps HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: 2015-03-24T13:06:02Z 4connection: keep-alive 5accept: */* 6host: media.bj.baidubce.com 7x-bce-request-id: 6d0b0a36-2ffe-49d4-9d81-333a9ab9417e 8content-type: application/json 9authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:06:02Z/1800/host;x-bce-date/02f64774999996903cffa5ae4d6eef436127a96f581a4e8467497e239d824be8
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:无
-
响应示例:
Http1HTTP/1.1 200 OK 2x-bce-request-id: 6d0b0a36-2ffe-49d4-9d81-333a9ab9417e 3Cache-Control: no-cache
更新指定模板
接口描述
用户可以通过此接口更新指定Preset。
请求(Request)
-
请求语法:
Http1PUT /v{version}/preset/{presetName} HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: {utc-date-string} 4connection: keep-alive 5accept: */* 6host: media.bj.baidubce.com 7x-bce-request-id: {bce-request-id} 8content-type: application/json 9authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:同创建模板请求
-
请求示例:
Http1PUT /v3/preset/customlized_preset HTTP/1.1 2accept-encoding: gzip, deflate 3x-bce-date: 2020-02-14T15:12:37Z 4host: media.bj.baidubce.com 5accept: */* 6connection: keep-alive 7x-bce-request-id: 0969b91e-1890-470b-b93b-97939f672e54 8content-type: application/json 9authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2020-02-14T15:12:37Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9 10 11{ 12 "presetName": "customlized_preset", 13 "description": "A example preset description", 14 "container": "mp4", 15 "clip": { 16 "startTimeInSecond": 0, 17 "durationInSecond": 60 18 }, 19 "audio": { 20 "bitRateInBps": 256000 21 }, 22 "video": { 23 "codec": "h264", 24 "codecOptions": { 25 "profile": "baseline" 26 }, 27 "bitRateInBps": 1024000, 28 "maxFrameRate": 30, 29 "maxWidthInPixel": 4096, 30 "maxHeightInPixel": 3072, 31 "sizingPolicy": "keep", 32 "playbackSpeed": 1.5 33 }, 34 "watermarkId": "wmk-fekn2ydgq2fe9f1x" 35}
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:无
-
响应示例:
Http1HTTP/1.1 200 OK 2Transfer-Encoding: chunked 3x-bce-request-id: 0969b91e-1890-470b-b93b-97939f672e54 4Cache-Control: no-cache 5Server: BWS 6Date: Fri, 14 Feb 2020 07:12:37 GMT 7Content-Type: application/json;charset=UTF-8