sandreas / m4b-tool

m4b-tool is a command line utility to merge, split and chapterize audiobook files such as mp3, ogg, flac, m4a or m4b
MIT License
1.16k stars 75 forks source link

Cannot extract chapters #263

Open Juhayer-Al-Wasif opened 2 months ago

Juhayer-Al-Wasif commented 2 months ago

m4b-tool split --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 --cover folder.jpg "sherlock.m4b"

In SplitCommand.php line 400:

could not extract chapter 1 - A Scandal in Bohemia: (234)

split [--logfile [LOGFILE]] [--debug] [-f|--force] [--tmp-dir [TMP-DIR]] [--no-cleanup] [--no-cache] [--ffmpeg-threads [FFMPEG-THREADS]] [--platform-charset [PLATFORM-CHARSET]] [--ffmpeg-param [FFMPEG-PARAM]] [-a|--silence-min-length [SILENCE-MIN-LENGTH]] [-b|--silence-max-length [SILENCE-MAX-LENGTH]] [--min-chapter-length [MIN-CHAPTER-LENGTH]] [--max-chapter-length [MAX-CHAPTER-LENGTH]] [--enable-improvers [ENABLE-IMPROVERS]] [--disable-improvers [DISABLE-IMPROVERS]] [-p|--filename-template [FILENAME-TEMPLATE]] [--name [NAME]] [--sortname [SORTNAME]] [--album [ALBUM]] [--sortalbum [SORTALBUM]] [--artist [ARTIST]] [--sortartist [SORTARTIST]] [--genre [GENRE]] [--writer [WRITER]] [--albumartist [ALBUMARTIST]] [--year [YEAR]] [--description [DESCRIPTION]] [--longdesc [LONGDESC]] [--comment [COMMENT]] [--copyright [COPYRIGHT]] [--encoded-by [ENCODED-BY]] [--grouping [GROUPING]] [--purchase-date [PURCHASE-DATE]] [--encoder [ENCODER]] [--cover [COVER]] [--skip-cover-if-exists] [--skip-cover] [--series [SERIES]] [--series-part [SERIES-PART]] [--remove [REMOVE]] [--ignore-source-tags] [--prefer-metadata-tags] [--audio-format [AUDIO-FORMAT]] [--audio-extension [AUDIO-EXTENSION]] [--audio-channels [AUDIO-CHANNELS]] [--audio-bitrate [AUDIO-BITRATE]] [--audio-samplerate [AUDIO-SAMPLERATE]] [--audio-codec [AUDIO-CODEC]] [--audio-quality [AUDIO-QUALITY]] [--audio-profile [AUDIO-PROFILE]] [--adjust-for-ipod] [--use-nero-chapter-format] [--fix-mime-type] [--no-conversion] [--trim-silence] [--add-silence [ADD-SILENCE]] [-o|--output-dir [OUTPUT-DIR]] [--use-existing-chapters-file] [--reindex-chapters] [--fixed-length [FIXED-LENGTH]] [--chapters-filename [CHAPTERS-FILENAME]] [--by-silence] [--]

sandreas commented 2 months ago

@Juhayer-Al-Wasif

There is probably an issue with the required dependencies (ffmpeg, mp4chaps, tone or something else). How did you install m4b-tool or are you using the docker image?

Juhayer-Al-Wasif commented 2 months ago

@sandreas

In Archlinux, using an aur helper: yay -S m4b-tool-bin Package info: https://aur.archlinux.org/packages/m4b-tool-bin

sandreas commented 2 months ago

In Archlinux, using an aur helper: yay -S m4b-tool-bin

Ok, I think that since I did not release a stable version yet, the aur is not using the latest version. Try the following:

# show m4b-tool install path, e.g. /usr/local/bin/m4b-tool
which m4b-tool

# download latest pre-release
cd /tmp
wget https://github.com/sandreas/m4b-tool/files/15313912/m4b-tool.tar.gz
tar xzf m4b-tool.tar.gz

# backup old version
sudo mv /usr/local/bin/m4b-tool /usr/local/bin/m4b-tool.2020-02-29.phar

