[FFmpeg-trac] #7045(undetermined:new): Should retain pixel density metadata from HiDPI/Retina screen recordings

FFmpeg trac at avcodec.org
Mon Feb 26 19:49:05 EET 2018


#7045: Should retain pixel density metadata from HiDPI/Retina screen recordings
-------------------------------------+-------------------------------------
             Reporter:  moubry       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 Whenever I use ffmpeg to encode a HiDPI/Retina screen recording, the video
 plays at 2x the size, so it looks fuzzy, because the pixel density is not
 retained. I expect videos encoded with ffmpeg to retain whatever metadata
 is used by players (like QuickTime Player) to play HiDPI/Retina videos at
 the expected size.

 I'm experiencing this issue on a Mac, but it might be an issue across
 other platforms with HiDPi displays as well.

 {{{
 $ ffmpeg version
 ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
   built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
 }}}

 How to reproduce:

 1. Use QuickTime Player to create a Screen Recording on a Retina Mac.
 2. Play the video you recorded in QuickTime Player using the ⌘1 Actual
 Size view. Notice that it’s playing 2:1 on your Retina Display, so the
 video looks sharp. It’s playing in half the space of the actual recorded
 pixels.
 3. Use ffmpeg to encode the video using a command like this:
 {{{
 $ ffmpeg -i haha.mov -c:v libx264 -crf 23 haha-lg.mov
 }}}
 4. Play the new ffmpeg-compressed video in QuickTime Player using the ⌘1
 Actual Size view. Notice that it’s playing 1:1, so the video looks fuzzy.

 To clarify, the video does not look blurry because it was compressed.
 Rather, it looks blurry because the video is being played twice as big as
 it should be, at a 1:1 pixel density, instead of the required 2:1 pixel
 density, presumably because some metadata is being discarded when
 encoding.

 Here is the detailed information ffmpeg shows for the original screen
 recording:

 {{{
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'haha.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     creation_time   : 2018-02-26T16:46:00.000000Z
     com.apple.quicktime.make: Apple
     com.apple.quicktime.model: iMac18,3
     com.apple.quicktime.software: Mac OS X 10.13.3 (17D102)
     com.apple.quicktime.creationdate: 2018-02-26T10:45:50-0600
   Duration: 00:00:04.35, start: 0.000000, bitrate: 10947 kb/s
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,
 bt709), 1396x928 [SAR 1:1 DAR 349:232], 10701 kb/s, 60 fps, 60 tbr, 6k
 tbn, 12k tbc (default)
     Metadata:
       creation_time   : 2018-02-26T16:46:00.000000Z
       handler_name    : Core Media Data Handler
       encoder         : H.264
 }}}

 And here is the information for the ffmpeg-compressed version:

 {{{
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'haha-lg.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf57.83.100
   Duration: 00:00:04.35, start: 0.000000, bitrate: 1923 kb/s
     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
 1396x928 [SAR 1:1 DAR 349:232], 1783 kb/s, 60 fps, 60 tbr, 15360 tbn, 120
 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc57.107.100 libx264
 }}}

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


More information about the FFmpeg-trac mailing list