ビットレートが可変のmp3
ファイルを変換するには、どのコマンドを使用する必要wav
がありますか。それとも、ソースオーディオがfixed
ビットレートかどうかをどのように知ることができvariable
ますか?
ビットレートが可変のmp3
ファイルを変換するには、どのコマンドを使用する必要wav
がありますか。それとも、ソースオーディオがfixed
ビットレートかどうかをどのように知ることができvariable
ますか?
回答:
ffprobe song.mp3
コマンドを使用して、入力ファイルのビットレートに関する情報を取得できます。ただし、これは最初のフレームのビットレートのみを示します。MP3ファイルのVBRは通常、各フレームのビットレートを変更するだけで実装されるため、使用されているかどうかは、最初のフレームのヘッダーを読み取るだけでは判断できません。私は通常、他のオーディオファイルプレーヤーソフトウェアを使用して、VBRが使用されているかどうかを判断します。
非可逆出力コーデック(MPEG-1レイヤーIIIやAACなど)を使用する場合、ffmpegは出力ストリームのデフォルトビットレートまたは可変ビットレートを選択します。エンコーダー自体に依存します。
ロスレスコーデックの場合、各サンプルが事前定義されたビット数を使用するため、可変ビットレートを設定できません。ffmpeg -i song.mp3 song.wav
したがって、44,100 Hzのサンプルレートとサンプルあたり16ビットのPCMエンコードされた WAVファイルが取得されます。これにより、コンテナ全体で約1411 kBit / sになり、MP3入力ファイルよりもはるかに大きい可能性があります。
PCMエンコードされたWAVファイルのファイルサイズを小さくしたい場合は、ビット深度の少ないサンプル形式を設定し(-encoders
それらの完全なリストについてはオプションを参照)、低いサンプルレートを選択します(-ar 22050
たとえば、22.05 kHzを使用します)。
両方を実行する例を次に示します。
ffmpeg -i song.mp3 -acodec pcm_u8 -ar 22050 song.wav
-sample_fmts
オプションを参照)。-ar 128k
は、サンプルレートが通常の44,1または48 kHzではなく、128,000 Hzになることを意味します。
ffmpeg -i song.mp3 song.wav
適切なビットレート(おそらく44.1khz)が選択されるため、おそらくを実行する方が良いでしょう。wavに変換する場合は、おそらくそれ以上の情報を失いたくはないでしょう。
ffpmeg
は、適切なサンプリングビットレートを選択することをお勧めします。song.mp3
入力データに。これにより、出力ビットマップwav
ファイルのビットレートが最適になります。これは、ファイルサイズが大きいことを意味しますが、データのオーバーフィッティングでは: `ストリーム#0:0:オーディオ:mp3、44100 Hz、ステレオ、s16p、128 kb / s`
-ar 44100
、ffmpegが適切な16ビットコーデックを自動的に使用する場合でも必須です。
@ naught101のコメントによると、私はこのプロセスに従って最良のものを検出しますacodec
。
$ ffmpeg -formats | grep PCM
DE f32be PCM 32-bit floating-point big-endian
DE f32le PCM 32-bit floating-point little-endian
DE f64be PCM 64-bit floating-point big-endian
DE f64le PCM 64-bit floating-point little-endian
DE s16be PCM signed 16-bit big-endian
DE s16le PCM signed 16-bit little-endian
DE s24be PCM signed 24-bit big-endian
DE s24le PCM signed 24-bit little-endian
DE s32be PCM signed 32-bit big-endian
DE s32le PCM signed 32-bit little-endian
DE u16be PCM unsigned 16-bit big-endian
DE u16le PCM unsigned 16-bit little-endian
DE u24be PCM unsigned 24-bit big-endian
DE u24le PCM unsigned 24-bit little-endian
DE u32be PCM unsigned 32-bit big-endian
DE u32le PCM unsigned 32-bit little-endian
この時点で、のどちらかを選択するためにあなたのプラットフォームを検討しbig-endian
、little-endian
ビットレートを選択します。
$ ffmpeg -i sample.mp3
[mp3 @ 0x7fb33180da00] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'sample.mp3':
Metadata:
title : Saturday
artist : Winterwood
album : Love In The Heart
track : 2/15
TPA : 1/1
encoded_by : iTunes 11.0.1
genre : Country & Folk
date : 1997
Duration: 00:04:27.76, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
このオーディオファイルは、mp3
(入力ファイルの拡張子に関係なく、バイト数を確認するだけでわかりません)ビットレートが128 kb/s
、コーデックがs16p
、サンプリングがで44100 Hz
あることがわかります。したがって、それに応じて選択します。
$ ffmpeg -i sample.mp3 -acodec pcm_s16le -ar 44100 sample.wav
Input #0, mp3, from 'sample.mp3':
Metadata:
title : Saturday
artist : Winterwood
album : Love In The Heart
track : 2/15
TPA : 1/1
encoded_by : iTunes 11.0.1
genre : Country & Folk
date : 1997
Duration: 00:04:27.76, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
File 'sample.wav' already exists. Overwrite ? [y/N] y
Output #0, wav, to 'sample.wav':
Metadata:
INAM : Saturday
IART : Winterwood
IPRD : Love In The Heart
IPRT : 2/15
TPA : 1/1
ITCH : iTunes 11.0.1
IGNR : Country & Folk
ICRD : 1997
ISFT : Lavf56.4.101
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Metadata:
encoder : Lavc56.1.100 pcm_s16le
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
size= 46125kB time=00:04:27.75 bitrate=1411.2kbits/s
video:0kB audio:46125kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000457%
Macを使用している場合、オーディオwhite noise
の開始/終了がない場合(mp3の元のオーディオに一定のミリ秒/秒のオーディオがない場合)をチェックできます。
$ afplay sample.wav
そしてもちろん、ビットマップを再確認できます:
$ ffmpeg -i sample.wav
Input #0, wav, from 'sample.wav':
Metadata:
artist : Winterwood
date : 1997
genre : Country & Folk
title : Saturday
album : Love In The Heart
track : 2/15
encoder : Lavf56.4.101
encoded_by : iTunes 11.0.1
Duration: 00:04:27.76, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s