Provided by: manpages-zh_1.5.2-1.1_all bug

命令名

       mpg123 - 播放 MPEG 1.0/2.0 Layer-1, -2, -3 音频文件

语法

       mpg123 [ -tscvqy01m24 ][ -b size ][ -k num ][ -n num ][ -f factor ][ -r rate ][ -g gain ][
       -a dev ][ -o s | -o h | -o l ][ -d n ][ -h n ][ -p proxy ][ -@ file ] file ... | URL ... |
       -

描述

       mpg123  从一个或多个 文件 或者 URL 读取MPEG-1/2音频比特流 (如果指定 `-' 选项, 则从标准输入
       读取), 然后使用音频设备进行播放(默认), 或将解码结果送 到标准输出上.

选项

       mpg123 接收传统的POSIX风格的单字母选项, 也接收GNU风格的长单词选项. 这两  种选项分别以  `-'
       和 "--" 开头.

       -t, --test
              测试模式. 对音频流进行解码, 但不输出.

       -s, --stdout
              将解码结果送到标准输出上, 而不使用音频设备进行播放. 如果 mpg123 不支持你的音频硬件,
              你就可以试试这一选项, 这时, mpg123 以本机 字节顺序(host byte order)输出16比特的立体
              声线性PCM(脉冲编码调制) 音频裸数据(没有数据头).

       -c, --check
              对每一帧进行滤波器越界检查, 如发生则报告之.

       -v, --verbose
              播放时显示更多信息, 比如显示当前正在解码的帧号.

       -q, --quiet
              安静模式. 不显示诊断信息.

       -y, --resync
              如果输入文件发生错误,  则重新进行同步并继续解码. 另外, 对那些文件 头损坏的MPEG文件,
              通常 mpg123 会拒绝播放并显示 ' Illegal header', 但如果指定本选项, mpg123 会试图从损
              坏的文件头中恢复并进行播放.  小心: 损坏的MPEG文件在播放到损坏处时可能出现尖利刺耳的
              噪声, 如果 音量过大, 可能损坏扬声器.

       -0, --single0; -1, --single1
              只对0(左) 声道或者1(右) 声道进行解码. 这两个选项只对立体声的MPEG 音频流有效.

       -m, --singlemix
              将两个声道混音. 此选项只对MPEG Layer-3的立体声音频流有效, 并可比 完全立体声解码节省
              一些 CPU时间.

       -2, --2to1; -4, --4to1
              将输出流的采样率将低至标准的1/2  (22kHz) 或者1/4 (11kHz). 使用这 两个选项可以减少一
              些CPU的负荷, 但是声音质量会下降(至少使用11kHz 采样率时会很难听).

       -b size, --buffer sizesize 指定输出缓冲区的大小, 单位为千字节. 使用此选项通常可以避 免由频繁的系统操作
              造成的   声音输出时断时续的现象.    size   的值小于  300时就没什么意义了,  建议至少
              取1024(即使用1Mb的缓冲区, 可以缓冲 相当于6秒钟的音频数据).  size 的默认值为0,  即不
              进行输出缓冲.

       -k num, --skip num
              跳过前 num 帧. 不指定此选项时, 默认从第1帧开始解码.

       -n num, --frames num
              只对前 num 帧进行解码. 不指定此选项时, 默认对整个音频流进行解码.

       -f factor, --scale factor
              改变缩放因子 factor 的值(默认值为32768).

       -r rate, --rate rate
              设置采样率  rate (默认为自动设置). 使用这一选项后, mpg123 会自动 将速率转换成不依赖
              于MPEG流速率的一个恒定比特率.  此选项应该和 --stereo 或 --mono 联合起来使用.

       -g gain, --gain gain
              设置音频硬件输出增益 gain (默认为保持不变).

       -a dev, --audiodevice dev
              指定音频设备. 默认的音频设备与系统配置有关(通常是 /dev/audio 或 /dev/dsp ),  如果系
              统中有多个音频设备而默认的又不是你想用的那个, 就可使用本选项.

       -o s, --speaker
              将声音导出到主板上的扬声器上.

       -o h, --headphones
              将声音导出到耳机连接器上.

       -o l, --lineout
              将声音导出到Line-Out连接器上.

       -d n, --doublespeed nn 帧播放一帧. 这会使MPEG流的播放速度提高为正常速度的 n 倍, 从而可以产生特殊的声
              音效果. 此选项可以和 --halfspeed 选项组合使 用, 实现类似每4帧播放3帧(译者注: 指定-d
              4 -h 3)的效果.  如果使用 此选项, 不要指望声音质量会很好.

       -h n, --halfspeed n
              将每帧都播放 n 遍. 这会使MPEG流的播放速度降低为正常速度的 1/n, 从而可以产生特殊的声
              音效果. 此选项可以和 --doublespeed 选项组合 使用, 实现类似每3帧播放2帧(译者注: 指定
              -h 2 -d 3)的效果.  如果使 用此选项, 不要指望声音质量会很好.

       -p URL | none, --proxy URL | none
              指定          proxy         作为HTTP请求的代理.         指定的格式应是一个完整的URL
              (如"http://host.domain:port/"), 但是可以省略前缀"http://",  端口  号port(默认的端口
              为80)和末尾的'/'.  如果指定为 none ,则不使用代 理, 直接向服务器请求文件. 更多细节请
              看 "HTTP 支持" 小节.

       -u auth, --auth auth
              如果通过HTTP下载文件时服务器要求提供认证信息, 则由 auth 指定, 其 格式为  "用户名:密
              码" (不包括引号).

       -@ file, --list filefile 指定的文件中读取将要播放的MPEG音频流所在的文件和(或)URL, 如果 命令行中还指
              定了其它的文件和(或)URL, 也将其包含进播放清单.  如果指定 file 为  `-'而非一个普通的
              文件名, mpg123 将从标准输入读 取文件名和(或)URL, 或者读取一个指向播放清单文件的URL.
              注意: -@ 选项只能使用一次(如果多处指定, 则只有最后一个有效).

       -z, --shuffle
              随机播放. 按随机的顺序播放命令行和清单文件中指定的音频文件.

       --stereo
              强制立体声输出.

       --reopen
              强制在播放完一个文件后重新打开音频设备.

       --8bit 强制8比特输出.

       -Z, --random
              完全随机播放. (译者注: 与 --shuffle 选项的区别是, 指定本选项有可 能重复多次播放同一
              文件)

操作数

       mpg123 支持下面的操作数:

       file   指定输入文件的路径.  这些文件必须包含合法的MPEG-1/2音频 Layer-1, Layer-2或Layer-3的
              比特流.  如果指定为'-', 将从标准输入读取MPEG数 据. 进一步, 如果以"http://"开头,  则
              认为指定 了一个 URL (请看下一 节).

HTTP 支持

       除了能从普通文件和标准输入读取MPEG音频流,  mpg123  还支持通过HTTP协 议从万 维网(WWW)上获取
       由URL(统一资源定位符)指定的文件.  一个URL是一个以 "http://" 为前缀的字符串, 当 mpg123 识别
       到这个前缀, 它会尝试开启一个 到相应服务器的连接, 接着获取相应的文件并进行解码播放.

       很多时候, 从WWW缓存, 或所谓的网络代理比直接从服务器更容易获取文件. 为利 用这种便利, mpg123
       会依次检查 MP3_HTTP_PROXY, http_proxyHTTP_PROXY, 这三个环境变量是否被设置,  并将第一个被
       设置的变量的值作为指定的代理.   如  果你需要自己指定另外的代理, 可以使用 -p 命令行选项 (请
       看"选项"小节).  使用 -p none 选项将不使用任何代理而直接连接服务器, 即使前面所述的三个 变量
       被设置.

       值得注意的是,  为了能从一个WWW服务器获取并流畅地播放MPEG音频文件, 必须有 足够快的网络连接.
       例如, 为了能播放速率为128kbit/s的MPEG文件, 所需的 网络带宽至少应该是128kbit/s加上网络协 议
       本身的传输开销.  如果网络常发生 短时中断, 可以试试用 -b 选项指定一个缓冲区. 如果你所在的网
       络根本无 法达到实时传输MPEG音频文件所需的带宽, 就只好使用 lynx(1) 之类的软件先将  文件下载
       到本地硬盘上再进行播放了.

       如果服务器要求认证, 可以使用 -u auth 选项(请看"选项"小节)指定用户名和密 码.

中断

       任何时候按Ctrl-C键都能中断  mpg123 的运行. 如果有多个文件在播放, Ctrl-C 会终止当前文件的播
       放并 开始播放下一个文件, 这种情况下, 如果你想终止整 个程序的运行, 必须连按两次Ctrl-C (在约
       一秒钟之内).

       注意,  按了Ctrl-C之后声音也许不会马上消失, 这是因为系统的音频设备缓冲了 一部分数据. 这种延
       迟随系统不同而不同, 但通常都不超过1到2秒.

相关说明

       lynx(1), sox(1), intro(1)

注意

       MPEG音频解码, 特别是Layer-3的解码, 需要CPU进行大量的运算. 为能达到实时 解码,  你的计算机至
       少应该配备Pentium, Alpha, SuperSparc或性能相当的处 理器.  同时你可以使用 -singlemix 选项进
       行单声道解码, 对Layer-3, 这多少 能减少一点CPU负荷. 此外你也可以考虑使用 -2-4 选项.

       如果这些方法都不奏效, 试试用 -s 选项将解码结果送到标准输出上并将其定向 到一个文件中,  然后
       再用适当的工具播放这个文件.  你也许会用到 sox(1) 这个 工具, 它能将文件转换成你的音频播放器
       所用的格式.

       还有一点就是 mpg123 总是输出16比特的立体声数据(如果指定 -0-1 选项中 的一个, 立体声两个声
       道的数据是相同的). 如果系统硬件要求其它格式, 比如8 比特的单声道的数据, 同样可以使用 sox(1)
       进行转化.

       如果你的系统本身足够快, 能够进行实时解码, 只是在系统负荷较重时(如定时任 务, 用户远程登录或
       启动`大'程序等)出现停顿, 你应该用 -b 选项指定一个不小 于1000K字节的缓冲区.

BUGS

       已知的BUG和局限性:
              MPEG-2, Layer-1和-2未经 测试. 可能不能工作.(Layer-3应该能工作.)
              不提供对自由格式的音频流的支持.
              对Layer-1的支持未经 严格测试.
              未进行CRC错误校验.
              没有对DEC  Digital Unix, Ultrix 和 IBM AIX平台上的音频硬件提供支 持, 因此在这些平台
              上必须使用 -s 选项.

作者

       主要作者:
              Michael Hipp <hippm@informatik.uni-tuebingen.de>

       使用了下面的代码或借鉴了其中的思想:
              MPEG Software Simulation Group (Base package)
              Philipp Knirsch <phil@mpik-tueb.mpg.de> (DCT36/manual unroll)
              Tobias Bading <bading@cs.tu-berlin.de> (subband synthesis)
              Jeff Tsay <ctsay@pasteur.eecs.berkeley.edu> (DCT36)
              Thomas Woerner (SGI Audio)
              Damien Clermonte <clermond@esiee.fr> (HP-UX audio fixes)
              Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de>

       网络参考资料: http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html
       http://www.heim3.tu-clausthal.de/~olli/mpg123/
       (包含关于mpg123邮件组的信息)

       在此获取最新版本:
       http://ftp.tu-clausthal.de/pub/unix/audio/mpg123

[中文版维护人]

       linuxipy <groove@ustc.edu>

[中文版最新更新]

       2004/2/29

《中国linux论坛man手册页翻译计划》:

       http://cmpp.linuxforum.net

                                           21 Apr 1997                                  mpg123(1)