A crappy script that uses ffmpeg & mp4box to convert pictures to heic.
- Convert images to YUV(444/422/420)P(8/10/12) HEIC.
- Multi process parallel work
- Supports folder input
- Supports alpha channel auxiliary image item
- Supports split to grid
- Supports ICC and EXIF copying
- Supports thumbnail auxiliary image item
- (experimantal) Animated sequence
- Hardware encoding available
- Image scaling available
- Vulkan accelerated libplacebo available for color space conversion etc.
- Python 3.9+
- FFmpeg & FFprobe with libx265 biult-in.
- Mp4box(GPAC) 2.0+
- ImageMagick (only need for icc and animated webp workaround)
- Exiftool if you need to copy exif
- webpmux (only need for animated webp workaround)
- Drag and drop (will use default settings).
- Command line, see
makeheic.py -h
- Scaling function is just for quick use, if you are serious about scaling quality, please use tools like GIMP.
- Default encoding parameters is good for "visually lossless" compression, "fast" parameters can cause some unwanted artifacts, perhaps even using hwenc would be better in that case.
- Unfortunately, the lossless compression of existing video codecs is trash for still picture, so I don't provide a simple switch for lossless compression, webp or jxl are better solutions. And don't take those tools that convert to yuv first then call it f__king "lossless" against me.