[FFmpeg-trac] #9762(avcodec:new): jpegxl: compression of uncompressed 16-bit image data fails

FFmpeg trac at avcodec.org
Mon May 2 19:53:31 EEST 2022


#9762: jpegxl: compression of uncompressed 16-bit image data fails
-------------------------------------+-------------------------------------
             Reporter:  toni76       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avcodec      |                  Version:  git-
             Keywords:  libjxl       |  master
  grayscale                          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I want to convert an uncompressed 16-bit grayscale AVI video file (b16g)
 with JPEG XL.

 Conversion fails silently and results in a 0-byte file, it shows the
 message:
 {{{
 JXL_CHECK: metadata_->color_encoding.IsGray() == c_current.IsGray()
 }}}

 Tested with multiple input files. Reproduction also works with non-
 grayscale input files but -pix_fmt gray16le.

 This is probably related to libjxl parameterization and this similar issue
 of ImageMagick:
 https://github.com/ImageMagick/ImageMagick/issues/4874

 Note (additional issue): Output to MKV container for 16-bit grayscale
 fails probably nonsensically with "codec jpegxl is not supported by this
 format", but using AVI is a proper workaround for me.


 How to reproduce:
 {{{
 % ffmpeg -i .\gray.avi -c:v jpegxl -pix_fmt gray16le .\gray_jxl.avi
 ffmpeg version 2022-05-02-git-40f2ea971f-full_build-www.gyan.dev Copyright
 (c) 2000-2022 the FFmpeg developers
   built with gcc 11.2.0 (Rev10, Built by MSYS2 project)

 Input #0, avi, from '.\gray.avi':
   Metadata:
     IVER            : 0.23.0.20170
   Duration: 00:04:24.47, start: 0.000000, bitrate: 147451 kb/s
   Stream #0:0: Video: rawvideo (b16g / 0x67363162), gray16be, 640x480,
 147456 kb/s, 30 fps, 30 tbr, 30 tbn
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> jpegxl (libjxl))
 Press [q] to stop, [?] for help
 Output #0, avi, to '.\gray_jxl.avi':
   Metadata:
     IVER            : 0.23.0.20170
     ISFT            : Lavf59.23.100
   Stream #0:0: Video: jpegxl, gray16le(pc, progressive), 640x480, q=2-31,
 200 kb/s, 30 fps, 30 tbn
     Metadata:
       encoder         : Lavc59.27.100 libjxl
 ./lib/jxl/image_bundle.cc:34: JXL_CHECK:
 metadata_->color_encoding.IsGray() == c_current.IsGray()
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9762>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list