14

AudioServicesCreateSystemSoundID()がそれらの一部(すべてではない)に対してエラーを返すため、cafに変換する必要がある約50のwavファイルを含むディレクトリがあります。

これは、単一のファイルに対して正常に使用したコマンドの例です。

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

ファイルごとに1つずつではなく、これをすばやく行うにはどうすればよいですか?

4

7 に答える 7

36

bashの同様のアプローチ:for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done

于 2009-10-11T18:33:39.963 に答える
9

Windowsでは、%~ni構文を使用します。

for %i in (*.wav) do afconvert -f caff -d LEI16@44100 -c 1 %i %~ni.caf
于 2009-08-13T13:12:07.480 に答える
5

これを見つけました:

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

afconvertオプションをカスタマイズし、「converttocaf.sh」というテキストファイルとして保存し、変換するファイルのディレクトリに配置して、ターミナルから実行します。

名前にスペースが含まれるファイルで機能します。

于 2010-06-30T16:21:20.780 に答える
5

OSXを使用していて、ターミナルスクリプトを少し恐れている人のために、私がAutomatorで小さなアプリケーションを作成しました。このアプリケーションは、選択したファイルを変換します。

ここからダウンロード

于 2011-12-06T08:59:54.670 に答える
5
for file in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 "$file"; done

の直後にReturnキーを押しますdone

単純 :)

于 2013-08-19T08:12:40.560 に答える
1

Linuxでスペースを含むファイル名を扱っている場合は、次のコードを試してください。

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
于 2012-02-24T22:14:27.747 に答える
0

OSX上のPythonスクリプト。のデフォルトのデータ形式は.cafですima4。デフォルトのディレクトリは'.'

と呼ばれるファイルをwav2caf.py作成し、パスに入れて実行可能にし、次のように入力します。

#!/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()

現在のディレクトリ内のすべての.wavを.cafに変換します。

wav2caf.py

指定されたディレクトリ内のすべての.wavを.cafに変換します。

wav2caf.py -f Desktop/wavs/

すべての.wavをデータ型'aac'の.cafに変換します。

wav2caf.py -d 'aac '
于 2014-10-07T04:12:49.090 に答える