Como faço para usar afconvert para converter todos os arquivos em um diretório de wav para caf?

StackOverflow https://stackoverflow.com/questions/1271354

Pergunta

Eu tenho um diretório com cerca de 50 arquivos de wav que eu preciso para converter a CAF, porque AudioServicesCreateSystemSoundID () retorna um erro para alguns deles (mas não todos).

Aqui está um exemplo do comando Eu tenho usado com sucesso para um único arquivo:

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

Como posso fazer isso rapidamente -? Não um por um para cada arquivo

Foi útil?

Solução

No Windows, usar a sintaxe %~ni.

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

Outras dicas

abordagem semelhante para a festança: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

encontrei isto:

##
## 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 as opções aconvert em seguida, guardá-lo como um arquivo de texto chamado 'converttocaf.sh', colocá-lo no diretório de arquivos que deseja converter e executá-lo a partir do Terminal.

Ele funciona com arquivos com espaços em seus nomes.

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

Pressione a tecla Retorno diretamente após done.

Simples:)

Para as pessoas que estão usando OSX e são um pouco de medo de roteiros Terminal Eu criei um pequeno aplicativo com o Automator, esta aplicação converte os arquivos que você selecionar.

aqui

Se você está lidando com nomes de arquivos que contêm espaços no Linux, tente o seguinte 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 no OSX. formato do .caf de dados padrão é ima4. diretório padrão é '.'

Faça um arquivo chamado wav2caf.py, colocá-lo em seu caminho, torná-lo executável, preenchê-lo com:

#!/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 todos .wav para .caf no diretório atual:

wav2caf.py

converte todos os .wav para .caf no diretório especificado:

wav2caf.py -f Desktop/wavs/

Converte todos .wav para .caf com tipo de dados 'aac':

wav2caf.py -d 'aac '
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top