如何使用 afconvert 将目录中的所有文件从 wav 转换为 caf?

发布于 2024-08-01 23:25:45 字数 254 浏览 7 评论 0原文

我有一个包含大约 50 个 wav 文件的目录,我需要将它们转换为 caf,因为 AudioServicesCreateSystemSoundID() 对其中一些文件(但不是全部)返回错误。

以下是我对单个文件成功使用的命令的示例:

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

如何快速执行此操作 - 不是对每个文件逐一执行?

I have a directory with about 50 wav files that I need to convert to caf, because AudioServicesCreateSystemSoundID() returns an error for some of them (but not all).

Here's an example of the command I've used successfully for a single file:

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

How do I do this quickly - not one-by-one for each file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

小巷里的女流氓 2024-08-08 23:25:46

如果您在 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

If you are dealing with filenames that contain spaces on Linux, try the following code:

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
‖放下 2024-08-08 23:25:46

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/

将数据类型为“aac”的所有 .wav 转换为 .caf:

wav2caf.py -d 'aac '

Python script on OSX. Default data format of the .caf is ima4. Default directory is '.'

Make a file called wav2caf.py, put it in your path, make it executable, fill it with:

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

Converts all .wav to .caf in current directory:

wav2caf.py

Converts all .wav to .caf in specified directory:

wav2caf.py -f Desktop/wavs/

Converts all .wav to .caf with data type 'aac ':

wav2caf.py -d 'aac '
甚是思念 2024-08-08 23:25:46

bash 的类似方法:for i in *.wav; 执行 afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; 完成

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

番薯 2024-08-08 23:25:46

在 Windows 上,使用 %~ni 语法。

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

On Windows, use the %~ni syntax.

for %i in (*.wav) do afconvert -f caff -d LEI16@44100 -c 1 %i %~ni.caf
伴我老 2024-08-08 23:25:46
for file in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 "$file"; done

完成后直接按回车键。

简单的 :)

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

Hit the Return key directly after done.

Simple :)

三生路 2024-08-08 23:25:46

对于使用 OSX 并且有点害怕终端脚本的人,我使用 Automator 创建了一个小应用程序,该应用程序会转换您选择的文件。

此处下载

For the people who are using OSX and are a bit afraid of Terminal scripts I created a little application with Automator, this application converts the files you select.

Download here

浪漫人生路 2024-08-08 23:25:46

发现这个:

##
## 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 '[email protected]'
##
 
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”的文本文件,将其放在要转换的文件目录中并从终端运行它。

它适用于名称中带有空格的文件。

found this:

##
## 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 '[email protected]'
##
 
for f in *; do
    if  [ "$f" != "converttocaf.sh" ]
    then
        /usr/bin/afconvert -f caff -d LEI16 "$f"
        echo "$f converted"
    fi
done

Customize the afconvert options then save it as a text file called 'converttocaf.sh', place it in the directory of files you want to convert and run it from Terminal.

It works with files with spaces in their names.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文