ABC Media

ABC Media is a HumHub media center for admins and space admins to scan, preview, convert, optimize, bookmark, back up, restore, and manage images across uploads. It reduces storage and improves loading speed with safe AVIF/WebP optimization, exclusions, batch processing, and backup controls. Incl. HEIC/HEIF upload management/conversion and JXL (experimental)

EUR 25.00€ EUR 75.00€
EUR 75.00€
Buy Now

ABC Media turns HumHub into a real media-management system for administrators and, where allowed, space administrators. It scans HumHub’s upload folders, detects media files from core HumHub and installed modules, and gives admins a central place to preview, check, optimize, download, back up, restore, and manage media.

The first major focus of ABC Media is image optimization. Images can be converted to smaller modern formats such as AVIF or WebP where supported, helping reduce storage usage and improve page loading times. The module can process files in batches, create internal backups before conversion, restore previous versions when needed, and automatically exclude already optimized files from future conversion runs.

Admins can view thumbnails, sort media, bookmark files needing attention, compare optimized files with backups, and manage backup storage. Folder-based scan controls allow site owners to decide which uploads folders should be included, making the module flexible for different HumHub installations and additional modules.

ABC Media is designed as a safe, practical HumHub Media Center: conservative with file replacement, careful with backups, and useful for long-term administration of growing communities with many images and media uploads.

Incl. HEIC/HEIF upload  management/conversion and JXL (experimental)

Uploaded formats can be converted at upload and regular via cron job and manual

Backups and originals can be enabled and managed too

Latest Changes:

26.05.15.9 – 2026-05-16

  • Fixed ProseMirror/RTE HEIC, HEIF and JXL uploads by converting the temporary upload before HumHub validates, stores and returns the file JSON response.
  • Converted unsupported browser upload formats now arrive in HumHub as WebP/AVIF/JPG/PNG, so ProseMirror can insert an image node instead of a download-only filename link.
  • Preserved the original HEIC/HEIF/JXL upload as a `file_org.<ext>` companion variant inside the HumHub file store.
  • Added a clear upload validation error when the server cannot decode HEIC/HEIF/JXL instead of silently accepting a file that the browser cannot display.
  • Prevented immediate upload conversion from producing JPEG XL output for ProseMirror/RTE uploads; manual and cron JXL conversion remain available for controlled testing.
  • Added HumHub preview variant generation after HEIC/HEIF/JXL upload conversion so converted files appear as image previews instead of plain downloadable filenames.
  • Registered WebP and AVIF as inline browser image MIME types through ABC Media module initialization.
  • Replaced full model save during HumHub file conversion with direct attribute updates for safer post-upload metadata persistence.
  • In auto mode, HEIC/HEIF uploads now stay limited to browser-visible outputs instead of producing JPEG XL.
  • Added fallback output order for unsupported uploads when the preferred WebP/AVIF encoder is missing.
  • Kept JPEG XL as experimental / not recommended for production browser delivery.

 

Below is a ready-to-use manual/shop-page text for ABC Media / abcmedia. I kept it understandable, a bit promotional, but still practical for admins.


ABC Media Manual

Image optimization, iPhone HEIC support, backups and media control for HumHub

ABC Media is a HumHub module for managing, optimizing, converting and backing up uploaded media files. It was created because modern users upload images from many different devices, especially iPhones and iPads, and HumHub should not punish them for using modern image formats.

Many iPhone users upload photos as HEIC / HEIF. These files can have excellent image quality, but many web browsers, editors and upload fields still do not display them reliably inside HumHub. The result is frustrating: the user uploads a photo, but HumHub only shows a downloadable filename instead of the actual image.

ABC Media solves this by converting unsupported or oversized uploads into browser-friendly formats such as WebP or AVIF, while keeping backups of the original file where needed.


Why we built ABC Media

HumHub is often used by communities, schools, NGOs, churches, companies, clubs and directories. These users are not image-format experts. They simply upload pictures from phones, tablets, cameras or desktops.

In real life, this creates problems:

  • iPhone users upload HEIC / HEIF images.

  • New experimental formats like JPEG XL / JXL may upload but not display.

  • Large mobile photos can be 4000×3000 pixels or larger.

  • Small category icons, logos and post images may waste storage space.

  • Some modules store images directly as PNG or JPG and do not automatically optimize them.

  • Browser preview and ProseMirror editor integration can fail if the MIME type is not recognized as an image.

  • Admins need backups before converting many images.

ABC Media was built to make this manageable from inside HumHub.


What ABC Media can do

