1

I'm trying to distribute an MP4 file with Chapters included, I'm fine if devices not supporting the chapters just ignore them, so long as the video still plays. I recently discovered some devices won't play the MP4 once it has chapters in it. Further investigation has given some odd results.

The desired output file is 1080p50 (1920x1080, 50fps). If I encode to that from Adobe Premiere, and copy the file to USB, I can play the video fine on my old Samsung TV (10+ years old). If I add the chapter list with Subler, the Samsung will no longer play the file "Unsupported Video Data".

If I rip a DVD of the same content with Handbrake, which also puts the DVD Chapters in the MP4, it plays fine on the Samsung. The video in this MP4 is DVD resolution/frame rate, I assumed that's why this file with chapters worked.

On running further tests to get to the bottom of it, I discovered that if I re-encode the 1080p file in Handbrake, and put the chapters into that file with Subler, the TV also plays that file fine. So the MP4 Adobe Premiere makes does not work once it has chapters, but the MP4 that Handbrake makes (from the Adobe MP4 file) works fine with chapters added?

On comparing the files with MediaInfo, I find some subtle differences. I tweaked the Handbrake encoding to get the file info as close as possible, Adobe is still different in a couple of spots, and I don't know how to influence either program from here to get one or the other to match.

Under "General" the files show a different Codec ID (I'm thinking this alone might be the issue, but don't know how to change it in either encoder):

    (Adobe)Codec ID                                 : mp42 (mp42/mp41)
    (Handbrake)Codec ID                                 : mp42 (isom/iso2/avc1/mp41)

    Also these fields only in the Adobe file:
    TIM                                      : 00:00:00:00
    TSC                                      : 50
    TSZ                                      : 1

Under "Video"

    (Adobe)Format settings, GOP                     : M=1, N=30
    (Handbrake)Format settings, GOP                     : M=3, N=50

    In Adobe info, not in Handbrake
    Language                                 : English

    In Handbrake info, not in Adobe
    Color range                              : Limited
    Color primaries                          : BT.709
    Transfer characteristics                 : BT.709
    Matrix coefficients                      : BT.709

"Audio" info is almost identical (I set Handbrake to passthru), just subtle differences:

    (Adobe Only)Source duration                          : 43 min 10 s
    (Adobe Only)Source stream size                       : 98.0 MiB (3%)
    (Handbrake Only)Title                                    : Stereo

Any advice on where to go from here? If there is a way to get Adobe to output to an identical codec configuration, that would be ideal to test next. Alternately, if I can make Handbrake encode the way Adobe does, I could at least see if that causes a fail. Either way, if I can alter either output file to closer match the other, it might reveal why the Handbrake file works, and the Adobe file doesn't.

I can obviously resolve my issue be encoding in Adobe, and then re-encoding the file in Handbrake so I have one that will work when chapters are added, but I'd prefer to avoid the double encode if I can.

I've put the mediainfo files in Dropbox if anyone wishes to browse them in full: https://www.dropbox.com/sh/dontq1jdc4ipfez/AACb8jH1Q7Qrn9sghLo9Ir-ca?dl=0

2
  • 1
    In Subler > Preferences > General try disabling Chapters: Create preview images at position: and then add Chapters and save a file and see if that resolves the issue?
    – sfxedit
    Feb 13, 2022 at 15:00
  • @sfxedit Thanks for the suggestion, I've already got this disabled in Preferences. I seem to remember turning that off earlier on while investigating this. I toggled on/off again and created another file just to be sure, but still not working once chapters are added to the Premiere MainConcept encoded file. Feb 14, 2022 at 22:45

1 Answer 1

1

After a bunch of further testing and investigation, I've come to the following conclusions:

  • The file format Adobe Premiere uses is a function of their MainConcept codec/encoder. It's the file format they use, you can't change it, it's coupled to the encoding process. I had previously assumed the codec just encoded the streams, and Premiere packaged the file, but this appears to be an incorrect assumption.
  • If you install a different codec into Adobe Premiere (Voukoder, TMPGEnc), you will get a different format file, more similar to handbrake/ffmpeg.
  • If you take the Adobe MainConcept file, and do a stream copy with ffmpeg, you can get a repackaging of the file without changing the encoded data. i.e. ffmpeg -i "adobe.mp4" -c copy "ffmpeg.mp4" - exact same video/audio data, but packaged more like the handbrake format (which I believe handbrake uses ffmpeg, so no surprise there)

So I've figured out how to get the file how I want it, which is to either change the codec Premiere is using, or to repackage the Adobe Premiere file with ffmpeg. Either way gives me a file that once the chapters are added, it still works on the problematic devices.

I would still be interested as to why these various methods package the same encoded data streams into slightly different formats, i.e. why have different formats been implemented in the various different pieces of software, but that info doesn't seem to be readily available. It would be useful to know if MainConcept have a particular reason for selecting their file format - perhaps using the other formats, which work better with chapters embedded, have drawbacks in other areas. Someone also pointed out that there might not be an issue with the MainConcept file at all, Subler might simply not understand that one properly, and be causing an issue with it, where it doesn't on the other formats. Without further info, and time to start digging into files with a hex editor, that's not really possibly to know either.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.