8000 GitHub - SakuzyPeng/AtmosRecorder: 一款由 AI 开发的 macOS 命令行工具,可录制系统解码的杜比全景声(Dolby Atmos)并保存为 12 声道 WAV 文件。
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

一款由 AI 开发的 macOS 命令行工具,可录制系统解码的杜比全景声(Dolby Atmos)并保存为 12 声道 WAV 文件。

License

Notifications You must be signed in to change notification settings

SakuzyPeng/AtmosRecorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

开发说明

本程序由 AI 完成编写和优化工作,开发者仅提供需求和反馈。这是一个探索 AI 辅助编程能力的实验项目。

开发工具

  • AI(网页端):
    • 主要编写:Claude 4 Opus (Anthropic)
    • 辅助优化:Gemini 2.5 Pro Preview (Google)
    • 气氛组:ChatGPT o4-mini-high (OpenAI)
  • IDE:Xcode 16.4
  • 系统:macOS 15.5

Q: 处理时可以使用其他音频应用吗?

A: 通常可以。经测试,播放音乐、视频等不会影响录制。但建议不要在处理过程中切换音频设备或更改设备设置。

Q: 录制的音频会受到系统空间音频设置的影响吗?

A: 不会。本程序直接获取解码后的原始多声道数据,不受头部追踪、个性化空间音频(HRTF)等系统设置的影响。您获得的是纯净的 12 声道解码结果。

全景声音频录制工具

一个简单的 macOS 命令行工具,用于录制由系统解码后的多声道音频(如杜比全景声),并将其保存为 12 声道 WAV 文件。

声明:本程序完全由 AI 开发,开发者未参与代码编写。

功能特点

🎵 基础音频处理:使用 Apple 的 MTAudioProcessingTap API 进行音频提取

🔊 固定输出格式:输出为 12 声道 7.1.4 格式(48kHz, 32-bit Float)

📦 批量处理:支持处理多个文件

📊 进度显示:显示基本的处理进度

🚀 使用方便:支持拖拽文件处理

系统要求

  • macOS 10.15 或更高版本(推荐 macOS 11.0+)
  • 支持的输入格式:.m4a.ec3

:在 macOS 15.0+ 上开发和测试,较旧版本可能存在兼容性问题。

安装方法

方法一:下载预编译版本(推荐)

  1. 访问 Releases 页面。

  2. 下载最新的 AtmosRecorder-unix.tar.gz

  3. 解压并运行:

    tar -xzf AtmosRecorder-unix.tar.gz
    chmod +x AtmosRecorder
    ./AtmosRecorder
    

方法二:通过 GitHub Actions 下载

  1. 访问 Actions 页面。
  2. 选择最新的成功构建。
  3. 下载 unix-executable-AtmosRecorder artifact。
  4. 解压后即可使用。

方法三:从源码编译

  1. 克隆仓库:

    git clone https://github.com/Sakuzy/AtmosRecorder.git
    cd AtmosRecorder
    
  2. 使用 Xcode 打开项目:

    open AtmosRecorder.xcodeproj
    
  3. 选择目标设备为 "My Mac"。

  4. 点击 Product → Build(或按 ⌘B)编译。

使用方法

基本用法

自动查找模式

./AtmosRecorder

程序会在当前目录中查找第一个支持的音频文件并处理。

指定文件

./AtmosRecorder /path/to/audio.m4a

处理指定的音频文件。

批量处理

./AtmosRecorder file1.m4a file2.eac3 file3.ec3

一次处理多个文件。

处理整个文件夹

./AtmosRecorder /path/to/folder/

自动查找并处理文件夹中的所有支持格式的音频文件。

快捷用法

拖拽:将文件或文件夹拖到程序图标上,自动处理。

双击:双击程序图标,自动处理同目录下的音频文件。