ABC Media can:

  • Scan uploaded media files.

  • Show file size, type, dimensions and owner.

  • Convert images to WebP, AVIF, JPEG, PNG or experimental JPEG XL / JXL.

  • Convert iPhone HEIC / HEIF uploads before they are inserted into the HumHub editor.

  • Resize large phone photos proportionally.

  • Create backups before conversion.

  • Keep original files as _org siblings when needed.

  • Create preview images for HumHub.

  • Handle ProseMirror editor uploads in dashboard posts, wiki pages and other RTE fields.

  • Handle direct filesystem uploads such as category logos or module images.

  • Exclude files from future conversion.

  • Re-include files if you want to process them again.

  • Run conversions manually, in batches or by cron.

  • Use sidecar delivery for direct upload URLs.


Main use case: iPhone HEIC uploads

The most important practical use case is this:

A user opens HumHub on an iPhone, creates a post, and uploads a photo.

Without ABC Media:

photo.heic
→ uploaded
→ not shown as image
→ only filename appears
→ user is confused

With ABC Media:

photo.heic
→ converted before HumHub stores it
→ resized if too large
→ saved as WebP or AVIF
→ inserted into ProseMirror as an image
→ original HEIC can be kept as backup sibling

Example from testing:

1.52 MB HEIC
→ 124 KB AVIF
→ 1440 × 1080 px

That is exactly what we want: smaller file, correct display, and much better user experience.


Recommended production format

For most HumHub communities, the safest default is:

HEIC / HEIF / JXL uploads → WebP

WebP is a very good default because it is widely supported and usually much smaller than PNG or JPEG.

AVIF can be even smaller, but it should be tested carefully with your theme, upload fields, image preview screens and browser mix.

JPEG XL / JXL should be treated as experimental.

Warning:

JPEG XL / JXL is experimental for browser delivery. It may be useful for testing or archival compression, but it is not recommended for production uploads, posts, banners, logos or ProseMirror content because many browsers and server setups still do not display or decode it reliably.


Installation

Upload and activate the module like any other HumHub module.

After installing, run:

php protected/yii module/scan
php protected/yii cache/flush-all

Then open:

Administration → Modules → ABC Media

or visit:

/abcmedia

depending on your HumHub setup.


Important first settings

Open ABC Media → Settings.

1. Convert new uploads immediately

Enable:

Convert new uploads immediately

This is the most important option for iPhone users.

It allows ABC Media to process unsupported uploads like HEIC / HEIF before they become broken filename links in the editor.

Recommended:

ON

2. New upload target format

Recommended for production:

WebP

Advanced option:

AVIF

Experimental:

JPEG XL / JXL

For most communities, use:

WebP

Use AVIF only after testing your theme, editor previews, mobile browsers and upload fields.

Do not use JXL as normal upload output on production sites.


3. Maximum image width and height

Large phone photos are often far too big for normal web display.

ABC Media can resize them proportionally.

Example setting:

Maximum width: 1920
Maximum height: 1080

If a user uploads a 4000×3000 photo, ABC Media reduces it proportionally so it fits inside the configured limit.

For example:

4000 × 3000
→ max 1920 × 1080
→ result 1440 × 1080

The height is the limiting factor, so the width is reduced proportionally.

Good example settings:

1920 × 1080

for full-HD web display.

1600 × 1600

for stronger storage savings.

1200 × 1200

for smaller communities, directories, logos and mobile-first sites.

ABC Media never enlarges smaller images.


Conversion quality settings

ABC Media lets you control the quality for each output format.

Typical safe starting values:

AVIF quality: 50
WebP quality: 76
JPEG quality: 82
PNG compression: 9
JPEG XL quality: 90–100
JPEG XL effort: 7

For normal web use, you do not need perfect archive quality. The goal is good visual quality with much smaller file size.


Batch and cron conversion

ABC Media can also process existing files.

This is useful when you already have thousands of uploaded images.

You can define:

Batch limit
Automatic conversion threshold
Automatic conversion batch size
Automatic conversion scope

Example:

Run automatic conversion when convertible images reach: 51
Automatic conversion batch size: 51
Scope: all convertible images

This prevents huge conversions from running during normal page requests.

For large sites, start with small batches.

Recommended:

25–100 files per batch

Do large conversions from a stable desktop connection, not from a phone.


Media Center overview

The Media Center lists your scanned files.

You can see:

  • Preview

  • Filename

  • Path

  • Type

  • Size

  • Owner

  • Status

  • Actions

Example statuses:

Manual only
Excluded
ORG original sibling
Exact duplicate
Bookmarked

