[Bug]: Unable to play M4B file chapters that change number of channels or sample rate. #3280

Open
opened 2026-04-25 00:14:44 +02:00 by adam · 10 comments
Owner

Originally created by @beryl03 on GitHub (Mar 27, 2026).

What happened?

TLDR; There appears to be some M4B audiobooks that have issues playing with ABS after Chapter 1.

Test Scenarios:
Scenario 1: FAIL: Android 1, Android App and ABS Web (Firefox 148) only play sound for Chapter 1 but no sound afterwards (no hiss). Logs do not indicate any issues. Page reloads, still fail. starting from later chapters for resume, still fail. Logs indicate a direct play to this client device+app.
Scenario 2: PASS: Desktop 1, VLC M4B File 1 can play the file directly without issue.
Scenario 3: Partial PASS: Desktop 1, ABS Web (Firefox 149 and Chromium 146) can play chapter 1, then later chapters have no audio. Starting from Chapter 1 from page load results in All later chapters being silent. Page load from later chapters, Audio works correctly, and seeking to Chapter 1 sometimes results in a loud hum + expected audio. No error in logs. Logs indicate a direct play to this client device+app[s].
Scenario 4: FAIL: Android 1, Android App title is downloaded and played. Chapter 1 plays fine, then later chapters have no audio (similar results to Scenario 1). Playback continues with silence, so no error stops playback, that is observed.

Behavior has been observed on about 2% of M4B audiobooks.
If it helps, the "bad" titles started as MP3 CBR mono and got converted to AAC VBR mono via auto-m4b. The "bad" files play fine in VLC on desktop.
If it helps, I have only noticed this since around 1/1/2026, and ABS Server is set to auto-upgrade to latest. I have not tested this theory.

What did you expect to happen?

ABS Web on Firefox and Chromium and Android App can play all chapters, assuming they are valid M4B files.
If VLC can play the file on a device, then ABS Web should be able to play it without issue.

Steps to reproduce the issue

  1. play "bad" title from chapter 1, expect audio to play correctly.
  2. Continue playing "bad" title into chapter 2 and audio will go silent as Chapter 2 starts. Similar results when seeking to any other chapter.

Audiobookshelf version

v2.33.1

How are you running audiobookshelf?

Docker

What OS is your Audiobookshelf server hosted from?

Linux

If the issue is being seen in the UI, what browsers are you seeing the problem on?

Firefox

Logs

2026-03-27 05:14:58.650

DEBUG

[PlaybackSessionManager] startSessionRequest for device Linux x86_64 / Chrome

2026-03-27 05:14:58.651

DEBUG

[PlaybackSessionManager] "brandon" starting direct play session for item "fa7534dd-51df-4ed6-bb97-bb96fec28fcc" with id 26e26a50-1718-4ee9-9ccf-40350ec40784 (Device: Linux x86_64 / Chrome)

2026-03-27 05:14:58.661

DEBUG

[SessionController] Serving audio track 1 for session "26e26a50-1718-4ee9-9ccf-40350ec40784" belonging to user "brandon"

2026-03-27 05:14:59.867

DEBUG

[SessionController] Serving audio track 1 for session "26e26a50-1718-4ee9-9ccf-40350ec40784" belonging to user "brandon"

.... continues with messages related to "[SessionController] Serving audio track 1 for session " but with silence on client device.

Additional Notes

I reripped from source again and generated a new M4B title 3 times with the same exact results. This indicates it may not be due to file corruption.

When playing "bad" file from VLC, there are 0 discarded (corrupted) samples, and 1 dropped (discontinued) sample.
When playing a known "good" file from VLC, there are 0 discarded (corrupted) samples, and 1 dropped (discontinued) sample (same as "bad" file stats).
This indicates it may not be due to file/sample corruption.

