How to use the command 'afinfo' (with examples)
- Osx
- November 5, 2023
The ‘afinfo’ command is a built-in command for OS X that allows users to obtain information about audio files, specifically their metadata. It is a handy tool for analyzing and extracting important details from audio files in various formats. This article will provide several examples of how to use the ‘afinfo’ command along with explanations for each use case.
Use case 1: Display info of a given audio file
Code:
afinfo path/to/file
Motivation: This use case is useful when you want to quickly obtain information about a specific audio file. By running this command, you can retrieve detailed information about the audio format, channels, sample rate, duration, bit rate, and more.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.path/to/file
: Specifies the path to the audio file you want to analyze.
Example Output:
File: path/to/file
File type ID: AAC (Advanced Audio Codec)
Data format: 2 ch, 44100 Hz, 'aac ' (0x00000000) 0 bits/channel, 0 bytes/packet, 1024 frames/packet, 0 bytes/frame
Channel layout: Stereo (L R)
...
Use case 2: Print a one line description of the audio file
Code:
afinfo --brief path/to/file
Motivation: Sometimes, you need only a quick summary of an audio file, and you don’t want to see the entire metadata information. This use case allows you to obtain a concise description of the audio file.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.--brief
: Specifies that only a one-line description should be printed.path/to/file
: Specifies the path to the audio file you want to analyze.
Example Output:
File: path/to/file (AAC, Stereo, 44100 Hz, 2.68 seconds)
Use case 3: Print metadata info and contents of the audio file’s InfoDictionary
Code:
afinfo --info path/to/file
Motivation: Audio files often contain metadata that includes details about the artist, album, title, genre, and more. This use case allows you to view the metadata information along with the contents of the audio file’s InfoDictionary.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.--info
: Specifies that both the metadata info and InfoDictionary contents should be printed.path/to/file
: Specifies the path to the audio file you want to analyze.
Example Output:
File: path/to/file
Audio File Info Dictionary contents:
FileDataTypeID: AACH
FileType: com.apple.m4a-audio
MappedFileSize: 200959 bytes
...
FormatSettings:
FormatID: 'aac '
ASBD:
SampleRate: 44100
Format: aac
FormatFlags: 0x0
BytesPerPacket: 0
FramesPerPacket: 1024
BytesPerFrame: 0
ChannelsPerFrame: 2
BitsPerChannel: 0
InstantiatorUUID: 40A6517D-AFBE-4D21-9189-93A9DF664201
Use case 4: Print output in XML format
Code:
afinfo --xml path/to/file
Motivation: Sometimes, you may need to process the audio file information programmatically or incorporate it into another system. This use case allows you to obtain the metadata and InfoDictionary contents in XML format for easier integration.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.--xml
: Specifies that the output should be in XML format.path/to/file
: Specifies the path to the audio file you want to analyze.
Example Output:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>file</key>
<string>path/to/file</string>
<key>audio file info dictionary contents</key>
<dict>
<key>file data type ID</key>
<string>AACH</string>
<key>file type</key>
<string>com.apple.m4a-audio</string>
<key>mapped file size</key>
<integer>200959</integer>
...
<key>format settings</key>
<dict>
<key>format ID</key>
<string>aac </string>
<key>ASBD</key>
<dict>
<key>sample rate</key>
<real>44100</real>
<key>format</key>
<string>aac </string>
<key>format flags</key>
<integer>0</integer>
<key>bytes per packet</key>
<integer>0</integer>
<key>frames per packet</key>
<integer>1024</integer>
<key>bytes per frame</key>
<integer>0</integer>
<key>channels per frame</key>
<integer>2</integer>
<key>bits per channel</key>
<integer>0</integer>
</dict>
<key>instantiator UUID</key>
<string>40A6517D-AFBE-4D21-9189-93A9DF664201</string>
</dict>
</dict>
</dict>
</plist>
Use case 5: Print warnings for the audio file if any
Code:
afinfo --warnings path/to/file
Motivation: Audio files may sometimes have warnings associated with them, such as unsupported audio formats or corrupt portions. This use case allows you to identify and understand any warnings associated with the audio file.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.--warnings
: Specifies that any warnings should be printed.path/to/file
: Specifies the path to the audio file you want to analyze.
Example Output:
path/to/file: No warnings
Use case 6: Display help for full usage
Code:
afinfo --help
Motivation: When you’re not familiar with the command and its options, running this use case will display the complete help information, including all the available options and their descriptions.
Explanation:
afinfo
: Invokes the ‘afinfo’ command.--help
: Specifies that the help information should be displayed.
Example Output:
Usage: afinfo <pathToFile> [option] ...
Conclusion:
The ‘afinfo’ command in OS X is a versatile tool for obtaining audio file metadata. By using various options and arguments, you can retrieve specific information about audio files quickly and easily. Whether you need a detailed analysis, a concise summary, or machine-readable data, the ‘afinfo’ command has you covered.