What “Manual only” means

“Manual only” does not mean the file is broken.

It means ABC Media will not automatically process this file in the current batch mode, but an administrator can still use the file row actions.

This is useful for protected or direct module files where automatic conversion could break hard-coded URLs.


Row actions

Each file row has an Actions menu.

Typical actions include:

Convert this file
Exclude from conversion
Include again
Bookmark
Backup / restore actions

Use Convert this file when you want to test one file before converting many files.

Use Exclude from conversion when a file is already optimized or should not be touched.

Use Include again if you excluded a file by mistake.


Bulk actions

You can mark files with checkboxes and apply bulk actions.

This is useful when you want to convert several selected files but not the whole folder.

Recommended workflow:

1. Filter the media list.
2. Mark a few files.
3. Apply conversion to selected files.
4. Check visual result.
5. Continue with larger batches.

Do not start with thousands of files before checking that the output works for your site.


Backups and original files

ABC Media can create backups before conversion.

Recommended:

Create internal backup before conversion: ON

For important sites, download a backup before large conversions.

ABC Media can also keep original files as _org siblings.

Example:

file.heic
→ file.avif
→ file_org.heic

This is helpful because the optimized image is used for the website, while the original upload is still available if needed.


Direct upload files and sidecar delivery

Some HumHub modules do not use the normal HumHub file upload model.

For example:

  • Category logos

  • Header images

  • Login background images

  • Mail header images

  • Some module icons

  • Directly stored PNG/JPG files

These files may be referenced by hard-coded paths.

Example:

/uploads/abc/category-logo.png

If ABC Media simply renames that file to:

category-logo.avif

the module may still look for:

category-logo.png

and the image would break.

That is why ABC Media has sidecar delivery.

Instead of deleting or renaming the original file, ABC Media can create:

category-logo.png
category-logo.avif
category-logo.webp

The old URL stays valid, but Apache can serve the optimized sidecar file when the browser supports it.

Recommended for direct module uploads:

Enable AVIF/WebP/JXL sidecar delivery for direct upload URLs: ON

Use direct filesystem format changes only after testing the affected module.


Safe settings for production

For most HumHub sites, use this setup:

Convert new uploads immediately: ON
New upload target format: WebP
Maximum width: 1920
Maximum height: 1080
Create internal backup before conversion: ON
Update HumHub file names to the new extension: ON
Enable sidecar delivery: ON
Enable JPEG XL conversion: OFF
Allow direct filesystem format changes: OFF

This is the safest setup for communities, schools, NGOs and normal users.


Advanced settings for AVIF

AVIF can produce excellent results.

Example:

HEIC 1.52 MB
→ AVIF 124 KB

Use AVIF when:

  • your server can encode AVIF reliably,

  • your browser/editor previews display it correctly,

  • your theme supports it,

  • your users mostly use modern browsers,

  • you have tested dashboard, wiki, comments, headers, logos and category images.

Recommended AVIF setup:

New upload target format: AVIF
AVIF quality: 50
Maximum width: 1920
Maximum height: 1080
Create backups: ON

Do not enable AVIF blindly on a live site with many users before testing.


JPEG XL / JXL warning

JPEG XL is interesting for future image compression and archival workflows, but it is not yet a safe default for HumHub browser display.

Recommended setting:

Enable JPEG XL conversion: OFF

Use JXL only for:

testing
archive compression
controlled admin workflows
server experiments

Do not use JXL for:

normal user uploads
dashboard posts
wiki images
logos
banners
category images
production browser display

Suggested warning text:

JPEG XL / JXL is experimental for browser delivery. It may be useful for testing or archival compression, but it is not recommended for production uploads, posts, banners, logos or ProseMirror content because many browsers and server setups still do not display or decode it reliably.


Example use cases

1. School community with many iPhone users

Parents upload photos from iPhones.

Problem:

HEIC files appear only as download links.

ABC Media solution:

HEIC → WebP
large photos resized
preview image created
post shows the image directly

Result:

less confusion
smaller files
better mobile experience

2. Phuket directory with many logos and category images

Admins upload PNG category logos.

Problem:

PNG logos stay large
direct paths can break if renamed

ABC Media solution:

keep original PNG URL
create AVIF/WebP sidecar
serve optimized version when supported

Result:

faster directory pages
safer module compatibility
no broken logo paths

3. NGO with limited hosting storage

A small NGO uses HumHub for community work.

Problem:

mobile uploads quickly fill server storage

ABC Media solution:

resize images to 1600×1600
convert to WebP
auto-exclude optimized files
run cron batches

