Gibt es eine Möglichkeit, Audiodateien unter Mac OS X oder über die Befehlszeile ohne iTunes zu konvertieren?


95

Jetzt weiß ich, dass ich iTunes zum Konvertieren von Musik verwenden kann. Aber es ist ein ziemlicher Schmerz. Ich frage nur: Ist in OS X oder UNIX etwas zum Konvertieren von Dateien eingebaut? Im Moment möchte ich einfach .mp4 in .mp3 konvertieren.


2
Betrachten Sie Open Source-Pakete als Drittanbieteranwendungen? Oder möchten Sie bei Apple-Produkten bleiben, die nur mit dem Betriebssystem geliefert werden? Können Sie das in Ihrer Frage klarstellen?
Sairam

Ich würde es gerne mit vorinstallierter Software machen.
James Litewski

3
Ein Kommentar zur FFmpeg-Lösung (mangelnde Reputation). Die Ausgabequalitätskontrolle für MP3 kann über codec:a libmp3lameund qscale:a [0-9]options erfolgen (siehe FFmpeg-Wiki ). Verwenden Sie zum Beispiel: ffmpeg out.mp3 -i in.mp4 -codec: a libmp3lame -qscale: a 4 Dies kann auch zum Verringern der Größe von MP3-Dateien verwendet werden.
Trybik

Antworten:


16

Dougs AppleScripts für iTunes

einschließlich

Konvertieren und Exportieren 2.0

ist eine Sammlung nützlicher Skripts, die Sie über den Finder oder die Befehlszeile ausführen können. Natürlich verwenden sie alle iTunes, um Daten zu verarbeiten, aber Sie finden es möglicherweise bequemer, als die GUI- und Mausbefehle von iTunes zum Konvertieren von Dateien zu verwenden.


Wie führen Sie dieses Skript aus? Ich sehe keine Anweisungen auf der Website.
CoolAJ86

Installations- und Konfigurationsanweisungen des Mannes, der die Skripte zur Verfügung stellt, finden Sie hier: dougscripts.com/itunes/itinfo/downloadfaq.php

7
Hinweis für diejenigen, die nicht wissen: Dies ist keine Befehlszeilenlösung. Es wird ein Symbol in der iTunes-Symbolleiste angezeigt. Sie müssen eine Sammlung von Songs auswählen und dann das Skript aus dem Dropdown-Menü auswählen. Für AAC werden standardmäßig 256 Kbit / s verwendet. Es wird nirgendwo in der Dokumentation erwähnt (was ich finden konnte), aber Sie können es in den letzten 2 oder 3 Sekunden im Screencast sehen.
CoolAJ86

159

Ich habe ffmpegüber MacPorts installiert , obwohl es auch über Homebrew ( brew install ffmpeg) verfügbar ist oder die Binärdatei heruntergeladen hat .

Um so etwas zu konvertieren (ohne mir Gedanken über die Audioqualität zu machen, über die ich nichts weiß), benutze ich einfach:

ffmpeg -i input.mp4 output.mp3

Hier ist ein Beispiel, wie Sie eine .wavDatei .mp3von ihrer Website in konvertieren würden :

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3 

Hier ist ein Beispiel, wie Sie alle .wavDateien finden , die größer als 50 MB sind, sie in MP3 konvertieren und dann die ursprüngliche WAV löschen (auch bekannt als Batch-Modus - ändern Sie den Befehl find, um Ihren "Batch" zu erstellen).

find . -size +50M -iname *.wav -type f -exec ffmpeg -i {} -codec:a libmp3lame -qscale:a 2 {}.mp3 -y \; -exec /bin/rm {} \;

Danke für die einfache Antwort. Wie konvertiert man eine Dateiliste? Hat es auch serielle oder parallele Optionen?
Khaled Annajar

ffmpeg funktioniert auch, um ogg in mp3 umzuwandeln:ffmpeg -i beep.ogg beep.mp3
rgkobashi

32

OS X wird mit keinem anderen MP3-Encoder als dem in iTunes ausgeliefert. Zum Konvertieren in MPEG4-Audio können Sie den CLI-Befehl afconvert verwenden (afconvert -h für verfügbare Optionen). Zum Beispiel:

afconvert track.aiff -o track.m4a -q 127 -b 128000 -f m4af -d aac

Hilfe für dieses Tool erhalten Sie, indem Sie "afconvert --help" ausführen, da "man afconvert" nicht auf eine nützliche Handbuchseite verweist.


