Audio to OGG
Convert a supported audio file to OGG Vorbis via FFmpeg. Defaults preserve source sample rate and encode at Vorbis quality 10 (maximum) for minimal generation loss.
Rules
When this skill applies, read and follow skill-dependency-manager — run scripts as documented, install missing tools into .dependency/.
Quick Start
Default output: <audio-dir>/audio-to-ogg/<basename>.ogg
.dependency/python/python .ai/audio-to-ogg/convert.py --audio path/to/audio.wav
Example: audio/sfx/tank/tank_move.wav → audio/sfx/tank/audio-to-ogg/tank_move.ogg
Format Defaults
| Setting | Default | Notes |
|---|---|---|
| Codec | OGG Vorbis (libvorbis) |
Godot-native compressed format |
| Sample rate | Preserve source | Always keeps source rate; no resampling |
| Quality | 10 (-q 10) |
Maximum Vorbis quality (~500 kbps VBR); use lower -q to shrink files |
| Channels | Preserve source | Use --mono or --stereo to force |
| Existing Vorbis OGG | Stream copy | Bit-perfect when no overrides |
Quality Guide
-q |
Approx. bitrate | Typical use |
|---|---|---|
| 10 | ~500 kbps | Default — highest fidelity |
| 7–8 | ~224–256 kbps | Smaller music/voice exports |
| 5–6 | ~160–192 kbps | Gameplay SFX, BGM |
| 3–4 | ~96–128 kbps | Short UI clicks, ambient loops |
Common Flags
--audio · -o / --output · -q / --quality · --mono · --stereo
Lower quality for UI sounds:
.dependency/python/python .ai/audio-to-ogg/convert.py --audio path/to/click.wav -q 4
Custom output path:
.dependency/python/python .ai/audio-to-ogg/convert.py --audio path/to/audio.wav --output path/to/out.ogg
Never overwrite source files. The script writes only under audio-to-ogg/ (or --output). Input must be a single audio file (--audio), not a directory. Supported inputs: .mp3, .ogg, .flac, .aac, .m4a, .wma, .wav.
Agent Notes
- Use the bundled script, not hand-written
ffmpeg -i …commands. - Sample rate is always preserved — use the
audio-sample-rate-standardizeskill if resampling is needed. - Already Vorbis OGG? Stream-copied by default (no generation loss).
- Missing Python/FFmpeg → populate
.dependency/per skill-dependency-manager, retry same command. - Do not copy, move, or replace the source with converted output — tell the user where output files are; they swap assets manually when ready.
- FFmpeg codec and quality details: reference.md
Tests
From repo root:
.dependency/python/python .ai/audio-to-ogg/test_convert.py
Manual CLI examples: cli/audio-to-ogg.md