# install new version
sudo mv m4b-tool.phar /usr/local/bin/m4b-tool && sudo chmod +x /usr/local/bin/m4b-tool

Now you have the latest release. If you also use tone (which I would recommend to get better tagging results), the tone aur is also outdated. You could apply the same procedure (which tone, ....) to update to latest (0.1.7).

Let me know if this fixes the issue. If not, I'd recommend to use the docker image, which contains all required dependencies and the latest pre-release.

Juhayer-Al-Wasif commented 2 months ago

@sandreas I have done it before but it still no change.

sudo ls -l
total 524
-rw-r--r-- 1 wasif wasif 534532 May 15 03:23 m4b-tool.tar.gz
drwx------ 2 root  root      40 Aug 24 00:10 snap-private-tmp
drwxr-xr-x 3 wasif wasif     60 Aug 24 00:14 symfony-cache
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-bluetooth.service-yU4GGO
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-dbus-broker.service-78CGBG
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-polkit.service-qa2TXs
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-systemd-logind.service-w8dLRr
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-systemd-resolved.service-3T8p77
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-systemd-timesyncd.service-lvPppf
drwx------ 3 root  root      60 Aug 24 00:10 systemd-private-fa07ef3cf9634fe1a45ab7a48ac8c219-upower.service-AVT4n2
m4b-tool --version
m4b-tool v0.5-prerelease-28-g942e50f

cd Desktop/Sherlock\ Holmes\ \(Derek\ Jacobi\)/

m4b-tool split --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 "sherlock.m4b"
extracting cover to sherlock_splitted/cover.jpg failed - maybe there was no cover embedded in sherlock.m4b

Error

In SplitCommand.php line 400:

  could not extract chapter 1 - A Scandal in Bohemia:  (234)  

split [--logfile [LOGFILE]] [--debug] [-f|--force] [--tmp-dir [TMP-DIR]] [--no-cleanup] [--no-cache] [--ffmpeg-threads [FFMPEG-THREADS]] [--platform-charset [PLATFORM-CHARSET]] [--ffmpeg-param [FFMPEG-PARAM]] [-a|--silence-min-length [SILENCE-MIN-LENGTH]] [-b|--silence-max-length [SILENCE-MAX-LENGTH]] [--min-chapter-length [MIN-CHAPTER-LENGTH]] [--max-chapter-length [MAX-CHAPTER-LENGTH]] [--enable-improvers [ENABLE-IMPROVERS]] [--disable-improvers [DISABLE-IMPROVERS]] [-p|--filename-template [FILENAME-TEMPLATE]] [--name [NAME]] [--sortname [SORTNAME]] [--album [ALBUM]] [--sortalbum [SORTALBUM]] [--artist [ARTIST]] [--sortartist [SORTARTIST]] [--genre [GENRE]] [--writer [WRITER]] [--albumartist [ALBUMARTIST]] [--year [YEAR]] [--description [DESCRIPTION]] [--longdesc [LONGDESC]] [--comment [COMMENT]] [--copyright [COPYRIGHT]] [--encoded-by [ENCODED-BY]] [--grouping [GROUPING]] [--purchase-date [PURCHASE-DATE]] [--encoder [ENCODER]] [--cover [COVER]] [--skip-cover-if-exists] [--skip-cover] [--series [SERIES]] [--series-part [SERIES-PART]] [--remove [REMOVE]] [--ignore-source-tags] [--prefer-metadata-tags] [--audio-format [AUDIO-FORMAT]] [--audio-extension [AUDIO-EXTENSION]] [--audio-channels [AUDIO-CHANNELS]] [--audio-bitrate [AUDIO-BITRATE]] [--audio-samplerate [AUDIO-SAMPLERATE]] [--audio-codec [AUDIO-CODEC]] [--audio-quality [AUDIO-QUALITY]] [--audio-profile [AUDIO-PROFILE]] [--adjust-for-ipod] [--use-nero-chapter-format] [--fix-mime-type] [--no-conversion] [--trim-silence] [--add-silence [ADD-SILENCE]] [-o|--output-dir [OUTPUT-DIR]] [--use-existing-chapters-file] [--reindex-chapters] [--fixed-length [FIXED-LENGTH]] [--chapters-filename [CHAPTERS-FILENAME]] [--by-silence] [--] <input>
sandreas commented 2 months ago

