Skip to content

About

Local Sony 360 Reality Audio / MPEG-H object scene explorer with 3D visualization and multichannel monitoring.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

360RA Explorer

360RA Explorer 是一个在本机运行的 Sony 360 Reality Audio / MPEG-H 3D Audio 文件解析、对象场景可视化与多声道监听工具。

把 .m4a、.mp4、.mha 或 .mhm 文件拖入网页后,程序会在本机解析 MPEG-H 容器和 OAM(Object Audio Metadata),显示每个 Object 的空间位置、运动轨迹、增益与相对 RMS,并生成适合不同扬声器布局的试听或下载文件。

这是独立项目,与其他 Atmos 分析项目无关。360 Reality Audio、Sony、MPEG-H 和 Dolby 等名称及商标归各自权利人所有。

功能

  • 识别 MP4/M4A 容器中的 mhm1、mha1 与 mhaC;
  • 使用本地 libmpegh 解码器导出 OAM 对象和时间轴;
  • 在听者中心球面中显示对象方位角、仰角、距离和完整运动轨迹;
  • 显示对象增益、扩散范围、优先级、运动状态和相对 RMS;
  • 支持 Back、Front、Top、Left、Right 与自由 3D 视角;
  • 支持 Stereo 2.0、Surround 5.1、Immersive 7.1.4 监听渲染;
  • CICP 13 源文件可生成 22.2 声道 WAV 下载;
  • 普通监听按浏览器能力选择 E-AC-3 或 AAC M4A,两种缓存互不覆盖;
  • Object Solo 使用 AAC M4A 按需渲染并长期缓存;
  • Chrome 等 Chromium 浏览器支持多个 S 轨道叠加;Safari 为保证可靠输出,一次只允许一个 S;
  • 用 SHA-256 比对文件,相同内容会复用解析与监听缓存;
  • 内置跨平台 FFmpeg,不依赖系统 FFmpeg。

隐私和数据

程序只监听 127.0.0.1。浏览器读取的文件会交给本机 Node.js 服务处理,不会上传到互联网。

缓存保存在:

data/360ra/cache/<文件 SHA-256>/

缓存默认不自动清理,删除 data/360ra/cache 内的 Job 目录即可释放空间。data/、媒体文件、日志和本机构建的解码器均已被 Git 忽略。

快速开始

macOS

  1. 下载仓库 ZIP,或使用 git clone --recurse-submodules;
  2. 在 Finder 中双击 360RA Explorer.command;
  3. 启动器准备环境、启动服务并自动打开浏览器;
  4. 保持终端窗口打开,关闭窗口或输入 0 会退出程序。

首次运行时启动器可以自动下载项目专用 Node.js、安装 npm 依赖并构建解码器。未配置过开发工具的 Mac 仍需 Apple Command Line Tools;启动器会提示安装。

Windows 10/11 x64

  1. 推荐安装 Git for Windows、CMake 和 Visual Studio 2022 Build Tools;
  2. Build Tools 安装时勾选“使用 C++ 的桌面开发”;
  3. 下载仓库 ZIP,或使用 git clone --recurse-submodules;
  4. 双击 360RA Explorer.cmd。

Windows 启动器会自动下载项目专用 Node.js 20、安装 npm 依赖、构建 MPEG-H 解码器、启动服务并打开默认浏览器。关闭控制台窗口后,程序会退出。

源码仓库不能携带所有平台的原生解码器,因此全新 Windows 系统第一次运行仍需要 Git、CMake 和 Visual Studio C++ Build Tools。缺少这些组件时启动器会给出明确提示;之后启动不需要重复安装或编译。

从 GitHub 下载 ZIP 时,Git 子模块内容不会包含在 ZIP 中。此时首次运行必须安装 Git,启动器会单独下载并固定 libmpegh。使用 git clone --recurse-submodules 可以提前完成这一步。

控制台菜单

macOS 和 Windows 启动器提供相同的数字菜单:

[1] 查看状态
[2] 启动程序
[3] 停止程序
[4] 重启程序
[5] 打开浏览器
[6] 查看日志
[7] 清理屏幕
[8] 显示菜单
[0] 退出控制台

程序地址固定为 http://127.0.0.1:5173。

浏览器说明

  • 推荐 Chrome、Edge 等 Chromium 浏览器,普通监听和多个 Object Solo 叠加兼容性最好;
  • Safari 支持普通 E-AC-3 监听和 AAC Solo,但对多个 5.1 HTML 音频流并发混音不可靠,因此界面限制为单个 Solo;
  • 浏览器能否实际输出 5.1 还取决于操作系统、音频设备和 HDMI/声卡配置;普通双声道设备可能由系统降混;
  • 7.1.4 与 22.2 使用多声道 PCM WAV,主要面向支持对应布局的工作站和播放器。

监听与缓存格式

布局 普通监听 Object Solo 网页行为
2.0 E-AC-3 或 AAC M4A AAC-LC M4A 可试听、可下载
5.1 E-AC-3 或 AAC M4A AAC-LC 5.1 M4A 可试听、可下载
7.1.4 24-bit PCM WAV 24-bit PCM WAV 取决于浏览器与设备,可下载
22.2 24-bit PCM WAV 不支持 仅 CICP 13,按需生成下载

如果已经存在 E-AC-3 普通监听缓存,而当前浏览器需要 AAC,程序会直接用内置 FFmpeg 从 E-AC-3 转为 AAC,不会重新执行 MPEG-H 空间渲染,也不会删除原文件。

源码运行

需要 Node.js 20 或更高版本:

git clone --recurse-submodules https://github.com/lukeli17/360ra-explorer.git
cd 360ra-explorer
npm install
npm run build:decoder
npm start

更新项目:

git pull
git submodule update --init
npm install
npm run build:decoder

项目结构

src/server/                 本地 HTTP 服务、缓存和媒体处理
src/web/                    网页界面、Three.js 场景和静态资源
scripts/                    跨平台启动、构建和发布检查脚本
patches/                    libmpegh OAM/Object Solo 补丁
tools/libmpegh/             固定版本的上游 Git 子模块
360RA Explorer.command      macOS 双击启动器
360RA Explorer.cmd          Windows 双击启动器
DEVELOPMENT.md              协议、坐标系和实现说明

开发和验证

npm run check
npm run preflight

GitHub Actions 会在 macOS 和 Windows 上执行依赖安装、语法检查和解码器构建。更详细的 OAM 数据结构、坐标系、适配器协议与 Object Solo 实现见 DEVELOPMENT.md。

第三方组件和许可

  • 本项目代码采用 MIT License;
  • tools/libmpegh 是 Ittiam libmpegh 的固定版本 Git 子模块,适用其自身许可证;
  • ffmpeg-static 携带的 FFmpeg 适用其构建所对应的许可证;
  • Three.js 适用 MIT License;
  • Lee Perry-Smith 头部模型适用 CC BY 3.0,说明见 src/web/assets/lee-perry-smith-license.txt。

本项目的 MIT 许可不授予 MPEG-H、360 Reality Audio、Dolby 或其他专利及商标权利。商业分发前请自行评估相关专利池、编解码器许可、FFmpeg 义务和商标使用要求。

免责声明

本工具用于本地技术分析、可视化和个人监听测试,不提供 DRM 绕过、受保护内容获取或版权授权。请只处理你有权使用的媒体文件。解析和渲染结果不应被视为专业母带、认证监听或标准一致性证明。

About

Local Sony 360 Reality Audio / MPEG-H object scene explorer with 3D visualization and multichannel monitoring.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages