Repository navigation
Bundled ffmpeg 7.1.4 fails on MP4/MOV with a version-1 chnl box (Apple lpcm clips): no metadata or thumbnail #32814
Description
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
- Yes
The bug
Some Apple-made clips with lpcm audio (in our case, iPhone live-wallpaper / Live Photo motion files) carry an ISO-BMFF chnl channel-layout box with version 1. ffmpeg 7.1 treats it as fatal, so metadata extraction fails (ffprobe exited with code 1). The asset ends up with no asset_video row, no duration and no thumbnail. I had 7 in my libary.
FFmpeg fixed this upstream on 2026-05-28:
95fe0658d7"avformat/mov: don't abort on unsupported or invalid chnl boxes"cd92ef77c9"avformat/mov: add support for version 1 of chnl box"
jellyfin-ffmpeg has shipped 8.1.x, but immich-app/base-images server/packages/ffmpeg.json still pins 7.1.4-3.
Expected: update the bundled ffmpeg to jellyfin-ffmpeg 8.1.x, or backport the two commits.
Workaround: remux losslessly with ffmpeg ≥ 8 (-map 0:v -map 0:a -c copy -map_metadata 0, to .mov) and re-upload.
The OS that Immich Server is running on
Unraid 7.3.4 (Linux 6.18.58), Docker
Version of Immich Server
v3.3.5
Version of Immich Mobile App
n/a
Platform with the issue
- Server
- Web
- Mobile
Device make and model
No response
Your docker-compose.yml content
# Stock release docker-compose.yml (unchanged), plus this docker-compose.override.yml:
services:
database:
command: ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf", "-c", "shared_preload_libraries=vchord.so"]
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-rocm
devices:
- /dev/kfd
- /dev/dri
mem_limit: 12g # was 10g during the incidents
immich-server:
devices:
- /dev/dri:/dev/dri # VAAPI on the RX 9070 (renderD129)
volumes:
- /mnt/cache/appdata/immich-thumbs:/data/thumbsYour .env content
UPLOAD_LOCATION=/mnt/user/Docs/Pics/immich
DB_DATA_LOCATION=/mnt/cache/appdata/postgresql/data
IMMICH_VERSION=release
DB_PASSWORD=xyz
DB_USERNAME=postgres
DB_DATABASE_NAME=immichReproduction steps
Synthetic file, no user data needed:
1. Make a normal MP4 with PCM audio (ffmpeg writes an ipcm entry with a version-0 chnl box):
ffmpeg -f lavfi -i testsrc=d=1:s=160x120:r=10 -f lavfi -i sine=d=1 \
-c:v libx264 -pix_fmt yuv420p -c:a pcm_s16le -ac 2 chnl-v0.mp4
2. Flip the chnl version byte to 1:
python3 -c "b=bytearray(open('chnl-v0.mp4','rb').read()); i=b.find(b'chnl'); b[i+4]=1; open('chnl-v1.mp4','wb').write(b)"
3. Probe it with the ffprobe bundled in immich-server:
docker cp chnl-v1.mp4 immich_server:/tmp/ && docker exec immich_server ffprobe -v error /tmp/chnl-v1.mp4
-> fails (output below). The same file opens with FFmpeg n8.1.3. chnl-v0.mp4 opens with both.
4. Upload chnl-v1.mp4 to Immich -> AssetExtractMetadata fails with "ffprobe exited with code 1"; no thumbnail.
Upload chnl-v0.mp4 -> processes normally.
Relevant log output
$ docker exec immich_server ffprobe -v error /tmp/chnl-v1.mp4 # ffprobe 7.1.4-Jellyfin
[mov,mp4,m4a,3gp,3g2,mj2] Unsupported 'chnl' box with version 1, flags: 0
error reading header
/tmp/chnl-v1.mp4: Invalid data found when processing input
server log on upload: AssetExtractMetadata ... ffprobe exited with code 1Additional information
Real-world sample: an Apple lpcm clip whose stsd/lpcm/chnl box is 16 bytes, version 1, payload 11020200. I can attach it.
Checked with ffprobe 7.1.4-Jellyfin (fails) and FFmpeg n8.1.3 (BtbN build, opens). I didn test directly against the jellyfin-ffmpeg 8.1.3 build
(Disclaimer: Report written with Claude's help to identify and reproduce exact failure I experienced)
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTo triage
Activity