Ok, I tracked it down to ffmpeg, but so far I could not reproduce it. I'll try with an arch image soon, this may take some time.

In the meantime it would be great if you could run with --debug and post more output. BTW I took the time and wrapped your output log with ticks to make it more readable...

```bash ... your commands and output ```

m4b-tool split --debug --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 "sherlock.m4b"
Juhayer-Al-Wasif commented 2 months ago

Thanks @sandreas for wrapping my outputs. I hope you find them well this time.

Command: m4b-tool split --debug --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 "sherlock.m4b"

Output:

'ffmpeg' '-hide_banner' '-version'
'mp4info' 'sherlock.m4b'
export chapter list of sherlock.m4b
'ffmpeg' '-hide_banner' '-i' 'sherlock.m4b' '-f' 'ffmetadata' '-'
'ffmpeg' '-hide_banner' '-i' 'sherlock.m4b' '-f' 'ffmetadata' '-'
skip description extraction, tag does not contain a description
'mp4art' '--list' 'sherlock.m4b'
extracting cover to sherlock_splitted/cover.jpg failed - maybe there was no cover embedded in sherlock.m4b
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock.m4b' '-vn' '-ss' '00:00:00.000' '-t' '00:56:54.032' '-map_metadata' 'a' '-map' 'a' '-map_chapters' '-1' '-acodec' 'copy' '-f' 'mp4' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-converting.m4b'
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-finished.m4b' '-i' '/tmp/wSk28U.txt' '-map_metadata' '1' '-id3v2_version' '3' '-max_muxing_queue_size' '9999' '-movflags' '+faststart' '-vn' '-ab' '128k' '-ar' '22100' '-ac' '2' '-acodec' 'libmp3lame' '-f' 'mp3' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3'

In SplitCommand.php line 400:

  [Exception]                                                 
  could not extract chapter 1 - A Scandal in Bohemia:  (234)  

Exception trace:
  at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:400
 M4bTool\Command\SplitCommand->extractChapter() at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:349
 M4bTool\Command\SplitCommand->splitChapters() at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:129
 M4bTool\Command\SplitCommand->execute() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:1021
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:275
 Symfony\Component\Console\Application->doRun() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:149
 Symfony\Component\Console\Application->run() at phar:///usr/bin/m4b-tool/bin/m4b-tool.php:57
 require() at /usr/bin/m4b-tool:10

split [--logfile [LOGFILE]] [--debug] [-f|--force] [--tmp-dir [TMP-DIR]] [--no-cleanup] [--no-cache] [--ffmpeg-threads [FFMPEG-THREADS]] [--platform-charset [PLATFORM-CHARSET]] [--ffmpeg-param [FFMPEG-PARAM]] [-a|--silence-min-length [SILENCE-MIN-LENGTH]] [-b|--silence-max-length [SILENCE-MAX-LENGTH]] [--min-chapter-length [MIN-CHAPTER-LENGTH]] [--max-chapter-length [MAX-CHAPTER-LENGTH]] [--enable-improvers [ENABLE-IMPROVERS]] [--disable-improvers [DISABLE-IMPROVERS]] [-p|--filename-template [FILENAME-TEMPLATE]] [--name [NAME]] [--sortname [SORTNAME]] [--album [ALBUM]] [--sortalbum [SORTALBUM]] [--artist [ARTIST]] [--sortartist [SORTARTIST]] [--genre [GENRE]] [--writer [WRITER]] [--albumartist [ALBUMARTIST]] [--year [YEAR]] [--description [DESCRIPTION]] [--longdesc [LONGDESC]] [--comment [COMMENT]] [--copyright [COPYRIGHT]] [--encoded-by [ENCODED-BY]] [--grouping [GROUPING]] [--purchase-date [PURCHASE-DATE]] [--encoder [ENCODER]] [--cover [COVER]] [--skip-cover-if-exists] [--skip-cover] [--series [SERIES]] [--series-part [SERIES-PART]] [--remove [REMOVE]] [--ignore-source-tags] [--prefer-metadata-tags] [--audio-format [AUDIO-FORMAT]] [--audio-extension [AUDIO-EXTENSION]] [--audio-channels [AUDIO-CHANNELS]] [--audio-bitrate [AUDIO-BITRATE]] [--audio-samplerate [AUDIO-SAMPLERATE]] [--audio-codec [AUDIO-CODEC]] [--audio-quality [AUDIO-QUALITY]] [--audio-profile [AUDIO-PROFILE]] [--adjust-for-ipod] [--use-nero-chapter-format] [--fix-mime-type] [--no-conversion] [--trim-silence] [--add-silence [ADD-SILENCE]] [-o|--output-dir [OUTPUT-DIR]] [--use-existing-chapters-file] [--reindex-chapters] [--fixed-length [FIXED-LENGTH]] [--chapters-filename [CHAPTERS-FILENAME]] [--by-silence] [--] <input>
sandreas commented 2 months ago

