feat(capcut): 合并同类型轨道并优化音频/字幕边界裁剪
在同步到本地剪映后新增轨道合并功能,将因降级添加导致的多条同类型轨道合并为单条。同时修复音频和字幕添加时可能跨场景重叠的问题,将 end 裁剪到 slot 边界。
This commit is contained in:
@@ -25,6 +25,7 @@ const {
|
||||
addImages, addVideos, addSlotsLocally,
|
||||
addVoiceover, addBGM,
|
||||
addSubtitles,
|
||||
consolidateTracks,
|
||||
addEffects, addFilter,
|
||||
} = require('./lib/capcut-tracks')
|
||||
const { saveManifest } = require('./lib/pipeline-utils')
|
||||
@@ -229,7 +230,7 @@ async function assemble(args) {
|
||||
|
||||
const steps = []
|
||||
if (mode === 'images') steps.push('upload')
|
||||
steps.push('draft', 'materials', 'kenburns', 'audio_oss', 'voiceover', 'audio', 'subtitles', 'effects', 'filter', 'save', 'sync')
|
||||
steps.push('draft', 'materials', 'kenburns', 'audio_oss', 'voiceover', 'audio', 'subtitles', 'effects', 'filter', 'save', 'sync', 'consolidate')
|
||||
const totalSteps = steps.length
|
||||
let step = 0
|
||||
|
||||
@@ -407,6 +408,10 @@ async function assemble(args) {
|
||||
await syncToLocalJianying(draftUrl, draftId, totalDurationUs)
|
||||
console.log(' 同步完成\n')
|
||||
|
||||
// -- 合并同类型轨道(TTS 逐条降级时每条独占一个轨道)--
|
||||
step++; console.log(`[${step}/${totalSteps}] 合并同类型轨道...`)
|
||||
consolidateTracks(draftId)
|
||||
|
||||
// -- 视频轨道 slot 写入(在 syncToLocalJianying 之后执行,此时本地草稿文件已存在)--
|
||||
if (mode !== 'images') {
|
||||
step++; console.log(`[${step}/${totalSteps}] 写入视频轨道时间线...`)
|
||||
|
||||
Reference in New Issue
Block a user