Opened 10 months ago

#10490 new defect

HLS packaging does not preserve Dolby Vision metadata

Reported by: Viktor Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

When remuxing/packaging mkv or ts files with dolby vision (profile 5.1, profile 8.1) dolby vision data is not preserved. As a result file is played (at least by LG C2 TV) as HDR only.

Test file was taken from here: https://4kmedia.org/lg-amaze-dolby-vision-uhd-4k-demo/

ffmpeg version: 6.0

How to reproduce:

Package to HLS:

ffmpeg -analyzeduration 200M -fflags +genpts -i file:test.ts -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 dvh1 -strict -2 -bsf:v hevc_mp4toannexb  -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename test-1.mp4 -start_number 0 -hls_segment_filename out/test%d.mp4 -hls_playlist_type vod -hls_list_size 0 -y out/test.m3u8

...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:test.ts':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42dby1isom
    creation_time   : 2017-04-13T20:09:18.000000Z
  Duration: 00:00:56.20, start: 0.000000, bitrate: 28362 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (dvhe / 0x65687664), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 27713 kb/s, 60 fps, 60 tbr, 60k tbn (default)
    Metadata:
      creation_time   : 2017-04-13T20:09:18.000000Z
      handler_name    : video handler
      vendor_id       : [0][0][0][0]
      encoder         : DOVI Coding
    Side data:
      DOVI configuration record: version: 1.0, profile: 5, level: 9, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 0
...
[hls @ 0x55cc8d4b9b00] Opening 'out/test-1.mp4' for writing
[mp4 @ 0x55cc8d564b80] track 1: codec frame size is not set
[hls @ 0x55cc8d4b9b00] Stream HEVC is not hvc1, you should use tag:v hvc1 to set it.
Output #0, hls, to 'out/test.m3u8':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42dby1isom
    encoder         : Lavf60.3.100
  Stream #0:0(und): Video: hevc (Main 10) (dvh1 / 0x31687664), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 27713 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
    Metadata:
      creation_time   : 2017-04-13T20:09:18.000000Z
      handler_name    : video handler
      vendor_id       : [0][0][0][0]
      encoder         : DOVI Coding
    Side data:
      DOVI configuration record: version: 1.0, profile: 5, level: 9, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 0
  Stream #0:1(und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
...

and ffprobe shows codec tag hev1 and no DOVI record:

ffprobe -i out/test-1.mp4

...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out/test-1.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 512
    compatible_brands: iso5iso6dby1mp41
    encoder         : Lavf60.3.100
  Duration: N/A, bitrate: N/A
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 60 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : video handler
      vendor_id       : [0][0][0][0]
      encoder         : DOVI Coding
  Stream #0:1[0x2](und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp (default)
...

Change History (0)

Note: See TracTickets for help on using tickets.