Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot extract chapters #263

Open
Juhayer-Al-Wasif opened this issue Aug 23, 2024 · 12 comments
Open

Cannot extract chapters #263

Juhayer-Al-Wasif opened this issue Aug 23, 2024 · 12 comments

Comments

@Juhayer-Al-Wasif
Copy link

Juhayer-Al-Wasif commented Aug 23, 2024

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
Copy link
Owner

@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
Copy link
Author

Juhayer-Al-Wasif commented Aug 23, 2024

@sandreas

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

@sandreas
Copy link
Owner

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
Copy link
Author

Juhayer-Al-Wasif commented Aug 23, 2024

@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
Copy link
Owner

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
Copy link
Author

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
Copy link
Owner

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:

  • run m4b-tool with --debug
  • run ffmpeg like described below
# --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
Copy link
Author

Juhayer-Al-Wasif commented Aug 27, 2024

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
Copy link
Owner

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

@sandreas
Copy link
Owner

sandreas commented Aug 28, 2024

@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

  • a) the raw ffmpeg error message to give some more details and
  • b) a warning, that 22050 as sample rate is a pretty strange value and may result in problems

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

@Juhayer-Al-Wasif
Copy link
Author

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
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants