Wie verwende ich afconvert alle Dateien in einem Verzeichnis konvertieren von wav in Caf?
-
13-09-2019 - |
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
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 '