私は、USBポートを持つCDプレーヤーで再生できるように、m4aからmp3に変換したいオーディオファイル(約1000)の負荷を持っています
のような簡単なことをしてみました。ffmpeg -i FILE.m4a FILE.mp3
のような簡単なことをしてみましたが、これはビットレートを非常に低い値に下げているようで、私が望んでいるものではありません
同様に、私は変換しようとしているファイルの中には320kのm4aの320kと96kのm4aのような低品質のものがあるので、320kなどの一定のビットレートを使用して変換したくありません
いくつかのファイルは、彼らが必要とするよりも何倍も大きくなるので、それは、強制的に320kには意味がないようです。同様に、それはそれらを96kよりもはるかに低いものに変換することによって私のすべての320kファイルを破壊することは意味がありません。(今のところ、ファイルは約50kに変換されています)
誰かこれをする方法を知っていますか?私が本当にしたいことは、ffmpegにディレクトリ内のすべてのm4aファイルをmp3に変換するように指示することです。(もちろん、ロッシーからロッシーファイル形式に変換することで、余分な損失が発生する可能性があります)
ご協力ありがとうございます。これが不可能な場合、ファイルを個別に変換する際に必要な品質を検出するスクリプトのようなものはありますか?
PS:私はインテルMacで作業していますが、Ubuntuの箱も持っています
56 user3728501 2014-01-20
VBR
ffmpeg
の-qscale:a
オプションを使用して、可変ビットレート(VBR)のMP3出力を作成することができます。FFmpeg Wikiより。VBR (可変ビットレート) MP3オーディオのエンコードより
-qscale:a
(またはエイリアス-q:a
) で品質を制御します。値はエンコーダ固有のものなので、 libmp3lame の場合は 0-9 の範囲で、値が低いほど高品質になります。0-3 は通常透過的な結果を生成し、4 (デフォルト) は知覚的な透過性に近く、6 は通常 “許容できる” 品質を生成します。オプション-qscale:a
はスタンドアロンの lame コマンドラインインターフェイスツールの-V
オプションにマップされています
あなたはどのような値があなたのために受け入れられるかを確認するために実験する必要があります。また、Hydrogen Audioも参照してください。推奨されるLAMEエンコーダの設定も参照してください
複数のファイルをエンコードします
ディレクトリ内のすべてのファイルをエンコードするには、Bash の “for loop” を使うことができます
$ mkdir newfiles
$ for f in *.m4a; do ffmpeg -i "$f" -codec:v copy -codec:a libmp3lame -q:a 2 newfiles/"${f%.m4a}.mp3"; done
Get ffmpeg
可能であれば、ffmpeg
の最近のビルドを使用することをお勧めします。OS X、Linux、Windows 用のビルドへのリンクは FFmpeg ダウンロード ページを参照してください。また、FFmpeg をコンパイルするためのガイドを見ることもできます
61 llogan 2014-01-20
FFmpeg コマンドライン版を使用します
MP3は正式に廃止された(2017年から)と時代遅れのコーデックです。世界はすでにAAC(より効率的な&品質のコーデック)に切り替えており、誰もがMP3の代わりに、これを使用する必要があります
ffmpeg -i filenameee.m4a -acodec copy output.aac
更新:残念ながら、一部の人々はまだMP3を要求し、オッケイ…ここにあります
ffmpeg -i filenameee.m4a -acodec libmp3lame -ab 256k output.mp3
29 T.Todua 2015-08-24
これは私には効果がありました
ffmpeg -i testing.m4v -b:a 192K -vn testing.mp3
4 user205987 2016-04-25
既存の回答を基に、Ubuntuマシン(16.04でテスト済み)で質問の内容を正確に実行するためのbashスクリプトを書きました。libav-tools
パッケージに含まれるavprobe
をインストールする必要があります。avprobe
は以下のコマンドでインストールできます
sudo apt-get install libav-tools
注:このスクリプトを実行しているフォルダのバックアップを作成し、実行前に何をしているのかを読んで理解するために最善の努力をすることが賢明です
私はあまり厳密にテストしていないので、YMMV
#!/bin/bash
mkdir "mp3s"
for f in *.m4a;
do
bitrate=$(avprobe "${f}" 2> >(grep bitrate) | sed 's/^.*bitrate://g' | sed 's/[^0-9]*//g')
bitrate="${bitrate}K"
new_filename=$(echo "${f}" | sed 's/.m4a$/.mp3/g')
ffmpeg -y -i "${f}" -acodec libmp3lame -ab "${bitrate}" "mp3s/${new_filename}"
done
1 jbowman 2017-05-23
あなたは48キロヘルツと入力ファイルで少なくとも24ビットで動作する場合は(ファイルエディタなどから)-q:a 0
は、flacのように大きなファイルではなく、20キロヘルツを再現します…しかし、低品質のオーディオは、あなたが再現される変換で作成されたディザリングや鼻リダクションオーディオエディタによって高周波数(ヒス)からのノイズを低減しない限り、その後、聞き取れないHFとしてデータファイルを使用しますが、高価なノイズ
0 Kaiser Lima 2016-05-01