Originally created by @beryl03 on GitHub (Mar 27, 2026). ### What happened? TLDR; There appears to be some M4B audiobooks that have issues playing with ABS after Chapter 1. Test Scenarios: **Scenario 1: FAIL:** Android 1, Android App and ABS Web (Firefox 148) only play sound for Chapter 1 but no sound afterwards (no hiss). Logs do not indicate any issues. Page reloads, still fail. starting from later chapters for resume, still fail. Logs indicate a direct play to this client device+app. **Scenario 2: PASS:** Desktop 1, VLC M4B File 1 can play the file directly without issue. **Scenario 3: Partial PASS:** Desktop 1, ABS Web (Firefox 149 and Chromium 146) can play chapter 1, then later chapters have no audio. Starting from Chapter 1 from page load results in All later chapters being silent. Page load from later chapters, Audio works correctly, and seeking to Chapter 1 sometimes results in a loud hum + expected audio. No error in logs. Logs indicate a direct play to this client device+app[s]. **Scenario 4: FAIL:** Android 1, Android App title is downloaded and played. Chapter 1 plays fine, then later chapters have no audio (similar results to Scenario 1). Playback continues with silence, so no error stops playback, that is observed. Behavior has been observed on about 2% of M4B audiobooks. If it helps, the "bad" titles started as MP3 CBR mono and got converted to AAC VBR mono via auto-m4b. The "bad" files play fine in VLC on desktop. If it helps, I have only noticed this since around 1/1/2026, and ABS Server is set to auto-upgrade to latest. I have not tested this theory. ### What did you expect to happen? ABS Web on Firefox and Chromium and Android App can play all chapters, assuming they are valid M4B files. If VLC can play the file on a device, then ABS Web should be able to play it without issue. ### Steps to reproduce the issue 1. play "bad" title from chapter 1, expect audio to play correctly. 2. Continue playing "bad" title into chapter 2 and audio will go silent as Chapter 2 starts. Similar results when seeking to any other chapter. ### Audiobookshelf version v2.33.1 ### How are you running audiobookshelf? Docker ### What OS is your Audiobookshelf server hosted from? Linux ### If the issue is being seen in the UI, what browsers are you seeing the problem on? Firefox ### Logs ```shell 2026-03-27 05:14:58.650 DEBUG [PlaybackSessionManager] startSessionRequest for device Linux x86_64 / Chrome 2026-03-27 05:14:58.651 DEBUG [PlaybackSessionManager] "brandon" starting direct play session for item "fa7534dd-51df-4ed6-bb97-bb96fec28fcc" with id 26e26a50-1718-4ee9-9ccf-40350ec40784 (Device: Linux x86_64 / Chrome) 2026-03-27 05:14:58.661 DEBUG [SessionController] Serving audio track 1 for session "26e26a50-1718-4ee9-9ccf-40350ec40784" belonging to user "brandon" 2026-03-27 05:14:59.867 DEBUG [SessionController] Serving audio track 1 for session "26e26a50-1718-4ee9-9ccf-40350ec40784" belonging to user "brandon" .... continues with messages related to "[SessionController] Serving audio track 1 for session " but with silence on client device. ``` ### Additional Notes I reripped from source again and generated a new M4B title 3 times with the same exact results. This indicates it may not be due to file corruption. When playing "bad" file from VLC, there are 0 discarded (corrupted) samples, and 1 dropped (discontinued) sample. When playing a known "good" file from VLC, there are 0 discarded (corrupted) samples, and 1 dropped (discontinued) sample (same as "bad" file stats). This indicates it may not be due to file/sample corruption.
adam added the bug label 2026-04-25 00:14:44 +02:00
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

I replaced the M4B file with source MP3 files and playback operated correctly and as expected in all the prior test scenarios. This was on both devices, and on ABS Web (Firefox) and Android app.
This indicates to me that the issue is related to M4B playback on chapter boundaries.

@beryl03 commented on GitHub (Mar 27, 2026): I replaced the M4B file with source MP3 files and playback operated correctly and as expected in all the prior test scenarios. This was on both devices, and on ABS Web (Firefox) and Android app. This indicates to me that the issue is related to M4B playback on chapter boundaries.
Author
Owner

@Vito0912 commented on GitHub (Mar 27, 2026):

ABS uses your browsers/Oases media player. Thus any playback issue isn't directly related to ABS.

While you said that VLC plays it, that is a very bad comparison as it does a lot of things all others player don't. Please check the file with other basic audio player or e.g. try playing the file with your phone's built in player. If these also fail, the file is corrupt and this issue should be closed. If you have other simple players that can play the client, please report back.

Also try to reencode the files trough ABS with the copy option to fix potential header issues

