进度条卡在99%是因后处理阶段(如音频对齐、唇动插值、crc校验、ufs写入同步)不暴露进度但耗时长;可通过network面板查pending请求、日志搜postprocess等关键词确认;可关闭output_validation或提取/tmp下.tmp文件抢救视频;预设操作包括降音频采样率、禁用动态分辨率缩放、延长硬编码超时至420秒。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

百度一镜数字人生成视频时进度条卡在99%,不是网络断了也不是服务器崩了,而是任务已进入不可见的后处理阶段——比如音频对齐重采样、唇动帧插值校验、输出文件CRC校验或写入UFS存储的强制同步,这些操作不对外暴露进度,但耗时可能远超前端显示的99%所暗示的时间。
确认是否真卡死
打开浏览器开发者工具(F12)→ 切换到 Network 标签页 → 点击刷新 → 观察是否有 pending 状态的请求。若存在 /api/generate/status 或 /task/poll 类似接口持续返回 {“status”: “processing”, “progress”: 99} 且时间戳不再更新,说明后端确实在执行长耗时任务;若该接口已超时或直接失败,则是服务中断,需重启。
检查服务器端日志:执行 tail -f /root/workspace/运行实时日志.log,查找包含 “postprocess”、“sync_to_disk”、“ffmpeg_mux” 的行。若连续30秒无新日志输出,且最后一行停在 “Starting VAE decode…” 或 “Writing final mp4…”,即为典型卡点。
强制跳过校验环节(适用于非关键素材)
方法一:修改配置绕过完整性校验
编辑 /root/workspace/config.yaml,找到 【output_validation: true】 这一行,将其改为 output_validation: false。保存后执行 bash restart_app.sh(非 start_app.sh)重启服务。
注意:关闭校验后生成的视频可能在极少数情况下出现首帧花屏或末尾静音,但不影响主体内容播放。
方法二:手动终止挂起进程并提取临时文件
当进度卡住超过5分钟,且日志明确显示 “Writing to /tmp/output_XXXX.mp4.tmp”,立刻执行:
find /tmp -name "output_*.mp4.tmp" -mmin -10 -exec ls -lh {} \; → 找到最新临时文件 → cp /tmp/output_XXXX.mp4.tmp /root/workspace/outputs/final_fix.mp4 → chmod 644 /root/workspace/outputs/final_fix.mp4。
这一步能抢救出99%已完成的视频,临时文件本身已是完整MP4结构,仅缺末尾moov box索引——多数播放器可直接打开,VLC或PotPlayer兼容性最佳。
规避99%卡顿的预设操作
第一步:上传前压缩音频轨采样率
使用 ffmpeg 将原始音频统一转为 44.1kHz 单声道:ffmpeg -i input.wav -ar 44100 -ac 1 -c:a libmp3lame -q:a 2 output.mp3。高采样率(如96kHz)或多声道音频会显著拖慢唇形驱动模块的预处理速度,这是卡在99%最常被忽略的源头。
第二步:禁用动态分辨率缩放
在WebUI界面右上角齿轮图标中,关闭 “Auto-resize for performance” 开关。该功能会在渲染中途触发二次重采样,而重采样线程与主合成线程共享同一GPU Context,极易因显存碎片导致阻塞——尤其在RTX 4090等大显存卡上更隐蔽。
第三步:设置硬编码超时阈值
编辑 /root/workspace/webui/app.py,定位到第327行附近,将 timeout=180 改为 timeout=420。原值180秒是为防止长时间假死占用资源,但实际高清数字人视频后处理常需3~6分钟,强行中断会导致进度回滚至99%并重试三次后彻底失败。











