本文檔介紹了在普通剪輯情境下,可以通過哪些方式來對成片的時間長度進行控制。
一、設定主軌道
1.1 背景
痛點情境:當您已經錄製好一段音頻素材,並期望以這段音頻素材為主,搭配未知數量與時間長度的視頻素材或圖片素材產生最終成片。您僅要求視頻中映像(視頻、圖片)素材的展示時間長度能與音頻素材對齊即可,而又不希望在每個映像素材的時間參數上的配置上投入太多工作。
解決方案:在上述情境中,通過指定這段音頻素材所在的軌道為“主軌道”,其它軌道的時間長度會按照“主軌道”的時間長度進行一定的自適應,也即如果某一軌道的時間長度超過了主軌道時間長度,這條軌道則會按照主軌道時間長度進行截斷。
有益效果:
這樣您就可以在不瞭解素材時間長度資訊的情況下完成剪輯目標;
一定程度上也能夠減輕您在配置 In、Out、TimelineIn 和 TimelineOut 等時間相關的時間軸參數上的工作量。
1.2 介紹
您可以通過在時間軸 Timeline 中設定MainTrack欄位為true指定某一條視頻軌或音頻軌為主軌道,進而控製成片時間長度。
主軌道的具體邏輯為:
最終成片時間長度與指定的主軌道時間長度相同;
如果除主軌道以外的軌道時間長度較長,會依據主軌道時間長度進行截斷。
在一次剪輯中最多隻能指定一條軌道為主軌道,如果指定多條軌道為主軌道,會以第一條被指定的為準;
目前僅支援設定視頻軌與音頻軌為主軌道。
1.3 樣本
下面的時間軸 Timeline 樣本中:
一共有 2 條剪輯軌道,其中 1 條視頻軌,1 條音頻軌;
視頻軌中添加了 4 個視頻素材,總時間長度為 20 秒,音頻軌未設定時間資訊參數,但傳入的音頻素材 “your_audio.mp3” 時間長度為 15 秒;
指定音頻軌為主軌道。
{
"VideoTracks": [{
"VideoTrackClips": [{
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
"Out": 5
}, {
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
"Out": 5
}, {
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video3.mp4",
"Out": 5
}, {
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video4.mp4",
"Out": 5
}]
}],
"AudioTracks": [{
"MainTrack": true,
"AudioTrackClips": [{
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_audio.mp3"
}]
}]
}成片時間長度:通過此配置剪輯輸出的最終成片時間長度為 15 秒,與指定為主軌道的音頻軌時間長度相同。
您可以固定好音頻素材,僅通過替換不同的映像素材(視頻、圖片),同時不必考慮所使用素材的時間參數配置工作,來產生符合需求的不同成片。
二、設定 MaxDuration
2.1 背景
在當前的短視頻情境下,大部分的剪輯成片時間長度都會被設定為一個較短的固定值,比如 15 秒、20 秒。
痛點情境:現在您已經擁有了大量視頻、音頻素材等,計劃通過這些素材的混搭剪輯產生不同的成片;希望這批混剪產生的成片能夠具有統一的時間長度,但同樣也不希望在每個素材的時間長度參數配置上投入過多的工作。
解決方案:在上述的情境中,您可以通過 MaxDuration 參數指定成片的最大時間長度,在這次剪輯中,視頻軌、音頻軌、字幕軌與特效軌均會按照指定的 MaxDuration 值進行自適應設定:
如果素材時間長度超過 MaxDuration 值,則會自動截斷;
如果未指定全域圖片、橫幅字幕的展示時間長度資訊,那麼它們的展示時間長度也會自動被設定為 MaxDuration。
有益效果:
方便您快速產生具有固定時間長度的成片;
減輕您在配置 In、Out、TimelineIn 和 TimelineOut 等時間相關的時間軸參數上的工作量;
提升您在大批量剪輯時的剪輯效率。
2.2 介紹
在調用 SubmitMediaProducingJob 介面提交剪輯任務時,您可以通過在入參 OutputMediaConfig 中設定MaxDuration來限制成片的最大時間長度。
MaxDuraiton的具體邏輯為:
如果某一條參與剪輯的軌道的時間長度大於
MaxDuration的值,那麼這一條軌道將會按照設定的MaxDuration值進行截斷,也即成片時間長度不會大於MaxDuration;如果參與剪輯的所有軌道時間長度均小於
MaxDuration,那麼成片時間長度與不設定MaxDuration時相同。
如果同時設定了
MaxDuration與指定了主軌道,那麼MaxDuration會生效,主軌道會失效。
2.3 樣本
下面的樣本包含 OutputMediaConfig 樣本與時間軸 Timeline 樣本。
在 OutputMediaConfig 樣本中:
設定了
MaxDuration值為 15 秒。
{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_output.mp4",
"MaxDuration": 15
}在時間軸 Timeline 樣本中:
一共有 4 條軌道,其中 2 條視頻軌,1 條音頻軌和 1 條字幕軌;
第 1 條視頻軌中放了一個類型為全域圖片的 jpg 圖片素材;
第 2 條視頻軌中連續添加了 2 個視頻素材,並且沒有設定時間相關的資訊;
音頻軌中添加了一個音頻素材,並且沒有設定時間相關的資訊;
字幕軌中添加了一個橫幅文字,並且同樣沒有設定時間參數。
{
"VideoTracks": [{
"VideoTrackClips": [{
"Type": "GlobalImage",
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg"
}]
}, {
"VideoTrackClips": [{
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4"
}, {
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4"
}]
}],
"AudioTracks": [{
"AudioTrackClips": [{
"MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_audio.mp3"
}]
}],
"SubtitleTracks": [{
"SubtitleTrackClips": [{
"Type": "Text",
"Content": "我是橫幅文字",
"Alignment": "CenterCenter"
}]
}]
}成片時間長度:通過此配置剪輯輸出的最終成片時間長度為 15 秒,與MaxDuration設定的值相同。其中:
全域圖片展示時間長度被自動適配為 15 秒;
考慮到大部分情境下的實際素材(視頻素材、音頻素材)時間長度會大於 15 秒,在本用例的表現為,包含兩個視頻素材的視頻軌與包含一個音頻素材的音頻軌均被自動截取為 15 秒;
橫幅文字的展示時間長度被自動適配為 15 秒。
三、軌道自適應調速對齊主軌道
3.1 背景
痛點情境:當設定好主軌道後,其他軌道預設會按照主軌道時間長度進行截斷,但當軌道被截斷時,素材內容的完整性被破壞,從而導致成片視頻不可用,比如設定視頻為主軌道,口播音頻軌道時間長度較長被截斷,本來一句完整的話最後幾個字卻丟失了。另外一種情境是,設定口播音頻軌道為主軌道,視頻較長時自動截斷,但是當視頻內容不夠時,視頻內容的最後只有口播音頻,沒有視頻內容,視頻整體效果也比較差。
解決方案:在上述情境中,在指定主軌道的同時,對其他軌道配置軌道時間長度自適應策略,支援在當前軌道超過主軌道時間長度時,自動加速視頻,縮短軌道時間長度,同時支援在當前軌道短於主軌道時間長度時,自動減速視頻,擴充軌道內容。
有益效果:
不需要嚴格保證視頻內容和口播文案時間長度嚴格一致,在兩者時間長度不一致時,也能保證視頻內容的完整性;
當某些軌道內容不夠時,通過慢速可以重試素材內容,保證視頻效果不會有黑屏這種突兀的效果問題。
3.2 介紹
您可以通過在時間軸 Timeline中對音視頻軌道設定TrackShortenMode和TrackExpandMode來分別配置當前軌道長於主軌道時間長度時的軌道縮短策略和當前軌道短於主軌道時間長度時的軌道擴充策略。目前這兩種模式均只支援AutoSpeed,通過自動調速的方式來做軌道對齊。
說明:
軌道自適應調速對齊目前不支援和軌道間素材對齊同時使用,因為調速本身會破壞素材對齊的精準度;
軌道自適應調速對齊在音頻軌道素材迴圈播放時不生效,因為迴圈播放本身會自動迴圈補齊整個軌道時間長度。
3.3 樣本
樣本一:視頻為主軌道,音頻對齊視頻內容,當音頻口播時間長度較長時,自動加速,正好在視頻播放完成時讀完口播文案。
{
"VideoTracks": [{
"MainTrack": true,
"VideoTrackClips": [{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
"In": 0,
"Out": 10
}, {
"Type": "Image",
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg",
"Duration": 4
}, {
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
"In": 0,
"Out": 5
}]
}],
"AudioTracks": [{
"TrackShortenMode": "AutoSpeed",
"AudioTrackClips": [{
"Content": "回龍觀盒馬鮮生開業啦,盒馬鮮生開業啦,附近的商場新開了一家盒馬鮮生,今天是第一天開業,商場裡的人不少,零食、酒水都比較便宜大家也快來看看呀",
"Type": "AI_TTS",
"Voice": "zhiqing",
"Effects": [{
"Type": "Volume",
"Gain": 1
}, {
"FontSize": 34,
"Y": 0.658,
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Type": "AI_ASR",
"Font": "FZHei-B01S"
}]
}]
}]
}樣本二:音頻為主軌道,視頻對齊音頻內容,當視頻時間長度較長時,自動加速,視頻時間長度較短時,自動減速,讓口播播放完時,視頻正好展示完成。
{
"VideoTracks": [{
"TrackExpandMode": "AutoSpeed",
"TrackShortenMode": "AutoSpeed",
"VideoTrackClips": [{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
"In": 0,
"Out": 10
},
{
"Type": "Image",
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg",
"Duration": 4
},
{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
"In": 0,
"Out": 5
}
]
}],
"AudioTracks": [{
"MainTrack": true,
"AudioTrackClips": [{
"Content": "回龍觀盒馬鮮生開業啦,盒馬鮮生開業啦,附近的商場新開了一家盒馬鮮生,今天是第一天開業,商場裡的人不少,零食、酒水都比較便宜大家也快來看看呀",
"Type": "AI_TTS",
"Voice": "zhiqing",
"Effects": [{
"Type": "Volume",
"Gain": 1
},
{
"FontSize": 34,
"Y": 0.658,
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Type": "AI_ASR",
"Font": "FZHei-B01S"
}
]
}]
}]
}