كيف يمكنني استخدام Afconvert لتحويل جميع الملفات في دليل من WAV إلى CAF؟

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

سؤال

لدي دليل مع حوالي 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 '
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top