[FFmpeg-trac] #5831(undetermined:new): HDR Metadata in Encoding

FFmpeg trac at avcodec.org
Wed Sep 7 14:43:51 EEST 2016


#5831: HDR Metadata in Encoding
-------------------------------------+-------------------------------------
             Reporter:               |                     Type:
  smallishzulu                       |  enhancement
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  metadata,    |               Blocked By:
  hdr                                |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Hi,

 I try to dump HDR metadata (mastering display color primaries & luminance)
 of a HDR video using;

 root at kizil105:/home/admintv# /opt/ffmpeg/bin/ffmpeg -i /tmp/exodus_hdr.mp4
 -f ffmetadata -y metadata.txt
 ffmpeg version N-81560-ge3fd185 Copyright (c) 2000-2016 the FFmpeg
 developers
   built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
   configuration: --prefix=/opt/ffmpeg --enable-shared --enable-static
 --enable-nonfree --enable-gpl --extra-cflags='-I/opt/ffmpeg/include
 -I/usr/local/include' --extra-ldflags=-L/opt/ffmpeg/lib
 --bindir=/opt/ffmpeg/bin --extra-libs=-ldl --enable-libx264 --enable-
 libx265 --enable-nonfree --enable-gpl --enable-nvenc --enable-vdpau
 --enable-libzvbi --enable-libfdk-aac --enable-libzimg --enable-avresample
 --enable-libzmq --enable-libfreetype
   libavutil      55. 29.100 / 55. 29.100
   libavcodec     57. 54.102 / 57. 54.102
   libavformat    57. 48.102 / 57. 48.102
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 60.100 /  6. 60.100
   libavresample   3.  0.  0 /  3.  0.  0
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  1.100 /  2.  1.100
   libpostproc    54.  0.100 / 54.  0.100
 [aac @ 0x1cb64c0] This stream seems to incorrectly report its last channel
 as LFE[3], mapping to LFE[0]
 Input #0, mpegts, from '/tmp/exodus_hdr.mp4':
   Duration: 00:00:02.13, start: 1.525000, bitrate: 44519 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0[0x100]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024),
 yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9],
 23.98 fps, 24 tbr, 90k tbn, 23.98 tbc
     Stream #0:1[0x101](und): Audio: aac (LC) ([15][0][0][0] / 0x000F),
 48000 Hz, 5.1, fltp, 400 kb/s
 Output #0, ffmetadata, to 'metadata.txt':
   Metadata:
     encoder         : Lavf57.48.102
 Stream mapping:
 Press [q] to stop, [?] for help
 size=       0kB time=-577014:32:22.77 bitrate=N/A speed=N/A
 video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 Output file is empty, nothing was encoded

 However; I am not able to get HDR related metadata:

 root at kizil105:/home/admintv# cat metadata.txt
 ;FFMETADATA1
 encoder=Lavf57.48.102

 Mediainfo output for exodus_hdr.mp4:

 General
 ID                                       : 1 (0x1)
 Complete name                            : C:\Users\Ali
 KIZIL\Desktop\exodus_hdr.mp4
 Format                                   : MPEG-TS
 File size                                : 11.3 MiB
 Duration                                 : 2 s 83 ms
 Overall bit rate mode                    : Variable
 Overall bit rate                         : 45.4 Mb/s

 Video
 ID                                       : 256 (0x100)
 Menu ID                                  : 1 (0x1)
 Format                                   : HEVC
 Format/Info                              : High Efficiency Video Coding
 Format profile                           : Main 10 at L5.1@High
 Codec ID                                 : 36
 Duration                                 : 2 s 83 ms
 Width                                    : 3 840 pixels
 Height                                   : 2 160 pixels
 Display aspect ratio                     : 16:9
 Frame rate                               : 23.976 (24000/1001) FPS
 Color space                              : YUV
 Chroma subsampling                       : 4:2:0 (Type 2)
 Bit depth                                : 10 bits
 Writing library                          : ATEME Titan KFE 3.7.0
 (4.7.0.2002)
 Color range                              : Limited
 Color primaries                          : BT.2020
 Transfer characteristics                 : SMPTE ST 2084
 Matrix coefficients                      : BT.2020 non-constant
 Mastering display color primaries        : R: x=0.680000 y=0.320000, G:
 x=0.265000 y=0.690000, B: x=0.150000 y=0.060000, White point: x=0.312700
 y=0.329000
 Mastering display luminance              : min: 0.0200 cd/m2, max:
 1200.0000 cd/m2

 Audio
 ID                                       : 257 (0x101)
 Menu ID                                  : 1 (0x1)
 Format                                   : AAC
 Format/Info                              : Advanced Audio Codec
 Format version                           : Version 4
 Format profile                           : LC
 Muxing mode                              : ADTS
 Codec ID                                 : 15
 Duration                                 : 1 s 877 ms
 Bit rate mode                            : Variable
 Channel(s)                               : 6 channels
 Channel positions                        : Front: L C R, Side: L R, LFE
 Sampling rate                            : 48.0 kHz
 Frame rate                               : 46.875 FPS (1024 spf)
 Compression mode                         : Lossy

 Menu
 ID                                       : 4096 (0x1000)
 Menu ID                                  : 1 (0x1)
 List                                     : 256 (0x100) (HEVC) / 257
 (0x101) (AAC)
 Service name                             : Service01
 Service provider                         : FFmpeg
 Service type                             : digital television

 HRD Metadata part is:

 Mastering display color primaries        : R: x=0.680000 y=0.320000, G:
 x=0.265000 y=0.690000, B: x=0.150000 y=0.060000, White point: x=0.312700
 y=0.329000
 Mastering display luminance              : min: 0.0200 cd/m2, max:
 1200.0000 cd/m2

 It would be nice to import this metadata info back to encode such like;

 /opt/ffmpeg/bin/ffmpeg -loglevel verbose-re -i
 /media/usb0/4k_sampels/Exodus_UHD_HDR_Exodus_draft.mp4 -i metadata.txt
 -map_metadata 1 -c:v:0 nvenc_hevc -preset llhq -profile:v:0 main10 -vb
 8000k   -c:a:0 mp2  -b:a:0 384k -f mpegts -color_range 1 -color_trc
 smpte2084 -color_primaries bt2020 -colorspace 9 -y /tmp/out.ts

 for HDR transcoding.

 Additional note:

 Below command also does not add metadat to transcoding:

 /opt/ffmpeg/bin/ffmpeg -loglevel verbose-re -i
 /media/usb0/4k_sampels/Exodus_UHD_HDR_Exodus_draft.mp4 -c:v:0 nvenc_hevc
 -preset llhq -profile:v:0 main10 -vb 8000k   -c:a:0 mp2  -b:a:0 384k -f
 mpegts -metadata:s:v:0 master-
 display="G(13248,34499)B(7500,2999)R(34000,15999)WP(15700,17550)L(10000000,100)"
 -color_range 1 -color_trc smpte2084 -color_primaries bt2020 -colorspace 9
 -y /tmp/out.ts
 Kind Regards,

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


More information about the FFmpeg-trac mailing list