MartinEesmaa / VVCEasy

VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple. Easy. Encode. Decode
https://martineesmaa.org/en/vvceasy
MIT License
145 stars 15 forks source link

Linked mkv playback is broken #31

Closed apsen-github closed 11 months ago

apsen-github commented 11 months ago

Linked mkv playback is broken in mpv-vvceasy version of mpv but works in the original.

To reproduce:

  1. Create xml (test.xml) file like this:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- <!DOCTYPE Chapters SYSTEM "matroskachapters.dtd"> -->
    <Chapters>
    <EditionEntry>
    <EditionUID>6893153424230</EditionUID>
    <EditionFlagHidden>0</EditionFlagHidden>
    <EditionFlagDefault>0</EditionFlagDefault>
    <EditionFlagOrdered>1</EditionFlagOrdered>
    <ChapterAtom>
      <ChapterUID>41634589411055342</ChapterUID>
      <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
      <ChapterTimeEnd>00:00:27.263000000</ChapterTimeEnd>
      <ChapterFlagHidden>0</ChapterFlagHidden>
      <ChapterFlagEnabled>1</ChapterFlagEnabled>
      <ChapterSegmentUID format="hex">d07b6123b7f1ed33160acf12fb355c86</ChapterSegmentUID>
      <ChapterDisplay>
        <ChapterString>Chapter 01</ChapterString>
        <ChapterLanguage>eng</ChapterLanguage>
        <ChapLanguageIETF>en</ChapLanguageIETF>
      </ChapterDisplay>
    </ChapterAtom>
    <ChapterAtom>
      <ChapterUID>5135388895583</ChapterUID>
      <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
      <ChapterTimeEnd>00:02:00.315000000</ChapterTimeEnd>
      <ChapterFlagHidden>0</ChapterFlagHidden>
      <ChapterFlagEnabled>1</ChapterFlagEnabled>
      <ChapterSegmentUID format="hex">b89a811a58372554237d26da83b45646</ChapterSegmentUID>
      <ChapterDisplay>
        <ChapterString>Chapter 02</ChapterString>
        <ChapterLanguage>eng</ChapterLanguage>
        <ChapLanguageIETF>en</ChapLanguageIETF>
      </ChapterDisplay>
    </ChapterAtom>
    </EditionEntry>
    </Chapters>
2. In the above xml replace `ChapterSegmentUID `with those of any available mkv files (mkvinfo displays them).
3. Adjust `ChapterTimeStart `and `ChapterTimeEnd `accordingly.
4. Create new mkv file like this: `mkvmerge -o test.mkv --chapters test.xml`

**Expected behavior**
The resulting test.mkv should be playable since it is playable on vanilla mpv.

Windows 11.

mpv 0.35.0-445-g650c53df-dirty Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects built on Sat Jun 17 01:02:49 2023 libplacebo version: v5.264.0-296-g3df4e60 FFmpeg version: git-2023-06-17-b971ba066-VVCEasy FFmpeg library versions: libavutil 58.13.101 libavcodec 60.20.100 libavformat 60.7.100 libswscale 7.3.100 libavfilter 9.8.102 libswresample 4.11.100

MartinEesmaa commented 11 months ago

Hi, @apsen-github! I think I haven't updated yet my custom build, I'll update soon later...

It seems ChapterTimeEnd is a little error.

apsen-github commented 11 months ago

Never mind - turns out I had bad ChapterTimeEnd and muxed it that way. I subsequently fixed the value but didn't realize I hadn't remuxed the file.

MartinEesmaa commented 11 months ago

Oh okay. :)