m4b-tool
es un contenedor para ffmpeg
y mp4v2
para fusionar, dividir o manipular archivos de audiolibros con capítulos. Aunque m4b-tool
está diseñado para manejar archivos m4b, casi todos los formatos de audio deberían ser compatibles, por ejemplo, mp3, aac, ogg, alac y flac.
Si está utilizando alguno de mis proyectos y lo encuentra útil, considere hacer una donación para apoyarme. Planeo usar el dinero para apoyar otros proyectos de código abierto o fines caritativos. ¡Gracias!
>= 25.00$
Un agradecimiento especial a todos los patrocinadores que donaron una cantidad mensual de >= 25.00$
.
Nombre | Cantidad |
---|---|
numinit | 25,00$ |
Obtenga Nix y asegúrese de que Flakes esté habilitado.
nix run github:sandreas/m4b-tool
o nix run github:sandreas/m4b-tool#m4b-tool-libfdk
nix build github:sandreas/m4b-tool
o nix build github:sandreas/m4b-tool#m4b-tool-libfdk
./result/bin/m4b-tool
nix develop
composer2nix --executable --composition=composer.nix
para actualizar los archivos .nix Comencé un experimento que ahora ha alcanzado un nivel alfa temprano y se puede probar. La herramienta de línea de comandos está escrita en C#
, es de código completamente abierto y se llama tone
. Ya tiene un conjunto de características bastante decente, así que si quieres probarlo, aquí lo tienes:
https://github.com/sandreas/tone
Este anuncio NO significa que m4b-tool
esté obsoleto o que lo estará pronto. El desarrollo de m4b-tool
continuará (al menos hasta que tone tenga un conjunto de características similar a m4b-tool
). Es solo para tener una herramienta alternativa para funciones que pueden tener limitaciones.
Diviértete, no puedo esperar a recibir tus comentarios.
Lamentablemente estoy bastante ocupado en este momento, por lo que m4b-tool 0.4.2
es muy antiguo. Dado que no está previsto lanzar una versión más nueva sin tener la documentación completa, solo existe la última versión preliminar que obtiene correcciones de errores. Ya es bastante estable, por lo que si experimenta errores con v0.4.2
, pruebe la última versión preliminar, si ya se ha solucionado allí.
gracias sandreas
https://pilabor.com
merge
un conjunto de archivos de audio (por ejemplo, MP3 o AAC) en un único archivo m4bsplit
un único archivo m4b en varios archivos de salida por capítulos o un álbum codificado en flac
en pistas individuales a través de una hoja de referenciachapters
para un archivo m4b existente mediante detección de silencio o musicbrainz merge
todos los archivos de audio en el directorio data/my-audio-book
en el archivo data/merged.m4b
(las etiquetas se conservan y data/my-audio-book/cover.jpg
y data/my-audio-book/description.txt
están incrustados , si está disponible)
m4b-tool merge "data/my-audio-book/" --output-file="data/merged.m4b"
split
un archivo m4b grande por capítulos en varios archivos mp3 en data/my-audio-book_splitted/
(las etiquetas se conservan, se crea data/my-audio-book_splitted/cover.jpg
, si m4b contiene una portada)
m4b-tool split --audio-format mp3 --audio-bitrate 96k --audio-channels 1 --audio-samplerate 22050 "data/my-audio-book.m4b"
chapters
pueden intentar ajustar los capítulos existentes de un m4b mediante la detección de silencio.
m4b-tool chapters --adjust-by-silence -o "data/destination-with-adjusted-chapters.m4b" "data/source-with-misplaced-chapters.m4b"
Dado que el subcomando más utilizado de m4b-tool
parece ser merge
, hablemos de las mejores prácticas...
Lamentablemente, m4b-tool
tiene muchas dependencias. No solo frases ingeniosas, si desea obtener la mejor calidad y soporte de etiquetado, muchas dependencias deben compilarse manualmente con opciones adicionales. Es por eso que deberías echarle un vistazo a la imagen de la ventana acoplable, que viene con todas las comodidades de la mejor calidad de audio, soporte de etiquetado superior y fácil instalación y casi no tiene desventajas.
Nota: Si está en Windows, puede resultar difícil hacerlo funcionar.
Al fusionar audiolibros, debes prepararlos; la siguiente estructura de directorios ayuda mucho, incluso si solo fusionas un único audiolibro:
input/<main genre>/<author>/<title>
o si es una serie
input/<main genre>/<author>/<series>/<series-part> - <title>
Ejemplos:
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/
input/Fantasy/J.K. Rowling/Harry Potter/1 - Harry Potter and the Philosopher's Stone/
Nota: Si el título de su audiolibro contiene caracteres de ruta no válidos como
/
, simplemente reemplácelos con un guión-
.
Ahora, como casi siempre deseas una portada y una descripción para tu audiolibro, debes agregar los siguientes archivos en el directorio principal:
cover.jpg
(o cover.jpeg
o cover.png
)description.txt
(Asegúrese de utilizar la codificación de archivos de texto UTF-8
para los contenidos)Ejemplos:
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/cover.jpg
input/Fantasy/J.K. Rowling/Quidditch Through the Ages/description.txt
Nota:
m4b-tool
encontrará e incrustará estos archivos automáticamente pero no fallará si no están presentes
Los capítulos son buenos para agregar puntos de referencia para su audiolibro. Ayudan a recordar la última posición y mejoran la experiencia en general.
Si desea ajustar los capítulos manualmente, puede agregar un chapters.txt
(la misma ubicación que cover.jpg
) con el siguiente contenido ( <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
Si sus archivos de entrada están etiquetados, estas etiquetas se utilizarán para crear los metadatos del capítulo por su title
. Entonces, si etiqueta sus archivos de entrada con nombres de capítulos válidos como title
de pista, esto dará como resultado un archivo m4b
agradable y limpio con nombres de capítulos válidos.
Otra gran característica desde m4b-tool
v.0.4.0 es el parámetro --max-chapter-length
. A menudo, los archivos de entrada individuales son demasiado grandes, lo que da como resultado capítulos con una duración muy larga. Esto puede resultar molesto si desea saltar a un punto determinado, ya que tiene que rebobinar o avanzar rápidamente y mantener presionado el botón durante mucho tiempo, en lugar de simplemente avanzar o seguir unas cuantas veces. Para agregar subcapítulos automáticamente, puede proporcionar:
--max-chapter-length=300,900
Esto hará que m4b-tool
Los subcapítulos reciben el mismo nombre que el original y obtienen un índice adicional. Esta es una buena manera de mantener los nombres reales pero sin tener capítulos con una duración demasiado larga.
Si posee un iPod, puede haber un problema con los audiolibros demasiado largos, ya que los iPod sólo admiten frecuencias de muestreo de 32 bits. Si su audiolibro dura más de 27 horas con una frecuencia de muestreo de 22050 Hz, puede proporcionar --adjust-for-ipod
, para reducir automáticamente la resolución de su audiolibro, lo que resulta en una calidad más baja, pero al menos funciona en su viejo iPod...
m4b-tool
admite múltiples tareas de conversión en paralelo con el parámetro --jobs
(por ejemplo, --jobs=2
). Si tiene que convertir más de un archivo, que es el caso común, casi duplica la velocidad de fusión proporcionando el parámetro --jobs=2
(o cuadruplica con --jobs=4
, si tiene un sistema de cuatro núcleos, etc. .). No proporcione un número mayor que el número de núcleos de su sistema; esto ralentizará la fusión...
Nota: Si ejecuta la conversión en todos sus núcleos, resultará en un uso de CPU de casi el 100%, lo que puede provocar un rendimiento más lento del sistema.
--batch-pattern
En m4b-tool v.0.4.0
se agregó la función --batch-pattern
. Se puede utilizar para convertir por lotes varios audiolibros a la vez, pero también para convertir solo un audiolibro, porque puede crear etiquetas a partir de una estructura de directorio existente.
Sugerencia: El parámetro
output-file
debe ser un directorio, cuando se usa--batch-pattern
.
Incluso se admiten varios parámetros --batch-pattern
, mientras que la primera coincidencia se utilizará primero. Entonces, si creó la estructura de directorios como se describe arriba, el comando final para fusionar input/Fantasy/Harry Potter/1 - Harry Potter and the Philosopher's Stone/
con output/Fantasy/Harry Potter/1 - Harry Potter and the Philosopher's Stone.m4b
se vería así:
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/"
En el modo
--batch-pattern
, los archivos existentes se omiten de forma predeterminada
Si realizó los pasos anteriores con la imagen de la ventana acoplable o instaló y compiló todas las dependencias, debería obtener el siguiente resultado:
libfdk_aac
genre
, author
, title
, sorttitle
, etc. del uso de --batch-pattern
cover.jpg
(o cover.jpeg
o cover.png
) y description.txt
existen en los directorios principales, se incrustan una cover
, una description
y un longdesc
Para usar Docker con m4b-tool
, primero debes
pull
la imagen oficial de Docker (recomendado)build
el Dockerfile
en el directorio principal Las imágenes oficiales de Docker están disponibles en DockerHub. Son algo experimentales, pero han demostrado que funcionan bien. La latest
etiqueta se considera el camino a seguir con las características y correcciones de vanguardia. De vez en cuando se publica una etiqueta fechada (por ejemplo, sandreas/m4b-tool:2022-09-25
), que se considera bastante estable, para garantizar que una imagen latest
rota no rompa toda la configuración.
# 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
Nota: Si usa el alias anterior, tenga en cuenta que no puede usar rutas absolutas (por ejemplo,
/tmp/data/audiobooks/harry potter 1
) ni enlaces simbólicos. Debes cambiar al directorio y usar rutas relativas (por ejemplo,cd /tmp/data && m4b-tool merge "audiobooks/harry potter 1" --output-file harry.m4b
).
Para crear manualmente un contenedor acoplable para una versión específica m4b-tool
, es necesario proporcionar un parámetro adicional para descargar una versión específica en la imagen, por ejemplo, para 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
Nota: También puede simplemente editar la variable correspondiente en
Dockerfile
.
Es posible que los desarrolladores o expertos quieran ejecutar una compilación personalizada completa de m4b-tool
o compilar el código ellos mismos (por ejemplo, si bifurcó el repositorio y aplicó algunos parches). Si ese es el caso, puede almacenar la compilación personalizada en dist/m4b-tool.phar
en relación con el Dockerfile
y luego realizar una compilación predeterminada.
# dist/m4b-tool.phar is available
docker build . -t m4b-tool
Después de esto, la compilación personalizada debería integrarse en la imagen de la ventana acoplable.
En MacOS, puedes utilizar el increíble administrador de paquetes brew
para instalar m4b-tool
.
Obtener la mejor calidad de audio requiere un esfuerzo adicional. Tienes que recompilar ffmpeg
con el códec no gratuito libfdk_aac
. Esto requiere desinstalar el paquete ffmpeg
predeterminado si está instalado, ya que brew
eliminó la posibilidad de opciones adicionales . No existe un repositorio oficial ffmpeg-with-options
, pero sí un tap
bastante decente que podrías usar para ahorrar tiempo.
# 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
Si lo anterior no funcionó para usted o simplemente desea verificar m4b-tool
antes de usarlo en producción, es posible que desee probar la forma rápida y sencilla . Funcionará, pero obtendrá una calidad de audio inferior y no es compatible con el etiquetado de clasificación .
# 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
Nota: Si desea obtener la mejor calidad de audio posible, debe compilar
ffmpeg
con el codificador de alta calidadfdk-aac
(--enable-libfdk_aac
); consulte https://trac.ffmpeg.org/wiki/CompilationGuide/ Ubuntu para obtener una guía paso a paso para compilarffmpeg
.
m4b-tool
está escrito en PHP
y utiliza ffmpeg
, mp4v2
y, opcionalmente, fdkaac
para que los códecs de alta eficiencia realicen conversiones. Por lo tanto necesitarás las siguientes herramientas en tu %PATH%:
php
>= 7.1 con la extensión mbstring
habilitada (https://php.net)ffmpeg
(https://www.ffmpeg.org)mp4v2
( mp4chaps
, mp4art
, etc. https://github.com/sandreas/m4b-tool/releases/download/v0.2/mp4v2-windows.zip)fdkaac
(opcional, solo si necesita alta eficiencia para tasas de bits bajas <= 32k, http://wlc.io/2015/06/20/fdk-aac/ - precaución: ¡no es oficial!)Para verificar las dependencias, ejecutar los siguientes comandos a través de la línea de comandos debería mostrar un resultado similar:
$ 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 [...]
Si está seguro de que todas las dependencias están instaladas, el siguiente paso es descargar la última versión de m4b-tool
desde
https://github.com/sandreas/m4b-tool/releases
Dependiendo del sistema operativo, puede cambiar el nombre de m4b-tool.phar
a m4b-tool
y ejecutar m4b-tool --version
directamente desde la línea de comando. Si no está seguro, siempre puede utilizar el comando php m4b-tool.phar --version
para comprobar si la instalación se realizó correctamente. Esto debería funcionar en todos los sistemas.
Si desea utilizar el código fuente más reciente con todas las funciones y correcciones nuevas, también puede compilar desde el código fuente. La compilación actual puede ser inestable y solo debe usarse con fines de prueba o si necesita una característica específica que no se haya lanzado.
mp4v2
personalizado para un orden de clasificación precisoLa mayoría de los audiolibros no se publican en orden alfabético. Un ejemplo destacado es Harry Potter. Entonces si tienes todos los audiolibros de Harry Potter, depende de tu reproductor, pero probablemente no estén listados en el orden correcto… veamos, cuál sería el orden alfabético:
Y el orden correcto hubiera sido:
Bueno, hay una solución para esto. Tienes que etiquetar el audiolibro con un sortname
y/o un sortalbum
personalizado. Si su reproductor admite estas etiquetas, el orden ahora es correcto, incluso cuando el título sigue siendo el título original. Para lograr esto, tuve que crear una versión personalizada de mp4v2
( mp4tags
más precisa), para agregar opciones para estas etiquetas y agregar las pseudoetiquetas --series
y --series-part
.
Entonces, si haces lo siguiente:
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"
Resultaría en:
Harry Potter and the Chamber of Secrets
Harry Potter 2 - Harry Potter and the Chamber of Secrets
mp4v2
personalizadoEn la imagen de la ventana acoplable, la versión personalizada ya está instalada.
git clone https://github.com/sandreas/mp4v2
cd mp4v2
./configure
make && sudo make install
En m4b-tool
todas las conversiones de audio se realizan con ffmpeg
lo que da como resultado una calidad de audio bastante decente utilizando sus codificadores gratuitos. Sin embargo, obtener la mejor calidad requiere un esfuerzo adicional, por lo que si está utilizando codificadores gratuitos, m4b-tool
podría mostrar la siguiente sugerencia:
Su versión de ffmpeg no puede producir aac de alta calidad usando el codificador aac en lugar de libfdk_aac
Eso no es realmente un problema, porque la diferencia entre el codificador aac
y libfdk_aac
apenas se nota en la mayoría de los casos. Pero para superar la sugerencia y obtener la mejor calidad de audio posible, debe utilizar un codificador no gratuito, que no está integrado en ffmpeg
de forma predeterminada (motivos de licencia). Dependiendo del sistema operativo que esté utilizando, instalar el codificador no gratuito puede requerir un poco de habilidad, esfuerzo y tiempo adicionales (consulte las notas anteriores para su sistema operativo). Tienes que decidir si vale la pena el esfuerzo adicional para obtener una calidad ligeramente mejor. Si está utilizando la imagen de la ventana acoplable, debería obtener la mejor calidad de forma predeterminada.
Si utiliza velocidades de bits muy bajas (<= 32k), también puede utilizar perfiles de alta eficiencia para mejorar aún más la calidad del audio (por ejemplo, --audio-profile=aac_he
para mono). Desafortunadamente, la implementación de alta eficiencia de ffmpeg
produce archivos de audio que son incompatibles con muchos reproductores (incluido iTunes). Para producir archivos de alta eficiencia, que sean compatibles con al menos la mayoría de los reproductores comunes, necesitará instalar fdkaac
por ahora.
Más detalles:
¿Crees que hay un problema con m4b-tool
? Primero, eche un vistazo a los problemas conocidos a continuación. Si esto no ayuda, proporcione la siguiente información al agregar un problema:
m4b-tool merge my-audio-book/ --output-file merged.m4b
the resulting file merged.m4b is only 5kb
Ejemplo:
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
Si recibe excepciones de PHP, en la mayoría de los casos se trata de un problema de configuración de PHP. Si no está familiarizado con la configuración de PHP, puede seguir estas instrucciones para solucionar algunos problemas conocidos:
[Exception]
charset windows-1252 is not supported - use one of these instead: utf-8
Esto sucede principalmente en Windows, porque mbstring
-Extension se usa para convertir conjuntos de caracteres internamente, de modo que se admitan caracteres especiales como diéresis alemanas en todas las plataformas. Para solucionar este problema, debe habilitar la extensión mbstring:
Ejecute php --ini
en la línea de comando:
C:>php --ini
...
Loaded Configuration File: C:Program Filesphpphp.ini
Abra el archivo de configuración (por ejemplo, C:Program Filesphpphp.ini
) en un editor de texto y busque extension=
. En Windows debería haber un elemento como este:
;extension=php_mbstring.dll
eliminar el ;
para habilitar la extensión:
extension=php_mbstring.dll
Ahora todo debería funcionar como se esperaba.
La siguiente lista contiene todos los comandos posibles, incluidos merge
, split
y chapters
acompañados de la referencia de los parámetros disponibles en cada comando.
Con m4b-tool
puedes fusionar un conjunto de archivos de audio en un único archivo de audiolibro m4b.
m4b-tool merge "data/my-audio-book" --output-file="data/my-audio-book.m4b"
Esto fusiona todos los archivos de audio en la carpeta data/my-audio-book
en my-audio-book.m4b
, usando la etiqueta-título de cada archivo para generar capítulos.
Si hay un archivo data/my-audio-book/cover.jpg
(o cover.jpeg
o cover.png
), se utilizará como portada para el archivo m4b resultante.
Nota: Si utiliza archivos de audio sin etiquetar, puede proporcionar una identificación de musicbrainz para obtener los nombres de capítulo correctos; consulte el capítulo de comandos para obtener más información.
Para conocer todas las opciones, consulte 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
Si utiliza el parámetro --batch-pattern
, se admiten los siguientes marcadores de posición
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
se puede utilizar para dividir un solo m4b
en un archivo por capítulo o un álbum codificado en flac
en pistas individuales a través de una hoja de referencia.
m4b-tool split --audio-format mp3 --audio-bitrate 96k --audio-channels 1 --audio-samplerate 22050 "data/my-audio-book.m4b"
Esto divide el archivo data/my-audio-book.m4b into
un archivo mp3 para cada capítulo, escribiendo los archivos en data/my-audio-book_splitted/
.
Si desea dividir un archivo flac
que contiene varias pistas, se requiere una hoja de referencia con el nombre de archivo exacto del flac
( my-album.flac
requiere 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"
Para conocer todas las opciones, consulte 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]