Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 7 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,24 +45,19 @@ Scan a root directory for audiobook folders and convert them to M4B files in par

## Getting Started

Ensure the following dependencies are installed: [ffmpeg](https://ffmpeg.org) and [mp4v2](https://mp4v2.org/).
The following tools must be installed and available in `PATH`:

```bash
# For RPM-based systems (Fedora, RHEL, CentOS)
sudo dnf install ffmpeg libmp4v2

# For Debian-based systems (Ubuntu, Debian)
sudo apt install ffmpeg
```
- [ffmpeg](https://ffmpeg.org) *(optionally with [libfdk_aac](https://github.com/mstorsjo/fdk-aac) for higher-quality VBR encoding)*
- [mp4v2](https://mp4v2.org/) *(mp4chaps, mp4art)*
- [awk](https://linux.die.net/man/1/awk), [sed](https://linux.die.net/man/1/sed), [bc](https://linux.die.net/man/1/bc)

To install the scripts, run:
*Installation:*

```bash
# Installs to /usr/local/sbin/
make install
```

This installs the scripts to `/usr/local/sbin/`.

## m4bify

`m4bify` creates M4B audiobook by processing files in the specified directory, sorting them alphabetically to ensure the correct playback order. Chapters can be organized either as file-based, where each audio file becomes its own chapter named using metadata or filenames, or directory-based, where each top-level subdirectory is treated as a chapter, combining all its audio files, including those in nested folders, into one.
Expand All @@ -86,7 +81,7 @@ m4bify [--help] [-d | --chapters-from-dirs] [-b <bitrate> | --bitrate <bitrate>]
- `-d`, `--chapters-from-dirs`: Treats each top-level subdirectory as a chapter.
- `-b <value>`, `--bitrate <value>`: Sets the audio encoding bitrate. Supported values:
- `<num>k` - Fixed bitrate (e.g. "32k", "128k")
- `vbr` - VBR Very High
- `vbr` - VBR Very High *(default)*
- `alac` - [Apple Lossless Audio Codec](https://en.wikipedia.org/wiki/Apple_Lossless_Audio_Codec)
- `--help`: Displays usage instructions and exits.

Expand Down
8 changes: 7 additions & 1 deletion m4bify.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
# - mp4chaps For adding chapter metadata to the final M4B file.
# - mp4art For adding in a cover image to the final M4A file before converting it to M4B.

readonly VERSION="v0.3.7"
readonly VERSION="v0.3.8"

# Color schema for pretty print
readonly NC='\033[0m' # No Color
Expand Down Expand Up @@ -177,6 +177,12 @@ function print_usage {
echo -e " ${COLORS[CMD]}ffprobe${NC} - Used for analyzing audio file properties."
echo -e " ${COLORS[CMD]}mp4chaps${NC} - Needed for chapter metadata manipulation."
echo -e " ${COLORS[CMD]}mp4art${NC} - Adds cover image to audio book."
echo -e " ${COLORS[CMD]}awk${NC} - Text processing."
echo -e " ${COLORS[CMD]}sed${NC} - Stream editing."
echo -e " ${COLORS[CMD]}bc${NC} - Arithmetic operations."
echo -e ""
echo -e " Optional:"
echo -e " ${COLORS[CMD]}libfdk_aac${NC} - Enables higher-quality VBR encoding (via ffmpeg)."
echo -e ""
}

Expand Down
2 changes: 1 addition & 1 deletion m4bulk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
# - Logs for each audiobook conversion will be saved in the same directory as the source audiobooks.
# - Customize worker threads and m4bify options to optimize for system resources and project requirements.

readonly VERSION="v0.3.7"
readonly VERSION="v0.3.8"

# Color schema for pretty print
readonly NC='\033[0m' # No Color
Expand Down
Loading