音のサンプリング・レート
動画ファイルに含まれる音声のサンプリング・レートを変更することは、できるだけ避けることです。
ffmpeg は、PCMに複合したものをエンコーダの入力にします。エンコーダはサンプリングレートを変換しないので、このPCMデータを加工することになります。これは、補間によってデータを作り出すことになるので音質を劣化させます。
サンプリング・レートは、デコーダやエンコーダの調整のための数値ではなく、その入出力データであるマイクやスピーカーの振動版の動きの捉え方の問題だと言うことです。
1.一般的なサンプリング・レート
人の聴覚の可聴範囲から、8 - 192 KHz が使われます。
CD品質と言いますが、44.1KHzを指すようです。mp2 エンコーダの入力は、16-48KHzです。この範囲が、一般的な値のようです。
| 8,000 |
11,025 |
12,000 |
16,000 |
22050 |
24,000 |
32,000 |
44,100 |
48,000 |
48KHz 超の、96KHz,192KHz などは、コーデックによっては設定可能です。
2.サンプリング・レートと音質
波形をデジタル化する際の細かさですから、当然音質に直結しています。
音質は、サンプルのビット数とサンプリング・レートで表現されます。
3.サンプリング・レートとデータ量
サンプリング・レートが示しているのは、エンコード前、あるいはデコード後のデータの性質です。マイクやスピーカーの振動版の動きをデジタル化したときの条件で、秒当たり、何サンプルかを示します。
秒当たりのデータの量は、サンプルの量(何ビットか)とサンプリング・レートの積で、bps で表します。
A/D変換が16ビットなら、ステレオは、サンプルが32ビットとも考えられますが、
ビット・レート = サンプルのビット数 x チャネル数 x サンプリング・レート
です。
16ビット/サンプルで48KHzのステレオなら、1.536M bps になります。
この話は、未圧縮の場合のビット・レートです。ffmpeg のオプションに指定するは、エンコーダの出力のビット・レートです。
圧縮を行うエンコーダは、時間軸方向にも圧縮するので、サンプリング・レートは、出力のビットレートには直接つながりません。
同じ音源を、8KHzと48KHzで録音したPCMデータがあるとします。この二つのファイルのサイズは、8:48 = 1:6 です。同じビットレートを指定して、エンコードをすれば、同じ容量の8KHzと48KHzのファイルになります。ほぼ同じファイルサイズですが、後者のほうが音質が良いのは明らかです。
4.ffmpeg に設定するサンプリング・レート
- サンプリング・レートは変えない。無指定だと継承される。
- ただし、エンコーダのサポート範囲外なら、可能な近い値を指定する。
|