用途:视频解说的最终合成阶段。将各段旁白音频放到视频时间线上,在旁白窗口压低原声、间隙恢复原声,生成字幕并可选烧录,最后做响度标准化,输出 recap 成片与字幕。
主要能力:按轨道混合原声、可选 BGM 与旁白;段落放置遵循留白与 pause_after_ms 规则,不做容差裁尾,放不下即 no_safe_fit;原声在旁白结束后最多再压低 3 秒等待句末锚点;生成 subtitles.srt,默认同时生成并烧录 subtitles.ass(--no-burn-subtitles 关闭);可选两遍 loudnorm 响度标准化,仅用恒定增益,必要时经 4 倍过采样真峰值限幅器;成片不带原片容器元数据;可经 --export-jianying 导出剪映草稿。
用法:素材含源视频(cut 模式为 edited_source.mp4)与 work_dir/tts_meta.json。运行 python3 scripts/assemble.py <video> --work-dir <work_dir>,可选 --audio-mode narration|source-mix|adopted-packet-copy、--audio-stream-index、--tts-meta、--narration-adoption、--audio-mix-adoption、--recap-stem、--output-dir、--no-burn-subtitles、--subtitle-y-top/--subtitle-y-bot、--source-video、--export-jianying。样式与混音可由 SUBTITLE_FONT_SIZE、SUBTITLE_MARGIN_V、SUBTITLE_MAX_CHARS、DUCK_FADE_SECONDS、BGM_PATH、BGM_VOLUME、TARGET_LUFS、LOUDNESS_LIMITER_MAX_DB 等控制。
输出:recap_<stem>.mp4、work_dir/output.mp4、subtitles.srt、timeline.json、placed*.wav、narration_input_binding.json、audio_mix_binding.json、assembly_manifest.json、assembly_qc.json,以及可选的剪映草稿。
限制:不生成旁白文字、不合成 TTS、不重新转写视频;烧录依赖带 subtitles/libass 的 ffmpeg,drawtext 缺失会失败;已采用配音的 v1 合同只支持原速;剪映导出只接受 schema_version 2 且拒绝变速、转场等扩展字段;剪映草稿引用未烧录源视频,硬字幕仍保留。视觉包框等细节及字体、收费与平台支持资料未完整提供。