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 (請看下一 節).
除了能從普通檔案和標準輸入讀取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位元組的緩衝區.
- 已知的BUG和侷限性:
-
MPEG-2, Layer-1和-2未經 測試.
可能不能工作.(Layer-3應該能工作.)
不提供對自由格式的音訊流的支援.
對Layer-1的支援未經
嚴格測試.
未進行CRC錯誤校驗.
沒有對DEC Digital Unix, Ultrix 和 IBM
AIX平臺上的音訊硬體提供支
持,
因此在這些平臺上必須使用
-s 選項.
- 主要作者:
-
Michael Hipp <[email protected]>
- 使用了下面的程式碼或借鑑了其中的思想:
-
MPEG Software Simulation Group (Base package)
Philipp Knirsch <[email protected]> (DCT36/manual unroll)
Tobias Bading <[email protected]> (subband synthesis)
Jeff Tsay <[email protected]> (DCT36)
Thomas Woerner (SGI Audio)
Damien Clermonte <[email protected]> (HP-UX audio fixes)
Oliver Fromme <[email protected]>
網路參考資料:
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 <
[email protected]>
2004/2/29
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh