Wie konvertiere ich programmatisch mp3 auf eine itunes-spielbare aac / m4a-Datei?

StackOverflow https://stackoverflow.com/questions/70096

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe nach einer Möglichkeit gesucht, eine mp3 zu aac programmatisch oder über die Kommandozeile ohne Glück zu konvertieren. Im Idealfall würde ich einen Code-Schnipsel, die ich von meiner Rails-Anwendung aufrufen können, die einen MP3 zu einem aac umwandelt. Ich installierte ffmpeg und libfaac und konnte eine aac-Datei mit folgendem Befehl aus:

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

Als ich die Ausgabedatei den Namen dest.m4a ändern, ist es nicht in iTunes abspielen.

Danke!

War es hilfreich?

Lösung

FFmpeg bietet AAC-Codierung Einrichtungen, wenn Sie sie in kompiliert haben. Wenn Sie Windows verwenden können Sie hier vollständige Binärdateien von greifen

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

Ich bin mir nicht sicher, wie man dies von Ruby nennen würde.

Auch sollten Sie die Bitrate entsprechend eingestellt werden.

Andere Tipps

Es gibt nur drei freie AAC-Encoder, die ich kenne, die über ein Kommandozeilen-Interface zur Verfügung:

  1. FAAC (LPGL), die ehrlich ist ziemlich schlecht (die Qualität sein wird deutlich schlechter als LAME bei gleicher Bitrate). Seine feine aber wenn Sie bereit sind, für höhere Bitraten gehen (>> 128 kbps) und müssen AAC für Kompatibilität, nicht aus Qualitätsgründen. Die gängigste Methode FAAC zu verwenden ist durch ffmpeg, wie libfaac.

  2. Nero AAC, der Kommandozeilen-Encoder, für die kostenlos unter Windows und Linux zur Verfügung, aber nur für nicht-kommerzielle Nutzung (und entsprechend Closed-Source).

  3. ffmpeg der AAC-Codierer, die noch in der Entwicklung ist und während ich es glaube nicht technisch funktioniert, ist es nicht stabil oder gut oder sogar schnell, da sie noch in der Anfangsphase. Es ist auch nicht im Kofferraum zur Verfügung, soweit ich weiß.

(Edit: Scheint iTunes ein auch haben könnte, ich vermute, seine Nutzungsbedingungen ähnlich sind Neros AFAIK seine Qualität vergleichbar ist.).

Ich weiß, ich zu dieser Party zu spät komme, aber ich bin die Prämisse dieser Frage in Frage stellt. Warum wollen Sie sogar einen MP3 zu einem „itunes spielbar“ Format konvertieren? iTunes übernimmt bereits MP3s nativ.

Es scheint, wie Sie eine unnötige Umwandlung tun, und da Sie von einem verlustbehafteten Format in ein anderes konvertieren, können Sie einige Qualität in den Prozess verlieren.

die Umwandlung App auf dem Linux / Fenster-Maschine Nach der Installation werden Sie Ihre Rails-Anwendung auf, verwenden Sie das „System ()“ Befehl in Ruby die Umwandlung Anwendung auf dem System aufzurufen. System ( "command_here");

in ffmpeg 0.5 oder eine spätere Verwendung ffmpeg -i source.mp3 target.m4a

für bessere Ergebnisse Metadaten zu übertragen und Standard Bitrate ffmpeg außer Kraft zu setzen gilt

ffmpeg -i "input.mp3" -ab 256k -map_meta_data input.mp3: output.m4a output.m4a

am besten nicht als ipod konvertieren spielt mp3 in Ordnung (ich weiß, gibt es eine solche Antwort, aber meine geringe Ansehen nicht erlaubt Abstimmung)

Eigentlich Syntax ist ffmpeg -i input.mp3 -c: a aac -strict -2 -b: a 256K output.m4a; richtige, wenn man „richtigen“ Bitrate zu emulieren. vgl .: Link für ein Übersetzungsschema. (RPMFusion Paket funktioniert auch in Ordnung:

Konfiguration: 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-Protektor-köpfigen --param = ssp-buffer-size = 4 -grecord-gcc-Schalter -m64 -mtune = generic‘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 statischen enable-shared enable-gpl disable-debug disable-Stripping --shlibdir = / usr / lib64 --enable -runtime-cpudetect

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top