设置主轨道,其他轨道与主轨道时长自动对齐
本文档介绍了在普通剪辑场景下,可以通过哪些方式来对成片的时长进行控制。
一、设置主轨道
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"
}
]
}]
}]
}