Mmh, could not reproduce it, works for me (I tried hard).

Could you as a last step (before the need for sharing the original file) try the following:

# --debug will make m4b-tool keep temp files
m4b-tool split --debug --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 "sherlock.m4b"

# ffmpeg command is executed to extract part of the file and seems to fail
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-finished.m4b' '-i' '/tmp/wSk28U.txt' '-map_metadata' '1' '-id3v2_version' '3' '-max_muxing_queue_size' '9999' '-movflags' '+faststart' '-vn' '-ab' '128k' '-ar' '22100' '-ac' '2' '-acodec' 'libmp3lame' '-f' 'mp3' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3'
Juhayer-Al-Wasif commented 2 months ago

As you told: m4b-tool split --debug --audio-format mp3 --audio-channels 2 --audio-samplerate 22100 "sherlock.m4b" Output:

m4b-tool development, OS: Linux (EndeavourOS Linux \r (\l))
'ffmpeg' '-hide_banner' '-version'
'mp4info' 'sherlock.m4b'
export chapter list of sherlock.m4b
'ffmpeg' '-hide_banner' '-i' 'sherlock.m4b' '-f' 'ffmetadata' '-'
skip description extraction, tag does not contain a description
'mp4art' '--list' 'sherlock.m4b'
extracting cover to sherlock_splitted/cover.jpg failed - maybe there was no cover embedded in sherlock.m4b
tagFile - filename: sherlock_splitted/001-1 - A Scandal in Bohemia.mp3
full tag: {"album":"Sherlock Holmes (Derek Jacobi)","albumArtist":"Sir Derek Jacobi","artist":"Sir Arthur Conan Doyle","disk":"2","encoder":"m4b-tool","title":"1 - A Scandal in Bohemia","track":1,"tracks":12,"type":2,"year":"2007"}
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3' '-i' '/tmp/3nDyge.txt' '-map_metadata' '1' '-id3v2_version' '3' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-66cde930388d92.71253464.mp3'
could not tag file sherlock_splitted/001-1 - A Scandal in Bohemia.mp3, error: Could not write tag for file sherlock_splitted/001-1 - A Scandal in Bohemia.mp3:  (183)
#0 phar:///usr/bin/m4b-tool/src/library/Audio/BinaryWrapper.php(273): M4bTool\Executables\Ffmpeg->writeTag()
#1 phar:///usr/bin/m4b-tool/src/library/Command/AbstractConversionCommand.php(260): M4bTool\Audio\BinaryWrapper->writeTag()
#2 phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php(374): M4bTool\Command\AbstractConversionCommand->tagFile()
#3 phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php(129): M4bTool\Command\SplitCommand->splitChapters()
#4 phar:///usr/bin/m4b-tool/vendor/symfony/console/Command/Command.php(255): M4bTool\Command\SplitCommand->execute()
#5 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(1021): Symfony\Component\Console\Command\Command->run()
#6 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(275): Symfony\Component\Console\Application->doRunCommand()
#7 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#8 phar:///usr/bin/m4b-tool/bin/m4b-tool.php(57): Symfony\Component\Console\Application->run()
#9 /usr/bin/m4b-tool(10): require('...')
#10 {main}
trace: #0 phar:///usr/bin/m4b-tool/src/library/Audio/BinaryWrapper.php(273): M4bTool\Executables\Ffmpeg->writeTag()
#1 phar:///usr/bin/m4b-tool/src/library/Command/AbstractConversionCommand.php(260): M4bTool\Audio\BinaryWrapper->writeTag()
#2 phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php(374): M4bTool\Command\AbstractConversionCommand->tagFile()
#3 phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php(129): M4bTool\Command\SplitCommand->splitChapters()
#4 phar:///usr/bin/m4b-tool/vendor/symfony/console/Command/Command.php(255): M4bTool\Command\SplitCommand->execute()
#5 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(1021): Symfony\Component\Console\Command\Command->run()
#6 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(275): Symfony\Component\Console\Application->doRunCommand()
#7 phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#8 phar:///usr/bin/m4b-tool/bin/m4b-tool.php(57): Symfony\Component\Console\Application->run()
#9 /usr/bin/m4b-tool(10): require('...')
#10 {main}
tagged file 001-1 - A Scandal in Bohemia.mp3 (artist: Sir Arthur Conan Doyle, name: 1 - A Scandal in Bohemia, chapters: 0)
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock.m4b' '-vn' '-ss' '00:56:54.032' '-t' '00:56:53.968' '-map_metadata' 'a' '-map' 'a' '-map_chapters' '-1' '-acodec' 'copy' '-f' 'mp4' 'sherlock_splitted/002-2 - The Red-Headed League.mp3-converting.m4b'
'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/002-2 - The Red-Headed League.mp3-finished.m4b' '-i' '/tmp/UHqbW2.txt' '-map_metadata' '1' '-id3v2_version' '3' '-max_muxing_queue_size' '9999' '-movflags' '+faststart' '-vn' '-ab' '128k' '-ar' '22100' '-ac' '2' '-acodec' 'libmp3lame' '-f' 'mp3' 'sherlock_splitted/002-2 - The Red-Headed League.mp3'