Result:

lower storage use
faster pages
less manual admin work

4. Advanced site testing AVIF

A site owner wants maximum compression.

Problem:

JPEG/PNG are too large

ABC Media solution:

test AVIF on selected files first
enable AVIF upload target after testing
keep backups

Result:

very small images
good visual quality
safe rollback possible

Recommended admin workflow

For a new installation:

1. Enable immediate upload conversion.
2. Set upload target to WebP.
3. Set max size to 1920×1080.
4. Enable backups.
5. Upload one HEIC test image.
6. Check dashboard post display.
7. Check wiki/editor display.
8. Check Media Center entry.
9. Try one manual conversion.
10. Only then enable batch or cron conversion.

For large existing sites:

1. Download a backup.
2. Start with a small batch.
3. Test direct module images.
4. Enable sidecar delivery.
5. Keep direct filesystem format changes disabled unless tested.
6. Increase batch size only after visual confirmation.

Server requirements for HEIC, AVIF and JXL

ABC Media can manage the HumHub workflow, but it still needs the server to decode and encode the requested image formats.

For normal JPEG, PNG and WebP, most servers are fine.

For HEIC / HEIF / AVIF / JPEG XL, the server needs ImageMagick with the correct delegates.

Check your server:

magick -list format | grep -E "HEIC|HEIF|AVIF|JXL|WEBP"

You should see support for the formats you want to use.

If HEIC or JXL support is missing, ABC Media may show an error like:

This HEIC/HEIF/JPEG XL upload cannot be displayed by the browser and ABC Media could not decode it for conversion. Please enable ImageMagick with libheif/libjxl support, or upload WebP, JPEG or PNG.

On shared hosting, you may need to ask the hosting provider to enable ImageMagick with HEIC/HEIF/JXL support.


Example: ImageMagick with HEIC/JXL support on Ubuntu 24.04

This section is for server administrators.

On Ubuntu, the default ImageMagick package may not include all modern delegates needed for HEIC, AVIF and JPEG XL. If they are missing, ImageMagick must be compiled with the needed libraries.

Step 1: Check the current installation

which magick
which convert
magick --version
magick -list format | grep -E "HEIC|HEIF|AVIF|JXL|WEBP"

Step 2: Remove conflicting default packages if needed

Only do this if you understand your server setup.

sudo apt remove --purge imagemagick imagemagick-common
sudo apt autoremove

Step 3: Install build tools and image libraries

sudo apt update

sudo apt install build-essential git pkg-config libtool wget -y

sudo apt install libheif-dev libde265-dev x265 -y
sudo apt install libjxl-dev -y

sudo apt install libpng-dev libjpeg-dev libwebp-dev libtiff-dev libxml2-dev -y

Step 4: Download ImageMagick source

cd /usr/src
sudo mkdir -p imagemagick
cd imagemagick

sudo wget https://imagemagick.org/archive/ImageMagick.tar.gz
sudo tar -xf ImageMagick.tar.gz
cd ImageMagick-7*

Step 5: Configure with HEIC and JXL

sudo ./configure --with-heic=yes --with-jxl=yes

At the end of the configure output, check the delegate section.

You want to see HEIC and JXL enabled.

Step 6: Compile and install

sudo make -j$(nproc)
sudo make install
sudo ldconfig /usr/local/lib

Step 7: Verify

magick --version
magick -list format | grep -E "HEIC|HEIF|AVIF|JXL|WEBP"

If the delegates appear, restart your web server / PHP-FPM if needed.

Examples:

sudo systemctl restart apache2
sudo systemctl restart php8.3-fpm

Adjust the PHP-FPM service name to your server version.


Important note about core MIME mapping

For ProseMirror and HumHub file previews, HumHub must recognize modern image formats as images.

ABC Media can provide a runtime helper and optional patch command, but on some systems a HumHub core MIME mapping may still be needed for:

AVIF
JXL
HEIC
HEIF

The relevant HumHub file is usually:

protected/humhub/libs/MimeHelper.php

The needed image mappings are:

'avif' => self::ICON_IMAGE,
'jxl' => self::ICON_IMAGE,
'heic' => self::ICON_IMAGE,
'heif' => self::ICON_IMAGE,

ABC Media should avoid silently overwriting core files. If a core patch is needed, it should be done with a backup and clearly shown to the admin.


In simple words

ABC Media makes HumHub friendlier for real users.

Especially iPhone users.

They upload photos.

ABC Media makes them smaller, safer and visible.

No more mysterious HEIC filename links where an image should be.