Creating Core Audio Format (.caf) Files
Q: I'm trying to author Core Audio Format files using QuickTime Player but it doesn't have a .caf file exporter. How can I create .caf files on Mac OS X?
A: I'm trying to author Core Audio Format files using QuickTime Player but it doesn't have a .caf file exporter. How can I create .caf files on Mac OS X?
While QuickTime supports importing Core Audio Format (.caf
) files, it does not currently provide an audio exporter capable of creating these files.
The easiest way to create a Core Audio Format file is by using the afconvert
tool located in /usr/bin/
.
afconvert
(a.k.a. Audio File Convert) will convert a source audio file to a new audio file and supports a large set of file formats, data formats and encoding options.
For example, Listing 1 demonstrates how you might use afconvert
from the Terminal to create a .caf
file containing AAC audio encoded with an average data rate of 192kbps.
Listing 1 Convert an .aif file to a .caf file.
afconvert -v -f 'caff' -d aac -s 1 -b 192000 MySource.aif MyOutput.caf |
NAME afconvert -- Audio File Convert SYNOPSIS afconvert [option...] input_file [output_file] DESCRIPTION Audio File Convert will convert a source audio file to a new audio file of the specified file type containing audio data of the specified data type. OPTIONS (may appear before or after arguments) { -f | --file } file_format: '3gpp' = 3GP Audio (.3gp) data_formats: 'aac ' 'samr' '3gp2' = 3GPP2 Audio (.3g2) data_formats: 'aac ' 'samr' 'adts' = AAC ADTS (.aac, .adts) data_formats: 'aac ' 'ac-3' = AC3 (.ac3) data_formats: 'ac-3' 'AIFC' = AIFC (.aifc, .aiff, .aif) data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 UI8 'ulaw' 'alaw' 'MAC3' 'MAC6' 'ima4' 'QDMC' 'QDM2' 'Qclp' 'agsm' 'AIFF' = AIFF (.aiff, .aif) data_formats: I8 BEI16 BEI24 BEI32 'amrf' = AMR (.amr) data_formats: 'samr' 'caff' = Apple CAF (.caf) data_formats: '.mp1' '.mp2' '.mp3' 'MAC3' 'MAC6' 'QDM2' 'QDMC' 'Qclp' 'Qclq' 'aac ' 'aacl' 'agsm' 'alac' 'alaw' 'drms' 'dvca' 'dvi ' 'dvi8' 'ilbc' 'ima4' 'lpc ' I8 BEI16 BEI24 BEI32 BEF32 BEF64 LEI16 LEI24 LEI32 LEF32 LEF64 'ms\x00\x02' 'ms\x00\x11' 'ms\x001' 'ms\x00U' 'samr' 'ulaw' 'vdva' 'MPG1' = MPEG Layer 1 (.mp1, .mpeg, .mpa) data_formats: '.mp1' 'MPG2' = MPEG Layer 2 (.mp2, .mpeg, .mpa) data_formats: '.mp2' 'MPG3' = MPEG Layer 3 (.mp3, .mpeg, .mpa) data_formats: '.mp3' 'mp4f' = MPEG4 Audio (.mp4) data_formats: 'aac ' 'aacl' 'm4af' = MPEG4 Audio (.m4a) data_formats: 'aac ' 'aacl' 'alac' 'NeXT' = NeXT/Sun (.snd, .au) data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 'ulaw' 'Sd2f' = Sound Designer II (.sd2) data_formats: I8 BEI16 BEI24 BEI32 'WAVE' = WAVE (.wav) data_formats: UI8 LEI16 LEI24 LEI32 LEF32 LEF64 'ulaw' 'alaw' { -d | --data } data_format[@sample_rate_hz][/format_flags][#frames_per_packet] : [-][BE|LE]{F|[U]I}{8|16|24|32|64} (PCM) e.g. BEI16 F32@44100 or a data format appropriate to file format, as above format_flags: hex digits, e.g. '80' Frames per packet can be specified for some encoders, e.g.: samr#12 { -c | --channels } number_of_channels add/remove channels without regard to order { -l | --channellayout } layout_tag layout_tag: name of a constant from CoreAudioTypes.h (prefix "kAudioChannelLayoutTag_" may be omitted) if specified once, applies to output file; if twice, the first applies to the input file, the second to the output file { -b | --bitrate } bit_rate_bps e.g. 128000 { -q | --quality } codec_quality codec_quality: 0-127 { -r | --src-quality } src_quality src_quality (sample rate converter quality): 0-127 { --src-complexity } src_complexity src_complexity (sample rate converter complexity): line, norm, bats { -v | --verbose } print progress verbosely { -s | --strategy } strategy bitrate allocation strategy for encoding an audio track 0 for CBR, 1 for ABR, 2 for VBR_constrained, 3 for VBR { -t | --tag } If encoding to CAF, store the source file's format and name in a user chunk. If decoding from CAF, use the destination format and filename found in a user chunk. --read-track track_index For input files containing multiple tracks, the index (0..n-1) of the track to read and convert. --prime-method method decode priming method (see AudioConverter.h) --no-filler don't page-align audio data in the output file { -u | --userproperty } property value set an arbitrary property to a given value property must be a four char code value is a signed 32-bit integer A maximum of 8 properties may be set e.g. use '-u vbrq <sound_quality>' to set the sound quality level (<sound_quality>: 0-127) for VBR encoding strategy (i.e., -s 3) { -h | --help } print help |
References
Document Revision History
Date | Notes |
---|---|
2009-01-07 | New document that describes how to use afconvert to create .caf files |
Copyright © 2009 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2009-01-07