d8c3a27821
- 离线渲染.py: pan上混5.1 → sofalizer(H4 SOFA) → 房间IR(afir) → loudnorm → 96k FLAC
视频自动取音轨; 已是5.1的片源不重上混; 实测约 4.4 倍速
两道锁: (1)渲染锁 —— 一轮任务期间拒绝新任务, 不排队堆积
(2)文件就绪检查 —— 相隔1.2s两次stat大小/时间不变且ffprobe能读, 未落盘的跳过
三个入口: 命令行 / 面板「离线渲染」区(拖拽或贴路径, 实时进度+日志+取消) / 右键「打开方式」
- 音频守护.py + config/组件配置单.json: 30s 核对 DSP进程数与槽位新鲜度/链输出连线/
默认设备/虚拟声卡优先级/中间级音量/节点份数/面板/物理设备静音, 扫到就修
(能温和就温和, 链路级才重建), 同类问题 90s 冷却, 连续 3 次修不好转只报警
- 组件配置单.md: 链路拓扑 + 组件表 + 六个必须 + 自愈表
- 面板: 控制滑块从图表卡片独立成「控制」卡片; 数字/模拟输出音量条拉长到各占一半
(合计 = 虚拟声卡开关卡片总高); 新增离线渲染区
- 修: DSP 孤儿抢共享槽位导致重建后无声(claim_slot 抢不到槽位即退出 + 重建前收旧 DSP)
- 修: 打包会把正在用的 PipeWire 配置移开(prune_duplicate_confs 只在自己写到生效目录时清理)
- 修: 离线渲染的 SOFA/混响IR 改为多路径探测(开发目录与 deb 包内布局不同)
- .gitignore: 保留 reverb/ 房间IR(离线渲染要卷积的素材)
37 lines
1.4 KiB
Bash
Executable File
37 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# 右键「打开方式 → Collaplex 离线渲染」的入口: 把文件交给离线渲染, 终端里跑(看得到进度)。
|
|
#
|
|
# ★ 为什么要这个 wrapper: .desktop 的 Exec 里不能直接塞 %F(路径有空格会断),
|
|
# 也不能在 bash -c 的字符串里写 %F(不会被展开) —— 必须用 `"$@"` 接收启动器展开的参数。
|
|
# 开发目录跑时按脚本自己所在目录(项目根); 装了 deb 后脚本在 /usr/bin、数据在
|
|
# /usr/share/cinema-spatial —— 两种布局都要认, 否则右键入口在装完后会找不到脚本。
|
|
if [ -n "${COLLAPLEX_ROOT:-}" ] && [ -d "$COLLAPLEX_ROOT" ]; then
|
|
cd "$COLLAPLEX_ROOT" || exit 1
|
|
else
|
|
cd "$(dirname "$(readlink -f "$0")")" || exit 1
|
|
if [ ! -f "./离线渲染.py" ]; then
|
|
cd /usr/share/cinema-spatial 2>/dev/null || exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
echo "用法: 右键音频/视频 → 打开方式 → Collaplex 离线渲染"
|
|
echo " (或者把多个文件一起选中再打开)"
|
|
echo
|
|
echo "命令行用法见: python3 离线渲染.py --help"
|
|
read -r -p "回车关闭…"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Collaplex 离线渲染 —— 空间音频 FLAC (96 kHz 双耳)"
|
|
echo "待处理 $# 个文件"
|
|
echo
|
|
python3 离线渲染.py "$@"
|
|
rc=$?
|
|
echo
|
|
if [ "$rc" -eq 2 ]; then
|
|
echo "(退出码 2 = 已有渲染任务在跑, 本次没接 —— 等它跑完再来)"
|
|
fi
|
|
read -r -p "回车关闭…"
|
|
exit "$rc"
|