Skip to content

Audio Transcoding

This guide covers audio quality presets, encoder options, and file size estimates. For an overview of how podkit decides what to transcode, see Transcoding Methodology.

Quality Presets

PresetTypeTargetDescription
losslessLosslessN/AApple Lossless (only from lossless sources)
maxVBR~320 kbpsHighest VBR quality level
max-cbrCBR320 kbpsGuaranteed 320 kbps
highVBR~256 kbpsTransparent quality (default)
high-cbrCBR256 kbpsPredictable file sizes
mediumVBR~192 kbpsExcellent quality
medium-cbrCBR192 kbps
lowVBR~128 kbpsGood quality, space-efficient
low-cbrCBR128 kbps

Default: high (VBR ~256 kbps)

Configuration

CLI Usage

Terminal window
# Default: VBR ~256 kbps
podkit sync
# Lossless (ALAC) with lossy quality fallback
podkit sync --audio-quality lossless --lossy-quality max
# Guaranteed 320 kbps CBR
podkit sync --audio-quality max-cbr
# Space-efficient
podkit sync --quality low
# Set unified quality, but override audio specifically
podkit sync --quality medium --audio-quality high

Config File

# Top-level settings in config.toml
quality = "high" # Unified quality for audio and video
audioQuality = "high" # Audio-specific override: lossless | max | max-cbr | high | high-cbr | medium | medium-cbr | low | low-cbr
lossyQuality = "max" # Quality for lossy sources when audioQuality = "lossless"

Example Scenarios

Scenario 1: Audiophile with mixed collection

audioQuality = "lossless"
lossyQuality = "max"
SourceResult
FLACALAC (lossless preserved)
MP3 320Copy as-is
OGG 192AAC ~320 VBR (lossy quality) + warning

Scenario 2: Space-conscious user

quality = "medium"
SourceResult
FLACAAC ~192 kbps VBR
MP3 128Copy as-is
Opus 128AAC ~192 kbps VBR + warning

Scenario 3: Predictable file sizes

quality = "high-cbr"
SourceResult
FLACAAC 256 kbps CBR
MP3 320Copy as-is
OGG 192AAC 256 kbps CBR + warning

VBR vs CBR

ModeProsCons
VBRBetter quality-per-MB, adapts to contentLess predictable file sizes
CBRPredictable file sizesMay waste bits on simple passages

Note: VBR AAC works correctly for seeking on iPods (unlike VBR MP3). podkit defaults to VBR for better quality efficiency.

File Size Guidelines

PresetModeApprox BitrateFile Size (4 min song)
losslessLossless~900 kbps~26 MB
maxVBR~320 kbps~9.4 MB
highVBR~256 kbps~7.5 MB
mediumVBR~192 kbps~5.6 MB
lowVBR~128 kbps~3.8 MB

VBR file sizes vary based on content complexity. CBR sizes are exact.

AAC Encoders

FFmpeg can use several AAC encoders. podkit automatically selects the best available:

EncoderQualityPlatformAvailability
aac_atExcellentmacOS onlyAudioToolbox
libfdk_aacExcellentCustom buildFraunhofer reference
aac (native)Very GoodAll platformsAlways available

Platform Availability

PlatformEncoders AvailableBest Available
macOS (Homebrew)aac, aac_ataac_at
Linux (apt/dnf)aac onlyaac
Linux (custom build)aac, libfdk_aaclibfdk_aac

The native FFmpeg AAC encoder is very good and sufficient for most uses. macOS users get Apple’s encoder (aac_at) automatically.

Check Your Encoders

Terminal window
ffmpeg -encoders 2>/dev/null | grep aac

Troubleshooting

Common Issues

IssueCauseSolution
”Encoder not found”Missing codecInstall FFmpeg properly
Metadata not preservedFFmpeg issueCheck FFmpeg version
Low quality outputWrong presetCheck quality configuration
”Invalid data” errorsCorrupt source fileValidate input files

Debugging

Terminal window
# Check FFmpeg encoders
ffmpeg -encoders 2>/dev/null | grep aac
# Check a specific file
ffprobe -v error -show_streams input.flac
# Run sync with debug output
podkit sync -vvv --dry-run

See Also