Observed since 20 Oct, 17:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Audiobook to Opus converter — efficient batch conversion optimized for voice content
A tool that efficiently converts audiobooks to the Opus format, optimized for voice content. Achieves significant file size reduction while maintaining excellent audio quality, with automatic parallel processing using all CPU cores.
No clone needed — just install and run:
# Install with pipx (persistent install)
pipx install abopus
# Or run directly with uvx (no install needed)
uvx abopus -s ~/Audiobooks -o ~/Audiobooks_Opus
Note: FFmpeg must be installed on your system (
sudo apt install ffmpeg/brew install ffmpeg).
Zero dependencies — only Docker required:
docker run --rm \
-v ./audiobooks:/input \
-v ./output:/output \
ghcr.io/kadykov/abopus
# With custom options
docker run --rm \
-v ./audiobooks:/input \
-v ./output:/output \
ghcr.io/kadykov/abopus -b 32k --stereo keep
# Install dependencies
sudo apt install ffmpeg python3 imagemagick # Ubuntu/Debian
# or: brew install ffmpeg python3 imagemagick # macOS
# Clone and run
git clone https://github.com/kadykov/abopus.git
cd abopus
python3 convert_audiobooks.py
Input files: ./original/ → Output files: ./opus/
# Convert with defaults (all CPU cores, 24k bitrate, downmix stereo to mono)
abopus
# Custom directories
abopus -s ~/Audiobooks -o ~/Audiobooks_Opus
# Specific number of workers
abopus -w 4
# High quality
abopus -b 32k
# Keep stereo files as stereo
abopus --stereo keep
# Increase bitrate for stereo files (32k)
abopus --stereo increase-bitrate
# Verbose output
abopus -v
-s, --source DIR Source directory (default: ./original)
-o, --output DIR Output directory (default: ./opus)
-b, --bitrate RATE Bitrate: 15k, 20k, 24k, 32k, 40k, 48k, etc. (default: 24k)
-w, --workers NUM Parallel workers (default: CPU count)
--stereo STRATEGY Stereo handling: downmix, keep, increase-bitrate (default: downmix)
--no-images Skip copying cover images
--no-skip Re-convert existing files
-v, --verbose Verbose output
--no-color Disable colors
-h, --help Show help
Opus bitrate selection for audiobooks should balance file size with audio quality. The following recommendations are based on the Opus specification (RFC 7587), codec developer guidance (Xiph.org), and empirical testing.
| Bitrate (mono) | Audio Bandwidth | Quality Characteristics | Recommended Use |
|---|---|---|---|
| 12–16 kbps | Mediumband → Wideband (~8 kHz) | Narrower frequency range, reduced clarity in high frequencies | Maximum compression, low-quality source recordings |
| 16–20 kbps | Wideband (~8 kHz) | Good speech intelligibility, some bandwidth limitations | Balanced quality/size for basic audiobooks |
| 20–24 kbps | Wideband / beginning Super-wideband | Improved clarity, approaching wider frequency response | General purpose audiobooks |
| 24–28 kbps | Super-wideband (~12 kHz) | Natural speech quality, better high-frequency response | Recommended minimum for quality audiobooks |
| 28–32 kbps | Fullband (0–20 kHz) | Full audio bandwidth, excellent clarity | High-quality recordings |
| 32–40 kbps | Fullband (0–20 kHz) | Strong fullband quality with headroom | Professional audiobooks, complex audio |
| 40–64 kbps | Fullband (0–20 kHz) | Very high fidelity, transparent quality | Studio recordings, audiobooks with music/effects |
Sources:
MUSHRA-type listening tests (Google 2011) on speech samples show:
These results indicate that 32 kbps achieves near-transparent quality for most speech, while 20 kbps provides good but not transparent quality.
For most audiobooks:
For maximum compression:
For high-quality/archival:
Additional notes:
--stereo increase-bitrate, bitrates automatically increase by 60% (e.g., 24k → 38k)You may encounter different bitrate-to-bandwidth mappings across sources due to:
The script provides three strategies for handling multi-channel audio:
Converts stereo to mono, preserving more bitrate for voice clarity. Best for audiobooks where narration is the primary focus.
abopus --stereo downmix
Keeps stereo files as-is. At lower bitrates (e.g., 24k or below), Opus may partially downmix stereo anyway.
abopus --stereo keep
Automatically increases bitrate for stereo files by 60% to preserve stereo imaging. Examples:
abopus --stereo increase-bitrate
Codec Settings:
Supported Formats:
Cover Images:
# Check dependencies
abopus --help # Should print help
ffmpeg -version # Should be installed
# Verify Opus support
ffmpeg -codecs | grep opus
# Run with verbose output
abopus -v
abopus/
├── src/abopus/ # Python package
│ ├── __init__.py # Version
│ ├── __main__.py # python -m abopus entry point
│ └── converter.py # Conversion logic
├── convert_audiobooks.py # Compatibility shim
├── pyproject.toml # Package metadata
├── Dockerfile # Docker image
├── README.md # Documentation
├── original/ # Place source files here (default)
│ └── Book Name/
│ └── chapter01.mp3
└── opus/ # Converted files (auto-created)
└── Book Name/
└── chapter01.opus
# Persistent install
pipx install abopus
# Or run without installing
uvx abopus --help
docker run --rm \
-v ./audiobooks:/input \
-v ./output:/output \
ghcr.io/kadykov/abopus
pip install abopus
git clone https://github.com/kadykov/abopus.git
cd abopus
pip install -e .
Required (except Docker — everything is included):
Optional:
# Ubuntu/Debian
sudo apt install ffmpeg imagemagick
# Fedora
sudo dnf install ffmpeg ImageMagick
# Arch Linux
sudo pacman -S ffmpeg imagemagick
# macOS
brew install ffmpeg imagemagick
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 28 Feb 2026 | 0 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e98a6d223477edad2bce3b4a0e93a78804f0742737ee5e064da162864a196dc0