Domanda

Ho un elenco con circa 50 file wav che ho bisogno di convertire in caf, perché AudioServicesCreateSystemSoundID () restituisce un errore per alcuni di loro (ma non tutti).

Ecco un esempio del comando che ho usato con successo per un singolo file:

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

Come faccio a fare in fretta -? Non uno per uno per ogni file

È stato utile?

Soluzione

In Windows, utilizzare la sintassi %~ni.

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

Altri suggerimenti

approccio simile per bash: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

ha trovato questo:

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

Personalizza le opzioni aconvert quindi salvarlo come file di testo chiamato 'converttocaf.sh', posizionarlo nella directory di file che si desidera convertire ed eseguirlo dal Terminal.

Si lavora con i file con gli spazi nei loro nomi.

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

tocca il tasto INVIO direttamente dopo done.

Semplice:)

Per le persone che sono con OSX e sono un po 'paura di script terminali ho creato una piccola applicazione con Automator, questa applicazione converte i file selezionati.

qui

Se avete a che fare con nomi di file che contengono spazi su Linux, provare il seguente codice:

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 su OSX. formato dei dati di default del .caf è ima4. directory predefinita è '.'

Crea un file chiamato wav2caf.py, metterlo nel tuo percorso, renderlo eseguibile, riempirlo 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()

Converte tutte .wav .caf nella directory corrente:

wav2caf.py

Converte tutte .wav .caf nella directory specificata:

wav2caf.py -f Desktop/wavs/

Converte tutte .wav .caf con tipo di dati 'aac':

wav2caf.py -d 'aac '
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top