本文檔介紹了在普通剪輯場景下,可以通過哪些方式來對成片的時長進行控制。
一、設置主軌道
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"
}
]
}]
}]
}