ruby - mac - m4a to mp3




Come faccio a convertire a livello di codice mp3 in un file aac/m4a eseguibile da itunes? (5)

Dopo aver installato l'app di conversione sul computer Linux / Windows su cui viene eseguita l'applicazione Rails, utilizzare il comando "system ()" in Ruby per richiamare l'applicazione di conversione sul sistema. Sistema ( "command_here");

Ho cercato un modo per convertire un mp3 in aac programmaticamente o tramite la riga di comando senza fortuna. Idealmente, avrei uno snippet di codice che potrei chiamare dalla mia app per rails che converte un mp3 in un aac. Ho installato ffmpeg e libfaac e sono stato in grado di creare un file AAC con il seguente comando:

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

Quando cambio il nome del file di output in dest.m4a, non viene riprodotto in iTunes.

Grazie!


Esistono solo tre codificatori AAC gratuiti che so che sono disponibili tramite un'interfaccia a riga di comando:

  1. FAAC (LPGL), che è onestamente piuttosto scadente (la qualità sarà significativamente peggiore di LAME allo stesso bitrate). Tuttavia, se siete disposti ad aumentare i bitrate (>> 128kbps) e avete bisogno di AAC per la compatibilità, non per motivi di qualità. Il modo più comune di usare FAAC è attraverso ffmpeg, come libfaac.

  2. Nero AAC, il codificatore della riga di comando per il quale è disponibile gratuitamente sotto Windows e Linux, ma solo per uso non commerciale (ed è corrispondentemente closed-source).

  3. Il codificatore AAC di ffmpeg, che è ancora in fase di sviluppo e, mentre credo che funzioni tecnicamente, non è affatto stabile, buono o addirittura veloce, poiché è ancora nelle fasi iniziali. Non è disponibile nel bagagliaio, per quanto ne so.

(Modifica: Sembra che anche iTunes ne abbia uno, sospetto che i suoi termini di utilizzo siano simili a quelli di Nero. AFAIK la sua qualità è paragonabile.)


FFmpeg fornisce servizi di codifica AAC se li hai compilati. Se stai usando Windows puoi prendere i binari pieni da qui

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

Non sono sicuro di come lo chiameresti rubino.

Inoltre, assicurarsi di impostare il bitrate in modo appropriato.


Mi rendo conto che sono in ritardo per questa festa, ma sto mettendo in discussione la premessa di questa domanda. Perché vuoi persino convertire un MP3 in un formato "itunes giocabile"? iTunes gestisce già gli MP3 in modo nativo.

Sembra che tu stia facendo una conversione non necessaria, e dal momento che stai convertendo da un formato con perdite a un altro, stai perdendo un po 'di qualità nel processo.


In realtà, la sintassi è ffmpeg -i input.mp3 -c: aac -strict -2 -b: a 256k output.m4a; più corretto se si emula il bitrate "corretto". cf .: link per uno schema di compilazione. (Anche il pacchetto rpmfusion funziona bene:

configurazione: --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-switch -m64 -mtune = generico '--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-libopus --enable-libpulse - enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab - enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir = / usr / lib64 --enable-ru Ntime-cpudetect





m4a