跳到主要内容

制作一个视频

使用获得场景视频数字人功能,可以快速制作视频内容,主要有以下步骤:

1.创建项目

首先,请求创建项目接口,创建一个项目,接口返回项目ID,后续步骤使用。例如:88BC616C6237CE18。

curl --request POST \
--url 'https://digitbot.bokecc.com/api/project/create?accountId=950234CBB7F04284&version=1.0.0&time=1706523797&hash=b1ed7de9e3178fd97bb19d9cb2c7a508' \
--header 'content-type: application/json' \
--data '{
"name": "制作视频演示项目"
}'

2.配置项目

项目创建成功后,请求 配置项目 接口,配置上一步创建的项目属性,更新以下内容:

制作视频时,请参照下面示例中的要求说明进行配置。

curl --request POST \
--url 'https://digitbot.bokecc.com/api/project/update?accountId=950234CBB7F04284&version=1.0.0&projectId=88BC616C6237CE18&time=1706523797&hash=b1ed7de9e3178fd97bb19d9cb2c7a508' \
--header 'content-type: application/json' \
--data '{
"name": "演示项目", // 可以不配置,保持创建时的默认值 - 未命名项目。
"videoWidth": 1920, // 可以不配置,保持创建时的默认值 - 1920。
"videoAspect": "16:9", // 可以不配置,保持创建时的默认值 - 16:9。
"scenes": [{ // 必需,至少要配置一个场景。
"driverType": 0, // 必需,必需指定场景的驱动类型,0=文本驱动;1=音频驱动。
"textDriver": { // 文本驱动时,必需。
"text": "这是一个测试文本驱动的场景。", // 文本驱动时,必需,设置合成视频时播报的文本内容。
"speed": 1.00, // 可以不配置,保持创建时的默认值 - 1。
"volume": 2.0 // 可以不配置,保持创建时的默认值 - 1。
},
"portraitModel": { // 可以不配置,不配置时输出的视频画面中没有人像。
"type": 0, // 若配置人像,必需,0=模特;1=定制。
"modelId": "950234CBB7F04284" // 若配置人像,必需,指定使用的人像数字人ID,从人像数字人相关的列表查询接口中获取。
},
"voiceModel": { // 文本驱动时,必需;音频驱动时,可以不配置。
"type": 1, // 配置声音时,必需。文本驱动时,可配置值为0=AI声音;1=多语言版模型声音;2=专属定制版模型声音。音频驱动时,可配置值为1=多语言版模型声音。
"modelId": "950234CBB7F04284", // 配置声音时,必需。指定使用的声音数字人ID,可以从声音数字人相关的列表查询接口中获取。
"voiceStyleId": "950234CBB7F04284" // 文本驱动,并使用多语言版模型声音时,必需。可以从声音风格列表查询接口中获取。
},
"background": { // 可以不配置,不配置时输出的视频背景为纯白色。
"type": 0, // 配置背景时,必需。0=颜色;1=图片;2=视频。
"color": "#FFFFFF", // 可以不配置,不配置时,如果使用颜色背景,输出的视频背景为纯白色。
},
"stickers": [{ // 可以不配置,不配置时输出的视频中没有贴纸。
"type": 0, // 配置贴纸时,必需。0=图片贴纸;1=PPT贴纸;2=线条贴纸。
"stickerId": "950234CBB7F04284" // 配置贴纸时,必需。指定使用的贴纸的ID,可以从贴纸和PPT贴纸相关的列表查询接口中获取。
}, ...],
"coordinates": [{ // 根据人像、贴纸的使用情况配置,需要和使用的人像、贴纸的数量一致,且一一对应。
"type": 1, // 设置坐标时,必需。1=人像;21=图片贴纸;22=PPT贴纸;23=线条贴纸。
"entityId": "950234CBB7F04284", // 设置坐标时,必需。部件ID,与使用的人像、贴纸一一对应。
"width": 333, // 设置坐标时,必需。指定人像、或贴纸在输出视频中的宽度。具体说明和效果参考接口文档。
"height": 876, // 设置坐标时,必需。指定人像、或贴纸在输出视频中的高度。具体说明和效果参考接口文档。
"x": 350, // 设置坐标时,必需。指定人像、或贴纸在输出视频中的水平位置。
"y": 39 // 设置坐标时,必需。指定人像、或贴纸在输出视频中的垂直位置。
}, {
"type": 21,
"entityId": "950234CBB7F04284",
"width": 200,
"height": 100,
"x": 100,
"y": 39
}, ...],
"subtitles": [] // 文本驱动时,不需要设置。
}, {
"driverType": 1,
"audioDriver": { // 音频驱动时,必需。
"audioId": "950234CBB7F04284" // 音频驱动时,必需,指定合成视频时使用的音频内容,先上传驱动音频,后使用。
},
"portraitModel": {
"type": 0,
"modelId": "950234CBB7F04284"
},
"voiceModel": { // 音频驱动时,可以不配置。
"type": 1, // 音频驱动时,可配置值只有1=定制声音。
"modelId": "950234CBB7F04284"
},
"background": {
"type": 1,
"backgroundId": "950234CBB7F04284" // 配置图片背景、视频背景时,必需。指定使用的背景ID,可以从背景相关的列表查询接口中获取。
},
"stickers": [{
"type": 2,
"stickerId": "950234CBB7F04284"
}, ...],
"coordinates": [{
"type": 1,
"entityId": "950234CBB7F04284",
"width": 333,
"height": 876,
"x": 350,
"y": 39
}, {
"type": 23,
"entityId": "950234CBB7F04284",
"width": 200,
"height": 100,
"x": 100,
"y": 39,
"position": 1234 // 使用线条贴纸时,可以设置贴纸出现在文本内容中的位置。
}, ...],
"subtitles": [{ // 音频驱动时,可以设置字幕内容。字幕数据通过查询驱动音频字幕列表获取,可以对字幕内容进行修正。
"startTimestamp": 1230, // 使用字幕时,必需。
"endTimestamp": 2560, // 使用字幕时,必需。
"text": "大家好" // 使用字幕时,必需。
}, ...]
}, ...],
"subtitlesStyle": { // 使用字幕时,必需。
"status": 1, // 可以不配置,不配置时不启用字幕。0=关闭;1=开启。
"fontname": "PangMenZhengDao", // 可以不配置,不配置时,使用默认字体 - Source Han Sans CN
"fontsize": 65, // 可以不配置,不配置时,使用默认字号 - 50像素
"primaryColor": "#9326FA", // 可以不配置,不配置时,使用默认颜色 - #000000
"outlineColor": "#D0EEFF", // 可以不配置,不配置时,使用默认颜色 - #FFFFFF
"backgroundColor": "#FFDE00", // 可以不配置,不配置时,字幕没有背景。
"backgroundAlpha": 35, // 可以不配置,不配置时,字幕没有背景。
"alignment": 2, // 可以不配置,不配置时,字幕居中对齐。
"marginLeft": 40, // 可以不配置,不配置时,字幕居中对齐时,左边距不生效;字幕左对齐时,左边距为40像素。
"marginRight": 40, // 可以不配置,不配置时,字幕居中对齐时,右边距不生效;字幕右对齐时,右边距为40像素。
"marginBottom": 130 // 可以不配置,不配置时,字幕下边距为100像素。
}
}'

请求上述接口,根据要制作的视频需求,设置参数组合,更新项目属性。

3.合成视频

项目配置成功后,请求合成作品 接口,制作一个视频。

合成视频请求:

curl --request POST \
--url 'https://digitbot.bokecc.com/api/project/compose?accountId=950234CBB7F04284&version=1.0.0&projectId=88BC616C6237CE18&time=1706523797&hash=b1ed7de9e3178fd97bb19d9cb2c7a508' \
--header 'content-type: application/json' \
--data '{
"type": 0, // 可以不设置,默认合成视频,建议设置,指定合成的作品为视频。
"name": "合成视频演示", // 可以不设置,不设置时,使用项目名称,做为作品名称。
"callbackUrl": "https://xxxxx.xxxxx" // 可以不设置,不设置时,作品合成完成后不会回调给客户。
}'

4.接收回调或轮询结果

请求合成视频成功时,接口返回作品ID。

若请求合成视频时配置了回调地址,客户需要在回调接口中匹配作品ID,处理回调结果。

若请求合成视频时未配置回调地址,客户可以使用作品ID请求查询作品详情接口,查询视频合成状态、进度,以及合成结果。