.\" @(#)mpg123.1 0.01 21-Apr-1997 OF; from mpg123 archive .\" Chinese version copyright (c)linuxipy , href=http://www.linuxforum.net>www.linuxforum.net 2003. .\" Chinese version last update on 29-Dec-2003 .\" .\" .\" This file may be copied under the conditions described .\" in the LDP GENERAL PUBLIC LICENSE, Version 1, September 1998 .\" that should have been distributed together with this file. .\" .TH mpg123 1 "21 Apr 1997" .SH 命令名 mpg123 \- 播放 MPEG 1.0/2.0 Layer-1, -2, -3 音訊檔案 .SH 語法 .B mpg123 [ .B \-tscvqy01m24 ][ .BI \-b " size" ][ .BI \-k " num" ][ .BI \-n " num" ][ .BI \-f " factor" ][ .BI \-r " rate" ][ .BI \-g " gain" ][ .BI \-a " dev" ][ .BR "\-o s" " | " "\-o h" " | " "\-o l" ][ .BI \-d " n" ][ .BI \-h " n" ][ .BI \-p " proxy" ][ .BI \-@ " file" ] .IR file " ... | " URL " ... | " .B \- .SH 描述 .B mpg123 從一個或多個 .I 檔案 或者 .I URL 讀取MPEG-1/2音訊位元流 (如果指定 `\-' 選項, 則從標準輸入讀取), 然後使用音訊裝置進行播放(預設), 或將解碼結果送 到標準輸出上. .SH 選項 .B mpg123 接收傳統的POSIX風格的單字母選項, 也接收GNU風格的長單詞選項. 這兩 種選項分別以 `\-' 和 "\-\^\-" 開頭. .TP .BR \-t ", " \-\-test 測試模式. 對音訊流進行解碼, 但不輸出. .TP .BR \-s ", " \-\^\-stdout 將解碼結果送到標準輸出上, 而不使用音訊裝置進行播放. 如果 .B mpg123 不支援你的音訊硬體, 你就可以試試這一選項, 這時, .B mpg123 以本機 位元組順序(host byte order)輸出16位元的立體聲線性PCM(脈衝編碼調製) 音訊裸資料(沒有資料頭). .TP .BR \-c ", " \-\^\-check 對每一幀進行濾波器越界檢查, 如發生則報告之. .TP .BR \-v ", " \-\^\-verbose 播放時顯示更多資訊, 比如顯示當前正在解碼的幀號. .TP .BR \-q ", " \-\^\-quiet 安靜模式. 不顯示診斷資訊. .TP .BR \-y ", " \-\^\-resync 如果輸入檔案發生錯誤, 則重新進行同步並繼續解碼. 另外, 對那些檔案 頭損壞的MPEG檔案, 通常 .B mpg123 會拒絕播放並顯示 ' Illegal header', 但如果指定本選項, .B mpg123 會試圖從損壞的檔案頭中恢復並進行播放. 小心: 損壞的MPEG檔案在播放到損壞處時可能出現尖利刺耳的噪聲, 如果 音量過大, 可能損壞揚聲器. .TP .BR \-0 ", " \-\^\-single0 "; " \-1 ", " \-\^\-single1 只對0(左) 聲道或者1(右) 聲道進行解碼. 這兩個選項只對立體聲的MPEG 音訊流有效. .TP .BR \-m ", " \-\^\-singlemix 將兩個聲道混音. 此選項只對MPEG Layer-3的立體聲音訊流有效, 並可比 完全立體聲解碼節省一些 CPU時間. .TP .BR \-2 ", " \-\^\-2to1 "; " \-4 ", " \-\^\-4to1 將輸出流的取樣率將低至標準的1/2 (22kHz) 或者1/4 (11kHz). 使用這 兩個選項可以減少一些CPU的負荷, 但是聲音質量會下降(至少使用11kHz 取樣率時會很難聽). .TP \fB\-b \fIsize\fR, \fB\-\^\-buffer \fIsize 用 .I size 指定輸出緩衝區的大小, 單位為千位元組. 使用此選項通常可以避 免由頻繁的系統操作造成的 聲音輸出時斷時續的現象. .I size 的值小於 300時就沒什麼意義了, 建議至少取1024(即使用1Mb的緩衝區, 可以緩衝 相當於6秒鐘的音訊資料). .I size 的預設值為0, 即不進行輸出緩衝. .TP \fB\-k \fInum\fR, \fB\-\^\-skip \fInum 跳過前 .I num 幀. 不指定此選項時, 預設從第1幀開始解碼. .TP \fB\-n \fInum\fR, \fB\-\^\-frames \fInum 只對前 .I num 幀進行解碼. 不指定此選項時, 預設對整個音訊流進行解碼. .TP \fB\-f \fIfactor\fR, \fB\-\^\-scale \fIfactor 改變縮放因子 .I factor 的值(預設值為32768). .TP \fB\-r \fIrate\fR, \fB\-\^\-rate \fIrate 設定取樣率 .I rate (預設為自動設定). 使用這一選項後, .B mpg123 會自動 將速率轉換成不依賴於MPEG流速率的一個恆定位元率. 此選項應該和 \-\-stereo 或 \-\-mono 聯合起來使用. .TP \fB\-g \fIgain\fR, \fB\-\^\-gain \fIgain 設定音訊硬體輸出增益 .I gain (預設為保持不變). .TP \fB\-a \fIdev\fR, \fB\-\^\-audiodevice \fIdev 指定音訊裝置. 預設的音訊裝置與系統配置有關(通常是 /dev/audio 或 /dev/dsp ), 如果系統中有多個音訊裝置而預設的又不是你想用的那個, 就可使用本選項. .TP .BR "\-o s" ", " \-\^\-speaker 將聲音匯出到主機板上的揚聲器上. .TP .BR "\-o h" ", " \-\^\-headphones 將聲音匯出到耳機聯結器上. .TP .BR "\-o l" ", " \-\^\-lineout 將聲音匯出到Line-Out聯結器上. .TP \fB\-d \fIn\fR, \fB\-\^\-doublespeed \fIn 每 .IR n 幀播放一幀. 這會使MPEG流的播放速度提高為正常速度的 .I n 倍, 從而可以產生特殊的聲音效果. 此選項可以和 .B \-\^\-halfspeed 選項組合使 用, 實現類似每4幀播放3幀(譯者注: 指定-d 4 -h 3)的效果. 如果使用 此選項, 不要指望聲音質量會很好. .TP \fB\-h \fIn\fR, \fB\-\^\-halfspeed \fIn 將每幀都播放 .I n 遍. 這會使MPEG流的播放速度降低為正常速度的 .IR 1 / n , 從而可以產生特殊的聲音效果. 此選項可以和 .B \-\^\-doublespeed 選項組合 使用, 實現類似每3幀播放2幀(譯者注: 指定-h 2 -d 3)的效果. 如果使 用此選項, 不要指望聲音質量會很好. .TP \fB\-p \fIURL \fR| \fBnone\fR, \fB\-\^\-proxy \fIURL \fR| \fBnone 指定 .I proxy 作為HTTP請求的代理. 指定的格式應是一個完整的URL (如"http://host.domain:port/"), 但是可以省略字首"http://", 埠 號port(預設的埠為80)和末尾的'/'. 如果指定為 .B none ,則不使用代 理, 直接向伺服器請求檔案. 更多細節請看 "HTTP 支援" 小節. .TP \fB\-u \fIauth\fR, \fB\-\^\-auth \fIauth 如果透過HTTP下載檔案時伺服器要求提供認證資訊, 則由 .I auth 指定, 其 格式為 "使用者名稱:密碼" (不包括引號). .TP \fB\-@ \fIfile\fR, \fB\-\^\-list \fIfile 從 .I file 指定的檔案中讀取將要播放的MPEG音訊流所在的檔案和(或)URL, 如果 命令列中還指定了其它的檔案和(或)URL, 也將其包含進播放清單. 如果指定 .I file 為 `\-'而非一個普通的檔名, .B mpg123 將從標準輸入讀 取檔名和(或)URL, 或者讀取一個指向播放清單檔案的URL. 注意: .B \-@ 選項只能使用一次(如果多處指定, 則只有最後一個有效). .TP .BR \-z ", " \-\^\-shuffle 隨機播放. 按隨機的順序播放命令列和清單檔案中指定的音訊檔案. .TP .BR \-\-stereo 強制立體聲輸出. .TP .BR \-\-reopen 強制在播放完一個檔案後重新開啟音訊裝置. .TP .BR \-\-8bit 強制8位元輸出. .TP .BR \-Z ", " \-\-random 完全隨機播放. (譯者注: 與 --shuffle 選項的區別是, 指定本選項有可 能重複多次播放同一檔案) .SH 運算元 .B mpg123 支援下面的運算元: .TP .IR file 指定輸入檔案的路徑. 這些檔案必須包含合法的MPEG-1/2音訊 Layer-1, Layer-2或Layer-3的位元流. 如果指定為'-', 將從標準輸入讀取MPEG數 據. 進一步, 如果以"http://"開頭, 則認為指定 了一個 .I URL (請看下一 節). .SH HTTP 支援 除了能從普通檔案和標準輸入讀取MPEG音訊流, .B mpg123 還支援透過HTTP協 議從萬 維網(WWW)上獲取由URL(統一資源定位符)指定的檔案. 一個URL是一個以 "http://" 為字首的字串, 當 .B mpg123 識別到這個字首, 它會嘗試開啟一個 到相應伺服器的連線, 接著獲取相應的檔案並進行解碼播放. .P 很多時候, 從WWW快取, 或所謂的網路代理比直接從伺服器更容易獲取檔案. 為利 用這種便利, .B mpg123 會依次檢查 .BR MP3_HTTP_PROXY ", "http_proxy "和" HTTP_PROXY, 這三個環境變數是否被設定, 並將第一個被設定的變數的值作為指定的代理. 如 果你需要自己指定另外的代理, 可以使用 .B \-p 命令列選項 (請看"選項"小節). 使用 .B "\-p none" 選項將不使用任何代理而直接連線伺服器, 即使前面所述的三個 變數被設定. .P 值得注意的是, 為了能從一個WWW伺服器獲取並流暢地播放MPEG音訊檔案, 必須有 足夠快的網路連線. 例如, 為了能播放速率為128kbit/s的MPEG檔案, 所需的 網路頻寬至少應該是128kbit/s加上網路協 議本身的傳輸開銷. 如果網路常發生 短時中斷, 可以試試用 .B \-b 選項指定一個緩衝區. 如果你所在的網路根本無 法達到實時傳輸MPEG音訊檔案所需的頻寬, 就只好使用 .BR lynx (1) 之類的軟體先將 檔案下載到本地硬碟上再進行播放了. .P 如果伺服器要求認證, 可以使用 .BR "\-u auth" 選項(請看"選項"小節)指定使用者名稱和密 碼. .SH 中斷 任何時候按Ctrl-C鍵都能中斷 .B mpg123 的執行. 如果有多個檔案在播放, Ctrl-C 會終止當前檔案的播放並 開始播放下一個檔案, 這種情況下, 如果你想終止整 個程式的執行, 必須連按兩次Ctrl-C (在約一秒鐘之內). .P 注意, 按了Ctrl-C之後聲音也許不會馬上消失, 這是因為系統的音訊裝置緩衝了 一部分資料. 這種延遲隨系統不同而不同, 但通常都不超過1到2秒. .SH 相關說明 .BR lynx (1), .BR sox (1), .BR intro (1) .SH 注意 MPEG音訊解碼, 特別是Layer-3的解碼, 需要CPU進行大量的運算. 為能達到實時 解碼, 你的計算機至少應該配備Pentium, Alpha, SuperSparc或效能相當的處 理器. 同時你可以使用 .B -singlemix 選項進行單聲道解碼, 對Layer-3, 這多少 能減少一點CPU負荷. 此外你也可以考慮使用 .BR \-2 " 和 " \-4 選項. .P 如果這些方法都不奏效, 試試用 .B \-s 選項將解碼結果送到標準輸出上並將其定向 到一個檔案中, 然後再用適當的工具播放這個檔案. 你也許會用到 .BR sox (1) 這個 工具, 它能將檔案轉換成你的音訊播放器所用的格式. .P 還有一點就是 .B mpg123 總是輸出16位元的立體聲資料(如果指定 .BR \-0 "或" \-1 選項中 的一個, 立體聲兩個聲道的資料是相同的). 如果系統硬體要求其它格式, 比如8 位元的單聲道的資料, 同樣可以使用 .BR sox (1) 進行轉化. .P 如果你的系統本身足夠快, 能夠進行實時解碼, 只是在系統負荷較重時(如定時任 務, 使用者遠端登入或啟動`大'程式等)出現停頓, 你應該用 .B \-b 選項指定一個不小 於1000K位元組的緩衝區. .SH BUGS .TP 已知的BUG和侷限性: .br MPEG-2, Layer-1和-2未經 測試. 可能不能工作.(Layer-3應該能工作.) .br 不提供對自由格式的音訊流的支援. .br 對Layer-1的支援未經 嚴格測試. .br 未進行CRC錯誤校驗. .br 沒有對DEC Digital Unix, Ultrix 和 IBM AIX平臺上的音訊硬體提供支 持, 因此在這些平臺上必須使用 .B \-s 選項. .SH 作者 .TP 主要作者: .br Michael Hipp .TP 使用了下面的程式碼或借鑑了其中的思想: .br MPEG Software Simulation Group (Base package) .br Philipp Knirsch (DCT36/manual unroll) .br Tobias Bading (subband synthesis) .br Jeff Tsay (DCT36) .br Thomas Woerner (SGI Audio) .br Damien Clermonte (HP-UX audio fixes) .br Oliver Fromme .P 網路參考資料: http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html .br http://www.heim3.tu-clausthal.de/~olli/mpg123/ .br (包含關於mpg123郵件組的資訊) .P 在此獲取最新版本: .br http://ftp.tu-clausthal.de/pub/unix/audio/mpg123 .SH "[中文版維護人]" linuxipy .SH "[中文版最新更新]" 2004/2/29 .SH "《中國linux論壇man手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR