第 20.2 节 音视频播放器

本地音乐播放器

  • Audacious: pkg install audacious

本地视频播放器

  • VLC: pkg install vlc

用 MPD 播放 DSD

Music Player Daemon (MPD) 是一个灵活、强大且可扩展的音乐播放器系统,它可以在计算机上运行,并通过各种客户端进行控制。MPD 的主要功能包括:支持各种音频格式,客户端-服务器架构,播放列表管理,支持流媒体,跨平台支持等。

准备

支持 DSD 的声卡或 DAC,一个 DSD 音频文件。

以下基于FreeBSD 14.0,外置 DAC 使用海贝R3(声卡设置基本类似),使用 oss 驱动。

安装

# pkg install musicpd

硬件设置

查看声卡信息

# cat /dev/sndstat
pcm0: <Realtek ALC269 (Analog 2.0+HP/2.0)> (play/rec) default
pcm1: <Intel Cougar Point (HDMI/DP 8ch)> (play)
pcm2: <USB audio> (play)
No devices installed from userspace.

这里要使用的是 pcm2,对应设备文件 /dev/dsp2,下面会使用到。

可以用 sysctl -d dev.pcm.2 查看相关硬件参数意义,摘录关键的三条如下:

dev.pcm.2.bitperfect: bit-perfect playback/recording (0=disable, 1=enable)
dev.pcm.2.play.vchanrate: virtual channel mixing speed/rate
dev.pcm.2.play.vchanmode: vchan format/rate selection: 0=fixed, 1=passthrough, 2=adaptive

如下设置(可以写入 sysctl.conf 永久化设置):

# sysctl dev.pcm.2.bitperfect=1
# sysctl dev.pcm.2.play.vchanrate=352800
# sysctl dev.pcm.2.play.vchanmode=1
  • 因为使用的 oss 驱动,muscipd 只能用 dop 传输模式,dop 模式要求开启 bitperfect

  • 采样率(vchanrate),DSD 采样率为 44.1khz 的倍数,所以不要设为 48khz 的倍数不然会有杂音,在可能的情况下设置为最高,这里是 352.8khz。

  • 0(fixed):在此模式下,音频设备使用固定的采样率和格式来处理多路音频流。1(passthrough):在此模式下,音频设备尽可能地保持输入音频流的原始采样率和格式。2(adaptive):在此模式下,音频设备会根据需要自动适应和转换输入音频流的采样率和格式。

基本设置

musicpd 配置文件为 /usr/local/etc/musicpd.conf

里面默认的一些目录为

/var--> mpd --
               |-> music
               |-> .mpd --> playlists

这些目录要自行建立

# mkdir -p /var/mpd/music
# mkdir -p /var/mpd/.mpd/playlists
# chown -R mpd:mpd /var/mpd
# chmod 777 /var/mpd/music

第三行把目录设为用户 mpd 所有,不然可能有权限问题。第四行 music 目录存放音乐文件用,设置777是为方便增删文件,自己根据情况设置即可。

修改 /usr/local/etc/musicpd.conf 中有关 oss 一节如下:

audio_output {
        type            "oss"
        name            "Default OSS Device"
        device          "/dev/dsp2"     # 指定使用的设备,不需要把 dac或声卡等设置为默认设备,dsp2 专用于播放音乐,默认设备做自己的事就行
        dop             "yes"           # 开启 dop 模式
}

开启 musicpd 服务

# sysrc musicpd_enable=YES
# service musicpd start

客户端使用

可以使用 ncmpc (命令行),MaximumMPD(iphone)等客户端,这个不再赘述。

最后更新于