[FFmpeg-trac] #9108(ffmpeg:new): Unable to process metadata according documentation example

FFmpeg trac at avcodec.org
Fri Feb 19 19:26:25 EET 2021


#9108: Unable to process metadata according documentation example
----------------------------------+---------------------------------------
             Reporter:  UlfZibis  |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  ffmpeg    |                  Version:  unspecified
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 Summary of the bug:
 The "roundtrip" example to edit metadata tags from here
 [https://ffmpeg.org/ffmpeg-all.html#Metadata-3]
 in conjunction with the shown metadata example file does not work for
 adding chapter tags and media title.
 Either the documentation is wrong/incomplete or the code is buggy.

 How to reproduce:
 Use:
 [http://www.jugkoeln.de/Videos/INPUT_croped.mkv]
 [http://www.jugkoeln.de/Videos/INPUT_test.ffmeta]
 {{{
 % ffmpeg -i INPUT_croped.mkv -i INPUT_test.ffmeta -map_metadata 0
 -map_metadata 1 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -c copy
 OUTPUT_croped.mkv
 ffmpeg version N-101141-g8331eb058d Copyright (c) 2000-2021 the FFmpeg
 developers
   built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
   configuration: --enable-libvorbis
   libavutil      56. 65.100 / 56. 65.100
   libavcodec     58.123.100 / 58.123.100
   libavformat    58. 67.100 / 58. 67.100
   libavdevice    58. 12.100 / 58. 12.100
   libavfilter     7.107.100 /  7.107.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
 Input #0, matroska,webm, from 'INPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     ENCODER         : Lavf58.67.100
   Duration: 01:31:56.12, start: -0.007000, bitrate: 110 kb/s
   Chapters:
     Chapter #0:0: start 0.000000, end 10.911556
     Chapter #0:1: start 10.911556, end 819.225778
     Chapter #0:2: start 819.225778, end 1839.369956
     Chapter #0:3: start 1839.369956, end 2689.490133
     Chapter #0:4: start 2689.490133, end 3289.574978
     Chapter #0:5: start 3289.574978, end 4584.758089
     Chapter #0:6: start 4584.758089, end 5516.019689
   Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p(progressive), 16x16
 [SAR 16:15 DAR 16:15], 25 fps, 25 tbr, 1k tbn, 25 tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
   Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
 Input #1, ffmetadata, from 'INPUT_test.ffmeta':
   Metadata:
     title           : Experiment
   Duration: 01:31:56.02, start: 0.000000, bitrate: N/A
   Chapters:
     Chapter #1:0: start 0.000000, end 10.911556
     Chapter #1:1: start 10.911556, end 819.225778
       Metadata:
         title           : 1 - Intro
     Chapter #1:2: start 819.225778, end 1839.369956
       Metadata:
         title           : 2 - Restaurant
     Chapter #1:3: start 1839.369956, end 2689.490133
       Metadata:
         title           : 3 - At home
     Chapter #1:4: start 2689.490133, end 3289.574978
     Chapter #1:5: start 3289.574978, end 4584.758089
     Chapter #1:6: start 4584.758089, end 5516.019689
 Codec 0x21000 is not in the full list.
   Stream #1:0: Data: unknown_codec
     Metadata:
       title           : Experiment
 File 'OUTPUT_croped.mkv' already exists. Overwrite? [y/N] y
 Output #0, matroska, to 'OUTPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     title           : Experiment
     encoder         : Lavf58.67.100
   Chapters:
     Chapter #0:0: start 0.007000, end 10.918556
     Chapter #0:1: start 10.918556, end 819.232778
     Chapter #0:2: start 819.232778, end 1839.376956
     Chapter #0:3: start 1839.376956, end 2689.497133
     Chapter #0:4: start 2689.497133, end 3289.581978
     Chapter #0:5: start 3289.581978, end 4584.765089
     Chapter #0:6: start 4584.765089, end 5516.026689
   Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46),
 yuv420p(progressive), 16x16 [SAR 16:15 DAR 16:15], q=2-31, 25 fps, 25 tbr,
 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
   Stream #0:1(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000
 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=137903 fps=15555 q=-1.0 Lsize=   74660kB time=01:31:56.10 bitrate=
 110.9kbits/s speed= 622x
 video:1498kB audio:70033kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 4.375239%
 }}}
 Result: The chapter titles are not added to the output and the media title
 seems not to be added to the right place, as media players – e.g. VLC –
 don't show the title at the expected place, see attachment.
 As side effect, the global metadata changes to an unusual form and order:
 {{{
     Metadata:
       SOURCE_TYPE     : dvd
       title           : Experiment
       encoder         : Lavf58.67.100
 }}}
 instead:
 {{{
     Metadata:
       SOURCE_TYPE     : dvd
       ENCODER         : Lavf58.67.100
       title           : Experiment
 }}}

 Also adding the media title as stream title doesn't help:
 {{{
 % ffmpeg -i INPUT_croped.mkv -i INPUT_test.ffmeta -map_metadata 0
 -map_metadata 1 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a
 -map_metadata:s 1:s -c copy OUTPUT_croped.mkv
 ffmpeg version N-101141-g8331eb058d Copyright (c) 2000-2021 the FFmpeg
 developers
   built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
   configuration: --enable-libvorbis
   libavutil      56. 65.100 / 56. 65.100
   libavcodec     58.123.100 / 58.123.100
   libavformat    58. 67.100 / 58. 67.100
   libavdevice    58. 12.100 / 58. 12.100
   libavfilter     7.107.100 /  7.107.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
 Input #0, matroska,webm, from 'INPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     ENCODER         : Lavf58.67.100
   Duration: 01:31:56.12, start: -0.007000, bitrate: 110 kb/s
   Chapters:
     Chapter #0:0: start 0.000000, end 10.911556
     Chapter #0:1: start 10.911556, end 819.225778
     Chapter #0:2: start 819.225778, end 1839.369956
     Chapter #0:3: start 1839.369956, end 2689.490133
     Chapter #0:4: start 2689.490133, end 3289.574978
     Chapter #0:5: start 3289.574978, end 4584.758089
     Chapter #0:6: start 4584.758089, end 5516.019689
   Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p(progressive), 16x16
 [SAR 16:15 DAR 16:15], 25 fps, 25 tbr, 1k tbn, 25 tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
   Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
 Input #1, ffmetadata, from 'INPUT_test.ffmeta':
   Metadata:
     title           : Experiment
   Duration: 01:31:56.02, start: 0.000000, bitrate: N/A
   Chapters:
     Chapter #1:0: start 0.000000, end 10.911556
     Chapter #1:1: start 10.911556, end 819.225778
       Metadata:
         title           : 1 - Intro
     Chapter #1:2: start 819.225778, end 1839.369956
       Metadata:
         title           : 2 - Restaurant
     Chapter #1:3: start 1839.369956, end 2689.490133
       Metadata:
         title           : 3 - At home
     Chapter #1:4: start 2689.490133, end 3289.574978
     Chapter #1:5: start 3289.574978, end 4584.758089
     Chapter #1:6: start 4584.758089, end 5516.019689
 Codec 0x21000 is not in the full list.
   Stream #1:0: Data: unknown_codec
     Metadata:
       title           : Experiment
 File 'OUTPUT_croped.mkv' already exists. Overwrite? [y/N] y
 Output #0, matroska, to 'OUTPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     title           : Experiment
     encoder         : Lavf58.67.100
   Chapters:
     Chapter #0:0: start 0.007000, end 10.918556
     Chapter #0:1: start 10.918556, end 819.232778
     Chapter #0:2: start 819.232778, end 1839.376956
     Chapter #0:3: start 1839.376956, end 2689.497133
     Chapter #0:4: start 2689.497133, end 3289.581978
     Chapter #0:5: start 3289.581978, end 4584.765089
     Chapter #0:6: start 4584.765089, end 5516.026689
   Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46),
 yuv420p(progressive), 16x16 [SAR 16:15 DAR 16:15], q=2-31, 25 fps, 25 tbr,
 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
       title           : Experiment
   Stream #0:1(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000
 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
       title           : Experiment
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=137903 fps=23403 q=-1.0 Lsize=   74660kB time=01:31:56.10 bitrate=
 110.9kbits/s speed= 936x
 video:1498kB audio:70033kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 4.375275%
 }}}
 Result:
 The media title is still not shown with SMPlayer and VLC media player.

 As an alternative, the chapter titles can be added using option
 `-map_chapters`:
 {{{
 % ffmpeg -i INPUT_croped.mkv -i INPUT_test.ffmeta -map_metadata 0
 -map_metadata 1 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a
 -map_metadata:s 1:s -map_chapters 1 -c copy OUTPUT_croped.mkv
 ffmpeg version N-101141-g8331eb058d Copyright (c) 2000-2021 the FFmpeg
 developers
   built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
   configuration: --enable-libvorbis
   libavutil      56. 65.100 / 56. 65.100
   libavcodec     58.123.100 / 58.123.100
   libavformat    58. 67.100 / 58. 67.100
   libavdevice    58. 12.100 / 58. 12.100
   libavfilter     7.107.100 /  7.107.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
 Input #0, matroska,webm, from 'INPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     ENCODER         : Lavf58.67.100
   Duration: 01:31:56.12, start: -0.007000, bitrate: 110 kb/s
   Chapters:
     Chapter #0:0: start 0.000000, end 10.911556
     Chapter #0:1: start 10.911556, end 819.225778
     Chapter #0:2: start 819.225778, end 1839.369956
     Chapter #0:3: start 1839.369956, end 2689.490133
     Chapter #0:4: start 2689.490133, end 3289.574978
     Chapter #0:5: start 3289.574978, end 4584.758089
     Chapter #0:6: start 4584.758089, end 5516.019689
   Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p(progressive), 16x16
 [SAR 16:15 DAR 16:15], 25 fps, 25 tbr, 1k tbn, 25 tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
   Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
 Input #1, ffmetadata, from 'INPUT_test.ffmeta':
   Metadata:
     title           : Experiment
   Duration: 01:31:56.02, start: 0.000000, bitrate: N/A
   Chapters:
     Chapter #1:0: start 0.000000, end 10.911556
     Chapter #1:1: start 10.911556, end 819.225778
       Metadata:
         title           : 1 - Intro
     Chapter #1:2: start 819.225778, end 1839.369956
       Metadata:
         title           : 2 - Restaurant
     Chapter #1:3: start 1839.369956, end 2689.490133
       Metadata:
         title           : 3 - At home
     Chapter #1:4: start 2689.490133, end 3289.574978
     Chapter #1:5: start 3289.574978, end 4584.758089
     Chapter #1:6: start 4584.758089, end 5516.019689
 Codec 0x21000 is not in the full list.
   Stream #1:0: Data: unknown_codec
     Metadata:
       title           : Experiment
 File 'OUTPUT_croped.mkv' already exists. Overwrite? [y/N] y
 Output #0, matroska, to 'OUTPUT_croped.mkv':
   Metadata:
     SOURCE_TYPE     : dvd
     title           : Experiment
     encoder         : Lavf58.67.100
   Chapters:
     Chapter #0:0: start 0.000000, end 10.911556
     Chapter #0:1: start 10.911556, end 819.225778
       Metadata:
         title           : 1 - Intro
     Chapter #0:2: start 819.225778, end 1839.369956
       Metadata:
         title           : 2 - Restaurant
     Chapter #0:3: start 1839.369956, end 2689.490133
       Metadata:
         title           : 3 - At home
     Chapter #0:4: start 2689.490133, end 3289.574978
     Chapter #0:5: start 3289.574978, end 4584.758089
     Chapter #0:6: start 4584.758089, end 5516.019689
   Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46),
 yuv420p(progressive), 16x16 [SAR 16:15 DAR 16:15], q=2-31, 25 fps, 25 tbr,
 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc58.123.100 mpeg4
       DURATION        : 01:31:56.120000000
       title           : Experiment
   Stream #0:1(eng): Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000
 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 01:31:56.121000000
       title           : Experiment
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=137903 fps=23424 q=-1.0 Lsize=   74660kB time=01:31:56.10 bitrate=
 110.9kbits/s speed= 937x
 video:1498kB audio:70033kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 4.375388%
 }}}

 Conclusion:
 1. It would be good, if the round trip example from
 [https://ffmpeg.org/ffmpeg-all.html#Metadata-3]
 would '''work out of the box''', even for chapter and media titles.
 2. At least. description of option `-map_metadata` at
 [https://ffmpeg.org/ffmpeg-all.html#Advanced-options]
 should refer to option `-map_chapters` for editing chapter tags.
 3. And both option descriptions should be cross-linked with
 [https://ffmpeg.org/ffmpeg-all.html#Metadata-1]

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


More information about the FFmpeg-trac mailing list