MacOS Sierra(10.12.2)でFFmpegバージョン3.2.2とLAME 3.99.5を使用していますが、MP3にエンコードするためにFFmpeg出力(FLACファイルから)をLAMEにパイプするコマンドがあります。
ffmpeg -y -v quiet -nostdin -i test.flac -b:a 320k -ac 2 -ar 44100 -f s16le -acodec pcm_s16le - | \
lame --quiet -r -m s --lowpass 19.7 -V 3 --vbr-new -q 0 -b 96 --scale 0.99 --athaa-sensitivity 1 - test.mp3;
正常に動作し、結果には満足していますが、パイプのFFmpeg部分から-v quiet
設定を削除すると、実際に何が起こっているかを確認できるため、出力に次のことがわかります。
Stream mapping:
Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native))
size= 81858kB time=00:07:55.18 bitrate=1411.2kbits/s speed=41.2x
変換プロセス中にビットレートが1411.2kbits
として表示され、設定されている-b:a 320k
オプションから設定された320kのビットレートではないことに注意してください。
これは予想される動作ですか?そのビットレート設定が無視されているため、-b:a 320k -ac 2 -ar 44100
を使用してRAW出力を介して出力をパイピングする場合、オーディオパラメータのチャンク全体(-f s16le -acodec pcm_s16le
)は不要ですか?
これは予想される動作ですか?
はい、非圧縮フォーマットを出力する場合、ビットレート(-b:a
)は無視されます。結果のビットレートは次のとおりです。
sample rate * bits per sample * number of channels = bitrate
だからあなたの場合:
44100 * 16 * 2 = 1411200 bits/s or 1411.2 kilobits/s
RAW経由で出力をパイピングする場合、オーディオパラメータ(
-b:a 320k -ac 2 -ar 44100
)のチャンク全体が不要ですか?
ビットレートは不要です。何らかの理由でチャンネル数やサンプルレートを変更したい場合は、-ac
と-ar
を維持できます(ただし、変更する必要はほとんどありません)。