命令名¶
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 size
- 用 size
指定輸出緩沖區的大小,
單位為千字節.
使用此選項通常可以避
免由頻繁的系統操作造成的
聲音輸出時斷時續的現象.
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 n
- 每 n 幀播放一幀.
這會使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 file
- 從 file
指定的檔案中讀取將要播放的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_proxy和
HTTP_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