跳转至

翻译说明

中文文档是持续维护中的翻译版本,可能会略滞后于英文文档;如有技术差异,以英文版为准。

Windows LAV / PotPlayer

OpenJOC 提供一个可选的 Windows DirectShow 下游 LAV Audio Decoder。它有独立的筛选器标识,可以和原有的 LAV 并存安装;安装包不会自动改动 PotPlayer 的设置。

下面记录的是 v0.12 及以后 Windows 集成中验证过的安装包行为;本站的发布基线是 v0.20.1。

默认音频包继续保留原来的一键 install.bat / uninstall.bat 体验。维护者可显式构建独立的 full 完整包,包含 Audio、Video、Splitter 和 QuickSync。只有用户主动执行其手动注册入口时,才会更改标准 Video/Splitter 注册;详见完整包安装与回退。下载和解压不会执行注册。

安装并验证

  1. 从 OpenJOC 发行版页面下载 Windows LAV 安装包。
  2. 将完整 ZIP 解压到自己有写权限的目录。
  3. 双击 install.bat,接受 Windows 管理员权限提示。
  4. 双击 verify.bat,确认结果为 PASS。
  5. 如果安装时 PotPlayer 正在运行,请关闭后重新打开。

安装包会放入隔离的 OpenJOC 版本目录,只注册 OpenJOC 自有的 DirectShow 筛选器。它不会替换原有的 LAV,不会修改 PATH,也不会改变 PowerShell 执行策略。

LAV Splitter 是独立组件

OpenJOC 安装包只更新 LAV Audio Decoder (OpenJOC),不会更新 LAV Splitter / LAV Splitter Source 或 LAV Video。verify.bat 显示 PASS 不代表实际使用的分离器已通过检查。请分别检查 PotPlayer 实际加载的分离器与音频解码器的版本和文件路径。即使音频解码器已经更新, 旧分离器仍可能误判 MP4/MOV 中的 PCM,产生刺耳噪声。详见 PCM 噪声排查。

在 PotPlayer 中选择筛选器

  1. 按 F5 打开 PotPlayer 设置。
  2. 选择 Filter Control → Filter Priority (Overall)。
  3. 选择 Add registered filter。
  4. 添加 LAV Audio Decoder (OpenJOC)。
  5. 将它设为 Prefer,然后点击 Apply 和 OK。

请保留原有的 LAV 解码器。如果列表中没有 OpenJOC 筛选器,先运行 verify.bat;只有验证报告失败时才需要重新安装。

只更新 LAV Splitter

请从 LAV Filters 官方发行版页面 下载当前的官方 x64 ZIP。0.83 已解决故障排除 中确认的旧分离器 PCM 问题;这是该案例中验证有效的推荐版本,不是所有文件的最低版本要求。

  1. 停止播放,将输出静音或调低音量,再关闭 PotPlayer,然后才修改文件或注册项。 记录旧分离器的版本和路径,并保留其完整安装包,以便回滚。
  2. 将整个官方 x64 ZIP 解压到新的长期保留目录,与 OpenJOC 安装目录和旧版 LAV 目录分开。保留包内全部 DLL 和 manifest 文件,不要只复制 LAVSplitter.ax, 不要混用不同版本的 DLL,也不要把原版 LAV 覆盖解压到 OpenJOC 音频运行时目录。
  3. 以管理员身份打开原生 64 位命令提示符,只注册新的 LAVSplitter.ax。 下面的 C:\Filters\LAVFilters-x64 是示例路径,请替换为实际解压目录:

    "%SystemRoot%\System32\regsvr32.exe" "C:\Filters\LAVFilters-x64\LAVSplitter.ax"
    

    确认注册成功。在 64 位 Windows 上,System32 中是原生 64 位工具, 不要使用 SysWOW64 中的 32 位工具。此操作会更新系统的 LAV Splitter 注册, 也可能影响其他 DirectShow 播放器,但不会注册原版音频或视频解码器; 此次只更新分离器,不要运行音频或视频解码器的安装脚本。 另见上游安装说明。 4. 保持 LAV Audio Decoder (OpenJOC) 为 Prefer。如果 PotPlayer 中手动添加的 外部分离器仍指向旧文件,请把该条目改为新的 LAVSplitter.ax;系统注册更新 不一定会覆盖播放器中手动指定的路径。 5. 保持静音,重新打开有问题的文件。在当前筛选器列表中确认 LAV Splitter / LAV Splitter Source 实际使用了新版本和新路径,并按照 故障排除核对 LAV Audio 的 **Input(输入)**格式与源 PCM 一致。之后才以低音量短暂试听;仍有噪声就立即停止。

要回滚这次仅分离器的更新,请关闭 PotPlayer,重新注册旧版完整安装包中的 LAVSplitter.ax,并恢复 PotPlayer 手动指定的分离器路径。每个版本继续使用自己的 配套依赖,保留 OpenJOC 音频安装包及其优先级。回滚到受影响的旧分离器不会解决 该 PCM 兼容性问题。

路由行为

  • 普通 E-AC-3 仍走原有的 LAV/FFmpeg 路径。
  • 压缩 E-AC-3 直通的优先级更高,会绕过 OpenJOC。
  • 只有得到正向确认的 JOC,才会交给 OpenJOC 筛选器。
  • 已确认的 JOC 可以从 raw E-AC-3 和 MP4 E-AC-3 输入解码。

Windows 适配器只提供以下八种固定的 48 kHz IEEE-float PCM 输出策略:

