Frage

Ich habe ein Verzeichnis mit über 50 WAV-Dateien, die ich caf konvertieren müssen, weil AudioServicesCreateSystemSoundID () einen Fehler für einige von ihnen zurück (aber nicht alle).

Hier ist ein Beispiel für den Befehl, den ich erfolgreich für eine einzelne Datei verwendet habe:

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

Wie mache ich das schnell - nicht one-by-one für jede Datei

War es hilfreich?

Lösung

Unter Windows können Sie die %~ni Syntax.

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

Andere Tipps

ähnlicher Ansatz für bash: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

Google:

##
## 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

die aconvert Optionen anpassen dann als Textdatei ‚converttocaf.sh‘, legen Sie sie in das Verzeichnis von Dateien, die Sie wollen, dass es konvertieren und laufen vom Terminal genannt speichern.

Es arbeitet mit Dateien mit Leerzeichen im Namen.

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

Drücken Sie die Return-Taste direkt nach done.

Ganz einfach:)

Für die Menschen, die mit OSX und sind ein bisschen Angst vor dem Terminal-Skripte mich mit Automator eine kleine Anwendung erstellt, diese Anwendung konvertiert die Dateien, die Sie auswählen.

Herunterladen hier

Wenn Sie mit Dateinamen handelt, die Räume auf Linux enthalten, versuchen Sie den folgenden Code ein:

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

Python-Skript auf OSX. Standarddatenformat des .caf ist ima4. Standardverzeichnis ist '.'

Erstellen Sie eine Datei mit dem Namen wav2caf.py, steckt es in dem Weg, macht es ausführbar, füllen Sie es mit:

#!/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()

Wandelt alle .wav in aktuellem Verzeichnis .caf:

wav2caf.py

Wandelt alle .wav in angegebenem Verzeichnis .caf:

wav2caf.py -f Desktop/wavs/

Wandelt alle .wav mit dem Datentyp 'aac' .caf:

wav2caf.py -d 'aac '
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top