¿Cómo uso afconvert para convertir todos los archivos en un directorio de WAV a CAF?
-
13-09-2019 - |
Pregunta
Tengo un directorio con unos 50 archivos wav que necesito para convertir a la CAF, porque AudioServicesCreateSystemSoundID () devuelve un error para algunos de ellos (pero no todos).
Este es un ejemplo del comando que he usado con éxito para un solo archivo:
afconvert -f caff -d LEI16@44100 -c 1 whistle.wav whistle.caf
¿Cómo puedo hacer esto de manera rápida - no uno por uno para cada archivo
Solución
En Windows, utilice la sintaxis %~ni
.
for %i in (*.wav) do afconvert -f caff -d LEI16@44100 -c 1 %i %~ni.caf
Otros consejos
enfoque similar para la fiesta: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done
encontrado esto:
##
## 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
Personalizar las opciones aconvert guardarla como un archivo de texto llamado 'converttocaf.sh', colocarlo en el directorio de archivos que desea convertir y ejecutarlo desde la terminal.
Se trabaja con archivos con espacios en sus nombres.
for file in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 "$file"; done
Pulsa la tecla de retorno directamente después done
.
Simple:)
Para las personas que están utilizando OSX y son un poco de miedo de secuencias de comandos de terminal he creado una pequeña aplicación con Automator, esta aplicación convierte los archivos seleccionados.
Si se trata de nombres de archivo que contienen espacios en Linux, pruebe el siguiente código:
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 en OSX. formato de datos por defecto de la .caf
es ima4
. directorio predeterminado se '.'
Hacer un archivo llamado wav2caf.py
, lo puso en su camino, hacerlo ejecutable, llenarlo con:
#!/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()
convierte todos los .wav a .caf en el directorio actual:
wav2caf.py
convierte todos los .wav a .caf en el directorio especificado:
wav2caf.py -f Desktop/wavs/
convierte todos los .wav a .caf con el tipo de datos 'aac':
wav2caf.py -d 'aac '