本文将介绍在脚本化自动成片过程中遇到的常见问题。
<脚本化自动成片处理逻辑>相关问题
全局口播模式的处理逻辑是什么?
如果输入视频为长视频片段,会先进行拆条,混剪时选取拆条后的视频片段进行拼接合成。拆条后单镜头的时长=SingleShotDuration
如果有输入全局口播文案,在数量足够的前提下,尽量不重复选取。例如:输入3条文案,需要生成5条视频,则5条成片中会出现相同文案,但3条文案都会被使用至少一次。
按照分组顺序,先每组随机挑选一个拆条后的视频片段,进行前后拼接。如果输入了全局口播文案且视频总时长少于口播时长,则优先从非首尾分组中随机选取视频片段,直到视频总时长与口播时长相当。
成片时长规则:
输入了全局口播文案:成片时长=口播文案的时长。
没有输入全局口播文案:
如果设置了FixedDuration参数,成片时长=FixedDuration的值”。
如果设置了MaxDuration参数,成片时长=SingleShotDuration的值×分组的数量(即SpeechTextArray的长度),但时长不得超过MaxDuration的值。
分组口播模式的处理逻辑是什么?
和「全局口播模式」相同,会先对长视频进行拆条。相比于全局口播模式,分组口播模式的口播文案在MediaGroup中进行分组设置。因此,MediaGroup新增了SpeechTextArray字段。采用分组口播模式时,无需设置InputConfig.SpeechText或SpeechTextArray,若进行设置将导致错误。
如果MediaGroup.SpeechTextArray 为空,说明这个素材组无口播,用MediaGroup.Duration控制该组时长,默认5s。
如果想控制某一个MediaGroup中的素材音量,可以设置MediaGroup.Volume,MediaGroup.Volume的优先级高于EditingConfig.MediaConfig.Volume
每组支持传入多组口播,如果所有组的口播数量一致(除去无口播组),则默认按顺序组合。比如所有组都选用第N个口播片段。如果每组的口播数量不一致,则每组随机选一个口播片段,最后合并成完整口播。
<脚本化自动成片效果优化与提升>相关问题
如何解决成片画面切换过于生硬、频率过快的问题?
可以借助智能标签作业中的智能分镜分析能力,自动完成素材的AI分镜拆条工作,以解决成片画面切换生硬及频率过快的问题。请注意,以下讲解步骤仅针对单个视频素材进行智能分镜分析的流程,若需对多个视频素材进行智能分镜分析,请重复执行以下步骤即可。
针对某个视频素材,调用SubmitSmarttagJob - 提交智能标签作业,注意此场景下,TemplateId需要传固定值: “S00000103-000003”。
通过调用QuerySmarttagJob - 智能标签任务查询接口查询到分镜分析的结果,即接口返回参数中,type=ClipSplit所对应的data参数,其内容示例如下。其中,StartTime表示分镜的开始时间,单位为秒;EndTime表示分镜的结束时间,单位也为秒。
[ { "EndTime": 5.4, "ClipType": "opening", "StartTime": 0.0 }, { "EndTime": 9.16, "ClipType": "opening", "StartTime": 5.4 }, { "EndTime": 12.88, "ClipType": "opening", "StartTime": 9.16 }, { "EndTime": 16.0, "ClipType": "opening", "StartTime": 12.88 } ]
将步骤2中的分镜信息和脚本化自动成片中的素材一一对应,并传入脚本化自动成片EditingConfig.MediaConfig.MediaMetaDataArray.TimeRangeList参数中,例如
{ "MediaConfig": { "MediaMetaDataArray": [ { "Media": "https://******.****.****/public-template/video/movie_apsara_4.mp4", "GroupName": "opening", "TimeRangeList": [ { "In": 0, "Out": 5.4 }, { "In": 5.4, "Out": 9.16 }, { "In": 9.16, "Out": 12.88 }, { "In": 12.88, "Out": 16.0 } ] } ] } }
将步骤3中对应的MediaGroup的MediaGroup.SplitMode参数设置为“NoSplit”,如此一来,不仅不会对传入的片段进行二次切分,从而确保画面的完整性,还能够有效避免画面切换过于生硬及频率过快的问题。
如何解决画面切换速度过快或过慢以及配置镜头时长的问题?
通过ImageDuration来控制图片在成片中的显示时长;
通过设置SingleShotDuration参数控制视频素材拆条后的分镜时长;
如何计算图片类素材在成片中的显示时长?
在一个分组中,如果同时包含图片和视频类素材,则有一定几率会选取到图片,此时图片将占满整个成片。因此,可以通过以下几种方式来控制图片的显示时长:
如果设置了ImageDuration,则图片在成片中的显示时长便以此为准;
如果没有设置口播和FixedDuration ,则图片显示时长为2秒;
如果有口播,则图片时长 = 口播tts时长 / MediaGroupArray数组长度;
如果设置了FixedDuration 但没有设置口播,则图片时长 = FixedDuration / MediaGroupArray数组长度;
如何确保视频素材在成片中能够被完整播完?
在一个分组中,如果您希望视频素材在成片中能够被完整播完,建议将MediaGroup.SplitMode设置成NoSplit,并且MediaGroup.Duration设置为与素材相同的时长。假设某个素材时长20秒,想完整放完此素材,那么MediaGroup.SplitMode设置成NoSplit,MediaGroup.Duration设置成20秒。
不过需要注意的是:如果“在一个分组中被选用的素材时长”小于“MediaGroup.Duration”,那么该随机素材会根据MediaGroup.Duration进行倍速缩放。例如:MediaGroup.Duration=10秒,而此时从分组中随机选取了一个20秒长的视频,那么这个视频会按照2倍(20/10)速度进行播放。
实现原声视频片段与解说交替播放的具体方法是什么?
如果您希望在某些时段播放原声视频,而在其他时段进行静音并配以口播解说,可以通过MediaGroup.Volume控制分组中的素材音量,一般来说是设置成原始音量,即将值设置为1。
举例,假设有三个分组,分别为MediaGroup1、MediaGroup2、MediaGroup3。如果您希望MediaGroup1正常口播,MediaGroup2没有口播仅播放原声音视频,MediaGroup3正常口播,那么可以将MediaGroupArray设置成如下
[{
"GroupName": "MediaGroup1",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/160134%2B9859695-2032aa5c-2803-47cd-bf65-8a40d66598db.png", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/0-test-batch-editing-materials/cloud.mp4"],
"SpeechTextArray": ["附近的商场新开了一家盒马鲜生,今天是第一天开业", "今天是这家盒马鲜生第一天开业", "<speak>战火<phoneme alphabet=\"py\" ph=\"zheng4 hao3\">正酣</phoneme>。今天,我们的主角,乒坛传奇马龙,正向着荣耀的巅峰发起冲击。1/4决赛中面对实力强劲的户上隼辅,马龙毫不畏惧,每一个回合都全力以赴。他精准的球路和冷静的判断,让他在这场比赛中占据了上风。最终,马龙成功战胜对手,晋级四强。</speak>"]
},
{
"GroupName": "MediaGroup2",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/normal%20video.mp4", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/0-test-batch-editing-materials/3.jpeg"],
"Duration": 5,
"SplitMode": "NoSplit",
"Volume": 1
},
{
"GroupName": "MediaGroup3",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/young_sunset_walk.mp4"],
"SpeechTextArray": ["快来看看吧", "快点来看看吧"]
}]
- 本页导读 (1)
- <脚本化自动成片处理逻辑>相关问题
- 全局口播模式的处理逻辑是什么?
- 分组口播模式的处理逻辑是什么?
- <脚本化自动成片效果优化与提升>相关问题
- 如何解决成片画面切换过于生硬、频率过快的问题?
- 如何解决画面切换速度过快或过慢以及配置镜头时长的问题?
- 如何计算图片类素材在成片中的显示时长?
- 如何确保视频素材在成片中能够被完整播完?
- 实现原声视频片段与解说交替播放的具体方法是什么?