1
+1, aber ich wünschte wirklich, jemand würde einen Zeiger auf eine ausführliche Dokumentation setzen. Ich habe es durch Versuch und Irrtum und Rätselraten zum Arbeiten gebracht, aber viele der Optionen, die ich vielleicht hätte verwenden sollen, sind sehr, sehr kurz dokumentiert.
Tripleee

3
Die Manpage ist neben nutzlos ... :-(
Greenonline

1
Ich fand dieses Tutorial informativ. Gültige Argumente für Daten und Dateiformate können mitafconvert -hf
chb

5

afconvertwerde nicht schreiben. mp3Dateien. Auch wenn es in der Hilfe als Format aufgeführt ist:

MacBook-Pro:local user$ afconvert -hf
Audio file and data formats:
    '3gpp' = 3GP Audio (.3gp)
               data_formats: 'Qclp' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'samr' 
    '3gp2' = 3GPP-2 Audio (.3g2)
               data_formats: 'Qclp' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'samr' 
    'adts' = AAC ADTS (.aac, .adts)
               data_formats: 'aac ' 'aach' 'aacp' 
    'ac-3' = AC3 (.ac3)
               data_formats: 'ac-3' 
    'AIFC' = AIFC (.aifc, .aiff, .aif)
               data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 UI8 'ulaw' 
                             'alaw' 'MAC3' 'MAC6' 'ima4' 'QDMC' 'QDM2' 
                             'Qclp' 'agsm' 
    'AIFF' = AIFF (.aiff, .aif)
               data_formats: I8 BEI16 BEI24 BEI32 
    'amrf' = AMR (.amr)
               data_formats: 'samr' 
    'm4af' = Apple MPEG-4 Audio (.m4a, .m4r)
               data_formats: 'aac ' 'aace' 'aacf' 'aach' 'aacl' 'aacp' 
                             'alac' 'paac' 
    'm4bf' = Apple MPEG-4 AudioBooks (.m4b)
               data_formats: 'aac ' 'aace' 'aacf' 'aach' 'aacl' 'aacp' 
                             'paac' 
    'caff' = CAF (.caf)
               data_formats: '.mp1' '.mp2' '.mp3' 'QDM2' 'QDMC' 'Qclp' 
                             'Qclq' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'alac' 'alaw' 'dvi8' 'ilbc' 'ima4' 
                             I8 BEI16 BEI24 BEI32 BEF32 BEF64 LEI16 LEI24 
                             LEI32 LEF32 LEF64 'ms\x00\x02' 'ms\x00\x11' 
                             'ms\x001' 'paac' 'samr' 'ulaw' 
    'MPG1' = MPEG Layer 1 (.mp1, .mpeg, .mpa)
               data_formats: '.mp1' 
    'MPG2' = MPEG Layer 2 (.mp2, .mpeg, .mpa)
               data_formats: '.mp2' 
    'MPG3' = MPEG Layer 3 (.mp3, .mpeg, .mpa)
               data_formats: '.mp3'

Wenn Sie versuchen, es zu verwenden:

/usr/bin/afconvert -d '.mp3' -f MPG3 mysong.MP4 -o mysong.mp3

dann tritt ein Fehler auf:

Error: ExtAudioFileSetProperty ('cfmt') failed ('fmt?')

Wie erklärt auf afconvert MPG3?

"Core Audio kann MP3-Dateien lesen, aber nicht schreiben ..."

Ich landete mit zpletan ‚s Antwort und installiert ffmpeg

brew install ffmpeg

und das folgende Skript im selben Verzeichnis wie die MP4-Dateien, die ich konvertieren möchte. Es funktioniert auch für Dateien mit Leerzeichen:

#!/bin/sh -x
for f in *.MP4; do
        /usr/local/Cellar/ffmpeg/2.5.4/bin/ffmpeg -i "$f" "$f.mp3"
#        /usr/bin/afconvert -d '.mp3' -f MPG3 "$f" -o "$f.mp3"
        echo "$f converted"
done

Leichte Abweichungen von den obigen Angaben, um beispielsweise die Erweiterungen zu korrigieren: <code>for i in *.m4a; do echo "${i%.*}.mp3" ; ffmpeg -i "$i" "${i%.*}.mp3"; done
Mahesh Neelakanta,

3

Es gibt auch den X Lossless Decoder - einen verlustfreien Audio-Decoder für Mac OS X, der als Befehlszeilen-Tool und als GUI-App verfügbar ist. Die GUI-Version unterstützt MP3 als Ausgabeformat.


1

Ich habe libavaus der Quelle zusammengestellt, um diesen Zweck zu erfüllen. Dies ist das gleiche Paket, das standardmäßig auf den neuesten Versionen von Ubuntu Linux installiert ist, sodass die Tutorials für Ubuntu unter OS X fast so funktionieren, wie sie sind libav.

Hier ist etwas, was ich mache, um MP4 (AAC) in MP3 (unter Verwendung von LAME) zu konvertieren, indem ich die Befehlszeile und ein Makefile verwende (aus Gründen der Parallelität):

for each in *.mp4; do mv "$each" "$(echo "$each" | sed "s/ /./g")"; done
cat << EOF > Makefile
MP4_FILES := $(wildcard *.mp4)
MP3_FILES := ${MP4_FILES:.mp4=.mp3}

all: $(MP3_FILES)

%.mp3: %.mp4
    avconv -i $< -c:a libmp3lame $@
EOF
make -j20

Passen Sie die Nummer nach -jdem makeBefehl auf das 1,5-fache der Prozessorkernnummer an. Mein Server hatte 24 Kerne, -j24gab mir aber einen ernsthaften E / A-Engpass, drosselte ihn zurück -j20und die Leistung ist ziemlich ausgewogen.


1

Ich hatte es seit einem Jahrzehnt nicht mehr benutzt, aber ich liebe es ecasound, Audiodateien zu konvertieren.

Wenn Sie breweingerichtet haben:

brew install ecasound

ecasound -i input.mp4 -o output.mp3

Ich habe es nicht selbst ausprobiert, .mp4aber es sollte funktionieren .

Ich habe gerade in dieser Frage stieß bei der Suche zu konvertieren wavin flac.


1

Definieren Sie mit automator einen Service (Danke DIGITALHOBBIT'S MUSIC BLOG für die Idee): Bildbeschreibung hier eingeben

Und Shell-Skript ist das folgende:

    # -----------------------------
    # DESCRIPTION
    #   Export iTunes Music to another destination to get only MP3 files
    #       - Copy MP3 to Destination
    #       - Convert M4A in MP3 in Destination
    #
    # -----------------------------
    # DATE      : 06-Apr-2017
    # AUTHOR    : JF LE MADEC
    # VERSION   : 1.0
    # -----------------------------

    # Local iTunes Directory
    ITUNDIR="$HOME/Music/iTunes/iTunes Media/Music"

    # binary to convert audio files
    AFCONVERT="afconvert"
    # conversion paramaters
    AFCPARAM="-f mp4f -d aac -b 128000"

    # Audio files suffixes
    # Source
    M4ASUF=".m4a"
    # Destination
    MP3SUF=".mp3"

    # for all directories given in arguments copy music
    for destination in "$@"
    do

        # Copy MP3 files
        find "$ITUNDIR" -name "*$MP3SUF" | while read myMp3File; do
            mp3dir=`dirname "$myMp3File"`
            targetDir="$destination${mp3dir#$ITUNDIR}"
            fileName=`basename "$mp3File"`
            [[ -d "$targetDir" ]] || mkdir -p "$targetDir"
            cp -R "$myMp3File" "$targetDir"
        done

        # Convert and copy M4A files (iTunes native)
        find "$ITUNDIR" -name "*$M4ASUF" | while read m4aFile; do
            #afconvert -f mp4f -d aac -b 128000 "./Vianney/Vianney/11 Le Galopin.m4a"  /Users/jflm/Desktop/output2.mp3
            # Get file info
            m4aDir=`dirname "$m4aFile"`
            targetDir="$destination${m4aDir#$ITUNDIR}"
            fileName=`basename -s $M4ASUF "$m4aFile"`
            # Create parent directories if not exist
            [[ -d "$targetDir" ]] || mkdir -p "$targetDir"

            # Convert audio file directly in destination directory
            $AFCONVERT $AFCPARAM "$m4aFile" "$targetDir/$fileName$MP3SUF"

        done
    done

Meinten Sie aacoder mp3in AFCPARAM="-f mp4f -d aac -b 128000"?
John N

-1

Unter Linux finde ich, dass Python-Audio-Tools genau das tun, was ich will. Leider war es mir nicht möglich, es unter OSX in MP3 zu kodieren . Es könnte jedoch für Sie arbeiten. Es ist überhaupt nicht in OSX integriert, aber es ist sehr leicht und kann so gut wie jedes Paar von Formaten konvertieren (oder einfach in eine komprimiertere Datei mit demselben Format konvertieren).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.