7.3. MP3音频

贡献者Chern Lee.

MP3 (MPEG Layer 3 Audio)达到过CD音质的效果,FreeBSD工作站没理由会缺少这样的好东东。

7.3.1. MP3播放器

到目前为止,最为流行的 XFree86 MP3 播放器是XMMS (X 多媒体系统)。 Winamp 肤面可以应用到 XMMS上, 因为它与 Nullsoft's Winamp 的 GUI (图形界面) 几乎是相同的。 另外, XMMS 也支持插件功能

XMMS可以从 multimedia/xmms port 或 package (“包”)里安装得到。

XMMS' 的界面很直观,有播放列表、 图表化的均衡器等等。 那些熟悉 Winamp 的人会发现使用 XMMS 很简单。

audio/mpg123 port 是一个可选用的命令行 MP3 播放器。

mpg123 可以在命令行指定音频设备和 MP3 文件执行,如下所示:

# mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!





Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

/dev/dsp1.0 应该换成您的系统上的 dsp 设备。

7.3.2. 抓取CD音轨

在对CD或CD音轨编码成MP3之前, CD上的音频数据应先抓到硬盘里。 这个可以通过复制原始的CDDA(CD数字音频)数据成为波形(WAV)文件。

工具 cdda2wavsysutils/cdrtools 套件的一部份,可用来从CD中获取音频及其相关信息。

把CD放到光驱里,下面的命令可以完成 (作为 root用户) 把整张 CD 分割成单个 (每个音轨) 的WAV文件:/para>

# cdda2wav -D 0,1,0 -B


cdda2wav 支持 ATAPI (IDE)光驱。 从IDE光驱中抓取音轨, 需要用设备名称代替SCSI的单元号。 例如, 想从 IDE 光驱中抓取第7道音轨:

# cdda2wav -D /dev/acd0a -t 7

参数 -D 0,1,0 表示 SCSI 设备 0,1,0, 与命令 cdrecord -scanbus的输出相对应。

抓取单轨,要使用选项-t,如下所示:

# cdda2wav -D 0,1,0 -t 7

这个实例用于抓取第七个音轨。要抓取一定范围的音轨,如从1到7:

# cdda2wav -D 0,1,0 -t 1+7

利用dd(1)也可以从ATAPI光驱中抓取音轨,从 Section 16.6.5可以了解更多。

7.3.3. MP3 编码

现今,可选的MP3编码器是lameLame可以从ports树里的 audio/lame 处找到。

利用抓取的WAV文件,下边的命令就可以把 audio01.wav 转换成audio01.mp3

# lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3

128 kbits 是标准的MP3位率(bitrate)。 许多人可能喜欢更高的品质例如 160 或 192。 更高的位率, 会使 MP3 占用更多的磁盘空间--但音质会更高。选项 -h 控制 “高品质但低速度 (higher quality but a little slower)” 模式的开关。 选项 --t 表示把 ID3 标签--通常包含了歌曲的信息, 植入到MP3文件里。 其它的编码选项可以查询 lame 的联机手册。

7.3.4. MP3 解码

要把MP3歌曲刻录成音乐CD,就需要把它转换成非压缩的波形(WAV)格式。 XMMSmpg123 都支持把MP3输出成非压缩格式文件。

XMMS中输出到磁盘:

  1. 启动 XMMS.

  2. 在窗口里右击鼠标,弹出XMMS菜单。

  3. 选项(Options)里选择设定(Preference)

  4. 改变输出插件成“写磁盘插件(Disk Writer Plugin)”。

  5. 配置(Configure)

  6. 输入或选择一个目录用于存放解压的文件。

  7. 象平常一样,把MP3文件装入到XMMS里边, 把音量调节到100%并且关掉EQ设定。

  8. 按一下播放(Play) -- XMMS 如同在播放mp3一样,只是听不到声音。 实际上是在播放mp3到一个文件里。

  9. 要想再听MP3歌曲,记得把默认的输出插件设回原来的值。

mpg123进行标准输出:

  1. 执行 mpg123 -s audio01.mp3 > audio01.pcm

XMMS输出的文件是波形(WAV)格式, 而mpg123 则把MP3转换成无压缩的PCM 音频数据。两种格式都支持用 cdrecord 刻录成音乐CD。 使用 burncd(8) 您就必须使用无压缩的PCM。 如果选择波形格式, 就要注意在每道开始时的一小点杂音, 这段声音是波形文件的头部份。 可以使用工具 SoX 来轻松去除。 SoX 可从 audio/sox port 或包(package)中安装得到:

% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

阅读 Section 16.6 这部份可以了解到更多在 FreeBSD 里刻盘的信息。