音频过滤器
音频过滤器允许你修改音频流及其属性。语法是:
−af <过滤器1[=参数1:参数2:...],过滤器2,...>
建立音频过滤器链。
注意: 请参见 −af help, 获得可用的音频过滤器其完整列表。
可用的过滤器有:
resample[=srate[:sloppy[:type]]]
改变音频流的采样(速/频)率。可用于声卡只有一个固定的频率或者要卡住的旧卡最高只能达 44.1kHz。此过滤器在必要时被自动启用。它只支持 16-位 native-endian(低位在前) 格式的整数值和浮点数作为输入。
注意: 对于 MEncoder, 你也需要使用 −srate <srate>。
<srate>
输出的采样率(以 Hz 为单位)。参数的有效范围是从 8000 到 192000。如果输入和输出的采样率相同, 或者如果此参数被省略, 此过滤器被自动卸载。正常情况下高的采样率能改善音频品质, 尤其是与其它过滤器结合时。
<sloppy>
允许(1) 或不允许(0) 输出采样率与给定的频率 <srate> 稍微不同 (默认是: 1)。可用于启动回放时极端慢的情形。
<type>
选择使用何种重采样方式。
0: 线性插值 (快速, 品质低尤其是 upsampling 时)
1: 多相过滤器组(filterbank)并且整数处理
2: 多相过滤器组(filterbank)并且浮点数处理 (慢, 品质最佳)
示例:
mplayer −af resample=44100:0:0
设置重采样过滤器的输出采样率为 44100Hz, 使用此不允许微调的输出采样率缩放和线性插值。
lavcresample[=srate[:length[:linear[:count[:cutoff]]]]]
改变音频流采样率为整数 <srate> (以 Hz 为单位)。它只支持 16位 native-endian(低位在前) 格式。
注意: 对于 MEncoder, 你也需要使用 −srate <srate>。
<srate>
输出的采样率
<length>
有关较低采样率的过滤器长度 (默认是: 16)
<linear>
如果值是 1, 过滤器将在多相进入处之间线性插值
<count>
多相进入处数量的 log2 (..., 10->1024, 11->2048, 12->4096, ...) (默认是: 10->1024)
<cutoff>
截频 (0.0-1.0), 默认设置取决于过滤器长度
sweep[=speed]
产生正弦 sweep。
<0.0−1.0>
delta 的正弦, 使用非常低的值听此扫听(sweep)。
sinesuppress[=freq:decay]
删除一个指定频率的正弦。对去除低品质音频设备上 50/60Hz 的噪音时有用。可能只在单声道输入上可工作。
<freq>
应删除的频率 (以 Hz 为单位) (默认是: 50)
<decay>
控制适应性 (一个较大的值会使得过滤器适应幅度和相位的变化较迅速, 而一个较小的值会使得此适应过程较慢) (默认是: 0.0001)。合理的值约为 0.001。
hrtf[=flag]
头部相关的转变功能: 为头戴式耳机转换多声道音频成双声道输出, 但保留声音的空间感。
Flag 含义
m 后场声道矩阵解码
s 双声道矩阵解码
0 无矩阵解码 (默认)
equalizer=[g1:g2:g3:...:g10]
10-八度波段图形均衡器, 其实现使用了 10 IIR 带通过滤器。这意味着不管回放的是何种音频都行。10 波段的中心频率各是:
段号频率
0 31.25 Hz
1 62.50 Hz
2 125.00 Hz
3 250.00 Hz
4 500.00 Hz
5 1.00 kHz
6 2.00 kHz
7 4.00 kHz
8 8.00 kHz
9 16.00 kHz
如果此声音播放的采样率低于频率波段的中心频率, 此波段就被停用。此过滤器的一个已知错误是, 最高波段的特性没有完全对称, 如果采样率接近其波段的中心频率时。此问题可被绕过。办法是 upsampling 其声音: 在此过滤器之前使用重采样过滤器。
<g1>:<g2>:<g3>:...:<g10>
浮点数代表各频率波段的增益分贝(dB) (-12−12)
示例:
mplayer −af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi
放大声音的高端和底端的频率区段, 但几乎完全取消 1kHz 附近的声音。
channels=nch[:nr:from1:to1:from2:to2:from3:to3:...]
能用于添加, 去除, 路由和拷贝音频声道。如果仅给定 <nch>, 默认是用路由(跳接), 其所做工作如下: 如果输出声道数大于输入声道数, 插入空的声道 (除了混音单声道成立体声时, 在两个输出声道中重复此单声道)。如果输出声道数小于输入声道数, 截掉多余的声道。
<nch>
输出声道数 (1−6)
<nr>
路由数 (1−6)
<from1:to1:from2:to2:from3:to3:...>
0 到 5 对定义各声道的路由。
示例:
mplayer −af channels=4:4:0:1:1:0:2:2:3:3 media.avi
改成 4 声道并设置 4 对路由: 交换声道 0 和声道 1, 保留声道 2 和 3 未动。会观察到如果回放媒体含有两个声道, 声道 2 和 3 无声, 但声道 0 和 1 仍要交换。
mplayer −af channels=6:4:0:0:0:1:0:2:0:3 media.avi
改成 6 声道并设置 4 对路由: 拷贝声道 0 到声道 0 至 3。声道 4 和 5 无声。
format[=format] (也请参见 −format)
在不同的采样格式之间转换。自动被启用, 当声卡或其他的过滤器需要时。
<format>
设置所需的格式。一般的形式是 "sbe", 其中 "s" 指示符号 (要么 "s" 指带符号, 要么 "u" 指不带符号), "b" 指示每个样本的位数 (16, 24 或 32) 而 "e" 指示 endian 格式 ("le" 指 little-endian, "be" 指 big-endian 或者 "ne" 指 MPlayer 运行其上的计算机所用的 endian 格式)。有效值(尤其)有: "s16le", "u32be" 和 "u24ne"。例外但也有效的指定格式有: u8, s8, floatle, floatbe, floatne, mulaw, alaw, mpeg2, ac3 和 imaadpcm。
volume[=v[:sc]]
实现软件的音量控制。请谨慎使用此过滤器, 因为会降低信号至声音的噪声率。在大多数情况下设置 PCM 音量至最大是最佳的, 省去过滤器, 而用混音器的主音量控制来控制输出到音响的水平。万一你的声卡有数码的 PCM 混音器而不是模拟的, 且听到失真, 请使用 MASTER(主) 混音器。如果计算机联有外接扩音器(这几乎总是常有的事), 调节主音量和扩音器的音量旋钮能减少噪声水平, 直到背景的嘶嘶声消失。
此过滤器有第二个功能: 测量总体的最高声音水平并通过 MPlayer 显示出来。此估计的音量能用来设置 MEncoder 的音量以使用最大动态范围。
注意: 此过滤器不能重返进入, 所以对每个音频流只能启用一次。
<v>
设置所有声道中流所需的增益分贝(dB) : 范围从 -200dB 至 +60dB, 其中 -200dB 完全靜音而 +60dB 等于增益 1000 (默认是: 0)。
<sc>
打开 (1) 或关闭 (0) 软剪切。软-剪切能使得声音更平滑流畅, 如果使用了非常高的音量水平。启用此选项, 如果扩音器的动态范围非常低。
警告: 此功能产生失真, 是应该最后才考虑使用的手段。
示例:
mplayer −af volume=10.1:0 media.avi
放大声音 10.1dB, 且声音水平太高时使用硬-剪切。
pan=n[

00

01

02:...L10

11

12:...Ln0

n1:Ln2:...]
武断混音。基本上是音量和声道过滤器的组合能用于混合许多声道至仅仅几个声道, 如: 立体声到单声道或者改变环绕声系统中心扬声器的 "宽度"。此过滤器很难用, 且需要一些修补才能获得所要的结果。此过滤器的选项数取决于输出声道数。如何用此过滤器把 6-声道文件混音成双声道的实例, 能在示例一节中将近最后的地方找到。
<n>
输出声道数 (1−6)
<Lij>
输入声道 i 混音成输出声道 j 的份量 (0−1)。所以基本上你先要有 n 个数表示要作用到第一个输入声道, 然后再有 n 个数要作用到第二个输入声道, 如此以往。如果你不对某些输入声道指定任何数, 就认为是 0。
示例:
mplayer −af pan=1:0.5:0.5 media.avi
立体声混音成单声道。
mplayer −af pan=3:1:0:0.5:0:1:0.5 media.avi
给定 3 声道输出, 保留声道 0 和 1 未动, 但混合声道 0 和 1 成输出声道 2 (被送到比如超低音声道)。
sub[=fc:ch]
添加一个超低音(subwoofer)声道到音频流。用于创建超低音声道的音频数据声道 0 和声道 1 的平均声音。四阶 Butterworth(巴特沃斯) 过滤器低通过滤声音的结果是默认截频 60Hz 且在音频流中添加了一个独立的声道。
警告: 停用此过滤器, 当播放 DVDs 带杜比(Dolby Digital 5.1)声音时, 否则此过滤器分解声音到超低音声道。
<fc>
低通过滤器的截频(以 Hz 单位) (20Hz 至 300Hz) (默认是: 60)。为了最佳结果, 尝试设置截频尽可能低。这能改善立体声或环绕音效的体验。
<ch>
决定插入超音声道音频的声道号。声道号在 0 和 5 之间 (默认是: 5)。观察到声道数会自动增加到 <ch>, 如果必要的话。
示例:
mplayer −af sub=100:4 −channels 5 media.avi
添加超低音声道到输出声道 4 且其中截频为 100Hz。
center
从前方声道中创建中心声道。可能目前品质较低, 因为还没有实现用高通过滤器进行适当抽取, 而是用平均和半折其前方声道替代。
<ch>
决定插入中心声道的声道号。声道号在 0 和 5 之间 (默认是: 5)。观察到声道数会自动增加到 <ch>, 如果必要的话。
surround[=delay]
矩阵编码的环绕音效解码器, 像杜比环绕音效(Dolby Surround)。许多双声道音频文件事实上含有矩阵编码的环绕音效。需要声卡支持至少 4 声道。
<delay>
后方扬声器的延迟时间(以 ms 为单位) (0 至 1000) (默认是: 20)。此延迟按如下设置: 如果 d1 是聆听点到前方扬声器的距离, d2 是聆听点到后方扬声器的距离, 那么延迟该设为 15ms 如果 d1 <= d2 或设为 15 + 5*(d1-d2) 如果 d1 > d2。
示例:
mplayer −af surround=15 −channels 4 media.avi
添加环绕音效解码, 后方扬声器声音为 15ms 的延迟。
delay[=ch1:ch2:...]
延迟声音到扬声器, 这样可以让不同声道的声音同时到达聆听点。这只对多于两个扬声器时有用。
ch1,ch2,...
应该加给每个声道的延迟时间(以 ms 为单位) (0 至 1000 之间的浮点数)。
不同声道所需的延迟时间计算如下:
1.
测量不同的扬声器到聆听点的距离(以 meters(米) 为单位), (对于 5.1 的系统) 得到距离 s1 至 s5。没有补偿超低音的点 (因为你听不出差异)。
2.
取其中最大距离与各个 s1 至 s5 的差, 即 s
= max(s) - s; i = 1...5。
3.
计算所需的各个延迟时间(以 ms 为单位)为 d = 1000*s/342; i = 1...5。
示例:
mplayer −af delay=10.5:10.5:0:0:7:0 media.avi
延迟左前方和右前方声道各 10.5ms, 两个后方声道和超低音声道 0ms, 而中心声道 7ms。
export[=mmapped_file[:nsamples]]
使用内存映射 (mmap()) 导出进入的信号到其它处理过程。内存映射的区域含有头部:
int nch /*声道数*/
int size /*缓冲大小*/
unsigned long long counter /*用于保持同步, 更新每次
新导出的数据。*/
其余是 (无间隔方式) 有效载荷的 16-位数据。
<mmapped_file>
映射数据到文件 (默认是: ~/.mplayer/mplayer-af_export)
<nsamples>
每个声道的样本数 (默认是: 512)
示例:
mplayer −af export=/tmp/mplayer-af_export:1024 media.avi
导出每个声道的 1024 样本到 "/tmp/mplayer-af_export"。
extrastereo[=mul]
(线性地)增加左右声道的差异以添加某些 "现场" 回放效果。
<mul>
设置差异系数 (默认是: 2.5)。 0.0 表示单声道 (两个声道的平均值), 1.0 表示声音未改变, 而 -1.0 表示交换了左右声道。
volnorm[=method:target]
没有失真的最大音量。
<method>
设置被用的方式。
1: 使用单样本平滑差异, 通过对旧的样本进行标准加权平均 (默认)。
2: 使用几个样本平滑差异, 通过对旧的样本进行标准加权平均。
<target>
为此样本类型设置目标幅度为最大值的分数 (默认是: 0.25)。
ladspa=file:label[:controls...]
装载 LADSPA (Linux Audio Developer’s Simple Plugin API) 插件。此过滤器可重返进入, 所以多个 LADSPA 插件可同时使用。
<file>
指定 LADSPA 插件的库文件。如果设置了 LADSPA_PATH, 从中搜寻指定的文件。如果没设置, 你一定要提供一个完整说明的路径名。
<label>
指定库中的过滤器。有些库仅含一个过滤器, 但有些含许多。进入这里的 "help", 会列出指定库中所有可用的过滤器, 从而消除使用 LADSPA SDK 的 "listplugins"。
<controls>
控制 0 或多个浮点数值, 其决定装载的插件的行为(例如: 延迟, 阈值和增益)。在冗赘模式(添加 −v 到 MPlayer 命令行)下, 所有可用的控制及其有效范围可打印。从而消除使用 LADSPA SDK 的 "analyseplugin"。
comp
压缩/扩张过滤器, 话筒输入有用。防止人为的非常高的声音和提高非常低的声音的音量。此过滤器未经测试, 甚至可能不稳定。
gate
噪声门过滤器类似于 comp(压缩/扩张) 音频过滤器。此过滤器未经测试, 甚至可能不稳定。
karaoke
简单声音去除过滤器利用这样的事实: 人的声音通常录成单声道, 之后 "中心(center)" 混音进最后的音频流。小心此过滤器会把信号变成单声道。对 2-声道音轨工作得很好; 在非 2-声道立体声上别费劲去尝试。