@Vito0912 commented on GitHub (Mar 27, 2026): ABS uses your browsers/Oases media player. Thus any playback issue isn't directly related to ABS. While you said that VLC plays it, that is a very bad comparison as it does a lot of things all others player don't. Please check the file with other basic audio player or e.g. try playing the file with your phone's built in player. If these also fail, the file is corrupt and this issue should be closed. If you have other simple players that can play the client, please report back. Also try to reencode the files trough ABS with the copy option to fix potential header issues
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

ABS uses your browsers/Oases media player. Thus any playback issue isn't directly related to ABS.

While you said that VLC plays it, that is a very bad comparison as it does a lot of things all others player don't. Please check the file with other basic audio player or e.g. try playing the file with your phone's built in player. If these also fail, the file is corrupt and this issue should be closed. If you have other simple players that can play the client, please report back.

Also try to reencode the files trough ABS with the copy option to fix potential header issues

Downloaded M4B to Android device 1 and played with system player (Android Open Source Music Player or com.android.music version 16) and audio cut out for about 20 seconds at start of where Chapter 2 should start before audio came back. seeking around plays just fine (no skip to next chapter button).

@beryl03 commented on GitHub (Mar 27, 2026): > ABS uses your browsers/Oases media player. Thus any playback issue isn't directly related to ABS. > > While you said that VLC plays it, that is a very bad comparison as it does a lot of things all others player don't. Please check the file with other basic audio player or e.g. try playing the file with your phone's built in player. If these also fail, the file is corrupt and this issue should be closed. If you have other simple players that can play the client, please report back. > > Also try to reencode the files trough ABS with the copy option to fix potential header issues Downloaded M4B to Android device 1 and played with system player (Android Open Source Music Player or com.android.music version 16) and audio cut out for about 20 seconds at start of where Chapter 2 should start before audio came back. seeking around plays just fine (no skip to next chapter button).
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

Played from Desktop 1 with RhythmBox 3.4.8 and it played without any audio cut-out

@beryl03 commented on GitHub (Mar 27, 2026): Played from Desktop 1 with RhythmBox 3.4.8 and it played without any audio cut-out
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

As a Note, I see that Chapter 1.mp3 says mono, and all later chapters are stereo.
"bad" file.m4b indicates the file is mono VBR (output from auto-M4B) per Media Info.

@beryl03 commented on GitHub (Mar 27, 2026): As a Note, I see that Chapter 1.mp3 says mono, and all later chapters are stereo. "bad" file.m4b indicates the file is mono VBR (output from auto-M4B) per Media Info.
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

I will convert to M4B using ABS and will provide test results later.

@beryl03 commented on GitHub (Mar 27, 2026): I will convert to M4B using ABS and will provide test results later.
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

created an issue in auto-m4b, but maybe it should be in pushed upstream?
https://github.com/seanap/auto-m4b/issues/75

@beryl03 commented on GitHub (Mar 27, 2026): created an issue in auto-m4b, but maybe it should be in pushed upstream? [https://github.com/seanap/auto-m4b/issues/75](https://github.com/seanap/auto-m4b/issues/75)
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

I will convert to M4B using ABS and will provide test results later.

ABS M4B Convert results in a file that can play through the chapters just fine.
Resulting M4B file indicates it is VBR Mono.

@beryl03 commented on GitHub (Mar 27, 2026): > I will convert to M4B using ABS and will provide test results later. ABS M4B Convert results in a file that can play through the chapters just fine. Resulting M4B file indicates it is VBR Mono.
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

Clarification on abs m4b creation tool:

  1. mp3 files only differing in channels, Pass.
  2. mp3 files only differing in sample rate, Fail. No m4b, all but first mp3 file were deleted/moved.
@beryl03 commented on GitHub (Mar 27, 2026): Clarification on abs m4b creation tool: 1) mp3 files only differing in channels, Pass. 2) mp3 files only differing in sample rate, Fail. No m4b, all but first mp3 file were deleted/moved.
Author
Owner

@beryl03 commented on GitHub (Mar 27, 2026):

changed ticket heading to reflect recent findings.

@beryl03 commented on GitHub (Mar 27, 2026): changed ticket heading to reflect recent findings.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#3280