Existe-t-il un moyen de convertir des fichiers audio dans Mac OS X ou la ligne de commande sans utiliser iTunes?

96

Maintenant, je sais que je peux utiliser iTunes pour convertir de la musique. Mais c’est assez pénible. Tout ce que je demande, c’est: y at-il quelque chose de intégré dans OS X ou UNIX pour la conversion de fichiers? En ce moment, je veux simplement convertir .mp4 en .mp3 ..

James Litewski
la source
2
Considérez-vous les packages open source comme des applications tierces? Ou voulez-vous vous en tenir aux produits Apple livrés avec le système d'exploitation uniquement? Pouvez-vous préciser cela dans votre question?
Sairam
Je voudrais le faire avec un logiciel pré-chargé.
James Litewski le
3
Un commentaire sur la solution FFmpeg (manque de réputation). Le contrôle de la qualité de sortie pour MP3 peut être effectué via codec:a libmp3lameet les qscale:a [0-9]options (voir le wiki de FFmpeg ). Par exemple, pour obtenir VBR dans une plage de 140-185 kbit / s, utilisez: ffmpeg out.mp3 -i in.mp4 -codec: un libmp3lame -qscale: un 4 Ceci peut également être utilisé pour réduire la taille des fichiers MP3.
Trybik

Réponses:

16

Les scripts Apple de Doug pour iTunes

comprenant

Convertir et exporter 2.0

est une collection de scripts utiles que vous pouvez exécuter à partir du Finder ou de la ligne de commande. Bien sûr, ils utilisent tous iTunes pour traiter les données, mais vous trouverez peut-être cela plus pratique que de devoir utiliser les commandes de l'interface graphique et de la souris d'iTunes pour convertir les fichiers.


la source
Comment exécutez-vous ce script? Je ne vois aucune instruction sur le site.
CoolAJ86
Les instructions d'installation et de configuration du responsable des scripts sont disponibles à l' adresse suivante
7
Note à ceux qui ne le savent pas: ce n'est pas une solution en ligne de commande. Il met une icône dans la barre d'outils iTunes. Vous devez sélectionner une collection de chansons, puis sélectionner le script dans le menu déroulant. Il sera par défaut à 256Kbps pour AAC. Ce n'est mentionné nulle part dans la documentation (que j'ai pu trouver), mais vous pouvez le voir dans le screencast au cours des 2 ou 3 dernières secondes.
CoolAJ86
161

J'ai installé ffmpegvia MacPorts, bien qu'il soit également disponible via Homebrew ( brew install ffmpeg) ou téléchargez le binaire .

Pour convertir quelque chose comme ça (sans me soucier de la qualité audio, ce que je ne connais pas du tout), j'utilise simplement:

ffmpeg -i input.mp4 output.mp3

Voici un exemple de conversion d'un .wavfichier .mp3depuis leur site Web :

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

Voici un exemple montrant comment trouver tous les .wavfichiers de plus de 50M, les convertir en mp3, puis supprimer le fichier wav original (mode batch - modifiez la commande de recherche pour créer votre "lot").

find . -size +50M -iname *.wav -type f -exec ffmpeg -i {} -codec:a libmp3lame -qscale:a 2 {}.mp3 -y \; -exec /bin/rm {} \;
zpletan
la source
Merci pour la réponse facile. Comment convertir une liste de fichiers? Aussi, a-t-il des options série ou parallèle?
Khaled Annajar
ffmpeg fonctionne également pour convertir ogg en mp3:ffmpeg -i beep.ogg beep.mp3
rgkobashi
32

OS X n'est pas livré avec un encodeur MP3 autre que celui d'iTunes. Pour convertir au format audio mpeg4, vous pouvez utiliser la commande CLI afconvert (afconvert -h pour les options disponibles). Par exemple:

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

Vous pouvez trouver de l'aide pour cet outil en exécutant "afconvert --help", car "man afconvert" ne pointe pas vers une page de manuel utile.

Gerry
la source
1
+1 mais j'aimerais vraiment que quelqu'un ajoute un pointeur à la documentation exhaustive. Je l'ai fait fonctionner par essais et erreurs et par devinettes, mais bon nombre des options que j'aurais peut-être dû utiliser sont très très brièvement décrites.
triplee
3
La page de manuel est presque inutile ... :-(
Greenonline
1
J'ai trouvé ce tutoriel informatif. Les arguments valides pour les formats de données et de fichiers sont visibles avecafconvert -hf
chb
5

afconvertne pas écrire. mp3des dossiers. Même s'il est répertorié dans l'aide comme format:

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'

Si vous essayez de l'utiliser:

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

alors une erreur se produit:

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

Comme expliqué sur afconvert MPG3?

"Core Audio peut lire, mais pas écrire, les fichiers MP3 ..."

J'ai fini par utiliser la réponse de zpletan et installer ffmpeg

brew install ffmpeg

et le script suivant, placé dans le même répertoire que les fichiers .MP4 que je souhaite convertir. Cela fonctionne aussi pour les fichiers avec des espaces:

#!/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
Greenonline
la source
Légère variation sur ce qui précède, par exemple pour corriger les extensions: <code>for i in *.m4a; do echo "${i%.*}.mp3" ; ffmpeg -i "$i" "${i%.*}.mp3"; done
Mahesh Neelakanta
3

Il existe également le X Lossless Decoder - un décodeur audio sans perte pour Mac OS X disponible en tant qu'outil de ligne de commande et application graphique. La version graphique prend en charge le format MP3.

ralf
la source
1

J'ai compilé à libavpartir de la source pour servir cet objectif. Ceci est le même package installé par défaut sur les versions récentes d'Ubuntu Linux pour des tutoriels pour Ubuntu fonctionne presque comme-est sur OS X avec libav.

Voici quelque chose que je fais pour convertir MP4 (AAC) en MP3 (à l'aide de LAME) à l'aide de la ligne de commande et d'un fichier makefile (par souci de parallélisme):

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

Ajustez le nombre après -jla makecommande à environ 1,5x le nombre de cœurs de votre processeur. Mon serveur avait 24 cœurs, mais il -j24m’a causé un goulot d’étranglement grave en entrée / sortie -j20et les performances ont été bien équilibrées.

Maxthon Chan
la source
1

Je ne l'utilisais pas depuis une décennie, mais j'adore ecasoundconvertir des fichiers son.

Si vous avez brewmis en place:

brew install ecasound

ecasound -i input.mp4 -o output.mp3

Je n'ai pas essayé avec .mp4moi-même mais ça devrait marcher .

Je viens de tombé sur cette question lors de la recherche de convertir waven flac.

fifi finance
la source
1

Avec automator, définissez un service (merci à DIGITALHOBBIT'S MUSIC BLOG pour l’idée): entrez la description de l'image ici

Et le script shell est le suivant:

    # -----------------------------
    # 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
JFLM
la source
Vouliez-vous dire aacou mp3dans AFCPARAM="-f mp4f -d aac -b 128000"?
John N
-1

Sous Linux, je trouve que python-audio-tools fait exactement ce que je veux. Malheureusement, je n'ai pas réussi à le coder en mp3 sous OSX . Cela pourrait fonctionner pour vous, cependant. Il n’est pas du tout intégré à OSX, mais il est très léger et peut convertir pratiquement toute paire de formats (ou simplement convertir en un fichier plus compressé avec le même format).

intuitif
la source