输出说明

  • 输出格式:WAV 文件

  • 声道配置

    :12 声道 7.1.4

    • L, R, C, LFE (前置左右、中置、低音)
    • Ls, Rs (环绕左右)
    • Ltf, Rtf (前置顶部左右)
    • Ltr, Rtr (后置顶部左右)
    • 备用声道 x2
  • 采样率:48,000 Hz

  • 位深度:32-bit Float

  • 文件命名原文件名_atmos_714.wav

  • 避免覆盖:如果输出文件已存在,会自动添加编号(如 _atmos_714_1.wav

声道映射

程序采用简单的声道映射方式:

  • 如果解码后的结果少于 12 声道,额外的声道将为静音。
  • 如果解码后的结果超过 12 声道,只使用前 12 个声道。
  • 尽量保持原始音频的基本特性。

性能说明

  • 处理速度为实时播放速度(1x),这是当前实现的限制。
  • 处理过程中音频会静音播放,不会产生声音。
  • 输出文件较大,约每分钟 140MB
  • 处理前请确保有足够的磁盘空间。

实际案例参考

以下是一次真实的处理记录,可供参考:

  • 输入文件:一个 3分58秒 的全景声音频 (.ec3, 1024kb/s, 30.5 MB)
  • 峰值内存:约 50 MB (在 Xcode 调试环境下观测)
  • 输出文件:一个 12 声道的 .wav 文件,大小为 549.5 MB

注意事项

⚠️ 重要提醒

  • 版权注意:请确保您有权处理相关音频文件。本工具仅供个人学习和合法用途使用。

  • 文件大小

    :输出的 WAV 文件会比原始压缩格式大很多。例如:

    • 5 分钟的音频 ≈ 700MB
    • 1 小时的音频 ≈ 8.4GB
  • 处理时间:由于采用实时处理,一个 5 分钟的音频文件需要约 5 分钟处理时间。

  • 内存使用:处理大文件时可能占用较多内存,建议关闭其他大型应用。

音频设备注意事项:

本程序录制的是纯净的解码结果,不受以下因素影响:

  • 头部追踪(Head Tracking)
  • 个性化空间音频(Personalized HRTF)
  • 系统音效处理

经测试,其他程序的音频播放通常不会影响录制。

重要:处理过程中请避免

  • 切换音频输出设备
  • 更改音频设备设置(如 AirPods 的空间音频开关)
  • 插拔音频设备

这些操作可能会导致录制中断或产生异常。

如何验证输入文件为全景声?

在处理文件时,您可以随时检查您的音频文件是否被 macOS 正确识别为杜比全景声格式。这是一个非常有用的验证方法:

  1. 运行 AtmosRecorder 并开始处理一个音频文件。
  2. 连接您的空间音频耳机(如 AirPods Pro 2)。
  3. 打开 macOS 的控制中心,并点击声音模块。
  4. 如果您看到如下图所示,在音量条旁边明确显示 “杜比全景声” 字样,这证明系统已成功激活全景声解码器。

这表明您的输入文件是有效的全景声音频,并且本工具正在正确地截取解码后的数据。

:本工具默认以静音模式在后台处理音频。即使不连接任何耳机,录制过程也完全可以正常工作。不过,“杜比全景声”这个视觉提示是 macOS 空间音频功能的一部分,通常只在使用受支持的耳机时才会显示。因此,如果您使用内置扬声器,将看不到此提示,经测试这不影响最终录制的 12 声道 WAV 文件。

故障排除

  • 问题:程序提示"未找到音频轨道"

    • 确保输入文件包含音频数据。
    • 检查文件是否损坏。
  • 问题:输出文件声道数不正确

    • 这通常表示输入文件不是真正的全景声格式。
    • 尝试使用其他全景声音频文件。
  • 问题:处理速度很慢

    • 这是正常的,程序使用实时播放速度以确保质量。
    • 确保磁盘有足够的写入速度(建议使用 SSD)。
  • 问题:控制台出现系统警告信息

    如果看到类似以下的警告信息,这是正常的,不会影响转换结果:

    AddInstanceForFactory: No factory registered for id...
    PlatformUtilities::CopyHardwareModelFullName() returns unknown value...
    MEMixerChannel:: failed to set kAudioUnitProperty_ChannelLayout...
    HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload
    

    这些是 macOS 音频系统的内部警告,可以安全忽略。最后一条关于 "overload" 的警告可能在系统负载较高时出现,但不影响音频质量。

    为了尽可能地提升程序的稳定性和可靠性,AtmosRecorder 内部已经实现了一项尝试:程序在启动时,会通过执行 [NSThread setThreadPriority:1.0]; 这行代码,主动向 macOS 系统申请更高的线程处理优先级。

    这样做的目的是,当您的电脑比较繁忙时,操作系统会更倾向于将宝贵的 CPU 资源分配给 AtmosRecorder,从而尽力避免因处理超时而产生 overload 警告。

    尽管有这项优化,但 overload 警告的出现与整个系统的瞬时负载都有关系,因此可能无法 100% 杜绝。

技术细节

本工具使用了以下技术:

  • MTAudioProcessingTap:Apple 的音频处理 API
  • AVFoundation:用于媒体文件的读取
  • 非交错音频格式:用于多声道音频处理

工具仍在持续改进中,可能存在一些限制和不足。

常见问题

Q: 为什么固定为 12 声道输出?

A: 这是基于 Apple 系统解码全景声的常见格式。我们采用了这个配置作为默认输出。

Q: 可以加快处理速度吗?

A: 目前的实现基于实时播放,暂时无法加速。我们正在研究可能的优化方案。

Q: 支持其他输出格式吗?

A: 目前仅支持 WAV 格式。未来可能会考虑支持更多格式。

Q: 可以在 Windows/Linux 上使用吗?

A: 由于依赖 macOS 的音频框架,目前仅支持 macOS 系统。

更新日志

v1.0 (2025.6.13)

  • 初始版本
  • 支持基本的多声道音频录制功能
  • 支持 .m4a, .ec3 格式
  • 实现了批量处理和进度显示

许可证

本项目仅供学习和研究使用。使用者需自行承担使用本工具的责任。作者不对使用本工具产生的任何后果负责。

开源信息

开源协议

本项目基于 MIT 协议开源。详见 LICENSE 文件。

GitHub Actions 自动构建

本项目使用 GitHub Actions 实现自动化构建:

  • 触发条件:推送到 master 分支或 Pull Request
  • 构建环境:macOS 15 (最新版)
  • 构建配置:
    • Release 模式
    • 无代码签名(方便分发)
    • 最低支持 macOS 12.0
  • 构建产物:
    • unix-executable-AtmosRecorder:包含可执行文件和便携式启动脚本
    • release-package:压缩包版本(仅 master 分支)

查看 .github/workflows/objective-c-xcode.yml 了解构建细节。

项目结构

AtmosRecorder/
├── AtmosRecorder.xcodeproj   # Xcode 项目文件
├── AtmosRecorder/            # 源代码目录
│   ├── main.m                # 主程序入口
│   └── TapManager.h/m        # MTAudioProcessingTap 实现
├── .github/workflows/        # GitHub Actions 配置
├── LICENSE                   # MIT 开源协议
└── README.md                 # 本文档

贡献

欢迎提交问题报告、功能建议和改进意见。这是一个学习项目,还有很多可以改进的地方。

如需贡献代码:

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

免责声明:本工具与 Dolby Laboratories 无关。Dolby Atmos 是 Dolby Laboratories 的注册商标。本工具仅是一个学习项目,可能存在各种限制和不足。本程序完全由 AI 开发,作者不对程序的正确性和稳定性做任何保证。

About

一款由 AI 开发的 macOS 命令行工具,可录制系统解码的杜比全景声(Dolby Atmos)并保存为 12 声道 WAV 文件。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0