[FFmpeg-trac] #2790(undetermined:new): FFmpeg moves content of first chapter from a mkv file into global

FFmpeg trac at avcodec.org
Tue Jul 16 22:51:37 CEST 2013


#2790: FFmpeg moves content of first chapter from a mkv file into global
-------------------------------------+-------------------------------------
             Reporter:  xZise        |                     Type:  defect
               Status:  new          |                 Priority:  minor
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:  chapter      |               Blocked By:
  matroska                           |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 When I create a mkv file with chapters using the ffmetadata file and then
 parse it by ffmpeg again, it will remove the first chapter and some
 metadata of it become global.

 How to reproduce:
 {{{
 % ./ffmpeg -i src_meta.txt -i src_video.webm -c copy tgt_video.mkv
 ffmpeg version N-54769-g5ceffb1 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Jul 16 2013 22:14:51 with gcc 4.6 (Ubuntu/Linaro
 4.6.3-1ubuntu5)
   configuration: --disable-yasm
   libavutil      52. 39.100 / 52. 39.100
   libavcodec     55. 18.102 / 55. 18.102
   libavformat    55. 12.102 / 55. 12.102
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 81.101 /  3. 81.101
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
 Input #0, ffmetadata, from 'src_meta.txt':
   Duration: 00:00:09.42, start: 0.000000, bitrate: 0 kb/s
     Chapter #0.0: start 0.000000, end 0.990000
     Metadata:
       TITLE           : Chapter 1
       TYPE            : c1
     Chapter #0.1: start 1.000000, end 9.420000
     Metadata:
       TITLE           : Chapter 2
       TYPE            : c2
 Input #1, matroska,webm, from 'src_video.webm':
   Duration: 00:00:09.42, start: 0.000000, bitrate: 1827 kb/s
     Stream #1:0: Video: vp8, yuv420p, 1280x720, SAR 1:1 DAR 16:9, 25 fps,
 25 tbr, 1k tbn, 1k tbc (default)
     Stream #1:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
 Output #0, matroska, to 'tgt_video.mkv':
   Metadata:
     encoder         : Lavf55.12.102
     Chapter #0.0: start 0.000000, end 0.990000
     Metadata:
       TITLE           : Chapter 1
       TYPE            : c1
     Chapter #0.1: start 1.000000, end 9.420000
     Metadata:
       TITLE           : Chapter 2
       TYPE            : c2
     Stream #0:0: Video: vp8 (VP80 / 0x30385056), yuv420p, 1280x720 [SAR
 1:1 DAR 16:9], q=2-31, 25 fps, 1k tbn, 1k tbc (default)
     Stream #0:1: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo
 (default)
 Stream mapping:
   Stream #1:0 -> #0:0 (copy)
   Stream #1:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=  234 fps=0.0 q=-1.0 Lsize=    2101kB time=00:00:09.39
 bitrate=1831.7kbits/s
 video:1945kB audio:146kB subtitle:0 global headers:0kB muxing overhead
 0.467363%

 % ./ffmpeg -i tgt_video.mkv -f ffmetadata tgt_meta.txt
 ffmpeg version N-54769-g5ceffb1 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Jul 16 2013 22:14:51 with gcc 4.6 (Ubuntu/Linaro
 4.6.3-1ubuntu5)
   configuration: --disable-yasm
   libavutil      52. 39.100 / 52. 39.100
   libavcodec     55. 18.102 / 55. 18.102
   libavformat    55. 12.102 / 55. 12.102
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 81.101 /  3. 81.101
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
 Input #0, matroska,webm, from 'tgt_video.mkv':
   Metadata:
     ENCODER         : Lavf55.12.102
     TYPE            : c1
   Duration: 00:00:09.42, start: 0.000000, bitrate: 1827 kb/s
     Chapter #0.0: start 1.000000, end 9.420000
     Metadata:
       title           : Chapter 2
       TYPE            : c2
     Stream #0:0: Video: vp8, yuv420p, 1280x720, SAR 1:1 DAR 16:9, 25 fps,
 25 tbr, 1k tbn, 1k tbc (default)
     Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
 Output #0, ffmetadata, to 'tgt_meta.txt':
   Metadata:
     ENCODER         : Lavf55.12.102
     TYPE            : c1
     Chapter #0.0: start 1.000000, end 9.420000
     Metadata:
       title           : Chapter 2
       TYPE            : c2
 Stream mapping:
 Press [q] to stop, [?] for help
 size=       0kB time=-577014:-32:-22.-77 bitrate=N/A
 video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead inf%
 Output file is empty, nothing was encoded (check -ss / -t / -frames
 parameters if used)
 }}}

 As you can see, the first chapter is missing and starts directly with the
 second. Additionally it shows the TYPE metadata of the first chapter in
 the global metadata.

 I used mkvtoolnix to look into the file and there the first chapter
 exists, so it looks like the decoding failed. Although I tried it with
 another proprietary mkv file and there it works fine. Unfortunately I
 can't upload that file.

 I used [http://http://commons.wikimedia.org/wiki/File:Chinese_Signal.webm]
 to encode and this is the metadata file:

 {{{
 ;FFMETADATA1
 [CHAPTER]
 TIMEBASE=1/100
 START=0
 END=99
 TITLE=Chapter 1
 TYPE=c1
 [CHAPTER]
 TIMEBASE=1/100
 START=100
 END=942
 TITLE=Chapter 2
 TYPE=c2
 }}}

 And mkvtoolnix is producing the following:
 {{{
 + EBML head
 |+ EBML version: 1
 |+ EBML read version: 1
 |+ EBML maximum ID length: 4
 |+ EBML maximum size length: 8
 |+ Doc type: matroska
 |+ Doc type version: 2
 |+ Doc type read version: 2
 + Segment, size 2151327
 |+ Seek head (subentries will be skipped)
 |+ EbmlVoid (size: 133)
 |+ Segment information
 | + Timecode scale: 1000000
 | + Muxing application: Lavf55.12.102
 | + Writing application: Lavf55.12.102
 | + Segment UID:0xf2 0x8c 0x0b 0x70 0x15 0x18 0x4d 0x25 0x54 0xc7 0xfd
 0xd7 0x92 0x17 0xe7 0x31
 | + Duration: 9.417s (00:00:09.417)
 |+ Segment tracks
 | + A track
 |  + Track number: 1
 |  + Track UID: 1
 |  + Lacing flag: 0
 |  + Language: und
 |  + Default flag: 1
 |  + Codec ID: V_VP8
 |  + Track type: video
 |  + Default duration: 40.000ms (25.000 fps for a video track)
 |  + Video track
 |   + Pixel width: 1280
 |   + Pixel height: 720
 |   + Display width: 1280
 |   + Display height: 720
 | + A track
 |  + Track number: 2
 |  + Track UID: 2
 |  + Lacing flag: 0
 |  + Language: und
 |  + Default flag: 1
 |  + Codec ID: A_VORBIS
 |  + Track type: audio
 |  + Audio track
 |   + Channels: 2
 |   + Sampling frequency: 48000
 |   + Bit depth: 32
 |  + CodecPrivate, length 4256
 |+ Chapters
 | + EditionEntry
 |  + EditionFlagDefault: 1
 |  + EditionFlagHidden: 0
 |  + ChapterAtom
 |   + ChapterUID: 0
 |   + ChapterTimeStart: 00:00:00.000000000
 |   + ChapterTimeEnd: 00:00:00.990000000
 |   + ChapterFlagHidden: 0
 |   + ChapterFlagEnabled: 1
 |   + ChapterDisplay
 |    + ChapterString: Chapter 1
 |    + ChapterLanguage: und
 |  + ChapterAtom
 |   + ChapterUID: 1
 |   + ChapterTimeStart: 00:00:01.000000000
 |   + ChapterTimeEnd: 00:00:09.420000000
 |   + ChapterFlagHidden: 0
 |   + ChapterFlagEnabled: 1
 |   + ChapterDisplay
 |    + ChapterString: Chapter 2
 |    + ChapterLanguage: und
 |+ Tags
 | + Tag
 |  + Targets
 |  + Simple
 |   + Name: ENCODER
 |   + String: Lavf55.12.102
 | + Tag
 |  + Targets
 |   + ChapterUID: 0
 |  + Simple
 |   + Name: TYPE
 |   + String: c1
 | + Tag
 |  + Targets
 |   + ChapterUID: 1
 |  + Simple
 |   + Name: TYPE
 |   + String: c2
 |+ Cluster
 }}}

 Thanks in advance.

 Fabian

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2790>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list