fix(1978): MuseTalk 封装强制替换为 TTS 驱动音轨 + 音频长于视频时循环画面 #1997
Reference in New Issue
Block a user
Delete Branch "fix/1978-musetalk-audio-mux-loop"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
严重 bug
结果视频保留了源视频音轨(波形比对与原轨相关系数 0.9998、与 TTS 无关),数字人口型配的是原声。根因:最终 ffmpeg 封装未写 -map,默认流选择把第一个输入自带音轨带进结果。
修复(deploy/gpu_worker/musetalk_server.py)
_mux_video_with_audio(),强制-map 0:v:0 -map 1:a:0——画面只取 MuseTalk 无声产物,音轨只取驱动音频(AAC 128k)_get_media_duration();音频不超过视频(容差 0.25s)时-c:v copy -shortest秒封装;音频长于视频时-stream_loop -1循环画面 +h264_nvenc硬件重编码 +-t <音频时长>,不截短语音MUSE_VIDEO_ENCODER=auto(默认)探测 NVENC,不可用/编码失败自动回退 libx264(veryfast);preset 随编码器选择(nvenc p4 / x264 veryfast)MUSE_ENABLE_VIDEO_LOOP(默认 1),请求 form 支持enable_video_loop单任务覆盖_mux_video_with_audio即可部署(RTX2060 必做)
README 新增 2.2 节:wget 重新拉取 develop 的 musetalk_server.py → systemctl restart musetalk-server → curl /health。
测试(10 新用例,46 个 GPU worker 相关全绿)
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1997 已关闭或合并,对应的预览环境已被清理。