كيف يمكنني استخدام Afconvert لتحويل جميع الملفات في دليل من WAV إلى CAF؟
-
13-09-2019 - |
سؤال
لدي دليل مع حوالي 50 ملف من ملفات WAV أحتاج إلى تحويله إلى CAF، لأن AudioservicesCreateSystemSound () إرجاع خطأ لبعضها (ولكن ليس كل).
إليك مثال على الأمر الذي استخدمته بنجاح لملف واحد:
afconvert -f caff -d LEI16@44100 -c 1 whistle.wav whistle.caf
كيف يمكنني القيام بذلك بسرعة - وليس واحدا تلو الآخر لكل ملف؟
المحلول
على النوافذ، استخدم %~ni
بناء الجملة.
for %i in (*.wav) do afconvert -f caff -d LEI16@44100 -c 1 %i %~ni.caf
نصائح أخرى
نهج مماثل لباش: for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done
وجدت هذا:
##
## 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
قم بتخصيص خيارات Aconvert ثم احفظه كملف نصي يسمى "converttocaf.sh"، ضعه في دليل الملفات التي تريد تحويلها وتشغيلها من المحطة.
يعمل مع الملفات مع مسافات في أسمائها.
for file in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 "$file"; done
اضغط على مفتاح العودة مباشرة بعد done
.
بسيط :)
بالنسبة للأشخاص الذين يستخدمون OSX ويخشى بعض الشيء من النصوص الطرفية، قمت بإنشاء تطبيق صغير مع Automator، يقوم هذا التطبيق بتحويل الملفات التي تحددها.
تحميل هنا
إذا كنت تتعامل مع أسماء الملفات التي تحتوي على مسافات في 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
python النصي على OSX. تنسيق البيانات الافتراضي لل .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 إلى .caf مع نوع البيانات "AAC":
wav2caf.py -d 'aac '