$f=fopen("index.num","r"); $counter=fread($f,7); fclose($f); $counter++; $f=fopen("index.num","w"); fwrite($f,$counter); fclose($f); ?>
網友 Tiberius 的 LAME 使用/參數說明
2000/11/19刊出
本頁瀏覽次數:
使用 RazorLame
因為 LAME 是一個文字模式的程式,直接執行並不方便,下一次指令又只能夠壓縮一個檔案,因此使用前導程式輔助可以說是必要的事情。
RazorLame 的介面簡單明瞭,方便使用,要設定的地方也並不多;在 Options -> General 之中,指定 LAME 執行檔的位置,然後就可以在其他的頁面調節各種壓縮的參數。如果想試試一些實驗性(尚未正式公布)的參數,或者懶得慢慢檢查每一頁的設定,可以直接在 Options -> Advanced 中把寫好的參數填入 Custom Options 中,並選取 Only use custom options 即可。
Options -> Advanced 裡面,有一個 Delete source file after encoding 的選項,選取之後,編碼完成的 WAV 檔會被自動刪除;蠻方便的。
這裡是 RazorLame 設定對照 LAME 參數的表格,可以對照以下的參數說明查閱各項設定值的資料。
General 頁面 | |||||
-b | Bitrate | -m | Mode | ||
Advanced 頁面 | |||||
-h -f --voice | Optimization | -p | Include CRC-Checksums | ||
-o | Copy | -c | Copyrighted | ||
VBR 頁面 | |||||
-v | Enable Variable Bitrate (VBR) | -B | Maximum VBR Bitrate | ||
-V | Quality | -t | Disable writing of the VBR tag | ||
-F | Strictly enforce minimum bitrate | --abr | Use ABR instead of VBR, Target bitrate for ABR | ||
Expert 頁面 | |||||
--athonly --noath | ATH Control | -d | Allow block types to differ between channels | ||
-k | Disable all filtering | --nores | Disable bit reservoir | ||
--noshort | Disable short blocks | --strictly-enforce-iso | Comply as much as possible to ISO MPEG spec | ||
Audio Processing 頁面 | |||||
--highpass | Highpass filtering frequency | --highpass-width | Width of Highpass filter | ||
--lowpass | Lowpass filtering frequency | --lowpass-width | Width of Lowpass filter | ||
--resample | Output sampling frequency |
LAME 參數說明
以下的中文解釋,是直接翻譯 LAME 3.87 的線上說明得來的,都只是一些概念性的解說;個別參數的詳細說明翻譯部分參照 Scorpio 網友在數位音訊處理討論區所貼的 LAME 常用參數用法 這一篇文章,在這裡要對他表達謝意。
以下斜體的部分,表示可以帶入後面說明的其他選項,而說明中粗體字的部分就是這些多重選項的預設值。
LAME 命令行格式: lame [選項] <輸入檔名> [<輸出檔名>]
檔案輸入選項 | |
-r | 指定輸入檔案是 Raw PCM 格式 (.PCM 檔案)。 |
-x | 強迫來源檔案的位元組順序 (byte-order) 調換(壓縮跨平台的檔案時使用)。 如果壓縮出來的檔案是雜音,可以試試看這一個選項。 |
-s sfreq | 指定來源檔案的取樣頻率(單位為 KHz),預設為 44.1 KHz。 只有在輸入檔案為 PCM 格式時才需要使用,其餘情形會自動從檔頭判斷。 |
--mp1nput | 輸入的檔案是 MP1 格式(利用內建的 mpglib 解碼成 Wave 檔案,下同)。 |
--mp2input | 輸入的檔案是 MP2 格式。 |
--mp3input | 輸入的檔案是 MP3 格式。 |
--ogginput | 輸入的檔案是 Ogg Vorbis 格式。 |
動作模式選項 | |
-m mode |
mode : (s) Stereo (j) Joint Stereo (f) Force ms_stereo (m) Mono 當使用的 VBR 品質為 4-9 或者 CBR <= 160 Kbps 時,預設為 Joint Stereo。 其餘時則預設為 Stereo。 Stereo: 單純雙聲道立體聲模式,在此種壓縮模式中,LAME 將不會計算雙聲道之間的資料相關性,但是會協調分配雙聲道的資料流量,自動分配較多的 Bit 給複雜的聲道使用。 Joint Stereo: 在這個壓縮模式下,LAME 會利用雙聲道之間的資料相關性進行演算。左右聲道資料類似時,會利用 M/S (Mid/Side) 編碼技術,計算中央聲道 (L+R) 和兩側聲道差異 (L-R) 的值,並且會分配較多的 Bit 給中央聲道,增加資料記錄頻寬。 不當的使用 Joint Stereo 模式可以造成人耳可辨的壓縮失真,太多在 Stereo <-> Joint Stereo 之間的切換也不好聽。為了決定何時要在兩種模式之間切換,LAME 使用了比 ISO 文件複雜許多的演算法進行判別,因此可以放心使用 Joint Stereo 模式。 Force: 強迫所有的 frame 全部使用 M/S Joint Stereo 編碼,速度可以增快很多,但是不建議使用。 Mono: 單聲道編碼模式。 |
-a | 將立體聲檔案混音成單聲道後編碼。 混音的演算法是將左右聲道加總後,衰減 6dB。 這個選項只有在輸入檔案為 PCM 格式時才需要,其他情形會從檔頭自動判斷。 要將立體聲的 PCM 檔案編碼成單聲道時,可以使用 "-m s -a",對於 WAV 或 AIFF 檔案,不管是立體聲或是單聲道輸入, 使用 "-m m" 都會編碼成單聲道模式。 |
-d | 允許各聲道有不同的編碼區塊模式 (block type) |
-S | 不要印出執行進度和 VBR Bitrate 使用率圖表 |
--disptime seconds | 每隔 seconds 秒印出一次執行進度 |
--ogg | 編碼成 Ogg Vorbis 檔案 |
--freeformat | 編碼成 Free-Format 格式的檔案。 下了此參數後,可以使用 -b 參數,指定壓縮成任何 8 以上的整數 Bitrate,但是大部分的 Player 均不支援這種格式的播放。 支援的 Player 列表: FreeAmp: 440 Kbps max in_mpg123: 560 Kbps max l3dec: 310 Kbps max LAME: 560 Kbps max |
--decode | 輸入 MPEG 或 OGG 檔案,解碼成 Wave 檔。 |
-t | 解碼成 Wave 檔案時,不寫入檔頭資訊。 |
--comp arg | 自動調整 Bitrate,盡量接近 arg 的壓縮百分比率。 |
--scale arg | 將輸入的聲音資料,放大 arg 倍之後編碼。 |
--athonly | 只使用 ATH (Absolute Threshold of Hearing) 作遮罩運算。 這個選項使 LAME 忽略掉心理音響學模型 (Psycho-acoustic Model) 的輸出結果,只採用絕對聽覺底限作壓縮的判斷。 在高 Bitrate 的情形下或許可以增進音質,或者是拿來進行實驗。 |
--noath | 不使用 ATH 進行遮罩運算,只使用心理音響模型。 |
--athlower arg | 將 ATH 的底限降低 arg dB |
--raise-smr arg | 0 <= arg <= 1 調節 SMR 參數。 |
--short | 使用短區塊。 |
--noshort | 不使用短區塊。 |
--voice | (實驗性)人聲編碼模式。 |
--preset type | type : phone, phon+, lw, mw-eu, mw-us, sw, fm, voice, radio, tape, hifi, cd, stereo 使用一些預設的編碼參數,可以輸入 --preset help 獲得詳細資料。 |
固定 Bitrate 模式 (CBR) 選項 | |
-h | 高品質模式,啟動某些可以增進品質的運算,但是會降低一些速度(建議使用)。 這個選項在 VBR 壓縮模式中是預設開啟的。 |
-f | 快速模式,但會降低品質(預設)。 雜音成型 (Noise Shaping) 將會被關閉,但是心理音響模型還是會被用來計算 Bit 分配和 Pre-Echo 偵測。 |
-b bitrate | 指定壓縮的 Bitrate。可以使用的 Bitrate 如下: MPEG Layer 1 (32K, 44.1K, 48K): 32 40 48 56 64 80 96 112 128 160 192 224 256 320 MPEG Layer 2 (16K, 22.05K, 24K): 8 16 24 32 40 48 56 64 80 96 112 128 144 160 預設值 MPEG1 為 128Kbps,MPEG2 為 80Kbps。 不管做哪一種設定,為了節省空間,被判斷為靜音的部分,會自動採用最小的 Bitrate。 |
平均 Bitrate 模式 (ABR) 選項 | |
--abr bitrate | 不指定品質,而指定想要的平均 Bitrate,LAME 會自動使用不同的 frame 大小。 bitrate 許可的範圍是 4-310,可以使用這個範圍內的任一個整數。 同時可以使用 -b 和 -B 指定變動範圍的上下限,像是 lame --abr 123 -b 64 -B 192 a.wav a.mp3 將會限制可以使用的 frame 大小範圍在 64-192 Kbits 之間。 使用 -B 是不建議的。 一個 128Kbps 的 MP3 資料流,因為可以使用 Bit Reservoir,所以有一些 frame 其實可以使用到與 320Kbps frame 相同大小的空間。 VBR 並不使用 Bit Reservoir,因此需要允許使用 320Kbps 大小的 frame 才能達到與 CBR 相同的彈性。 |
可變 Bitrate 模式 (VBR) 選項 | |
-v | 使用 VBR 模式。 |
--vbr-old | 使用舊的 VBR 壓縮演算法。 |
--vbr-new | 使用新的 VBR 壓縮演算法(預設)。 |
-V quality | 指定 VBR 的壓縮品質,範圍為 0-9 (數字越小品質越高),預設值為 4。 |
-b bitrate | 指定 Bitrate 變動的下限,預設為 32 Kbps。 |
-B bitrate | 指定 Bitrate 變動的上限,預設為 320 Kbps。 |
-F | 強迫遵守 -b 的限制,適合無法解碼低 Bitrate 的 MP3 隨身聽使用。 不啟動這一個選項,當輸入為類比靜音(強度低於 ATH)時,將會忽略最低 Bitrate 的限制,使用壓縮格式中的最低 Bitrate。 |
-t | 不寫入 Xing VBR 檔頭,會造成時間總長顯示不正確以及搜尋功能失效等問題。 |
--nohist | 壓縮檔案時,不顯示 VBR Bitrate 使用率圖表。 |
MP3 檔頭/資料流選項 | |
-c | 標記檔案為有版權 (copyrighted)。 |
-o | 標記檔案為非原始檔 (non-original)。 |
-p | 錯誤保護,會在每個 frame 佔用 16bit 進行 CRC 編碼(可能減損音質)。 |
--nores | 不使用 Bit Reservoir 功能(會嚴重減損 CBR 音質)。 |
濾波器選項 | |
-k | 保留住所有頻率。 壓縮時,為了把資料流量保留給最重要的頻段,提高壓縮出來的品質,LAME 會自動隨著所選用的 Bitrate 指定高低通濾波器的數值。 如果把頻寬設定的比預設值還要大的話,可能會造成無法預期的鳴響以及失真,小心使用! |
--lowpass freq | 設定低通濾波器的起始點為 freq KHz 高於這個頻率的聲音會被截除。 |
--lowpass-width freq | 設定低通濾波器的寬度,預設為 15% 的 --lowpass 頻率。 |
--highpass freq | 設定高通濾波起始點為 freq KHz 低於這個頻率的聲音會被截除。 |
--highpass-width freq | 設定高通濾波器的寬度,預設為 15% 的 --highpass 頻率。 |
--resample freq | 輸出檔案的取樣頻率。 |
--cwlimit freq | 計算音色到指定的頻率。 |
LAME 內建設定 (--preset) 參考表
phone | phon+ | lw | mw-eu | mw-us | sw | fm | voice | radio | tape | hifi | cd | studio | |
--resample | 8 | 11 | 11 | 11 | 16 | 11 | 32 | 24 | |||||
--highpass | 0.125 | 0.1 | |||||||||||
--lowpass | 3.4 | 4 | 4 | 4 | 7.5 | 4 | 15 | 12 | 15 | 18 | 18 | ||
--lowpass-width | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.9 | 0.9 | ||
--noshort | yes | yes | no | no | no | no | no | yes | no | no | no | no | no |
-mm | -mm | -mm | -mm | -mm | -mm | -mj | -mm | -mj | -mj | -mj | -ms | -ms | |
-h | -h | -h | |||||||||||
-b | 16 | 24 | 24 | 24 | 40 | 24 | 112 | 56 | 128 | 128 | 160 | 192 | 256 |
VBR 模式時增加的參數: | |||||||||||||
-V | 6 | 4 | 3 | 3 | 3 | 3 | 3 | 4 | 3 | 3 | 2 | 1 | 0 |
-b | 8 | 16 | 16 | 16 | 24 | 16 | 80 | 40 | 96 | 112 | 128 | 192 | 160 |
-B | 24 | 32 | 56 | 56 | 112 | 56 | 256 | 112 | 256 | 256 | 320 | 320 | 320 |
舉例:如果輸入 lame --preset hifi a.wav,則效果跟 lame --lowpass 18 --lowpass-width 0.9 -mj -h -b 160 完全相同。