MPlayer的音频接口称为libao2。它目前包含这些驱动:
一般: | |||
oss | OSS(ioctl)驱动(支持硬件AC3中转) | ||
sdl | SDL驱动(支持升/降采样率,ESD,ARTS等等) | ||
nas | NAS(Network Audio System)驱动 | ||
alsa5 | 本地的ALSA 0.5驱动 | ||
alsa9 | 本地的ALSA 0.9驱动(支持硬件AC3中转) | ||
sun | BSD和Solaris8用户的SUN音频驱动(/dev/audio ) | ||
arts | 本地的ARTS驱动(主要针对KDE用户) |
事实上,Linux声卡驱动有兼容问题。可能需要一定时间找到你最理想的设置。
-ao oss
(这是默认的)。如果你遇到毛刺,停止或者任何不正常的事情,
尝试-ao sdl
(注意:你需要安装SDL库和头文件)。许多情况下SDL的音频驱动都会有帮助,也支持ESD,
ARTS,和升/降采样率。(ESD是GNOME的音频守护进程,ARTS是KDE的)。-ao alsa5
,因为ALSA 0.5的OSS仿真很buggy,
会导致MPlayer崩溃并出现这样的信息:DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
-ao oss
和-ao sdl
之间选择。你也能使用-ao alsa9
。它能工作,
但是可能出现不同步或者声音消失之类的问题。在Solaris和FreeBSD系统上,用-ao sun
选项使用SUN的音频驱动,否则视频音频都无法工作。
VIA板载芯片(via82cxxx)只能48kHz | ||
驱动: | 在sourceforge.net | |
Aureal Vortex 2 | ||
OSS: | 没有驱动 | |
OSS/Pro: | OK | |
ALSA: | 没有驱动 | |
Max kHz: | 48 | |
驱动: | aureal.sourceforge.net | |
驱动2: | 在Pontscho的主页 (缓冲大小增加到32k) | |
GUS PnP | ||
OSS: | 没有驱动 | |
OSS/Pro: | OK | |
ALSA: | OK | |
Max kHz: | 48 | |
SB Live! | ||
OSS: | 模拟方式很好,SP与DIF不能工作 | |
ALSA: | 两个都很好 | |
Max kHz: | 192 | |
SB AWE 64 | ||
OSS: | max 44kHz | |
ALSA: | 48kHz听起来很糟 | |
Max kHz: | 48 | |
Gravis UltraSound ACE | ||
OSS: | 不是很好 | |
ALSA: | OK | |
Max kHz: | 44 | |
Gravis UltraSound MAX | ||
OSS: | OK | |
ALSA: | OK(?) | |
Max kHz: | 48 | |
ESS 688 | ||
OSS: | OK | |
ALSA: | OK(?) | |
Max kHz: | 48 | |
C-Media声卡(那种?) | ||
OSS: | 不是很好(有嘶嘶声) (?) | |
ALSA: | OK(?) | |
Max kHz: | ? | |
Yamaha声卡(*ymf*) | ||
OSS: | 不是很好(?)(-ao sdl ) | |
ALSA: | 仅在使用ALSA 0.5的OSS仿真和-ao sdl (!)(?)时很好 | |
Max kHz: | ? | |
使用envy24芯片(Terratec EWS88MT之类)的声卡 | ||
OSS: | ? | |
OSS/Pro: | OK | |
ALSA: | ? | |
Max kHz: | ? | |
PC Speaker或者DAC | ||
OSS: | OK(使用SDL驱动:-ao sdl ) | |
ALSA: | 没有驱动 | |
Max kHz: | 驱动模拟44.1,也许更高。 | |
驱动: | ftp://ftp.infradead.org/pub/pcsp |
在Linux上,高度推荐2.4.x的内核。2.2的内核没有经过测试。
如果从CD-ROM播放时声音跳跃,开启IRQ unmasking,例如。hdparm -u1 /dev/cdrom
(man hdparm
)。
这在大多数情况下有好处,更详细的描述在CD-ROM部分。
与另一个像XMMS一样的程序共享你的声卡是强烈不推荐的!如果其它音频程序使用ESD,用-vo sdl:esd
选项
启动MPlayer可以把两个音频流混合起来。事实上,选项-vo sdl:esd
甚至在单独播放Mplayer时也可以对ESD使用。
对这个文件的反馈是受欢迎的。请告诉我们你的声卡是如何与MPlayer共同工作的。
MPlayer支持音频插件。音频插件s用于在声音到达声卡之前改变音频数据的属性。他们用-aop
开关加上
list=插件1,插件2,...
参数打开。必须有list
参数用来确定应该使用哪些插件,以及他们执行的顺序。例如:
mplayer media.avi -aop list=resample,format
将让声音先通过重新采样插件然后再经过格式化插件。
插件也有改变他们行为的开关。这些开关在下面将详细地解释。如果开关被省略,插件将按照默认设置运行。 这是一个关于如何组合使用指定参数的插件的例子:
mplayer media.avi -aop
list=resample,format:fout=44100:format=0x8
这将会将重新采样插件的输出频率设为44100Hz格式化插件的输出格式设置为AFMT-U8。
目前音频插件不能用于MEncoder。
MPlayer完全支持对声音升/降采样率。如果你使用固定采样率的声卡或者如果你被只兼容
最大44.1kHz的老声卡郁闷时可以使用这个插件。你硬件的限制是不能自动检测的,因此你必须明确地规定采样频率。
这个插件有一个参数:fout
用于设置期望的输出的采样率。默认是48kHz,单位是<Hz>。
用法:
mplayer media.avi -aop list=resample:fout=<required
frequency in Hz, like 44100>
注意输出频率不能从默认值升高。因为升高会导致音频和视频流播放缓慢而且音频也会扭曲。
MPlayer有一个能解码矩阵编码的环绕音效的音频插件。杜比环绕是矩阵编码格式的一个例子。 大多数2通道音频的文件实际上包含了矩阵编码的环绕音效。为使用这个特性你需要至少支持4个声道的声卡。
用法:
mplayer media.avi -aop list=surround
如果你的声卡驱动不支持带符号的16位int
数据类型,这个插件能被用来把它转换为一个你的
声卡能理解的格式。它有一个参数,format
,可以设置为你在libao2/afmt.h
中找到的数字。
这个插件几乎很少会用到而且是面向高级用户的。记住这个插件仅仅改变采样格式而不改变采样频率或者声道数。
用法:
mplayer media.avi -aop
list=format:format=<required output format>
这个插件将声音延迟,被计划当做如何开发新的插件的例子。它不能用于任何以用户观点来说有用的东西, 在这里被提到只是为了完整的缘故。不要使用这个插件除非你是开发者。
这个插件是音量控制功能的软件替代,用于哪些使用蹩脚的混音设备的机器。如果你想要改变MPlayer
的输出音量而不改变混音器中PCM音量的设置也可以使用这个插件。它有一个volume
参数初始的音量水平。
初始音量水平能取0到255之间的值,默认值是101相当于放大0分贝。谨慎使用这个插件因为它会降低声音的信噪比。
在大多数情况下最好是把PCM音量设为最大是,放弃这个插件并且通过混音器的主音量控制来控制你的扬声器输出水平。
如果有连接到计算机的外部功放(这几乎是普遍情况),噪音水平能通过调整在主音量级别和功放上的旋钮而最大限度的减少,
直到去除嘶嘶的背景噪音。
Usage:
mplayer media.avi -aop
list=volume:volume=<0-255>
这插件也有压缩器或称为“软控制”的功能。 压缩用于声音的动态范围十分高或者如果扬声器的动态范围十分低的的情况。注意这个特性将造成扭曲并且应该 是最后一种被考虑的手段。
Usage:
mplayer media.avi -aop
list=volume:softclip
这个插件(线性地)增加左右声道的差别(像XMMS的extrastereo插件一样)使回放产生某种“现场”效果。
Usage:
mplayer media.avi -aop list=extrastereo
mplayer media.avi -aop list=extrastereo:mul=3.45
默认参数(mul
)是默认值为2.5的浮点数。如果你把它设置到0.0,你将获得单声道(两个声道的平均值)。
如果你把它设置到1.0,声音不变,如果你把它设置为-1.0,左右声道将被交换。
这个插件能没有变形的最大化音量。
用法:
mplayer media.avi -aop list=volnorm
谁应该在什么时候写点什么。