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

¿Fue útil?

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.

aquí

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 '
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top