6

現在使用されているコマンドは

    `sox input.wav -G -t mp3 -r 16k test.mp3`

しかし、これはビットレート 24.0 kbps のファイルを作成しています。

出力ファイルのビットレートを16.0kbpsにする方法は?

4

1 に答える 1

16

あなたが見つけたsoxフォーマットのマニュアルでは、それが-Cオプションです。興味深いと思われるかもしれないので、以下にセクション全体を引用します。

ただし、sox test.wav -C 16.01 test.mp3テストファイル (48kHz/16bit) を呼び出すと、32kbps に変換されます。呼び出すlame test.wav -b 16 -q 0 test.mp3と 16kbps になりますが、test.mp3 は 8kHz のサンプルレートに変換されます。しかし、本当に 48kHz を維持したい場合は、lame test.wav -b 16 -q 0 --resample 48000 test.mp332kbps も取得します。したがって、高いサンプルレートと高い圧縮率の間には妥協点があることがわかります。

MP3 圧縮オーディオ; MP3 (MPEG Layer 3) は、オーディオとビデオの圧縮に関する特許が問題となっている MPEG 標準の一部です。これは、品質の損失がほとんどなく、良好な圧縮率を実現する非可逆圧縮形式です。

MP3 は特許を取得しているため、SoX を MP3 サポート付きで配布するには、特許所有者の料金が発生します。MP3 をサポートする SoX を必要とするユーザーは、現在、ソース コードから MP3 ライブラリ (LAME および MAD) を使用して SoX をコンパイルおよびビルドするか、場合によっては、ビルド済みの動的にロード可能なライブラリを入手する必要があります。

MP3 ファイルを読み取る場合、最大 28 ビットの精度が保存されますが、ユーザーには 16 ビットしか報告されません。これは、16 ビット出力ファイルを書き込むデフォルトの動作を可能にするためです。ユーザーは、出力ファイルに高い精度を指定して、この追加情報の損失を防ぐことができます。MP3 出力ファイルは、エンコード中に最大 24 ビットの精度を使用します。

MP3 圧縮パラメータは、次のように SoX の -C オプションを使用して選択できます (現在の構文は変更される可能性があることに注意してください)。

LAME エンコーダーの主要なパラメーターはビット レートです。−C 値の値が正の整数である場合、ビットレートは kbps と見なされます (たとえば、128 を指定すると、128 kbps が使用されます)。

2 番目に重要なパラメータは、おそらく「品質」(実際にはパフォーマンス) であり、エンコード速度と品質のバランスを取ることができます。LAME では、0 は最高品質を指定しますが非常に遅く、9 は低品質を選択しますが高速です。(5 がデフォルトで、高品質のエンコードとの適切なトレードオフとして 2 が推奨されます。)

−C 値は float であるため、小数部分を使用して品質を選択します。128.2 は、品質 2 の 128 kbps エンコーディングを選択します。このアプローチには 1 つの問題があります。デフォルトの品質で 128 kbps エンコーディングを指定するには 128 が必要なので、0 はデフォルトを使用することを意味します。最高品質 (128.01 または 128.99) を指定するには、0 の代わりに .01 (または .99) を使用する必要があります。

LAME はビットレートを使用して一定のビットレートを指定しますが、可変ビット レート (VBR) を使用するとより高い品質を実現できます。VBR 品質 (実際のサイズ) は、0 から 9 までの数値を使用して選択されます。高品質で大きなファイルには 0 の値を使用し、低品質の小さなファイルには 9 を使用します。4 がデフォルトです。

VBR の選択を −C 値フロートに絞り込むために、負の数を使用して VRR を選択します。-4.2 は、高品質 (速度) のデフォルトの VBR エンコーディング (サイズ) を選択します。1 つの特別なケースは 0 です。これは有効な VBR エンコーディング パラメータですが、有効なビットレートではありません。圧縮値 0 は常に高品質の VBR として扱われます。その結果、-0.2 と 0.2 の両方が最高品質の VBR (サイズ) および高品質 (速度) として扱われます。

于 2014-11-03T19:46:27.200 に答える