In SplitCommand.php line 400:

  [Exception]                                                  
  could not extract chapter 2 - The Red-Headed League:  (234)  

Exception trace:
  at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:400
 M4bTool\Command\SplitCommand->extractChapter() at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:349
 M4bTool\Command\SplitCommand->splitChapters() at phar:///usr/bin/m4b-tool/src/library/Command/SplitCommand.php:129
 M4bTool\Command\SplitCommand->execute() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:1021
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:275
 Symfony\Component\Console\Application->doRun() at phar:///usr/bin/m4b-tool/vendor/symfony/console/Application.php:149
 Symfony\Component\Console\Application->run() at phar:///usr/bin/m4b-tool/bin/m4b-tool.php:57
 require() at /usr/bin/m4b-tool:10

split [--logfile [LOGFILE]] [--debug] [-f|--force] [--tmp-dir [TMP-DIR]] [--no-cleanup] [--no-cache] [--ffmpeg-threads [FFMPEG-THREADS]] [--platform-charset [PLATFORM-CHARSET]] [--ffmpeg-param [FFMPEG-PARAM]] [-a|--silence-min-length [SILENCE-MIN-LENGTH]] [-b|--silence-max-length [SILENCE-MAX-LENGTH]] [--min-chapter-length [MIN-CHAPTER-LENGTH]] [--max-chapter-length [MAX-CHAPTER-LENGTH]] [--enable-improvers [ENABLE-IMPROVERS]] [--disable-improvers [DISABLE-IMPROVERS]] [-p|--filename-template [FILENAME-TEMPLATE]] [--name [NAME]] [--sortname [SORTNAME]] [--album [ALBUM]] [--sortalbum [SORTALBUM]] [--artist [ARTIST]] [--sortartist [SORTARTIST]] [--genre [GENRE]] [--writer [WRITER]] [--albumartist [ALBUMARTIST]] [--year [YEAR]] [--description [DESCRIPTION]] [--longdesc [LONGDESC]] [--comment [COMMENT]] [--copyright [COPYRIGHT]] [--encoded-by [ENCODED-BY]] [--grouping [GROUPING]] [--purchase-date [PURCHASE-DATE]] [--encoder [ENCODER]] [--cover [COVER]] [--skip-cover-if-exists] [--skip-cover] [--series [SERIES]] [--series-part [SERIES-PART]] [--remove [REMOVE]] [--ignore-source-tags] [--prefer-metadata-tags] [--audio-format [AUDIO-FORMAT]] [--audio-extension [AUDIO-EXTENSION]] [--audio-channels [AUDIO-CHANNELS]] [--audio-bitrate [AUDIO-BITRATE]] [--audio-samplerate [AUDIO-SAMPLERATE]] [--audio-codec [AUDIO-CODEC]] [--audio-quality [AUDIO-QUALITY]] [--audio-profile [AUDIO-PROFILE]] [--adjust-for-ipod] [--use-nero-chapter-format] [--fix-mime-type] [--no-conversion] [--trim-silence] [--add-silence [ADD-SILENCE]] [-o|--output-dir [OUTPUT-DIR]] [--use-existing-chapters-file] [--reindex-chapters] [--fixed-length [FIXED-LENGTH]] [--chapters-filename [CHAPTERS-FILENAME]] [--by-silence] [--] <input>

