Comment puis-je utiliser afconvert pour convertir tous les fichiers dans un répertoire de wav Caf?

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

Question

J'ai un répertoire avec environ 50 fichiers wav que je dois convertir la FCV, parce que AudioServicesCreateSystemSoundID () retourne une erreur pour certains d'entre eux (mais pas tous).

Voici un exemple de la commande que je l'ai utilisé avec succès pour un seul fichier:

afconvert -f caff -d LEI16@44100 -c 1 whistle.wav whistle.caf

Comment puis-je faire rapidement - pas un par un pour chaque fichier

Était-ce utile?

La solution

Sur Windows, utilisez la syntaxe %~ni.

for %i in (*.wav) do afconvert -f caff -d LEI16@44100 -c 1 %i %~ni.caf

Autres conseils

Une approche similaire pour bash: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

trouvé ceci:

##
## Shell script to batch convert all files in a directory to caf sound format for iPhone
## Place this shell script a directory with sound files and run it: 'sh converttocaf.sh'
## Any comments to 'support@ezone.com'
##

for f in *; do
    if  [ "$f" != "converttocaf.sh" ]
    then
        /usr/bin/afconvert -f caff -d LEI16 "$f"
        echo "$f converted"
    fi
done

Personnaliser les options de aconvert puis enregistrer dans un fichier texte appelé « converttocaf.sh », placez-le dans le répertoire des fichiers que vous souhaitez convertir et l'exécuter à partir du terminal.

Il fonctionne avec des fichiers avec des espaces dans leurs noms.

for file in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 "$file"; done

Appuyez sur la touche de retour directement après done.

simple:)

Pour les personnes qui utilisent Mac OS X et sont un peu peur des scripts Terminal j'ai créé une petite application avec Automator, cette application convertit les fichiers que vous sélectionnez.

Télécharger

Si vous traitez avec des noms de fichiers contenant des espaces sous Linux, essayez le code suivant:

SAVEIFS=$IFS 
IFS=$(echo -en "\n\b"); for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

script Python sur OSX. format de données par défaut de la .caf est ima4. répertoire par défaut est '.'

Faire un fichier appelé wav2caf.py, le mettre dans votre chemin, le rendre exécutable, le remplir avec:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os
import argparse
import glob

def main():
    # handle command line args
    parser = argparse.ArgumentParser(description='A program that converts .wav to .caf files.', formatter_class=argparse.RawTextHelpFormatter)
    parser.add_help = True
    parser.add_argument('-f', '--folder', dest='folder', type=str, default='.', help='folder of files to convert')
    parser.add_argument('-d', '--data', dest='data', type=str, default='ima4', help='data format of .caf')
    args = parser.parse_args()

    # process files in folder
    os.chdir(args.folder)
    for filename in glob.glob("*.wav"):
        name, ext = os.path.splitext(filename)
        command = 'afconvert -f caff -d ' + args.data + ' ' + filename + ' ' + name + '.caf'
        os.system(command)

if __name__ == "__main__":
    main()

convertit tous les .wav à .caf dans le répertoire courant:

wav2caf.py

convertit tous les .wav à .caf dans le répertoire spécifié:

wav2caf.py -f Desktop/wavs/

convertit tous les .wav à .caf avec le type de données 'aac':

wav2caf.py -d 'aac '
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top