视频云剪辑
更新时间:2025-03-27
视频云剪辑(视频渲染合成)提供专业的在线视频剪辑服务,支持视频裁剪、拼接、转码、字幕、音频、特效等操作,生产出新的视频。 文本介绍如何通过API使用视频云剪辑服务。
操作支持 | 描述 |
---|---|
多轨道 | 支持视频剪辑所必需的多个图层叠加,音频混合 |
剪辑操作 |
|
字幕 | 支持为视频添加文字字幕(字体见文末) |
音频 | 支持调整视频的音频音量、添加背景音乐等 |
转码 | 将视频转换成不同的格式或分辨率 |
添加特效 | 为视频添加运镜特效、滤镜、动画等效果 |
1. 创建视频云剪辑任务
调用该接口可以创建一个视频云剪辑异步任务。发起请求后,任务将被创建并加入到当前用户的任务队列。用户可以在「任务中心」查询到该任务的状态。 如果用户在VOD创建了回调通知事件,则任务被开始处理、处理完成、处理失败时都将自动向用户发送通知。若通知失败会连续尝试3次,均失败后则放弃通知。
请求结构
Http
1POST /v2/media_compose HTTP/1.1
2host: vod.bj.baidubce.com
3authorization: <bce-authorization-string>
4x-bce-date: <bce-authorization-utc-date>
5content-type: application/json
请求参数
字段 | 类型 | 必要性 | 说明 |
---|---|---|---|
timeline | ComposeTimeline | 是 | 剪辑时间轴 |
output | ComposeOutput | 是 | 导出配置 |
响应参数
字段 | 类型 | 说明 |
---|---|---|
taskId | string | 任务ID ,可作为当前任务的唯一标识 |
请求示例
Http
1POST /v2/media_compose HTTP/1.1
2host: vod.bj.baidubce.com
3authorization: <bce-authorization-string>
4x-bce-date: <bce-authorization-utc-date>
5content-type: application/json
JSON
1{
2 "timeline": {
3 "videoTracks": [
4 {
5 "videoItems": [
6 {
7 "sourceUrl": "https://example.com/background.jpg",
8 "type": "image",
9 "showStart": 0,
10 "showDuration": 10
11 }
12 ]
13 },
14 {
15 "videoItems": [
16 {
17 "mediaId": "mda-jlsjdljrwsdfsdfe",
18 "type": "video",
19 "start": 3.5,
20 "duration": 4,
21 "showStart": 0,
22 "showDuration": 4.5,
23 "durationPaddingType": "last_frame",
24 "audioOperations": [
25 {
26 "volume": 1.5
27 }
28 ],
29 "imageOperations": [
30 {
31 "speed": 1.2,
32 "crop": {
33 "xpos": 0.6,
34 "ypos": 0.6,
35 "width": 0.4,
36 "height": 0.4
37 }
38 }
39 ],
40 "xpos": 0.0,
41 "ypos": 0.0,
42 "width": 1.0,
43 "height": 1.0
44 },
45 {
46 "sourceUrl": "https://example.com/video2.mp4",
47 "type": "video",
48 "start": 0.5,
49 "duration": 5.5,
50 "showStart": 4.5,
51 "showDuration": 5.5,
52 "imageOperations": [
53 {
54 "posMovement": {
55 "viewBox": "fixed",
56 "type": "zoomIn",
57 "speed": 0.001
58 }
59 }
60 ]
61 }
62 ]
63 }
64 ],
65 "audioTracks": [
66 {
67 "audioItems": [
68 {
69 "sourceUrl": "https://example.com/audio1.mp3",
70 "start": 0.5,
71 "duration": 5.5,
72 "showStart": 0.0,
73 "showDuration": 10,
74 "durationPaddingType": "loop",
75 "imageOperations": [
76 {
77 "speed": 0.5
78 }
79 ]
80 }
81 ]
82 }
83 ]
84 },
85 "output": {
86 "fileName": "my_first_video.mp4",
87 "compression": "low",
88 "width": 1280,
89 "height": 720
90 }
91}
响应示例
JSON
1{
2 "taskId": "tsk-jiowe4f89j394f93"
3}
2. 任务状态回调通知事件
当任务状态发生变更时,VOD支持向用户设定的通知服务地址以POST请求方式发送通知消息。
请注意,通知只在短时间内最多尝试3次,若均未成功响应,则放弃通知。因此,为保证用户不丢失任务状态,建议用户端增加主动轮询机制。
回调消息体参数
字段名 | 类型 | 说明 |
---|---|---|
eventId | string | 通知事件的唯一id |
eventType | string(枚举) | 通知事件的类型,取值:COMPOSE_TASK_STATUS_CHANGE |
eventTime | string | 通知事件的发生时间,例如2024-10-11T13:48:01Z |
composeTaskStatusChangeEvent | ComposeTaskStatusChangeEvent | 视频合成任务状态变更事件 |
回调消息体示例
JSON
1{
2 "eventId": "evt-ekaqzhzm3nzts0ws",
3 "eventTime": "2024-11-01T06:50:07Z",
4 "eventType": "COMPOSE_TASK_STATUS_CHANGE",
5 "composeTaskStatusChangeEvent": {
6 "taskId": "tsk-ekaqbp3ghsk2syyz",
7 "status": "SUCCESS",
8 "createTime": "2024-11-01T06:49:06Z",
9 "finishTime": "2024-11-01T06:50:07Z",
10 "composeTaskInfo": {
11 "errMsg": "OK",
12 "output": {
13 "mediaId": "mda-ekaqqmfj2a2f1fqf",
14 "url": "https://sefsgrvsdegvde.exp.bcevod.com/mda-ekaqqmfj2a2f1fqf/_src/mda-ekaqqmfj2a2f1fqf.mp4"
15 }
16 }
17 }
18}
3. 查询视频云剪辑任务
调用该接口可以查询一个视频云剪辑异步任务的状态和结果。
请求结构
Http
1GET /v2/tasks/{taskId} HTTP/1.1
2host: vod.bj.baidubce.com
3authorization: <bce-authorization-string>
4x-bce-date: <bce-authorization-utc-date>
请求路径参数
字段名 | 类型 | 说明 |
---|---|---|
taskId | string | 任务ID,任务创建时返回的唯一标识 |
响应参数
字段名 | 类型 | 说明 |
---|---|---|
taskId | string | 任务id |
type | string | 任务类型,值为COMPOSE |
status | string(枚举) | 任务进度,取值:READY (排队中), RUNNING , SUCCESS , FAILED |
createTime | string | 任务创建时间,例如2024-10-11T13:48:01Z |
finishTime | string | 任务完成时间,例如2024-10-11T13:49:59Z |
composeTaskInfo | ComposeTaskInfo | 视频云剪辑任务信息 |
请求示例
Http
1GET /v2/tasks/tsk-jiowe4f89j394f93 HTTP/1.1
2host: vod.bj.baidubce.com
3authorization: <bce-authorization-string>
4x-bce-date: <bce-authorization-utc-date>
响应示例
示例1:
JSON
1{
2 "taskId": "tsk-ekapq4e0fdd6v0x1",
3 "type": "COMPOSE",
4 "status": "RUNNING",
5 "createTime": "2024-11-01T05:18:28Z"
6}
示例2:
JSON
1{
2 "taskId": "tsk-ekaqbp3ghsk2syyz",
3 "type": "COMPOSE",
4 "status": "SUCCESS",
5 "createTime": "2024-11-01T06:49:06Z",
6 "finishTime": "2024-11-01T06:50:07Z",
7 "composeTaskInfo": {
8 "output": {
9 "mediaId": "mda-svfsjdssfgdsgds",
10 "url": "https://jwoiejfiow.exp.bcevod.com/mda-svfsjdssfgdsgds/_src/mda-svfsjdssfgdsgds.mp4"
11 }
12 }
13}
4. 附录
字幕字体
字幕目前内置以下字体类型。下面的示例为了便于观察,均使用白色文字、黄色背景,且文字附加了黑色描边。
字体名称 | 示例 |
---|---|
方正黑体简体 |
![]() |
楷体 |
![]() |
思源宋体 CN |
![]() |
Noto Sans SC Black |
![]() |
Noto Sans SC SemiBold |
![]() |
Noto Sans SC Medium |
![]() |
Noto Sans SC Thin |
![]() |