策略 声道数 WAVEFORMATEXTENSIBLE mask
Stereo (Speakers) 2 0x00000003
Binaural (Headphones) 2 0x00000003
5.1 6 0x0000060f
7.1 8 0x0000063f
5.1.2 8 0x0000560f
5.1.4 10 0x0002d60f
7.1.2 10 0x0000563f
7.1.4 12 0x0002d63f

每种策略只提出一种明确的语义方案,不提供备用声道掩码。Stereo 是默认值,其他布局必须显式选择。当前自动发现下游布局的状态为 AUTO_NOT_RELIABLE。

OpenJOC 设置

打开筛选器属性页并选择 OpenJOC 标签页。OpenJOC output 包含上表同样的八种固定输出策略;把这个控件移到独立标签页,不会改变布局、声道顺序、媒体类型或 Stereo 默认行为。

OpenJOC 输出选择的是 OpenJOC 渲染并发送给下游音频渲染器/设备的 PCM 扬声器布局。请选择下游端点实际支持的布局。Stereo (Speakers) 是不使用 HRTF 的传统双扬声器输出;Binaural (Headphones) 会把虚拟扬声器场经 HRTF 渲染为双声道耳机 PCM。选择不受支持的多声道布局可能导致播放失败、卡顿或下游转换。

选择 Binaural 后,OpenJOC 页面还提供 HRTF 来源设置。默认值为 Built-in SADIE II D1 (Default)。内置选择器也提供 SADIE II D2 / KEMAR,D1 仍是默认值。Custom SOFA... 会打开标准 Windows 文件选择框,用于选择一个 本地 .sofa 文件;Apply 前会通过与独立 SOFA 流程相同的严格 OpenJOC 加载器 验证数据集。无效选择会被拒绝,之前已知有效的 HRTF 保持不变。如果已持久化的 自定义文件后来被移动、删除、拒绝访问或变为无效,重新打开 Binaural 时会报告 有界的 HRTF 配置错误,用户可改选内置来源或另一个有效文件恢复。

Binaural 页面还可选择虚拟扬声器布局:7.1.4 (Default) 或 9.1.6 (Experimental)。两者都使用现有的虚拟扬声器阶段,再进入相同的 SOFA/HRTF 后端;最终输出仍是双声道双耳 PCM。9.1.6 不宣称更好或达到参考 质量,增加的虚拟声道可能带来更高 CPU 成本。

规范的 9.1.6 中间声道顺序为 FL, FR, FC, LFE, Lb, Rb, Ls, Rs, Lw, Rw, Ltf, Rtf, Ltm, Rtm, Ltr, Rtr。LFE 遵循现有的显式 LFE 策略,其余 15 个 虚拟声道通过现有的精确查找或有界插值路径解析,再卷积为两个耳道。这是 虚拟布局,不是发送给下游的 16 声道扬声器输出。

OpenJOC 不会检测物理扬声器配置,也不会自动降混来匹配输出设备。较大的布局可能被拒绝,也可能被接受后由 Windows/下游渲染器转换;这种转换发生在 OpenJOC 之外,不等同于直接选择 Stereo。

示例:立体声耳机 → Binaural (Headphones);2.0 音箱 → Stereo (Speakers);物理 5.1 → 5.1;物理 7.1 → 7.1;支持高度声道的端点 → 对应的高度布局。在立体声端点选择 7.1.4 不会增加 OpenJOC 的空间化效果;如果下游路径接受,之后的立体声降混也发生在 OpenJOC 之外。

Dialnorm 有两个选项:

  • Calibrated (Recommended):遵循 E-AC-3 携带的节目 Dialnorm。
  • Unity / Compatibility:为兼容性禁用 Dialnorm 增益,听起来可能明显更响。

这个设置只选择解码器的节目电平校准策略。它不是归一化、DRC、质量模式或母带增益,也不会增加渲染后增益级。

适用于 v0.19.0 LAV 安装包: Output gain 需要 openjoc-lav-0.19.0-windows-x64.zip;v0.18.0 Windows LAV 安装包不包含此功能。升级前请确认发布页面已提供 v0.19.0 LAV 资源。

Output gain 是同一 Program Level 分组中的独立渲染后 PCM 电平控制,范围为 -20.0 dB 到 +20.0 dB,步进 0.1 dB,默认 0.0 dB。它在 OpenJOC 扬声器或双耳 渲染之后、严格 PCM 样本交付之前,对所有输出声道施加相同的线性倍率;不会改变 Dialnorm、Mixing、DRC、HRTF、声道布局、帧数或时间戳。0 dB 时新增处理完全旁路,既有 输出保持不变。正增益可能导致削波;此控件不会附带 limiter 或自动补偿。

Status 页面复用 LAV 的标准声道电平表,目前最多显示前八个输出声道。对于 10 或 12 声道策略,显示的前八个表仍与 PCM 输出的同序声道索引对应。

直通与硬件边界

OpenJOC 不会根据音频端点名称猜测布局,不执行低频管理,也不会把多个物理低音炮变成多个逻辑 LFE 声道。单独的 7.1.6、9.1.x、22.2 和自定义几何,都不属于 LAV 输出声明。

这个集成验证的只是 PCM 采样数据能够通过文档规定的主机环境和音频端点检查;它不表示任意设备上的物理多声道硬件播放都已经验证。

卸载与回滚

双击 uninstall.bat。安装包只会删除 OpenJOC 自有的注册项和文件,并恢复原有的 LAV 配置。对于 OpenJOC 已经不存在的安装,非交互式卸载流程会把这种情况视为成功,无需再做任何操作。

如需查看更底层的源代码、版本固定信息和工程验证证据,请参阅仓库中的 LAV 集成约定。这些证据文件不会发布在本站。