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)
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
_orgsiblings 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.