🔗 M4B Merge Feature
This release adds the ability to combine multiple M4B files into a single file without re-encoding — directly addressing user feedback about lossless M4B concatenation.
✨ New Features
- Lossless M4B Merge: Combine multiple M4B files using FFmpeg's concat demuxer with
-c copyfor zero quality loss - Smart Pattern Detection: Automatically identifies related files by naming patterns:
- Part patterns:
Part 1,Part 2,Pt 1,Pt. 1 - Disc patterns:
Disc 1,Disc1,CD1,CD 1,Disk 1 - Numeric suffix:
Book 01.m4b,Book 02.m4b
- Part patterns:
- Chapter Preservation: All chapters from source files are merged with correctly adjusted timestamps
--merge-m4bFlag: Force merge multiple M4B files even when no naming pattern is detected
📖 Usage
# Auto-detect sequential parts and merge
audiobook-forge build --root /path/to/book
# Force merge even without detected pattern
audiobook-forge build --root /path/to/book --merge-m4b🔧 Technical Changes
- Added
BookCase::Efor classifying folders with multiple mergeable M4B files - New
M4bMergermodule for handling lossless concatenation - New
merge_chapter_listsfunction for combining chapters with timestamp offsets - Updated scanner to detect and sort M4B files by part number
- 9 new integration tests for merge functionality
📦 Installation
cargo install audiobook-forgeFull Changelog: v2.9.0...v2.9.1