出力をLAMEにパイプできるように、AACファイルをWAVに変換しようとしています。私は具体的に次のことをしようとします。
find . -maxdepth 1 -type f -iname "*.m4a" | sort | while read file; do
ffmpeg -i "$file" -acodec pcm_s16le -ac 2 - | lame -b 256 -m s -q 0 - output.mp3
done
次のエラーが発生します。
Unable to find a suitable output format for 'pipe:'
Warning: unsupported audio format
-acodec
出力を指定する方法はありますか?ここでマンページを読んでください。
FFMPEGからMP3に変換できることを知っていますが、そうしたくありません。 ;)
答え1
さんのヒントありがとうございます。ミアティの答え、私は次のことを考えました。
ffmpeg -i file.m4a -f wav -acodec pcm_s16le -ac 2 - | \
lame -m s -b 320 -q 0 --replaygain-accurate - file.mp3
stdoutに出力するときはフォーマットを設定する必要があります。
答え2
答え3
走るとどうなりますか?
ffmpeg -i file.m4a -acodec pcm_s16le -ac 2 file.wav
それは私にとってうまくいきます。
問題が発生した場合、以前のエラーは意味があり、おそらくaacデコードまたはwavエンコーディングをサポートしていません。これにより、パイプはどの形式でフォーマットするべきかわからないため、失敗します。
この時点で考えられる解決策は、サポートされている形式でffmpegをコンパイルすることです。 (私はそれが無料ではないと信じているのでaacを推測しています)
これに従って-fを試してくださいページ、出力がstdout(または-)に設定されている場合は、コンテナを手動でフォーマットする必要があります。投稿にはmatroska(または.mkvコンテナ)を使用するように指示されています。
ffmpeg -i file.m4a -acodec pcm_s16le -f matroska -ac 2 -