2008-09-16 13 views
5

私はmp3をaacにプログラムで変換する方法や、コマンドラインから運がない方法を探していました。理想的には、mp3をaacに変換する私のレールアプリから呼び出すことのできるコードスニペットがあります。私はffmpegのとlibfaacをインストールし、次のコマンドを使ってAACファイルを作成することができました:プログラムでmp3をiTunesで再生できるaac/m4aファイルに変換するにはどうすればよいですか?

ffmpeg -i test.mp3 -acodec libfaac -ab 163840 dest.aac

私はdest.m4aに、出力ファイルの名前を変更すると、それはiTunesで再生できません。

ありがとうございます!

答えて

9

FFmpegはAACエンコーディング機能を提供します。Windowsを使用している場合は、私はあなたがルビーからこれを呼ぶだろうかわからないhere

ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac 

から完全なバイナリをつかむことができます。

また、ビットレートを適切に設定してください。

+0

ええと、私はffmpegをインストールしましたが、私があなたが述べたコマンドを試してみると、次の警告/エラーが出てきました: 警告:ビットレートパラメータが低すぎます。これはkbits/sではなく、ビット/ sを引数にとります。 不明なエンコーダ 'aac' gitを使用してソースをダウンロードしました。他のコーデックをダウンロードする必要はありますか? –

+0

libfaacでコンパイルされたffmpegと、aacではなく、そのacodec libfaacが必要です。 -ab 128kは、あなたが指定した通り、-ab 128ではない正しい値です。 –

+0

私を訂正してくれてありがとう。これがクライアントに公開する前にテストする理由です:P – rpetrich

2

私はコマンドラインインターフェイスを介して利用可能であることを知っている唯一の3自由AACエンコーダがあります。正直かなり悪いです

  1. FAAC(LPGL)、(品質がより大幅に悪いことになるだろうが、同じビットレートのLAME)。あなたがより高いビットレート(>> 128kbps)に対応し、品質上の理由ではなく、互換性のためにAACを必要としているなら、その罰金です。 FAACを使用する最も一般的な方法は、libfaacとしてのffmpegです。

  2. Nero AACは、WindowsおよびLinux環境では無料で使用できますが、非営利目的でのみ使用できます(対応するクローズソースもあります)。

  3. ffmpegのAACエンコーダはまだ開発中ですが、技術的にはうまくいくとは思うが、まだ初期段階にあるので、安定しているとは言えません。私の知っている限り、トランクでも利用できません。

(編集:私は、私の知る限り、その品質が同等であるネロのに似ているその用語の使用を疑い、iTunesがあまりにものを持っている可能性があるようです。)

1

のlinux /ウィンドウマシン上で変換するアプリをインストールした後Railsアプリケーションを実行しているときは、Rubyでsystem()コマンドを使用して、システム上で変換アプリケーションを起動します。システム( "command_here");あなたがそれらをコンパイルした場合

0

私はmplayer(私はffmpegを使用すると信じています...)とラメを使って幸運を得ました。私は、スクリプトでそれを包んきたポイントに:

#!/bin/sh 

TARGET=$1 

BASE=`basename "${TARGET}"` 
echo TARGET: "${TARGET}" 
echo BASE: "${BASE}" .m4a 

# Warning! Race condition vulnerability here! Should use a mktemp 
# variant or something... 
mkfifo encode 
mplayer -quiet -ao pcm -aofile encode "${TARGET}" & 
lame --silent encode "${BASE}".mp3 
rm encode 
セキュリティ問題のため申し訳ありません

、私は私のmplayerやラメがfinkから来る...ある日電車に

をこれをきっ

1

私はこのパーティーに遅れていることを知っていますが、私はこの質問の前提に疑問を呈しています。なぜMP3を「iTunesで再生できる」形式に変換したいのですか? iTunesはすでにMP3をネイティブで処理しています。

あなたは不必要な変換を行っているようですが、損失の多いフォーマットから別のフォーマットに変換しているので、プロセスの品質が低下しています。 0.5以降は、メタデータを転送するために、より良い結果を得るため のffmpeg -i source.mp3のtarget.m4a

を使用すると、デフォルトのビットレートのffmpegのを上書きするffmpegの中

+0

itunesはmp3として曲をダウンロードしますが、すでにm4aとしてダウンロードしている場合は、それらを変換する必要があります。 Itunesもそうするだろうが、何百もの曲があれば、それぞれを右クリックして変換するのは面倒だ。すべての "モバイルデジタル音楽"(より良い言葉の欠如のために)選手、m4aをプレイ。あなたが最初に変換したいと思う理由です。 – Ramy

1

のffmpeg -i "input.mp3" を適用します - AB 256kの-map_meta_data input.mp3:output.m4aのoutput.m4a

iPodはmp3の罰金(私は、このような答えがあると知っているが、私の低い地位に投票を許可していません)実際に

0

、構文を果たしているとして変換しない最高ffmpです例えば-i input.mp3 -c:a aac -strict -2 -b:256k出力。 「正しい」ビットレートをエミュレートしている場合はより正確です。 cf:linkのコンパイルスキームです。 (rpmfusionパッケージもうまく動作します:

設定:--prefix =/usr --bindir =/usr/bin --datadir =/usr/share/ffmpeg --incdir =/usr/include/ffmpeg --libdir =-usr/lib64 --mandir =/usr/share/man --arch = x86_64 --optflags = ' - O2 -g -pipe -Wall -Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong - param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune =一般的な--enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable -libcdio --enable-libcelt --enable-libdc1394 --disable-indev = jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg - -enable-libpus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheorb --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 - -enable-libxvid --enable-x11grab --enable-avfilter --enable-avres十分な - 有効 - postproc - 有効 - pthreads - 無効な静的 - 可能な共有 - 有効なgpl - 無効なデバッグ - 無効なストリッピング--shlibdir =/usr/lib64 --enable-runtime- cfudetect

関連する問題