Today I learned some HEIC images present themselves as bunch (up to 49!) of smaller tiles in cinelerra-GG and mpv. https://github.com/mpv-player/mpv/issues/13585 ffmpeg itself automerges them now, so this work (ffmpeg git cli): /dev/shm/ffmpeg/ffmpeg -i /dev/shm/IMG_4453.HEIC /dev/shm/grid.png bash-5.1$ /dev/shm/ffmpeg/ffmpeg -i /dev/shm/IMG_4453.HEIC /dev/shm/grid.png ffmpeg version N-123229-gf2e5eff3ff Copyright (c) 2000-2026 the FFmpeg developers built with gcc 11.2.0 (GCC) configuration: --enable-opencl --disable-debug --enable-libx265 --enable-libx264 --enable-gpl --enable-libplacebo --enable-vulkan --enable-libshaderc --enable-libzimg --enable-libaom --enable-libdav1d --enable-libsoxr --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-frei0r --enable-libgsm --enable-openal --enable-libopus --enable-librtmp --enable-libsnappy --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp libavutil 60. 30.100 / 60. 30.100 libavcodec 62. 30.100 / 62. 30.100 libavformat 62. 15.100 / 62. 15.100 libavdevice 62. 4.100 / 62. 4.100 libavfilter 11. 17.100 / 11. 17.100 libswscale 9. 7.100 / 9. 7.100 libswresample 6. 4.100 / 6. 4.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/dev/shm/IMG_4453.HEIC': Metadata: major_brand : heic minor_version : 0 compatible_brands: mif1heic Duration: N/A, start: 0.000000, bitrate: N/A Stream group #0:0[0x31]: Tile Grid: hevc (Main Still Picture) (hvc1 / 0x31637668), yuvj420p(pc), 4032x3024 (default) Side data: EXIF metadata: (2012 bytes) Stream #0:48[0x32]: Video: hevc (Main Still Picture) (hvc1 / 0x31637668), yuvj420p(pc), 320x240, 1 fps, 1 tbr, 1 tbn Side data: ICC Profile: (548 bytes) Stream mapping: Stream #0:0 (hevc) -> xstack Stream #0:1 (hevc) -> xstack Stream #0:2 (hevc) -> xstack Stream #0:3 (hevc) -> xstack Stream #0:4 (hevc) -> xstack Stream #0:5 (hevc) -> xstack Stream #0:6 (hevc) -> xstack Stream #0:7 (hevc) -> xstack Stream #0:8 (hevc) -> xstack Stream #0:9 (hevc) -> xstack Stream #0:10 (hevc) -> xstack Stream #0:11 (hevc) -> xstack Stream #0:12 (hevc) -> xstack Stream #0:13 (hevc) -> xstack Stream #0:14 (hevc) -> xstack Stream #0:15 (hevc) -> xstack Stream #0:16 (hevc) -> xstack Stream #0:17 (hevc) -> xstack Stream #0:18 (hevc) -> xstack Stream #0:19 (hevc) -> xstack Stream #0:20 (hevc) -> xstack Stream #0:21 (hevc) -> xstack Stream #0:22 (hevc) -> xstack Stream #0:23 (hevc) -> xstack Stream #0:24 (hevc) -> xstack Stream #0:25 (hevc) -> xstack Stream #0:26 (hevc) -> xstack Stream #0:27 (hevc) -> xstack Stream #0:28 (hevc) -> xstack Stream #0:29 (hevc) -> xstack Stream #0:30 (hevc) -> xstack Stream #0:31 (hevc) -> xstack Stream #0:32 (hevc) -> xstack Stream #0:33 (hevc) -> xstack Stream #0:34 (hevc) -> xstack Stream #0:35 (hevc) -> xstack Stream #0:36 (hevc) -> xstack Stream #0:37 (hevc) -> xstack Stream #0:38 (hevc) -> xstack Stream #0:39 (hevc) -> xstack Stream #0:40 (hevc) -> xstack Stream #0:41 (hevc) -> xstack Stream #0:42 (hevc) -> xstack Stream #0:43 (hevc) -> xstack Stream #0:44 (hevc) -> xstack Stream #0:45 (hevc) -> xstack Stream #0:46 (hevc) -> xstack Stream #0:47 (hevc) -> xstack xstack:default -> Stream #0:0 (png) Press [q] to stop, [?] for help [swscaler @ 0xf3300040] deprecated pixel format used, make sure you did set range correctly Output #0, image2, to '/dev/shm/grid.png': Metadata: major_brand : heic minor_version : 0 compatible_brands: mif1heic encoder : Lavf62.15.100 Stream #0:0: Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 4032x3024, q=2-31, 200 kb/s, 1 fps, 1 tbn Metadata: encoder : Lavc62.30.100 png Side data: ICC Profile: (548 bytes) EXIF metadata: (2012 bytes) [image2 @ 0xb8a1dc0] The specified filename '/dev/shm/grid.png' does not contain an image sequence pattern or a pattern is invalid. [image2 @ 0xb8a1dc0] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image. [out#0/image2 @ 0xbeb0e80] video:9222KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown frame= 1 fps=0.1 q=-0.0 Lsize=N/A time=00:00:01.00 bitrate=N/A speed=0.0853x elapsed=0:00:11.73 https://trac.ffmpeg.org/ticket/11170 was closed with this ffmpeg commit in oct 2025 https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/5ff8395e7806ad27743829b04706... "fftools/ffmpeg_demux: create a filtegraph to merge HEIF tiles automatically" some test files from https://github.com/nokiatech/heif/tree/gh-pages/content/images decode in cingg as "just" 8 or so streams/tracks, you can disable them one by one and del low res versions, and combine hires images on single track manually) So much new technology :}
participants (1)
-
Andrew Randrianasulu