本文旨在介紹在指令碼化自動成片情境下的合成參數、進階配置、SDK調用樣本。
指令碼化自動成片與智能圖文匹配成片共用同一個提交任務API。有關如何通過參數區分這兩者,請參見參數區別說明
注意:在此介面中,所有媒資的OSS URL中的地區(region)必須與調用OpenAPI服務地址中的地區(region)保持一致。
支援指令碼化自動成片的地區:華東2(上海)、華北2(北京)、華東1(杭州)、華南1(深圳)、美國(西部)、新加坡。
在實際使用過程中,請將文檔所有參數樣本中的 [your-bucket]、[your-region-id]、[your-file-name]、[your-file-path]、媒資ID(例如:“****9d46c8b4548681030f6e****”)等參數替換為您的實際值。
為了更好地閱讀本文,建議您在閱讀之前先瞭解智能一鍵成片中與【指令碼化自動成片】相關的內容。
指令碼化自動成片當前存在兩種處理模式分別為“全域口播模式”和“分組口播模式”:
全域口播模式:可以通過多個完整的口播文案隨機搭配指令碼節點,從而實現批量視頻混剪。
分組口播模式:可以通過將一個完整的口播文案拆分成多個段落,並分別與指令碼的各個節點進行巧妙搭配,以實現更佳的效果。
如何通過參數區分“全域口播模式”和“分組口播模式”,如下所示:
當SpeechTextArray不為空白,則視為“全域口播模式”;
當SpeechTextArray為空白,且MediaGroupArray中只要有一個MediaGroup.Duration或MediaGroup.SpeechTextArray不為空白,則視為“分組口播模式”;
當SpeechTextArray為空白,且MediaGroupArray中所有的MediaGroup.Duration和MediaGroup.SpeechTextArray皆為空白,則視為“全域口播模式”;
使用說明
將多個視頻、音頻、圖片素材進行智能混剪,一鍵批量合成視頻介面說明,請參見SubmitBatchMediaProducingJob - 批量智能一鍵成片,api關鍵參數詳見下文InputConfig 參數說明、EditingConfig 參數說明、OutputConfig 參數說明。
擷取批量智能一鍵成片作業的詳細資料,請參見GetBatchMediaProducingJob - 擷取批量智能一鍵成片任務資訊。
InputConfig 參數說明
使用者可通過配置InputConfig,指定視頻素材、口播、背景音樂、貼紙等基礎素材的參數配置。
參數 | 類型 | 說明 | 樣本值 | 是否必填 | 支援模式 |
MediaGroupArray | List<MediaGroup> | 指令碼化自動成片模式。輸入為指令碼化素材,支援設定分組名、素材列表 分組名:不超過50個字元,不支援emoji。 素材列表:媒資ID或素材OSS URL。 最多40個分組,每組最多200個素材。 | 是 |
| |
TitleArray | List<String> | 標題數組,每次合成隨機選一個 最多50個,每個標題不超過50字 | ["標題1","標題2"] | 否 |
|
SubHeadingArray | List<SubHeading> | 副標題設定 | [{"Level":1,"TitleArray":["一級副標題1","一級副標題2"]},{"Level":3,"TitleArray":["三級副標題"]}] | 否 |
|
SpeechTextArray | List<String> |
| ["口播內容1","口播內容2"] | 否 |
|
StickerArray | List<Sticker> |
| [{"MediaId":"****9d46c8b4548681030f6e****","X":10,"Y":100,"Width":300,"Height":300,"Opacity":0.6}] | 否 |
|
BackgroundMusicArray | List<String> |
| ["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"] | 否 |
|
BackgroundImageArray | List<String> |
| ["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"] | 否 |
|
MediaGroup 參數說明
“全域口播模式”與“分組口播模式”的MediaGroup參數配置差異可根據表格列“支援模式”區分。
參數 | 類型 | 說明 | 樣本值 | 是否必填 | 支援模式 |
GroupName | String | 分組名, 不超過50個字元,不支援emoji。 | Group1 | 是 |
|
MediaArray | List<String> |
| ****b4549d46c88681030f6e**** | 是 |
|
SpeechTextArray | List<String> |
| ["口播內容1","口播內容2"] | 否 |
|
Duration | Float | 當前分組對應的時間長度,單位秒。僅限SpeechTextArray為空白時填寫。 | 10 | 否,預設5 |
|
SplitMode | String |
| NoSplit | 否,預設AverageSplit |
|
Volume | Float |
| 0.5 | 否 |
|
DurationAutoAdapt | Boolean | 該分組是否開啟時間長度自適應(開啟後若無口播,將自動調節該分組的時間長度,保證視頻片段按照原速度播放) | true | 否,預設為false |
|
全域口播模式-參數樣本
{
"MediaGroupArray": [
{
"GroupName": "UseMediaId",
"MediaArray": [
"****9d46c886b45481030f6e****",
"****c886810b4549d4630f6e****"
],
"SplitMode": "NoSplit"
},
{
"GroupName": "UseOssUrl",
"MediaArray": [
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp4",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png"
]
}
],
"TitleArray": [
"回龍觀盒馬鮮生開業啦",
"盒馬鮮生開業啦"
],
"SubHeadingArray": [
{
"Level": 1,
"TitleArray": ["副標題1", "副標題2"]
},
{
"Level": 3,
"TitleArray": ["三級副標題"]
}
],
"SpeechTextArray": [
"附近的商場新開了一家盒馬鮮生,今天是第一天開業,趕緊來湊熱鬧,這家盒馬面積不大,但商場裡的人不少,零食、酒水都比較便宜,排隊的人都排成了長龍,大家也快來看看呀",
"附近的商場新開了一家盒馬鮮生,今天是第一天開業,趕緊來湊熱鬧",
"<speak>戰火<phoneme alphabet=\"py\" ph=\"zheng4 hao3\">正酣</phoneme>。今天,我們的主角,乒壇傳奇馬龍,正向著榮耀的巔峰發起衝擊。1/4決賽中面對實力強勁的戶上隼輔,馬龍毫不畏懼,每一個回合都全力以赴。他精準的球路和冷靜的判斷,讓他在這場比賽中佔據了上風。最終,馬龍成功戰勝對手,晉級四強。</speak>"
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png"
]
}分組口播模式-參數樣本
{
"MediaGroupArray": [{
"GroupName": "start",
"MediaArray": ["https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].jpeg", "https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp4"],
"Duration": 5,
"SplitMode": "NoSplit",
"Volume": 1
},
{
"GroupName": "group1",
"MediaArray": ["https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png", "https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp4"],
"SpeechTextArray": ["附近的商場新開了一家盒馬鮮生,今天是第一天開業", "今天是這家盒馬鮮生第一天開業", "<speak>戰火<phoneme alphabet=\"py\" ph=\"zheng4 hao3\">正酣</phoneme>。今天,我們的主角,乒壇傳奇馬龍,正向著榮耀的巔峰發起衝擊。1/4決賽中面對實力強勁的戶上隼輔,馬龍毫不畏懼,每一個回合都全力以赴。他精準的球路和冷靜的判斷,讓他在這場比賽中佔據了上風。最終,馬龍成功戰勝對手,晉級四強。</speak>"]
},
{
"GroupName": "group2",
"MediaArray": ["https://[your-bucket].oss-[your-region-id].aliyuncs.com/0-test-batch-editing-materials/normal%20video.mp4", "https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].jpeg"],
"SpeechTextArray": ["這家盒馬面積不大,但商場裡的人不少,零食、酒水都比較便宜,排隊的人都排成了長龍", "現場特別熱鬧,人山人海,商品琳琅滿目"]
},
{
"GroupName": "group3",
"MediaArray": ["https://[your-bucket].oss-[your-region-id].aliyuncs.com/0-test-batch-editing-materials/young_sunset_walk.mp4"],
"SpeechTextArray": ["快來看看吧", "快點來看看吧"]
},
{
"GroupName": "end",
"MediaArray": ["https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].jpg", "https://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp4"],
"Duration": 5
}
],
"TitleArray": [
"回龍觀盒馬鮮生開業啦",
"盒馬鮮生開業啦"
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"SubHeadingArray": [
{
"Level": 1,
"TitleArray": ["一級副標題1", "一級副標題2"]
},
{
"Level": 3,
"TitleArray": ["三級副標題"]
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name].png"
]
}EditingConfig 參數說明
使用者可通過配置EditingConfig,指定成片素材的音量、位置及其他合成參數。參數樣本請參見:EditingConfig 參數樣本
除了以下參數外,其餘參數皆支援“全域口播模式”和“分組口播模式”:
ProcessConfig.AlignmentMode僅在“全域口播模式”下生效;
SpeechConfig.SpecialWordsConfig僅在“分組口播模式”下生效;
參數 | 類型 | 說明 | 樣本值 | 是否必填 |
JSON | 輸入視頻素材相關配置。 | {"Volume":"1","MediaMetaDataArray":[{"Media":"****6c886b4549d481030f6e****","GroupName":"GroupA","TimeRangeList":[{"In":"0","Out":"1"},{"In":"2","Out":"3"}]}]} | 否 | |
JSON | 標題相關配置,支援配置字幕參數。 | {"Alignment":"TopCenter","AdaptMode":"AutoWrap","Font":"Alibaba PuHuiTi 2.0 95 ExtraBold","SizeRequestType":"Nominal","Y":0.1} | 否 | |
SubHeadingConfig | JSON | 多級副標題相關配置。支援設定字幕參數。 JSON欄位說明: | {"1":{"Y":0.3,"FontSize":40},"3":{"Y":0.5,"FontSize":30}} | 否 |
JSON | 口播文案相關配置。 | 否 | ||
JSON | 背景音樂相關配置。 | {"Volume":0.2} | 否 | |
JSON | 背景圖相關配置。如果InputConfig中已配置背景圖,則此欄位不生效。 | {"SubType":"Blur","Radius":0.5} | 否 | |
JSON | 混剪處理配置。 | 否 | ||
JSON | 用於前端頁面預覽時的畫布配置。 | {"Width": 1080,"Height": 1920} | 否 | |
ProduceConfig | JSON | 普通剪輯合成配置,欄位詳見:EditingProduceConfig | {"AutoRegisterInputVodMedia":true,"OutputWebmTransparentChannel":true,"CoverConfig":{"StartTime":3.3},"AudioChannelCopy":"left","PipelineId":"****d54a97cff4108b555b01166d4****","MaxBitrate":5000,"KeepOriginMaxBitrate":false,"KeepOriginVideoMaxFps":false} | 否 |
ProcessConfig 參數說明
參數 | 類型 | 說明 | 樣本值 | 是否必填 |
SingleShotDuration | Float | 長視頻素材進行剪輯時會自動拆條,拆條後單鏡頭的時間長度,單位秒。 | 5 | 否,預設3 |
AllowVfxEffect | Boolean | 是否允許添加特效效果。 | true | 否,預設false |
VfxEffectProbability | Float | 特效應用在每個視頻片段上的機率,取值:0.0 - 1.0,支援2位小數。 | 0.6 | 否,預設0.5 |
VfxFirstClipEffectList | List<String> |
| ["slightshow","starfieldshinee"] | 否 |
VfxNotFirstClipEffectList | List<String> |
| ["zoomslight","zoom"] | 否 |
AllowTransition | Boolean | 是否允許添加轉場效果。 | true | 否,預設false |
TransitionDuration | Float | 轉場時間長度,單位秒。如果轉場時間長度 > 片段時間長度 - 1,則該片段上的轉場效果不會生效。 | 0.5 | 否,預設0.5秒 |
TransitionList | List<String> | 自訂轉場效果列表,當AllowTransition=true時,隨機選取列表中的一個轉場效果進行合成,轉場效果的可選範圍詳見轉場效果庫。如果傳此參數為空白,則會從以下轉場效果中隨機選取:"linearblur", "colordistance", "crosshatch", "dreamyzoom", "doomscreentransition_up" | ["directional", "linearblur"] | 否 |
UseUniformTransition | Boolean | 單個成片中是否使用一致的轉場效果。 | true | 否,預設true |
AllowFilter | Boolean | 是否允許添加自訂濾鏡 | false | 否,預設false |
FilterList | List<String> | 自訂濾鏡效果列表,當AllowFilter=true時,隨機選取列表中的一個濾鏡進行合成,濾鏡效果的可選範圍濾鏡效果樣本,如果此參數為空白,則不會添加濾鏡效果。 | ["m1", "m2"] | 否 |
AlignmentMode | String | 表示視頻和口播文案的對齊模式。僅在“全域口播模式”下生效。取值:
| AutoSpeed | 否,預設AutoSpeed |
ImageDuration | Float | 圖片素材的持續時間長度,單位秒。 | 2 | 否,預設2 |
EditingConfig 參數樣本
{
"MediaConfig": {
"Volume": 0 // 預設視頻素材靜音
},
"TitleConfig": {
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Font": "Alibaba PuHuiTi 2.0 95 ExtraBold",
"SizeRequestType": "Nominal",
"Y": 0.1, // 成片為豎屏時,標題的預設Y座標值
"Y": 0.05, // 成片為橫屏時,標題的預設Y座標值
"Y": 0.08 // 成片為方屏時,標題的預設Y座標值
},
"SubHeadingConfig": {
"1": {
"Y": 0.3,
"FontSize": 40
},
"3": {
"Y": 0.5,
"FontSize": 30
}
},
"SpeechConfig": {
"Volume": 1, // 口播音頻預設用原始音量
"SpeechRate": 0,
"Voice": null,
"Style": null,
"CustomizedVoice": null, // 人聲複製voiceId,若填寫了此欄位,Voice和Style將失效。
"AsrConfig": {
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Font": "Alibaba PuHuiTi 2.0 65 Medium",
"SizeRequestType": "Nominal",
"Spacing": -1,
"Y": 0.8, // 成片為豎屏時,字幕Y的預設座標值
"Y": 0.9, // 成片為橫屏時,字幕Y的預設座標值
"Y": 0.85 // 成片為方屏時,字幕Y的預設座標值
},
"SpecialWordsConfig": [{
"Type": "Highlight",
"Style": {
"FontName": "KaiTi",
"FontSize": 80,
"FontColor": "20AEE9",
"OutlineColour": "2D20E9",
"Outline": 3,
"FontFace": {
"Bold": true,
"Underline": true
}
},
"WordsList": [
"視頻雲",
"智能媒體服務",
"智能一鍵成片"
]
},
{
"Type": "Highlight",
"Style": {
"FontFace": {
"Italic": true
}
},
"WordsList": [
"商品",
"看看"
]
},
{
"Type": "Forbidden",
"WordsList": [
"劈裡啪啦",
"嗶哩吧啦"
],
"SoundReplaceMode": "None"
}
]},
"BackgroundMusicConfig": {
"Volume": 0.2, // 背景音樂預設用20%音量,
"Style": null
},
"ProcessConfig": {
"SingleShotDuration": 3, // 拆條後的鏡頭時間長度
"AllowVfxEffect": false, // 是否添加特效效果
"AllowTransition": false, // 是否添加轉場效果
"AlignmentMode": "AutoSpeed" // 僅在全域口播模式下支援此欄位
}
}TemplateConfig 參數說明
TemplateConfig為一鍵成片的公用參數,用於設定一鍵成片模板。詳細參數說明和使用樣本詳見TemplateConfig 參數說明
OutputConfig 參數說明
使用者可通過配置OutputConfig,指定成片輸出地址、名稱規則、成片的寬高、輸出成片數量等合成參數。
“全域口播模式”與“分組口播模式”的OutputConfig參數配置說明是相同的。
參數 | 類型 | 說明 | 樣本值 | 是否必填 |
MediaURL | String | 輸出視頻地址,必須要有預留位置 {index}。 | 規則:http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4 樣本:http://example.oss-cn-shanghai.aliyuncs.com/example/example_{index}.mp4 | 當GeneratePreviewOnly=false時,且成片輸出到OSS時必填 |
StorageLocation | String | 指定輸出到VOD的媒資檔案儲存體地址. | 規則:[your-vod-bucket].oss-[your-region-id].aliyuncs.com 樣本:outin-****6c886b4549d481030f6e****.oss-cn-shanghai.aliyuncs.com | 當GeneratePreviewOnly=false時,且成片輸出到VOD時必填 |
FileName | String | 輸出檔案名稱,必須要有預留位置{index}. | 規則:[your-file-name]__{index}.mp4 樣本:example_{index}.mp4 | 當GeneratePreviewOnly=false時,且成片輸出到VOD時必填 |
GeneratePreviewOnly | Boolean |
| false | 否,預設false |
Count | Integer | 輸出視頻數,數量上限為100。 | 10 | 否,預設1 |
MaxDuration | Float | 輸出視頻單片時間長度上限,單位秒。
| 20 | 否,預設15 |
FixedDuration | Float | 輸出視頻單片的固定時間長度,單位秒。如果設定了固定時間長度,視頻時間長度將會對齊此參數。
| 20 | 否,預設15 |
Width | Integer | 成片寬,px | 1080 | 是 |
Height | Integer | 成片高,px | 1920 | 是 |
JSON | 輸出視頻流相關配置,Crf、Codec等 | {"Crf": 27} | 否 |
參數樣本
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4",
"Count": 20,
"MaxDuration": 15,
"Width": 1080,
"Height": 1920,
"Video": {"Crf": 27},
"GeneratePreviewOnly":false
}應用樣本
樣本一:通過口播分組模式配置標題片尾
適用情境
如果您希望為視頻添加一致的標題和片尾,並配備統一的口播,請參閱該情境的樣本。您可以通過將首尾分組的MediaGroup.SplitMode設定為NoSplit。此時,系統將不再對首尾分組中的素材進行拆條,而是將從首尾中隨機選取的素材進行完整播放,以實現添加固定標題和片尾的效果。
樣本參數
樣本二:通過指令碼化自動成片製作人臉集錦視頻
如果您對人臉集錦情境相關的需求感興趣,建議您查閱相關最佳實務:人臉集錦視頻製作最佳實務。
SDK調用樣本
前提條件
您已安裝IMS服務端SDK,詳情請參見準備工作。
程式碼範例
以全域口播模式為例
API調用入參詳情
進階配置
進階配置詳見批量一鍵成片混剪邏輯與進階配置
常見問題
指令碼化自動成片常見問題請參見指令碼化自動成片FAQ:
相關文檔
指令碼化自動成片詳見SubmitBatchMediaProducingJob - 批量智能一鍵成片
擷取指令碼化自動成片詳見GetBatchMediaProducingJob - 擷取批量智能一鍵成片任務資訊
通過指令碼化自動成片製作人臉集錦視頻詳見人臉集錦視頻製作教程
進階配置詳見批量一鍵成片混剪邏輯與進階配置