Files

26 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
# 电影院空间音频: 把多声道音轨(5.1/7.1)用 HRTF 渲染成双耳, 耳机上得到环绕包围感。
#
# 原理: 影片的 5.1/7.1 音轨 -> 每个声道按它所在方向, 与人头模型的脉冲响应卷积
# -> 混成两耳。声音就会"从左边/后面/远处来", 不再挤在头中间。
#
# 用法: mpv-影院 电影.mkv
# mpv-影院 --no-video 电影.mkv (只听声)
#
# 注意: 只适合多声道片源(5.1/7.1)。立体声片源别用 —— HRTF 会把左右两声各自
# 推远, 听起来更空但不会变环绕, 反而变差。
#
# 参数说明:
# radius=1.2 声源距离(米), 1.2 更像影厅
# gain=-16 整链增益校准值。★别随手改大★
# 上混及多路叠加会让整链净增益约 +10.5dB, 必须拿"接近满刻度"的
# 素材实测才能定; 给大了直接削波爆音(实测教训)。
# type=time 时域卷积(保真)。默认的 freq 走 FFT, 会削高频。
# ★ 采样率: sofalizer 按 SOFA 文件自身的采样率输出, 不在链尾拉回来整个音频链
# 会掉到 44.1k。所以要 aresample 回 96k 并让 ao 也请求 96k。
SPATIAL_ROOT="${CINEMA_SPATIAL_ROOT:-/usr/share/cinema-spatial}"
exec mpv \
--audio-samplerate=96000 \
--af="sofalizer=sofa=${SPATIAL_ROOT}/sofa/H4_96K_24bit_512tap_FIR_SOFA.sofa:type=time:radius=1.2:gain=-16,aresample=96000" \
"$@"