77 lines
2.8 KiB
Bash
77 lines
2.8 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# 把电影院空间音频全链打包成 deb (2026-09-12)
|
||
|
|
# 包名 collaplex-cinema-spatial, Arch: all (纯脚本+数据, 无编译)
|
||
|
|
set -eu
|
||
|
|
SRC="/home/lou/桌面/工作区/实验/空间音频"
|
||
|
|
PKG="collaplex-cinema-spatial"
|
||
|
|
VER="1.0.0"
|
||
|
|
BUILD="/tmp/${PKG}-deb"
|
||
|
|
ROOT="/usr/share/cinema-spatial"
|
||
|
|
SOFA_SRC="$SRC/sofa/H4_HRIR_SOFA/H4_HRIR_SOFA/H4_96K_24bit_512tap_FIR_SOFA.sofa"
|
||
|
|
|
||
|
|
echo "=== 1. 准备目录 ==="
|
||
|
|
rm -rf "$BUILD"
|
||
|
|
mkdir -p "$BUILD/DEBIAN" "$BUILD/usr/bin" \
|
||
|
|
"$BUILD${ROOT}/hrir" "$BUILD${ROOT}/sofa" \
|
||
|
|
"$BUILD/usr/share/pipewire/pipewire.conf.d"
|
||
|
|
|
||
|
|
echo "=== 2. 两个命令 ==="
|
||
|
|
cp "$HOME/.local/bin/空间音频" "$BUILD/usr/bin/空间音频"
|
||
|
|
cp "$HOME/.local/bin/mpv-影院" "$BUILD/usr/bin/mpv-影院"
|
||
|
|
chmod 755 "$BUILD/usr/bin/空间音频" "$BUILD/usr/bin/mpv-影院"
|
||
|
|
|
||
|
|
echo "=== 3. HRTF 数据 (12 个 IR + SOFA) ==="
|
||
|
|
cp "$SRC/hrir/H4-96k/"*.wav "$BUILD${ROOT}/hrir/"
|
||
|
|
cp "$SOFA_SRC" "$BUILD${ROOT}/sofa/"
|
||
|
|
|
||
|
|
echo "=== 4. 项目脚本与文档 ==="
|
||
|
|
cp "$SRC/生成配置.py" "$SRC/换HRTF.sh" "$SRC/README.md" "$BUILD${ROOT}/"
|
||
|
|
chmod 755 "$BUILD${ROOT}/换HRTF.sh"
|
||
|
|
|
||
|
|
echo "=== 5. PipeWire 配置 (用安装路径生成) ==="
|
||
|
|
CINEMA_SPATIAL_IR="${ROOT}/hrir" \
|
||
|
|
CINEMA_SPATIAL_OUT="$BUILD/usr/share/pipewire/pipewire.conf.d/90-cinema-spatial.conf" \
|
||
|
|
python3 "$SRC/生成配置.py"
|
||
|
|
cp "$HOME/.config/pipewire/pipewire.conf.d/91-clock.conf" \
|
||
|
|
"$BUILD/usr/share/pipewire/pipewire.conf.d/"
|
||
|
|
|
||
|
|
echo "=== 6. control ==="
|
||
|
|
cat > "$BUILD/DEBIAN/control" <<'EOF'
|
||
|
|
Source: collaplex-cinema-spatial
|
||
|
|
Package: collaplex-cinema-spatial
|
||
|
|
Section: sound
|
||
|
|
Priority: optional
|
||
|
|
Architecture: all
|
||
|
|
Version: 1.0.0
|
||
|
|
Maintainer: edgevoid <edgevoid@users.noreply.github.com>
|
||
|
|
Depends: pipewire, libmysofa1, mpv
|
||
|
|
Description: Cinema spatial audio for headphones (HRTF virtual surround)
|
||
|
|
Renders audio into binaural using a SADIE-II human HRTF through a PipeWire
|
||
|
|
filter-chain virtual sink, so ordinary headphones give a cinema-like
|
||
|
|
sense of direction and space.
|
||
|
|
.
|
||
|
|
Provides two virtual sinks (5.1 passthrough and stereo-upmixed) plus the
|
||
|
|
space-audio and mpv-cinema commands.
|
||
|
|
EOF
|
||
|
|
|
||
|
|
echo "=== 7. 打包 ==="
|
||
|
|
cat > "$BUILD/DEBIAN/postinst" <<'EOF'
|
||
|
|
#!/bin/sh
|
||
|
|
set -e
|
||
|
|
if [ "$1" = "configure" ]; then
|
||
|
|
echo "collaplex-cinema-spatial 已安装。"
|
||
|
|
echo " 命令: 空间音频 开|开5.1|关|状态 mpv-影院 电影.mkv"
|
||
|
|
echo " 虚拟声卡定义: /usr/share/pipewire/pipewire.conf.d/"
|
||
|
|
echo " 生效: systemctl --user restart pipewire pipewire-pulse wireplumber"
|
||
|
|
fi
|
||
|
|
EOF
|
||
|
|
chmod 755 "$BUILD/DEBIAN/postinst"
|
||
|
|
dpkg-deb -b --root-owner-group "$BUILD" "$HOME/桌面/${PKG}_${VER}_all.deb"
|
||
|
|
echo
|
||
|
|
echo "=== 结果 ==="
|
||
|
|
ls -lh "$HOME/桌面/${PKG}_${VER}_all.deb"
|
||
|
|
echo
|
||
|
|
dn=$(dpkg-deb -c "$HOME/桌面/${PKG}_${VER}_all.deb" | wc -l)
|
||
|
|
echo "包内文件数: $dn"
|
||
|
|
dpkg-deb -c "$HOME/桌面/${PKG}_${VER}_all.deb" | awk '{print $6}' | head -30
|