For the complete documentation index, see llms.txt. This page is also available as Markdown.

14.5 音频播放器

FreeBSD 上主要的音频播放器包括 Audacious、VLC 和 MPD。本节给出 pkg 安装方法,并介绍 MPD 播放 DSD 音频的配置流程。

Audacious

安装 Audacious

  • 使用 pkg(二进制包管理器)安装:

# pkg install audacious audacious-plugins

注意

audacious-plugins 插件包是 Audacious 主程序运行的必要依赖,不安装该插件包则无法正常启动 audacious 主程序。

  • 或者使用 Ports(源代码包管理器)编译安装:

# cd /usr/ports/multimedia/audacious/ && make install clean
# cd /usr/ports/multimedia/audacious-plugins/ && make install clean

使用 Audacious

测试 .m4a(MPEG-4 音频容器格式)、.flac(无损音频压缩编码)、.av3a(AVS3 音频裸码流格式)等音乐格式的兼容性。.m4a 为容器格式,可包含多种编码(如 AAC、ALAC 等);.av3a 为裸码流,实际应用中 AVS3 音频也常封装在 MP4 容器中以 .m4a 扩展名存储。

技巧

经测试,在上述格式中 Audacious 默认构建支持 .flac 和 .m4a(AAC 编码)格式,目前不支持 .av3a(AVS3 音频裸码流)等编码格式,须安装相应插件或另行配置。

Audacious

VLC

VLC(最初为 VideoLAN Client)播放器的安装方法可参见本书视频播放器相关章节。FreeBSD 中的 ffmpeg 多媒体框架(名称中的“FF”意为“Fast Forward”,“mpeg”指 MPEG 标准)默认构建配置未启用 libuavs3d(AVS3 解码)和 libdavs2(AVS2 解码)支持,本节不再展开重新编译的配置方法。

经过实际测试,在已安装 ffmpeg 且编译时启用了 AC-4 解码支持的情况下,VLC 播放器可播放 AC-4 编码的 m4a 格式音频(需注意标准 ffmpeg 构建默认未启用 AC-4 解码,需自行打补丁编译):

播放 AC-4 编码的 m4a 格式音频

用 MPD 播放 DSD

Music Player Daemon(MPD)是一款音乐播放器守护进程,可运行于服务器或个人计算机上,并通过多种客户端程序进行远程控制。

MPD 的主要功能包括:支持多种音频格式解码、采用客户端—服务器分离架构、提供播放列表管理、支持流媒体传输与跨平台运行。

硬件准备

需要准备硬件支持 DSD(直接比特流数字,Direct Stream Digital)格式的声卡或 DAC(数模转换器,Digital-to-Analog Converter),以及一段 DSD 编码的音频文件用于测试。

以下配置说明基于 FreeBSD 14.0 操作系统,外置 DAC 使用海贝 R3 作为示例设备(其他类似声卡的配置方法基本相同),并采用 OSS(开放声音系统,Open Sound System)音频驱动。

安装 Music Player Daemon

或者通过 Ports 源代码编译安装:

硬件设置

当前系统声卡和音频设备状态如下:

本实例使用的是 pcm2 设备,其对应的设备文件路径为 /dev/dsp2,下文配置中会使用该路径。

可使用 sysctl -d dev.pcm.2 命令查看相关硬件参数的详细含义,摘录关键的三项参数如下:

按照如下所示设置参数(可将这些配置写入 sysctl.conf 文件以使配置在系统重启后永久生效):

参数说明:

  • 由于使用的是 OSS 音频驱动,Music Player Daemon 只能采用 DoP(DSD over PCM)传输模式,而 DoP 模式要求启用 bit-perfect 比特完美模式。

  • 采样率(vchanrate):DSD 音频的采样率为 44.1 kHz 的整数倍,因此不应设置为 48 kHz 的整数倍,否则可能产生音频杂音;在硬件条件允许的情况下应设置为尽可能高的数值,此处示例设置为 352.8 kHz。

  • dev.pcm.2.play.vchanmode 虚拟通道模式参数说明:

值
模式
说明

0

fixed(固定模式)

音频设备使用固定的采样率和格式处理多路音频流

1

passthrough(直通模式)

音频设备尽可能保持输入音频流的原始采样率和格式,不进行额外的转换处理

2

adaptive(自适应模式)

音频设备会根据需要自动适配并转换输入音频流的采样率和格式

技巧

可使用 dmesg 命令查看内核日志中硬件所支持的可用采样率。播放非 DSD 文件时,将采样率设置为与音频文件本身采样率相同(或其整数倍)较为合适,如此可避免重采样造成的音质损失。采样率并非越高越好,须经多次测试以确定适合当前硬件配置的值。

查看内核消息中与 pcm2 声卡相关的日志:

Music Player Daemon 基本设置

Music Player Daemon(musicpd)的配置文件为 /usr/local/etc/musicpd.conf。

其中默认使用的部分目录结构如下:

MPD 默认使用的部分目录需要自行创建:

修改 /usr/local/etc/musicpd.conf 文件,在 "Default OSS Device" 一节后面增加一节:

技巧

可指定多个输出设备,并在各类客户端中按需启用或禁用相应的输出设备。

开启 musicpd 服务:

客户端使用

可以使用 ncmpc(字符界面)、MaximumMPD(iPhone)等多种客户端,客户端种类较为丰富。

PC 端的 GUI 客户端建议使用 Cantata(Port audio/cantata)。Cantata 原作者已于 2022 年停止开发,但社区 fork(nullobsi/cantata)已接手维护并移植至 Qt6,FreeBSD Ports 中的 audio/cantata 已切换至该活跃维护的 fork。

命令行环境下建议安装 ncmpc(Port audio/ncmpc),适合用于绑定桌面环境的全局快捷键。

最后更新于