m4b-tool
— это оболочка для ffmpeg
и mp4v2
для объединения, разделения или управления файлами аудиокниг с главами. Хотя m4b-tool
предназначен для обработки файлов m4b, должны поддерживаться почти все аудиоформаты, например mp3, aac, ogg, alac и flac.
Если вы используете какой-либо из моих проектов и считаете их полезными, пожалуйста, рассмотрите возможность пожертвования, чтобы поддержать меня. Я планирую использовать деньги для поддержки других проектов с открытым исходным кодом или благотворительных целей. Спасибо!
>= 25.00$
Особая благодарность всем спонсорам, ежемесячно жертвующим сумму >= 25.00$
.
Имя | Количество |
---|---|
нуминит | 25,00$ |
Загрузите Nix и убедитесь, что Flakes включен.
nix run github:sandreas/m4b-tool
или nix run github:sandreas/m4b-tool#m4b-tool-libfdk
nix build github:sandreas/m4b-tool
или nix build github:sandreas/m4b-tool#m4b-tool-libfdk
./result/bin/m4b-tool
nix develop
composer2nix --executable --composition=composer.nix
чтобы обновить файлы .nix. Я начал эксперимент, который сейчас достиг раннего альфа-уровня и его можно опробовать. Инструмент командной строки написан на C#
, имеет полностью открытый исходный код и tone
. У него уже есть довольно приличный набор функций, поэтому, если вы хотите его попробовать, вот он:
https://github.com/sandreas/tone
Это объявление НЕ означает, что m4b-tool
устарел или скоро утратит свою актуальность. Разработка m4b-tool
будет продолжаться (по крайней мере, до тех пор, пока у Tone не появится набор функций, аналогичный m4b-tool
). Это просто альтернативный инструмент для функций, которые могут иметь ограничения.
Удачи, не могу дождаться ваших отзывов.
К сожалению, я сейчас очень занят, поэтому m4b-tool 0.4.2
очень старая. Поскольку выпуск новой версии без полной документации не планируется, существует только последняя предварительная версия с исправлениями ошибок. Он уже довольно стабилен, поэтому, если у вас возникли ошибки в v0.4.2
, попробуйте последнюю предварительную версию, если она там уже исправлена.
Спасибо, Сандреас
https://pilabor.com
merge
набор аудиофайлов (например, MP3 или AAC) в один файл m4bsplit
один файл m4b на несколько выходных файлов по главам или альбом в формате flac
на отдельные треки с помощью таблицы метокchapters
для существующего файла m4b с помощью обнаружения тишины или musicbrainz. merge
все аудиофайлы из каталога data/my-audio-book
в файл data/merged.m4b
(теги сохраняются, а data/my-audio-book/cover.jpg
и data/my-audio-book/description.txt
встроены) , если есть)
m4b-tool merge "data/my-audio-book/" --output-file="data/merged.m4b"
split
один большой файл m4b по главам на несколько файлов mp3 по data/my-audio-book_splitted/
(теги сохраняются, создается data/my-audio-book_splitted/cover.jpg
, если m4b содержит обложку)
m4b-tool split --audio-format mp3 --audio-bitrate 96k --audio-channels 1 --audio-samplerate 22050 "data/my-audio-book.m4b"
chapters
могут попытаться настроить существующие главы m4b с помощью обнаружения тишины
m4b-tool chapters --adjust-by-silence -o "data/destination-with-adjusted-chapters.m4b" "data/source-with-misplaced-chapters.m4b"
Поскольку наиболее используемой подкомандой m4b-tool
является merge
, давайте поговорим о лучших практиках...
К сожалению, у m4b-tool
много зависимостей. Не только однострочники: если вы хотите получить наилучшее качество и поддержку тегов, многие зависимости придется компилировать вручную с дополнительными опциями. Вот почему вам следует взглянуть на образ докера, который включает в себя все навороты высочайшего качества звука, лучшую поддержку тегов и простую установку и почти не имеет недостатков.
Примечание. Если вы используете Windows, может быть сложно заставить его работать.
При объединении аудиокниг вам следует подготовить их — следующая структура каталогов очень помогает, даже если вы объединяете только одну аудиокнигу:
input/<main genre>/<author>/<title>
или если это сериал
input/<main genre>/<author>/<series>/<series-part> - <title>
Примеры:
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/
input/Fantasy/J.K. Rowling/Harry Potter/1 - Harry Potter and the Philosopher's Stone/
Примечание. Если заголовок аудиокниги содержит недопустимые символы пути, например
/
, просто замените их тире-
.
Теперь, поскольку вам почти всегда нужна обложка и описание для вашей аудиокниги, вам следует добавить в основной каталог следующие файлы:
cover.jpg
(или cover.jpeg
или cover.png
)description.txt
(обязательно используйте кодировку текстового файла UTF-8
для содержимого)Примеры:
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/cover.jpg
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/description.txt
Примечание.
m4b-tool
автоматически найдет и встроит эти файлы, но не выдаст ошибку, если их нет.
Главы хороши для добавления путевых точек в вашу аудиокнигу. Они помогают запомнить последнюю позицию и улучшить опыт в целом.
Если вы хотите настроить главы вручную, вы можете добавить файл chapters.txt
(там же, где и cover.jpg
) со следующим содержимым ( <chapter-start>
<chapter-title>
):
00:00:00.000 Intro
00:04:19.153 This is
00:09:24.078 A way to add
00:14:34.500 Chapters manually
Если ваши входные файлы помечены тегами, эти теги будут использоваться для создания метаданных главы по ее title
. Поэтому, если вы пометите свои входные файлы с допустимыми названиями глав в качестве title
дорожки, в результате получится красивый и чистый файл m4b
с действительными названиями глав.
Еще одной замечательной особенностью m4b-tool
v.0.4.0 является параметр --max-chapter-length
. Часто отдельные входные файлы слишком велики, что приводит к очень большой продолжительности глав. Это может раздражать, если вы хотите перейти к определенной точке, поскольку вам придется перематывать назад или вперед и удерживать кнопку в течение длительного времени, вместо того, чтобы просто несколько раз нажать предыдущую или следующую позицию. Чтобы автоматически добавлять подразделы, вы можете предоставить:
--max-chapter-length=300,900
Это приведет к тому, что m4b-tool
Подразделы названы аналогично оригиналу и имеют дополнительный индекс. Это хороший способ сохранить настоящие имена, но не создавать слишком длинные главы.
Если у вас есть iPod, могут возникнуть проблемы со слишком длинными аудиокнигами, поскольку iPod поддерживает только 32-битную частоту дискретизации. Если ваша аудиокнига длится более 27 часов с частотой дискретизации 22050 Гц, вы можете указать --adjust-for-ipod
, чтобы автоматически понижать качество аудиокниги, что приводит к снижению качества, но, по крайней мере, она работает на вашем старом добром iPod...
m4b-tool
поддерживает несколько задач преобразования параллельно с параметром --jobs
(например, --jobs=2
). Если вам нужно преобразовать более одного файла, что является распространенным случаем, вы почти удваиваете скорость слияния, предоставляя параметр --jobs=2
(или вчетверо с --jobs=4
, если у вас четырехъядерная система и т. д.). .). Не указывайте число, превышающее количество ядер в вашей системе — это замедлит слияние...
Примечание. Если вы запустите преобразование на всех ядрах, это приведет к почти 100% загрузке ЦП, что может привести к снижению производительности системы.
--batch-pattern
В m4b-tool v.0.4.0
была добавлена функция --batch-pattern
. Его можно использовать для пакетного преобразования нескольких аудиокниг одновременно, а также для преобразования одной аудиокниги, поскольку вы можете создавать теги из существующей структуры каталогов.
Подсказка: при использовании
--batch-pattern
параметрoutput-file
должен быть каталогом.
Поддерживаются даже несколько параметров --batch-pattern
, при этом первым будет использоваться первое совпадение. Итак, если вы создали структуру каталогов, как описано выше, последняя команда объединит input/Fantasy/Harry Potter/1 - Harry Potter and the Philosopher's Stone/
с output/Fantasy/Harry Potter/1 - Harry Potter and the Philosopher's Stone.m4b
будет выглядеть так:
m4b-tool merge -v --jobs=2 --output-file="output/" --max-chapter-length=300,900 --adjust-for-ipod --batch-pattern="input/%g/%a/%s/%p - %n/" --batch-pattern="input/%g/%a/%n/" "input/"
В режиме
--batch-pattern
существующие файлы по умолчанию пропускаются.
Если вы выполнили описанные выше действия с Docker-образом или установили и скомпилировали все зависимости, вы должны получить следующий результат:
libfdk_aac
.genre
, author
, title
, sorttitle
и т. д. из использования --batch-pattern
cover.jpg
(или cover.jpeg
или cover.png
) и description.txt
существуют в основных каталогах, то « cover
, « description
и « longdesc
встраиваются. Чтобы использовать docker с m4b-tool
, вам сначала нужно
pull
официальный образ докера (рекомендуется)build
Dockerfile
в основном каталоге Официальные образы Docker доступны на DockerHub. Они в некоторой степени экспериментальные, но доказали свою эффективность. latest
тег рассматривается как способ использования новейших функций и исправлений. Время от времени публикуется датированный тег (например, sandreas/m4b-tool:2022-09-25
), который считается довольно стабильным, чтобы гарантировать, что сломанный latest
образ не нарушит всю вашу настройку.
# pull the image
docker pull sandreas/m4b-tool:latest
# create an alias for m4b-tool running docker
alias m4b-tool='docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt sandreas/m4b-tool:latest'
# testing the command
m4b-tool --version
Примечание. Если вы используете псевдоним, указанный выше, имейте в виду, что вы не можете использовать абсолютные пути (например,
/tmp/data/audiobooks/harry potter 1
) или символические ссылки. Вы должны перейти в каталог и использовать относительные пути (напримерcd /tmp/data && m4b-tool merge "audiobooks/harry potter 1" --output-file harry.m4b
)
Чтобы вручную собрать docker-контейнер для конкретной версии m4b-tool
, необходимо указать дополнительный параметр для загрузки в образ конкретной версии, например для v.0.4.1
:
# clone m4b-tool repository
git clone https://github.com/sandreas/m4b-tool.git
# change directory
cd m4b-tool
# build docker image - this will take a while
docker build . -t m4b-tool
# create an alias for m4b-tool running docker
alias m4b-tool='docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt m4b-tool'
# testing the command
m4b-tool --version
# use the specific pre-release from 2022-07-16
docker build . --build-arg M4B_TOOL_DOWNLOAD_LINK=https://github.com/sandreas/m4b-tool/files/9125095/m4b-tool.tar.gz -t m4b-tool
Примечание. Вы также можете просто отредактировать соответствующую переменную в
Dockerfile
.
Разработчики или эксперты могут захотеть запустить полную пользовательскую сборку m4b-tool
или собрать код самостоятельно (например, если вы разветвили репозиторий и применили некоторые исправления). В этом случае вы можете сохранить пользовательскую сборку в dist/m4b-tool.phar
относительно файла Dockerfile
, а затем выполнить сборку по умолчанию.
# dist/m4b-tool.phar is available
docker build . -t m4b-tool
После этого пользовательскую сборку следует интегрировать в образ докера.
В MacOS вы можете использовать замечательный менеджер пакетов brew
для установки m4b-tool
.
Для достижения наилучшего качества звука требуются дополнительные усилия. Вам придется перекомпилировать ffmpeg
с несвободным кодеком libfdk_aac
. Для этого необходимо удалить пакет ffmpeg
по умолчанию, если он установлен, поскольку brew
исключена возможность использования дополнительных опций . Официального репозитория ffmpeg-with-options
не существует, но есть довольно приличный tap
, который можно использовать для экономии времени.
# FIRST INSTALL ONLY: if not already done, remove existing ffmpeg with default audio quality options
# check for ffmpeg with libfdk and uninstall if libfdk is not already available
[ -x "$(which ffmpeg)" ] && (ffmpeg -hide_banner -codecs 2>&1 | grep libfdk || brew uninstall ffmpeg)
# tap required repositories
brew tap sandreas/tap
brew tap homebrew-ffmpeg/ffmpeg
# check available ffmpeg options and which you would like to use
brew options homebrew-ffmpeg/ffmpeg/ffmpeg
# install ffmpeg with at least libfdk_aac for best audio quality
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac
# install m4b-tool
brew install sandreas/tap/m4b-tool
# check installed m4b-tool version
m4b-tool --version
Если вышеизложенное не сработало для вас или вы просто хотите проверить m4b-tool
перед его использованием в рабочей среде, возможно, вы захотите попробовать быстрый и простой способ. Это будет работать, но качество звука будет ниже, а теги сортировки не поддерживаются .
# tap m4b-tool repository
brew tap sandreas/tap
# install dependencies
brew install ffmpeg fdk-aac-encoder mp4v2
# install m4b-tool with acceptable audio quality and no sort tagging
brew install --ignore-dependencies sandreas/tap/m4b-tool
# install all dependencies
sudo apt install ffmpeg mp4v2-utils fdkaac php-cli php-intl php-json php-mbstring php-xml
# install / upgrade m4b-tool
sudo wget https://github.com/sandreas/m4b-tool/releases/download/v.0.4.2/m4b-tool.phar -O /usr/local/bin/m4b-tool && sudo chmod +x /usr/local/bin/m4b-tool
# check installed m4b-tool version
m4b-tool --version
Примечание. Если вы хотите получить максимально возможное качество звука, вам необходимо скомпилировать
ffmpeg
с помощью высококачественного кодировщикаfdk-aac
(--enable-libfdk_aac
) — см. https://trac.ffmpeg.org/wiki/CompilationGuide/ Ubuntu — пошаговое руководство по компиляцииffmpeg
.
m4b-tool
написан на PHP
и использует ffmpeg
, mp4v2
и, опционально, fdkaac
для высокоэффективных кодеков для выполнения преобразований. Поэтому вам понадобятся следующие инструменты в вашем %PATH%:
php
>= 7.1 с включенным расширением mbstring
(https://php.net)ffmpeg
(https://www.ffmpeg.org)mp4v2
( mp4chaps
, mp4art
и т. д. https://github.com/sandreas/m4b-tool/releases/download/v0.2/mp4v2-windows.zip)fdkaac
(необязательно, только если вам нужна высокая эффективность при низких битрейтах <= 32k, http://wlc.io/2015/06/20/fdk-aac/ — осторожно: не официально!)Чтобы проверить зависимости, выполнение следующих команд через командную строку должно показать аналогичный результат:
$ php -v
Copyright (c) 1997-2018 The PHP Group [...]
$ ffmpeg -version
ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers [...]
$ mp4chaps --version
mp4chaps - MP4v2 2.0.0
$ fdkaac
fdkaac 1.0.0 [...]
Если вы уверены, что все зависимости установлены, следующим шагом будет загрузка последней версии m4b-tool
с сайта
https://github.com/sandreas/m4b-tool/releases
В зависимости от операционной системы вы можете переименовать m4b-tool.phar
в m4b-tool
и запустить m4b-tool --version
непосредственно из командной строки. Если вы не уверены, вы всегда можете использовать команду php m4b-tool.phar --version
, чтобы проверить, прошла ли установка успешно. Это должно работать в каждой системе.
Если вы хотите использовать новейший исходный код со всеми новыми функциями и исправлениями, вы также можете выполнить сборку из исходного кода. Текущая сборка может быть нестабильной, и ее следует использовать только в целях тестирования или если вам нужна определенная функция, которая еще не была выпущена.
mp4v2
для точного порядка сортировки.Большинство аудиокниг издаются не в алфавитном порядке. Яркий пример – Гарри Поттер. Итак, если у вас есть все аудиокниги о Гарри Поттере, это зависит от вашего плеера, но, вероятно, они перечислены не в правильном порядке... давайте посмотрим, каким будет алфавитный порядок:
И правильный порядок был бы:
Что ж, для этого есть решение. Вам необходимо пометить аудиокнигу собственным sortname
и/или sortalbum
. Если ваш плеер поддерживает эти теги, порядок теперь правильный, даже если заголовок по-прежнему является исходным. Чтобы добиться этого, мне пришлось создать собственную версию mp4v2
(более точно mp4tags
), добавить параметры для этих тегов и добавить псевдотеги --series
и --series-part
.
Итак, если вы сделаете следующее:
m4b-tool merge --name="Harry Potter and the Chamber of Secrets" --series="Harry Potter" --series-part="2" --output-file="output/Harry Potter and the Chamber of Secrets.m4b" "input/Harry Potter and the Chamber of Secrets"
Это приведет к:
Harry Potter and the Chamber of Secrets
Harry Potter 2 - Harry Potter and the Chamber of Secrets
mp4v2
В образе докера кастомная версия уже установлена.
git clone https://github.com/sandreas/mp4v2
cd mp4v2
./configure
make && sudo make install
В m4b-tool
все преобразования аудио выполняются с помощью ffmpeg
что приводит к довольно низкому качеству звука с использованием бесплатных кодировщиков. Однако наилучшее качество требует дополнительных усилий, поэтому, если вы используете бесплатные кодировщики, m4b-tool
может показать следующую подсказку:
Ваша версия ffmpeg не может создавать aac высшего качества, используя кодировщик aac вместо libfdk_aac.
На самом деле это не проблема, поскольку разница между кодировщиками aac
и libfdk_aac
в большинстве случаев едва заметна. Но чтобы преодолеть подсказку и получить максимально возможное качество звука, вам придется использовать платный кодировщик, который по умолчанию не интегрирован в ffmpeg
(причины лицензирования). В зависимости от используемой вами операционной системы установка платного кодировщика может потребовать немного дополнительных навыков, усилий и времени (см. примечания для вашей операционной системы выше). Вам придется решить, стоит ли прилагать дополнительные усилия для получения немного лучшего качества. Если вы используете образ Docker, по умолчанию вы должны получить наилучшее качество.
Если вы используете очень низкий битрейт (<= 32k), вы также можете использовать профили высокой эффективности для дальнейшего улучшения качества звука (например, --audio-profile=aac_he
для моно). К сожалению, высокоэффективная реализация ffmpeg
создает аудиофайлы, несовместимые со многими проигрывателями (включая iTunes). Для создания высокоэффективных файлов, совместимых как минимум с большинством распространенных проигрывателей, вам необходимо установить fdkaac
.
Более подробная информация:
Вы думаете, что с m4b-tool
возникла проблема? Сначала взгляните на известные проблемы ниже. Если это не помогло, при добавлении задачи предоставьте следующую информацию:
m4b-tool merge my-audio-book/ --output-file merged.m4b
the resulting file merged.m4b is only 5kb
Пример:
Title: m4b-tool does not embed covers
If i run m4b-tool with a folder containing a cover.png, it does not embed the cover and shows an error message.
OS: Ubuntu 16.04 LTS
Command: `m4b-tool merge my-audio-book/ ---output-file merged.m4b`
Error: Cannot embed cover, cover is not a valid image file
Attached files: cover.png
Если вы получаете исключения PHP, в большинстве случаев это проблема конфигурации PHP. Если вы не знакомы с конфигурацией PHP, вы можете следовать этим инструкциям, чтобы исправить несколько известных проблем:
[Exception]
charset windows-1252 is not supported - use one of these instead: utf-8
Чаще всего это происходит в Windows, потому что mbstring
-Extension используется для внутреннего преобразования кодировок, поэтому специальные символы, такие как немецкие умлауты, поддерживаются на каждой платформе. Чтобы это исправить, вам нужно включить расширение mbstring:
Запустите php --ini
в командной строке:
C:>php --ini
...
Loaded Configuration File: C:Program Filesphpphp.ini
Откройте файл конфигурации (например, C:Program Filesphpphp.ini
) в текстовом редакторе и найдите extension=
. В Windows должен быть такой пункт:
;extension=php_mbstring.dll
удалить ;
чтобы включить расширение:
extension=php_mbstring.dll
Теперь все должно работать как положено.
Следующий список содержит все возможные команды, включая merge
, split
и chapters
сопровождаемые ссылками на параметры, доступные в каждой команде.
С помощью m4b-tool
вы можете объединить набор аудиофайлов в один файл аудиокниги m4b.
m4b-tool merge "data/my-audio-book" --output-file="data/my-audio-book.m4b"
Это объединит все аудиофайлы в папке data/my-audio-book
в my-audio-book.m4b
, используя тег-заголовок каждого файла для создания глав.
Если существует файл data/my-audio-book/cover.jpg
(или cover.jpeg
или cover.png
), он будет использоваться в качестве обложки для полученного файла m4b.
Примечание. Если вы используете непомеченные аудиофайлы, вы можете указать идентификатор musicbrainz, чтобы получить правильные названия глав. Дополнительную информацию см. в главе «Команды».
Все параметры см. в m4b-tool merge --help
:
Description:
Merges a set of files to one single file
Usage:
merge [options] [--] <input> [<more-input-files>...]
Arguments:
input Input file or folder
more-input-files Other Input files or folders
Options:
--logfile[=LOGFILE] file to log all output [default: ""]
--debug enable debug mode - sets verbosity to debug, logfile to m4b-tool.log and temporary encoded files are not deleted
-f, --force force overwrite of existing files
--no-cache clear cache completely before doing anything
--ffmpeg-threads[=FFMPEG-THREADS] specify -threads parameter for ffmpeg - you should also consider --jobs when merge is used [default: ""]
--platform-charset[=PLATFORM-CHARSET] Convert from this filesystem charset to utf-8, when tagging files (e.g. Windows-1252, mainly used on Windows Systems) [default: ""]
--ffmpeg-param[=FFMPEG-PARAM] Add argument to every ffmpeg call, append after all other ffmpeg parameters (e.g. --ffmpeg-param="-max_muxing_queue_size" --ffmpeg-param="1000" for ffmpeg [...] -max_muxing_queue_size 1000) (multiple values allowed)
-a, --silence-min-length[=SILENCE-MIN-LENGTH] silence minimum length in milliseconds [default: 1750]
-b, --silence-max-length[=SILENCE-MAX-LENGTH] silence maximum length in milliseconds [default: 0]
--max-chapter-length[=MAX-CHAPTER-LENGTH] maximum chapter length in seconds - its also possible to provide a desired chapter length in form of 300,900 where 300 is desired and 900 is max - if the max chapter length is exceeded, the chapter is placed on the first silence between desired and max chapter length [default: "0"]
--name[=NAME] custom name, otherwise the existing metadata will be used
--sortname[=SORTNAME] custom sortname, that is used only for sorting
--album[=ALBUM] custom album, otherwise the existing metadata for name will be used
--sortalbum[=SORTALBUM] custom sortalbum, that is used only for sorting
--artist[=ARTIST] custom artist, otherwise the existing metadata will be used
--sortartist[=SORTARTIST] custom sortartist, that is used only for sorting
--genre[=GENRE] custom genre, otherwise the existing metadata will be used
--writer[=WRITER] custom writer, otherwise the existing metadata will be used
--albumartist[=ALBUMARTIST] custom albumartist, otherwise the existing metadata will be used
--year[=YEAR] custom year, otherwise the existing metadata will be used
--description[=DESCRIPTION] custom short description, otherwise the existing metadata will be used
--longdesc[=LONGDESC] custom long description, otherwise the existing metadata will be used
--comment[=COMMENT] custom comment, otherwise the existing metadata will be used
--copyright[=COPYRIGHT] custom copyright, otherwise the existing metadata will be used
--encoded-by[=ENCODED-BY] custom encoded-by, otherwise the existing metadata will be used
--cover[=COVER] custom cover, otherwise the existing metadata will be used
--skip-cover skip extracting and embedding covers
--series[=SERIES] custom series, this pseudo tag will be used to auto create sort order (e.g. Harry Potter or The Kingkiller Chronicles)
--series-part[=SERIES-PART] custom series part, this pseudo tag will be used to auto create sort order (e.g. 1 or 2.5)
--audio-format[=AUDIO-FORMAT] output format, that ffmpeg will use to create files [default: "m4b"]
--audio-channels[=AUDIO-CHANNELS] audio channels, e.g. 1, 2 [default: ""]
--audio-bitrate[=AUDIO-BITRATE] audio bitrate, e.g. 64k, 128k, ... [default: ""]
--audio-samplerate[=AUDIO-SAMPLERATE] audio samplerate, e.g. 22050, 44100, ... [default: ""]
--audio-codec[=AUDIO-CODEC] audio codec, e.g. libmp3lame, aac, ... [default: ""]
--audio-profile[=AUDIO-PROFILE] audio profile, when using extra low bitrate - valid values: aac_he, aac_he_v2 [default: ""]
--adjust-for-ipod auto adjust bitrate and sampling rate for ipod, if track is too long (may result in low audio quality)
--fix-mime-type try to fix MIME-type (e.g. from video/mp4 to audio/mp4) - this is needed for some players to prevent an empty video window
-o, --output-file=OUTPUT-FILE output file
--include-extensions[=INCLUDE-EXTENSIONS] comma separated list of file extensions to include (others are skipped) [default: "aac,alac,flac,m4a,m4b,mp3,oga,ogg,wav,wma,mp4"]
-m, --musicbrainz-id=MUSICBRAINZ-ID musicbrainz id so load chapters from
--no-conversion skip conversion (destination file uses same encoding as source - all encoding specific options will be ignored)
--batch-pattern[=BATCH-PATTERN] multiple batch patterns that can be used to merge all audio books in a directory matching the given patterns (e.g. %a/%t for author/title) - parameter --output-file must be a directory (multiple values allowed)
--dry-run perform a dry run without converting all the files in batch mode (requires --batch-pattern)
--jobs[=JOBS] Specifies the number of jobs (commands) to run simultaneously [default: 1]
--use-filenames-as-chapters Use filenames for chapter titles instead of tag contents
--no-chapter-reindexing Do not perform any reindexing for index-only chapter names (by default m4b-tool will try to detect index-only chapters like Chapter 1, Chapter 2 and reindex it with its numbers only)
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--batch-pattern
Если вы используете параметр --batch-pattern
, поддерживаются следующие заполнители.
title
/ name
: %n
sort_name
: %N
album
: %m
,sort_album
: %M
,artist
: %a
,sort_artist
: %A
,genre
: %g
,writer
: %w
,album_artist
: %t
,year
: %y
,description
: %d
,long_description
: %D
,comment
: %c
,copyright
: %C
,encoded_by
: %e
,group(ing)
: %G
,purchase_date
: %U
,series
: %s
,series_part
: %p
, m4b-tool
можно использовать для разделения одного файла m4b
на файл на главу или альбома в кодировке flac
на отдельные треки с помощью таблицы меток.
m4b-tool split --audio-format mp3 --audio-bitrate 96k --audio-channels 1 --audio-samplerate 22050 "data/my-audio-book.m4b"
Это разбивает файл data/my-audio-book.m4b into
mp3-файл для каждой главы, записывая файлы в data/my-audio-book_splitted/
.
Если вы хотите разделить flac
-файл, содержащий несколько дорожек, потребуется метка с точным именем файла flac
( my-album.flac
требует my-album.cue
):
# my-album.cue is automatically found and used for splitting
m4b-tool split --audio-format=mp3 --audio-bitrate=192k --audio-channels=2 --audio-samplerate=48000 "data/my-album.flac"
Все параметры см. в разделе m4b-tool split --help
:
Description:
Splits an m4b file into parts
Usage:
split [options] [--] <input>
Arguments:
input Input file or folder
Options:
--logfile[=LOGFILE] file to dump all output [default: ""]
--debug enable debug mode - sets verbosity to debug, logfile to m4b-tool.log and temporary files are not deleted
-f, --force force overwrite of existing files
--no-cache do not use cached values and clear cache completely
--ffmpeg-threads[=FFMPEG-THREADS] specify -threads parameter for ffmpeg [default: ""]
--platform-charset[=PLATFORM-CHARSET] Convert from this filesystem charset to utf-8, when tagging files (e.g. Windows-1252, mainly used on Windows Systems) [default: ""]
--ffmpeg-param[=FFMPEG-PARAM] Add argument to every ffmpeg call, append after all other ffmpeg parameters (e.g. --ffmpeg-param="-max_muxing_queue_size" --ffmpeg-param="1000" for ffmpeg [...] -max_muxing_queue_size 1000) (multiple values allowed)
-a, --silence-min-length[=SILENCE-MIN-LENGTH] silence minimum length in milliseconds [default: 1750]
-b, --silence-max-length[=SILENCE-MAX-LENGTH] silence maximum length in milliseconds [default: 0]
--max-chapter-length[=MAX-CHAPTER-LENGTH] maximum chapter length in seconds - its also possible to provide a desired chapter length in form of 300,900 where 300 is desired and 900 is max - if the max chapter length is exceeded, the chapter is placed on the first silence between desired and max chapter length [default: "0"]
--audio-format[=AUDIO-FORMAT] output format, that ffmpeg will use to create files [default: "m4b"]
--audio-channels[=AUDIO-CHANNELS] audio channels, e.g. 1, 2 [default: ""]
--audio-bitrate[=AUDIO-BITRATE] audio bitrate, e.g. 64k, 128k, ... [default: ""]
--audio-samplerate[=AUDIO-SAMPLERATE] audio samplerate, e.g. 22050, 44100, ... [default: ""]
--audio-codec[=AUDIO-CODEC] audio codec, e.g. libmp3lame, aac, ... [default: ""]
--audio-profile[=AUDIO-PROFILE] audio profile, when using extra low bitrate - valid values (mono, stereo): aac_he, aac_he_v2 [default: ""]
--adjust-for-ipod auto adjust bitrate and sampling rate for ipod, if track is to long (may lead to poor quality)
--name[=NAME] provide a custom audiobook name, otherwise the existing metadata will be used [default: ""]
--sortname[=SORTNAME] provide a custom audiobook name, that is used only for sorting purposes [default: ""]
--album[=ALBUM] provide a custom audiobook album, otherwise the existing metadata for name will be used [default: ""]
--sortalbum[=SORTALBUM] provide a custom audiobook album, that is used only for sorting purposes [default: ""]
--artist[=ARTIST]