[FFmpeg-trac] #9812(ffmpeg:new): LEAD_PERFORMER tag on Matroska chapter gets changed to PERFORMER

FFmpeg trac at avcodec.org
Wed Jun 15 06:52:00 EEST 2022


#9812: LEAD_PERFORMER tag on Matroska chapter gets changed to PERFORMER
-------------------------------------+-------------------------------------
             Reporter:  wvc          |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:  git-
             Keywords:  matroska     |  master
  metadata                           |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 When processing a Matroska file with a `LEAD_PERFORMER` tag on a chapter,
 FFmpeg changes the tag to `PERFORMER`.

 How to reproduce:
 {{{
 $ mkvextract test.mkv tags
 <?xml version="1.0"?>
 <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> -->
 <Tags>
   <Tag>
     <Targets>
       <ChapterUID>1</ChapterUID>
     </Targets>
     <Simple>
       <Name>LEAD_PERFORMER</Name>
       <String>Bob</String>
     </Simple>
   </Tag>
   <Tag>
     <Targets />
     <Simple>
       <Name>ENCODER</Name>
       <String>Lavf59.16.100</String>
     </Simple>
   </Tag>
   <Tag>
     <Targets>
       <TrackUID>6303416409872754858</TrackUID>
     </Targets>
     <Simple>
       <Name>ENCODER</Name>
       <String>Lavc59.18.100 libx264</String>
     </Simple>
     <Simple>
       <Name>DURATION</Name>
       <String>00:00:01.000000000</String>
     </Simple>
   </Tag>
 </Tags>

 $ $ ffmpeg -i test.mkv -c copy test2.mkv
 ffmpeg version N-107110-ge5f6707a7b Copyright (c) 2000-2022 the FFmpeg
 developers
   built with gcc 10 (Debian 10.2.1-6)
   configuration:
   libavutil      57. 27.100 / 57. 27.100
   libavcodec     59. 33.100 / 59. 33.100
   libavformat    59. 25.100 / 59. 25.100
   libavdevice    59.  6.100 / 59.  6.100
   libavfilter     8. 40.100 /  8. 40.100
   libswscale      6.  6.100 /  6.  6.100
   libswresample   4.  6.100 /  4.  6.100
 Input #0, matroska,webm, from 'test.mkv':
   Metadata:
     ENCODER         : Lavf59.16.100
   Duration: 00:00:01.00, start: 0.000000, bitrate: 68 kb/s
   Chapters:
     Chapter #0:0: start 0.000000, end 1.000000
       Metadata:
         performer       : Bob
   Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(tv,
 progressive), 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1k tbn
     Metadata:
       ENCODER         : Lavc59.18.100 libx264
       DURATION        : 00:00:01.000000000
 Output #0, matroska, to 'test2.mkv':
   Metadata:
     encoder         : Lavf59.25.100
   Chapters:
     Chapter #0:0: start 0.000000, end 1.000000
       Metadata:
         LEAD_PERFORMER  : Bob
   Stream #0:0: Video: h264 (High 4:4:4 Predictive) (H264 / 0x34363248),
 yuv444p(tv, progressive), 320x240 [SAR 1:1 DAR 4:3], q=2-31, 25 fps, 25
 tbr, 1k tbn
     Metadata:
       ENCODER         : Lavc59.18.100 libx264
       DURATION        : 00:00:01.000000000
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 frame=   25 fps=0.0 q=-1.0 Lsize=       8kB time=00:00:00.88 bitrate=
 77.5kbits/s speed=3.66e+03x
 video:7kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 11.583214%

 $ $ mkvextract test2.mkv tags
 <?xml version="1.0"?>
 <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> -->
 <Tags>
   <Tag>
     <Targets>
       <ChapterUID>1</ChapterUID>
     </Targets>
     <Simple>
       <Name>PERFORMER</Name>
       <String>Bob</String>
     </Simple>
   </Tag>
   <Tag>
     <Targets />
     <Simple>
       <Name>ENCODER</Name>
       <String>Lavf59.25.100</String>
     </Simple>
   </Tag>
   <Tag>
     <Targets>
       <TrackUID>11395597827482505527</TrackUID>
     </Targets>
     <Simple>
       <Name>ENCODER</Name>
       <String>Lavc59.18.100 libx264</String>
     </Simple>
     <Simple>
       <Name>DURATION</Name>
       <String>00:00:01.000000000</String>
     </Simple>
   </Tag>
 </Tags>

 $ ffmpeg -v 9 -loglevel 99 -i test.mkv
 ffmpeg version N-107110-ge5f6707a7b Copyright (c) 2000-2022 the FFmpeg
 developers
   built with gcc 10 (Debian 10.2.1-6)
   configuration:
   libavutil      57. 27.100 / 57. 27.100
   libavcodec     59. 33.100 / 59. 33.100
   libavformat    59. 25.100 / 59. 25.100
   libavdevice    59.  6.100 / 59.  6.100
   libavfilter     8. 40.100 /  8. 40.100
   libswscale      6.  6.100 /  6.  6.100
   libswresample   4.  6.100 /  4.  6.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-i' ... matched as input url with argument 'test.mkv'.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input url test.mkv.
 Successfully parsed a group of options.
 Opening an input file: test.mkv.
 [NULL @ 0x560ab5fd3400] Opening 'test.mkv' for reading
 [file @ 0x560ab5fd3c80] Setting default whitelist 'file,crypto,data'
 Probing matroska,webm score:100 size:2048
 Probing mp3 score:1 size:2048
 [matroska,webm @ 0x560ab5fd3400] Format matroska,webm probed with
 size=2048 and score=100
 st:0 removing common factor 1000000 from timebase
 [matroska,webm @ 0x560ab5fd3400] Before avformat_find_stream_info() pos:
 718 bytes read:8567 seeks:0 nb_streams:1
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 6(SEI), nal_ref_idc: 0
 [h264 @ 0x560ab5fd60c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
 [h264 @ 0x560ab5fd60c0] Format yuv444p chosen by get_format().
 [h264 @ 0x560ab5fd60c0] Reinit context to 320x240, pix_fmt: yuv444p
 [h264 @ 0x560ab5fd60c0] no picture
 [matroska,webm @ 0x560ab5fd3400] All info found
 [matroska,webm @ 0x560ab5fd3400] stream 0: start_time: 0 duration: NOPTS
 [matroska,webm @ 0x560ab5fd3400] format: start_time: 0 duration: 1
 (estimate from stream) bitrate=68 kb/s
 [matroska,webm @ 0x560ab5fd3400] After avformat_find_stream_info() pos:
 5118 bytes read:8567 seeks:0 frames:4
 Input #0, matroska,webm, from 'test.mkv':
   Metadata:
     ENCODER         : Lavf59.16.100
   Duration: 00:00:01.00, start: 0.000000, bitrate: 68 kb/s
   Chapters:
     Chapter #0:0: start 0.000000, end 1.000000
       Metadata:
         performer       : Bob
   Stream #0:0, 4, 1/1000: Video: h264 (High 4:4:4 Predictive), 1 reference
 frame, yuv444p(tv, progressive, left), 320x240 [SAR 1:1 DAR 4:3], 0/1, 25
 fps, 25 tbr, 1k tbn
     Metadata:
       ENCODER         : Lavc59.18.100 libx264
       DURATION        : 00:00:01.000000000
 Successfully opened the file.
 At least one output file must be specified
 [AVIOContext @ 0x560ab5fdc040] Statistics: 8567 bytes read, 0 seeks
 }}}

 The test file was produced with `ffmpeg -i metadata -f lavfi -i testsrc -t
 1 test.mkv` where `metadata` contains
 {{{
 ;FFMETADATA1

 [CHAPTER]
 TIMEBASE=1/1000000000
 START=0
 END=1000000000
 LEAD_PERFORMER=Bob
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9812>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list