Command:

~/Desktop/Sherlock Holmes (Derek Jacobi) 
❯ 'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-finished.m4b' '-i' '/tmp/wSk28U.txt' '-map_metadata' '1' '-id3v2_version' '3' '-max_muxing_queue_size' '9999' '-movflags' '+faststart' '-vn' '-ab' '128k' '-ar' '22100' '-ac' '2' '-acodec' 'libmp3lame' '-f' 'mp3' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3'

~/Desktop/Sherlock Holmes (Derek Jacobi) 
❯ 'ffmpeg' '-nostats' '-loglevel' 'panic' '-hide_banner' '-i' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3-finished.m4b' '-i' '/tmp/wSk28U.txt' '-map_metadata' '1' '-id3v2_version' '3' '-max_muxing_queue_size' '9999' '-movflags' '+faststart' '-vn' '-ab' '128k' '-ar' '22100' '-ac' '2' '-acodec' 'libmp3lame' '-f' 'mp3' 'sherlock_splitted/001-1 - A Scandal in Bohemia.mp3'

~/Desktop/Sherlock Holmes (Derek Jacobi) 
❯ 

No outputs were produced, and no files were extracted.

Here is the file I am trying to split: removed to prevent copyright issues (I already got it for reproducing, thanks)

sandreas commented 2 months ago

@Juhayer-Al-Wasif Got it. I try to fix this for the next pre-release.

sandreas commented 2 months ago

@Juhayer-Al-Wasif

So here is the reason, it did not work: You provided --audio-samplerate 22100, which is not supported for mp3 - it has to be --audio-samplerate 22050 (which I did not notice in the first place). So this command should work:

 m4b-tool split --debug --audio-format mp3 --audio-channels 2 --audio-samplerate 22050 "sherlock.m4b" 

Since 22100 is not a valid sample rate for mp3, ffmpeg returns with a non 0 exit code and therefore the exception in thrown. This is not your fault though, since m4b-tool should have at least reported

This is how I will try to improve this in the next pre-release.

Juhayer-Al-Wasif commented 2 months ago

one little question before I close the issue as resolved:

Do I need to compile ffmpeg for better quality rather than just installing it even in arch linux?

sandreas commented 2 months ago

one little question before I close the issue as resolved:

Please leave it open, I have to integrate the mentioned improvements. I'm going to close it as soon as it's done.

Do I need to compile ffmpeg for better quality rather than just installing it even in arch linux?

There is no NEED to recompile it - it is just a slight improvement when using aac. Additionally the ffmpeg quality improvements only affects the aac codec (so mostly merge to m4b), bt mp3 is NOT affected in any way.

So in your case, I don't think it makes sense to recompile ffmpeg. I also would recommend to use the docker image, if you are willing to go the extra mile. It contains everything required to have best outcome.