Support for Nero-style chapters

Feature description:

Audiobooks are often .m4b files with chapter data included. There are several formats for the chapter data—here is a reference: Focus on Chapter metadata · Zeugma440/atldotnet Wiki · GitHub

As far as I can tell, Symfonium only displays Quicktime-style MP4 chapters and ignores Nero-style MP4 chapters. From what I’ve seen, tools to edit Nero-style chapters are far more common (I couldn’t find any to edit QT-style chapters). so, even when both types are present in the same file, the Nero-style chapters are usually more correct (and I can correct them myself if I wish).

So, I’d like the option to prefer Nero-style chapters if they are present.

Problem solved:

Often, audiobooks will have only Nero chapters, or two sets of chapters, Nero and Quicktime. I’d prefer to have Nero displayed because they are under my control. For example, here is some data from a file extracted by MediaInfo:

These are the QT chapters that Symfonium displays:

Menu #1
ID : 2
Codec ID : text
Duration : 10 h 58 min
Language : English
Bit rate mode : CBR
Menu For : 1
00:00:00.000 : Chapter 001 - 01:01:17
01:01:17.994 : Chapter 002 - 00:36:06
01:37:24.756 : Chapter 003 - 00:19:27
01:56:52.734 : Chapter 004 - 00:27:12
02:24:04.883 : Chapter 005 - 00:54:56
03:19:00.883 : Chapter 006 - 00:43:31
04:02:32.381 : Chapter 007 - 00:56:15
04:58:48.358 : Chapter 008 - 01:07:20
06:06:09.040 : Chapter 009 - 00:37:56
06:44:06.032 : Chapter 010 - 00:26:41
07:10:47.034 : Chapter 011 - 00:20:34
07:31:21.039 : Chapter 012 - 00:51:17
08:22:38.159 : Chapter 013 - 00:27:14
08:49:53.145 : Chapter 014 - 00:21:46
09:11:39.342 : Chapter 015 - 00:24:25
09:36:05.326 : Chapter 016 - 00:14:56
09:51:01.475 : Chapter 017 - 00:27:36
10:18:38.456 : Chapter 018 - 00:20:10
10:38:49.442 : Chapter 019 - 00:19:43
Bit rate mode : Constant

…and these are the Nero chapters that I would prefer to see, but Symfonium does not display:

Menu #2
00:00:00.000 : 1 · An Unexpected Party
01:01:17.994 : 2 · Roast Mutton
01:37:24.756 : 3 · A Short Rest
01:56:52.734 : 4 · Over Hill & Under Hill
02:24:04.883 : 5 · Riddles in the Dark
03:19:00.883 : 6 · Out of the Frying Pan, into the Fire
04:02:32.381 : 7 · Queer Lodgings
04:58:48.358 : 8 · Flies & Spiders
06:06:09.040 : 9 · Barrels out of Bond
06:44:06.032 : 10 · A Warm Welcome
07:10:47.034 : 11 · On the Doorstep
07:31:21.039 : 12 · Inside Information
08:22:38.159 : 13 · Not at Home
08:49:53.145 : 14 · Fire and Water
09:11:39.342 : 15 · The Gathering of the Clouds
09:36:05.326 : 16 · A Thief in the Night
09:51:01.475 : 17 · The Clouds Burst
10:18:38.456 : 18 · The Return Journey
10:38:49.442 : 19 · The Last Stage

Brought benefits:

I’d be able to see, use, and control more accurate chapter data in audiobooks.

Also, by the way, in the Album or Now Playing view, it would be nice if chapters were automatically displayed when they are present in a file. This doesn’t need to involve detecting that the media is a book, just whether or not it contains chapter data. (Conceivably, musical forms like suites and symphonies might be chapterized, though I don’t think I’ve seen that done.)

(And thanks for your work—I’m really enjoying it!)

Other application solutions:

 
I’ve tried Plexamp, which doesn’t display chapters at all, and Chronicle, which has the same problem as Symfonium in this regard. In fact, this is what prompted me to try Symfonium (and I was pleased to find that it’s better for music than Plexamp).
 

Additional description and context:

 

 

Screenshots / Mockup:

    

Please provide such files so I can see if I can support them.

Okay, I sent a chat message with a link. It’s a typical situation, where the first “menu” is QT-style and the last is Nero-style.

Okay so Symfonium is completely unable to extract any of those as it require to parse the full file, the parsing is done by Plex and it’s Plex that only extract the QT ones.

You might want to see if you remove the QT one if Plex properly handle the Nero ones, else you need to ask them to support the Nero ones.

But for that file, even ffmpeg seems to only return:

 "chapters": [
        {
            "id": 0,
            "time_base": "1/22050",
            "start": 0,
            "start_time": "0.000000",
            "end": 37384209,
            "end_time": "1695.428980",
            "tags": {
                "title": "Chapter 1"
            }
        },
        {
            "id": 1,
            "time_base": "1/22050",
            "start": 37384209,
            "start_time": "1695.428980",
            "end": 71548942,
            "end_time": "3244.849977",
            "tags": {
                "title": "Chapter 2"
            }
        },
        {
            "id": 2,
            "time_base": "1/22050",
            "start": 71548942,
            "start_time": "3244.849977",
            "end": 110180365,
            "end_time": "4996.841950",
            "tags": {
                "title": "Chapter 3"
            }
        },
        {
            "id": 3,
            "time_base": "1/22050",
            "start": 110180365,
            "start_time": "4996.841950",
            "end": 147294110,
            "end_time": "6680.004989",
            "tags": {
                "title": "Chapter 4"
            }
        }
    ],

Ah, I see. When I look at it with MediaInfo, it shows:

Menus : 2

Menu #1
ID : 2
Codec ID : text
Duration : 1 h 51 min
Language : English
Encoded date : UTC 2019-06-04 21:03:44
Tagged date : UTC 2019-06-04 21:03:44
Menu For : 1
Source duration : 6680010
Source frame count : 4
Source stream size : 92
Frame count : 4
Stream size : 92
mdhd_Duration : 6680010
00:00:00.000 : Chapter 1
00:28:15.428 : Chapter 2
00:54:04.849 : Chapter 3
01:23:16.841 : Chapter 4

Menu #2
00:00:00.000 : Stepping into the Road … After the War
00:28:15.428 : The Inklings … Worldbuilding
00:54:04.849 : Writing and Publication … Criticism
01:23:16.841 : Criticism, Success … Legacy and End

(and I was hoping to display that second set of chapters.) I forgot to mention that VLC and Foobar2000 show the Nero types too.

I looked and couldn’t find a tool to edit QT chapters. I think I can find something to remove all tags, including all chapters. Re-tagging wouldn’t be so bad, but it also throws away all the chapter timings. I’ll try to find something that can save them as a cue sheet.

Thanks for trying!