mirror of
https://github.com/immich-app/immich.git
synced 2026-03-02 22:57:45 -05:00
Thumbnails are not created automatically, error when creating thumbnails manually #4943
Closed
opened 2026-02-20 03:12:18 -05:00 by deekerman
·
42 comments
No Branch/Tag specified
main
renovate/typescript-projects
release/next
renovate/github-actions
chore/translations
push-nwxlpmyzkyrl
push-wzwotsylzylq
push-zpwsovysllvn
push-zunuwtznrlpm
renovate/opentofu-1.x
renovate/node
push-rsywxvptwxuv
renovate/prom-prometheus
renovate/docker.io-valkey-valkey-9
push-suusrsrnmzrp
push-xyozownmuwqp
csp-policy
uhthomas/fix-mobile-video-state
uhthomas/fix-mobile-hero-height
feat/use-native-clients
uhthomas/chore-mobile-simplify-scroll
feat/mobile-edit-3-mobile-sync-handling
feat/panorama-tiles
refactor/zod-migration
fix/maintenance-reload
refactor/restores-file-interceptor
uhthomas/fix-mobile-inconsistent-asset-detials-background
postgres-socketio
claude/auto-screenshot-web-changes-Y7efI
visual-review/pr-26535
push-lvyturrtwkrq
feat/notification
feat/library-offline-stats
feat/checksum-algorithm-indicator
feat/library-offline-count
uhthomas/feat-mobile-search-results
fix/bring-back-globalkeys
fix/map-webgl-error
feat/mobile-ocr
feat/custom-date-range
fix/mobile-video-aspect-ratio
fix/ml-ocr-batch-size
fix/timeline-rtl
feat/integrity-checks-izzy
uhthomas/fix-mobile-search-results
renovate/flutter
uhthomas/feat-sort-smart-search
renovate/github-cqlabs-homebrew-dcm-1.x
feat/video-player
feat/mobile-editing
refactor/remove-replace-with-upload
uhthomas/chore-mobile-maplibre
uhthomas/mobile-fix-asset-details-album-pop
feat/crawl-wrapper
feat/open-in-browser
push-skvzqoozqkpl
feat/edit-filters
fix/locale-settings-desc
feat/pg-queue
refactor/asset-upload
renovate/connectivity_plus-7.x
better-project-structure
uhthomas/mobile-feat-asset-viewer-details
fix/ml-rocm-build
fix/25803
feat/asset-file-apis
midzelis/wip
feature/bottom-buttons-order
sqlite_thumbs
fix-keep-correct-ios-shared-album-asset
fix-memory-generation-and-display
push-vpxwmwwxwnvw
fix-migration-width-height
revert/prettier-translations
shared-deep-link-handler
feat/thumbnail-native-clients
feat/platform-clients
fix/foreground-cloud-sync
filter-by-person
feat/csp
refactor/sidebar
fix/disable-editing
fix/view-timeline-deeplink
image-zoom-on-slow-connection
fix/merged-edited-assets
open-api-fix
feat/create-job-with-dto
use-toast-primary
feat/vitest-4
feat/ios-fastlane-match
match-signing
fix-update-time-update-timeline
feat/modal-routes
feature/mobile-view-asset-owner
feat/system-settings
feature/show-activity-count
better-info-in-asset-viewer
fix/all-people-count
feat/location-favorites
feature/rearrange-buttons-2
fix/download-storage-template
feat/kb-shortcuts-mobile
fix/people-count
push-qolzzzzxrvvn
chore/originals-in-asset-files
feat/asset-size-columns
ben/tree-a11y
new-search-filter-ui
refactor/expectSelectedReadonly
refactor/mobile-grdb
push-qvuktpxmkknu
feat/mobile-native-local-sync
refactor/timeline_ops
fix/scrubber_end
feat/version.txt
feat/context-menus
feat/server-chunked-uploads
refactor/virtualsegment
refactor/rename_daymonth_groups
fix/restrict-android-bg-worker
feat/android-periodic-worker
fix-remote-sync-clean-up
refactor/timeline_move_ops
fix/timeline_split_selectable
feat/keyboard_actions_help_modal
feat/static_frontend
feat/notification-warnign-android
feat/plugins2
feat/plugins
test/create-workflow-token-action
fix/docs-force
debug/search-result-similarity
debug/cf-chunked-uploads
feat/eslint_rule
feat/search-filter-album/web
refactor/timeline_photostream
refactor/timelineasset_asset
feat/session-permissions
feat/timeline_photostream_assetnav
feat/timeline_minor_optimize
feat/timeline_perf_nocomp
feat/timeline_search_results_actions
feat/timeline_search_results_page
fix/timeline_padding
fix/timeline_search_reactivity_warnings
feat/timeline_scrollbar
feat/timeline_stream_withviewer
fix/timeline_back_forth_nav
refactor/timeline_photostream_component
fix/generated-files-checks
fix/locate-button-local
chore/base-image-mimalloc
refactor/timeline_assetlayout
refactor/timeline_selectable
refactor/timeline_aware_actions
refactor/timeline_monthsegment
feat/remove-old-pages
chore/deps-gradle
tmp_photostream
tmp/lcms
feat/mobile-dynamic-thumbnails
fix/mobile-finer-thumbnail-concurrency
refactor/timeline1
refactor/extract_photostream
refactor/rename_load_api
refactor/timeline2
refactor/timeline3
feat/multi-select-asset-viewer
feat-no-thumbhash-cache
refactor/asset_grid
feat/faster-access-checks
fix/18991
fix/19543
chore/temp-remove
fix/21419
feat/mobile-hdr-images
chore/update-mise-lockfile
feat/mise-server-checks
feat/mise-ci
feat/windows-2025
feat/dev_cli
refactor/mobile-migrate-clients
fix/map-theme
fix/require-checkbox
chore/use_swc
feat/efficient-thumbnail-decoding
refactor/mobile-thumbhash
refactor/mobile-thumbhash-new
feat/beta-background-upload
fix/beta-timeline-memories-setting
fix/failed-uploads-not-removed
feat/mobile-shared-album
feat/groups
drift-map-page
drift-auth-user-sync
fix/disable-memory
feat/add-to-album-action
edit-date-time-action
drift-people-page
sqlite-remove-isIn
chore/required-reviewers
refact/asset-manager
fix/folder-sort
pnpm
feat/widget-multiple-server-urls
chore/medium-tests-dbname
fix/web-no-iterator-find
fix/map-pan-interruption
track-livephotos
timeline_events
chore/oxlint-migration
feat/maintenance-worker
feat/dav
chore/demo-snapshot
refactor/server-side-dedupe
feat/integrity-checks
dev/recognition-eval
lighter_buckets_test
perf/postgres-queue
postgres-queue
focus_rings
refactor/web-stores-1
refactor/add-to-taken
feat/sort-places
vet
tmp/demo-snapshot-preview
fix/server-migration-file-extension
fix/asset-update-race-condition
rknn-toolkit-lite2
refactor/mobile-split-up-search-page
feature/Add-rocm-support-for-machine-learning
feat/rocm
chore/async-hash-file
feat/shared-link-view-count
feat/rotation
feat/graphql
feat/job-ids
feat/ignore-library-permission-error
feat/docker-compose-builder
feat/kysely-typeorm
mobile/onboarding
no-video-player
fix/server-qsv-output-format
chore/server-geodata-tweaks
mobile/native-video-player-no-hero
feat/xxhash
fix/docs-concurrency
feat/local-tileserver
refactor/exif-orientation
original-path-infix
refactor/mobile/login-form-1
feat/server-editor-endpoints
fix/server-qsv-vbr
fix-mobile-db-problems
feat/ml-armnn-conversion
feat/mobile/backup-with-album-info
feat/fast-initial-sync-1
chore/handle-output_dims
feat/unassign-faces
feat/shortcuts-on-asset-grid
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
fix/mobile-fetch-non-archive
web/automation-ui
feat/mobile-server-endpoint-save-dropdown
object-storage
feat/memories-animations
dev/metrics
ml/tflite
feat/ml-export-cli
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.1
v2.0.0
v1.144.1
v1.144.0
v1.143.1
v1.143.0
v1.142.1
v1.142.0
v1.141.1
v1.141.0
v1.140.1
v1.140.0
v1.139.4
v1.139.3
v1.139.2
v1.139.1
v1.139.0
v1.138.1
v1.138.0
v1.137.3
v1.137.2
v1.137.1
v1.137.0
v1.136.0
v1.135.3
v1.135.2
v1.135.1
v1.135.0
v1.134.0
v1.133.1
v1.133.0
v1.132.3
v1.132.2
v1.132.1
v1.132.0
v1.131.3
v1.131.2
v1.131.1
v1.131.0
v1.130.3
v1.130.2
v1.130.1
v1.130.0
v1.129.0
v1.128.0
v1.127.0
v1.126.1
v1.126.0
v1.125.7
v1.125.6
v1.125.5
v1.125.4
v1.125.3
v1.125.2
v1.125.1
v1.125.0
v1.124.2
v1.124.1
v1.124.0
v1.123.0
v1.122.3
v1.122.2
v1.122.1
v1.122.0
v1.121.0
v1.120.2
v1.120.1
v1.120.0
v1.119.1
v1.119.0
v1.118.2
v1.118.1
v1.118.0
v1.117.0
v1.116.2
v1.116.1
v1.116.0
v1.115.0
v1.114.0
v1.113.1
v1.113.0
v1.112.1
v1.112.0
v1.111.0
v1.110.0
v1.109.2
v1.109.1
v1.109.0
v1.108.0
v1.107.2
v1.107.1
v1.107.0
v1.106.4
v1.106.3
v1.106.2
v1.106.1
v1.106.0
v1.105.1
v1.105.0
v1.104.0
v1.103.1
v1.103.0
v1.102.3
v1.102.2
v1.102.1
v1.102.0
v1.101.0
v1.100.0
v1.99.0
v1.98.2
v1.98.1
v1.98.0
v1.97.0
v1.96.0
v1.95.1
v1.95.0
v1.94.1
v1.94.0
v1.93.3
v1.93.2
v1.93.1
v1.93.0
v1.92.1
v1.92.0
v1.91.4
v1.91.3
v1.91.2
v1.91.1
v1.91.0
v1.90.2
v1.90.1
v1.90.0
v1.89.0
v1.88.2
v1.88.1
v1.88.0
v1.87.0
v1.86.0
v1.85.0
v1.84.0
v1.83.0
v1.82.1
v1.82.0
v1.81.1
v1.81.0
v1.80.0
v1.79.1
v1.79.0
v1.78.1
v1.78.0
v1.77.0
v1.76.1
v1.76.0
v1.75.2
v1.75.1
v1.75.0
v1.74.0
v1.73.0
v1.72.2
v1.72.1
v1.72.0
v1.71.0
v1.70.0
v1.69.0
v1.68.0
v1.67.2
v1.67.1
v1.67.0
v1.66.1
v1.66.0
v1.65.0
v1.64.0
v1.63.2
v1.63.1
v1.63.0
v1.62.1
v1.62.0
v1.61.0
v1.60.0
v1.59.1
v1.59.0
v1.58.0
v1.57.1
v1.57.0
v1.56.2
v1.56.1
v1.56.0
v1.55.1
v1.55.0
v1.54.1
v1.54.0
v1.53.0
v1.52.1
v1.52.0
v1.51.2
v1.51.1
v1.51.0
v1.50.1
v1.50.0
v1.49.0
v1.48.1
v1.48.0
v1.47.3
v1.47.2
v1.47.1
v1.47.0
v1.46.1
v1.46.0
v1.45.0
v1.44.0
v1.43.1
v1.43.0
v1.42.0_65-dev
v1.41.1_64-dev
v1.41.0_64-dev
v1.40.1_63-dev
v1.40.0_63-dev
v1.39.0_61-dev
v1.38.2_60-dev
v1.38.1_60-dev
v1.38.0_60-dev
v1.37.0_58-dev
v1.36.2_56-dev
v1.36.1_55-dev
v1.36.0_55-dev
v1.35.0_54-dev
v1.34.0_53-dev
v1.33.1_52-dev
v1.33.0_52-dev
v1.32.1_51-dev
v1.32.0_50-dev
v1.31.1_49-dev
v1.31.0_49-dev
v1.30.2_48-dev
v1.30.0_46-dev
v1.29.6_45-dev
v1.29.6_44-dev
v1.29.5_44-dev
v1.29.4_44-dev
v1.29.3_43-dev
v1.29.2_43-dev
v1.29.1_43-dev
v1.29.0_42-dev
v1.28.4_41-dev
v1.28.4_42-dev
v1.28.3_41-dev
v1.28.2_40-dev
v1.28.1_39-dev
v1.28.0_38-dev
v1.27.0_37-dev
v1.26.0_36-dev
v1.25.0_35-dev
v1.24.0_34-dev
v1.23.0_33-dev
v1.22.0_32-dev
v1.21.1_31-dev
v1.21.0_31-dev
v1.20.3_30-dev
v1.20.2_30-dev
v1.20.1_30-dev
v1.20.0_30-dev
v1.19.1_29-dev
v1.19.0_29-dev
v1.18.0_27-dev
v1.17.0_25-dev
v1.16.0_23-dev
v1.15.1_21-dev
v1.15.0_21-dev
v1.14.0_21-dev
v1.13.0_20-dev
v1.12.0_18-dev
v1.11.0_17-dev
v1.10.0_15-dev
v1.9.1_14-dev
v1.9.0_13-dev
v1.8.0_12-dev
v1.7.0_11-dev
v1.6.0_10-dev
v1.5.1+9-dev
v1.5.0+8-dev
v1.4.0+7-dev
v1.4.0+6-dev
v1.4.0-dev
v1.3.0-dev
v1.3.1-dev
v0.6-dev
v0.5-dev
v0.4-dev
v0.3-dev
v0.2-dev
first-android-release
Labels
Clear labels
accessibility
changelog:enhancement
changelog:security
changelog:skip
changelog:translation
cli
date-time
dependencies
documentation
external-library
format
good first issue
mobile-beta
mobile-beta
mobile-beta
needs-answer
nice to have
sharing
tech-debt
📱mobile
🖥️web
🗄️server
🧠machine-learning
No labels
accessibility
changelog:enhancement
changelog:security
changelog:skip
changelog:translation
cli
date-time
dependencies
documentation
external-library
format
good first issue
mobile-beta
mobile-beta
mobile-beta
needs-answer
nice to have
sharing
tech-debt
📱mobile
🖥️web
🗄️server
🧠machine-learning
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
starred/immich#4943
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Kiirdnej on GitHub (Feb 17, 2025).
Originally assigned to: @mertalev on GitHub.
The bug
Since the upgrade to v.1.126.1 I have the problem that no preview is automatically generated for uploaded media.

The file is uploaded and displayed in Immich without a preview (Pic 1).
If you try to open the image, it fails (Pic 2).

The “Generate Thumbnail” job is set to zero for Active and zero for Waiting (Pic 3).

If I start the job manually by clicking on “Missing”, an image is first loaded in “Waiting” and then in “Active” (Pic 4).

The error can then be observed in the log.

After running the job manually, the preview images are available in the Immich interface.
The thumbnails are now available and you can open the image (Pic 5)
I have already tested a rollback to v.1.125.7 and purged the old images, unfortunately no difference.
Many thanks in advance
The OS that Immich Server is running on
Debian 12
Version of Immich Server
v1.126.1
Version of Immich Mobile App
v1.126.1 build.184
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Relevant log output
Additional information
No response
@alextran1502 commented on GitHub (Feb 17, 2025):
Hello, do you mind running the stock docker-compose file and see if it help?
@Kiirdnej commented on GitHub (Feb 17, 2025):
Hello, I have just tested with the standard compose file. Unfortunately no difference. Apparently a part of this conversion tool for these thumbnails seems to work and then crashes at a certain point, so that the whole microservice crashes. After I have run the job once manually (where thumbnails are partly generated), I cannot run it again manually until I restart the containers. If I click on "Missing" again, the Waiting counter simply counts up.

This part seems to be new in the log, I don't know if it is relevant:
[Nest] 7 - 02/17/2025, 8:31:49 PM WARN [Microservices:JobRepository] Skipping unknown job: "undefined" [Nest] 7 - 02/17/2025, 8:31:49 PM ERROR [Microservices:JobService] Unable to run job handler (backgroundTask/undefined): TypeError: Cannot read properties of undefined (reading 'replaceAll') [Nest] 7 - 02/17/2025, 8:31:49 PM ERROR [Microservices:JobService] TypeError: Cannot read properties of undefined (reading 'replaceAll') at JobService.onJobStart (/usr/src/app/dist/services/job.service.js:149:55) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async EventRepository.onEvent (/usr/src/app/dist/repositories/event.repository.js:130:13) at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:394:28) at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24) [Nest] 7 - 02/17/2025, 8:31:49 PM ERROR [Microservices:JobService] Object(0) {} Error: Missing lock for job 1. failed at Scripts.finishedErrors (/usr/src/app/node_modules/bullmq/dist/cjs/classes/scripts.js:272:24) at Job.moveToFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/job.js:427:32) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async handleFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:379:21) at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24)@Tyris commented on GitHub (Feb 19, 2025):
I'm seeing similar issues, including the
skipping unknown job: "undefined"failure in the logs.@tenekev commented on GitHub (Feb 21, 2025):
I'm seeing the same thing. Only with Fujifilm RAF files.
@streambinder commented on GitHub (Feb 24, 2025):
Happening here as well:
This the comparison between three not working files + a similar one for which the thumbnail has been successfully generated:
@sarbian commented on GitHub (Mar 15, 2025):
I have the same issue. I even created a new installation with the latest compose file. After uploading some of my media I get the "Skipping unknown job: "undefined"" errors, the thumbails stop being generated and jobs do not do anything.
Here is my full docker config and the generated log from a clean install
Immich.zip
@NightHawk0999 commented on GitHub (Mar 18, 2025):
I am seeing similar issues.
@rparree commented on GitHub (Mar 30, 2025):
I have the same problem. What is the temporary solution you guys are using. Without some kind of solution Immich renders itself unusable.
@Tyris commented on GitHub (Mar 30, 2025):
@rparree, rebooting my server seemed to work for me (and possibly re-starting the job via settings?)
For me, it only happened when I uploaded some files via the web interface. Not sure if that's where the bug is or whether that's just a coincidence, but I haven't uploaded anything via the web interface since (since rebooting) and haven't had it happen again (99% of my photos are uploaded via my phone).
@Michael7711 commented on GitHub (Mar 30, 2025):
same here, but restart doesn't help
@paszczaq commented on GitHub (Mar 31, 2025):
Same here, some mp4 files doesnt create thumbnails and throw errors in log. I can't see when this happend becouse i've added some family members recently.
The file is properly uploaded to library and is playable via web and mobile but doens't create thumbnail.
@KleenaWildaHase commented on GitHub (Apr 1, 2025):
I have the same error and ChatGPT gave me this solution:
📝 Issue: ffmpeg exits with code 234 during thumbnail generation of certain iPhone/WhatsApp videos
Description:
When uploading a video recorded with an iPhone and sent via WhatsApp (e.g. VID-20250330-WA0005.mp4), Immich fails to generate thumbnails. The error in the logs is:
ERROR [Microservices] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!
Manually running ffmpeg with -v debug reveals the cause:
[graph 0 input from stream 0:0] Invalid color range
[vf@...] Error reinitializing filters!
Conversion failed!
This happens because the video uses an unusual or reserved color range (yuv420p(tv, reserved, ...)) that ffmpeg cannot process by default.
Root Cause:
ffmpeg fails when the video metadata contains a reserved color range instead of a valid value like tv (limited) or pc (full). This is common with videos recorded on iPhones and processed by WhatsApp.
Suggested Workarounds / Fixes:
✅ Short-term fix: Modify the ffmpeg command in the thumbnail generation service to explicitly set a valid color range:
ffmpeg -color_range 1 -i input.mp4 -frames:v 1 thumb.jpg
Or use a video filter:
-vf scale=in_range=tv:out_range=tv
✅ Alternative: Catch ffmpeg errors with exit code 234 and retry with adjusted parameters.
✅ Optional pre-processing: Re-encode problematic videos before uploading:
ffmpeg -color_range 1 -i input.mp4 -c:v libx264 -crf 23 -c:a copy fixed.mp4
My manual try:
root@immich-server:/usr/src/app# ffmpeg -v debug -i upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4 -frames:v 1 thumb.jpg
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input url with argument 'upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'.
Reading option 'thumb.jpg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4.
Successfully parsed a group of options.
Opening an input file: upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4.
[AVFormatContext @ 0x5a86431f6740] Opening 'upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4' for reading
[file @ 0x5a86431f6d00] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] Unknown dref type 0x206c7275 size 12
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 29.916667 0.006403
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 30.000000 0.000002
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 30.000000 0.019903
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 60.000000 0.000006
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 120.000000 0.000025
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 240.000000 0.000098
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 29.970030 0.000870
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] rfps: 59.940060 0.003479
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] Before avformat_find_stream_info() pos: 3618 bytes read:32768 seeks:0 nb_streams:2
[h264 @ 0x5a86431f7540] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5a86431f7540] Decoding VUI
[h264 @ 0x5a86431f7540] nal_unit_type: 8(PPS), nal_ref_idc: 3
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 120, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 60, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft4_fwd_asm_float_sse2 - type: fft_float, len: 4, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 128, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 64, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 480, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 240, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft16_asm_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 512, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 256, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 960, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 480, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_fwd_float_c - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only]
fft_sr_ns_float_avx2 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
[h264 @ 0x5a86431f7540] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5a86431f7540] Decoding VUI
[h264 @ 0x5a86431f7540] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x5a86431f7540] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x5a86431f7540] Format yuv420p chosen by get_format().
[h264 @ 0x5a86431f7540] Reinit context to 480x864, pix_fmt: yuv420p
[h264 @ 0x5a86431f7540] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
Last message repeated 5 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6740] After avformat_find_stream_info() pos: 120953 bytes read:131072 seeks:0 frames:15
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
Duration: 00:00:06.95, start: 0.000000, bitrate: 1789 kb/s
Stream #0:00x1, 14, 1/30000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 474x850, 0/1, 1536 kb/s, 29.76 fps, 30 tbr, 30k tbn (default)
Metadata:
vendor_id : [0][0][0][0]
Stream #0:10x2, 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
Metadata:
vendor_id : [0][0][0][0]
Successfully opened the file.
Parsing a group of options: output url thumb.jpg.
Applying option frames:v (set the number of frames to output) with argument 1.
Successfully parsed a group of options.
Opening an output file: thumb.jpg.
[out#0/image2 @ 0x5a8643377f40] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x5a864323bf80] Created video stream from input stream 0:0
detected 8 logical cores
[h264 @ 0x5a864323a340] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5a864323a340] Decoding VUI
[h264 @ 0x5a864323a340] nal_unit_type: 8(PPS), nal_ref_idc: 3
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x5a864323bf80] Starting thread...
[vf#0:0 @ 0x5a86431fdec0] Starting thread...
[vist#0:0/h264 @ 0x5a86431feb00] [dec:h264 @ 0x5a8643236240] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x5a864323a340] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x5a864323a340] Format yuv420p chosen by get_format().
[h264 @ 0x5a864323a340] Reinit context to 480x864, pix_fmt: yuv420p
[h264 @ 0x5a8643246900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a86432e7c40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a864326fd40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a86432f0e40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a8643254040] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a8643265b40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a8643314f80] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5a864329d640] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'video_size' to value '474x850'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'time_base' to value '1/30000'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'colorspace' to value '3'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'range' to value '1'
[graph 0 input from stream 0:0 @ 0x7611bc002800] Setting 'frame_rate' to value '30/1'
[graph 0 input from stream 0:0 @ 0x7611bc002800] w:474 h:850 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv
[format @ 0x7611bc003240] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p'
[h264 @ 0x5a864323a340] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[graph 0 input from stream 0:0 @ 0x7611bc002800] Invalid color range
[vf#0:0 @ 0x5a86431fdec0] Error reinitializing filters!
[vf#0:0 @ 0x5a86431fdec0] Task finished with error code: -22 (Invalid argument)
[out#0/image2 @ 0x5a8643377f40] sq: 0 EOF
[out#0/image2 @ 0x5a8643377f40] sq: finish 0; head ts NOPTS
[out#0/image2 @ 0x5a8643377f40] sq: finish queue
[vf#0:0 @ 0x5a86431fdec0] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x5a864323bf80] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x5a864323bf80] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x5a864323bf80] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x5a864323bf80] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x5a86431feb00] [dec:h264 @ 0x5a8643236240] Decoder returned EOF, finishing
[h264 @ 0x5a8643246900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[vist#0:0/h264 @ 0x5a86431feb00] [dec:h264 @ 0x5a8643236240] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x5a86431feb00] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x5a8643377f40] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] Input file #0 (upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] Input stream #0:0 (video): 20 packets read (152994 bytes); 3 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5a86431f6480] Total: 20 packets (152994 bytes) demuxed
[AVIOContext @ 0x5a86431fee80] Statistics: 196608 bytes read, 0 seeks
Conversion failed!
Maybe that can help.
@danieldietzler commented on GitHub (Apr 3, 2025):
@KleenaWildaHase please don't post LLM spam.
@danieldietzler commented on GitHub (Apr 3, 2025):
If anyone could provide an original file (zipped) up that causes this to fail that'd be helpful!
@Tyris commented on GitHub (Apr 3, 2025):
That said, the ChatGPT response did actually produce the same investigatory result (with the exception of the iPhone/Whatsapp bit, which is definitaly worth looking int) as I did when I looked into the @paszczaq's crash log a few days ago suggesting it's probably somewhat accurate (for once).
Also, I don't think the video issue is the same issue as what others in this thread are seeing (though same outcome) which appears to pretty directly be an ffpmeg issue. Might be worth splitting video issue out to a new thread.
@KleenaWildaHase commented on GitHub (Apr 5, 2025):
My post was'nt spam. The first part part is the suggestion from ChatGPT, the second the output of the CLI from the docker container to prove, were the failure may be comes from. Please have a look on it.
Input CLI portainer:
root@immich-server:/usr/src/app# ffmpeg -v debug -i upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4 -frames:v 1 thumb.jpg
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
Output (second part of my post):
[h264 @ 0x5a864323a340] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[graph 0 input from stream 0:0 @ 0x7611bc002800] Invalid color range
[vf#0:0 @ 0x5a86431fdec0] Error reinitializing filters!
[vf#0:0 @ 0x5a86431fdec0] Task finished with error code: -22 (Invalid argument)
@alextran1502 commented on GitHub (Apr 5, 2025):
@KleenaWildaHase Can you confirm if this video is valid and if you can share it?
@KleenaWildaHase commented on GitHub (Apr 6, 2025):
Yes, the video is valid. I've attached another video with the same issue. I received it over WhatsApp from an Iphone.
VID-20250406-WA0003.zip
CLI: ffmpeg -v debug -i upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4 -frames:v 1 thumb.jpg
Output:
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input url with argument 'upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'.
Reading option 'thumb.jpg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4.
Successfully parsed a group of options.
Opening an input file: upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4.
[AVFormatContext @ 0x5b2e5220b740] Opening 'upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4' for reading
[file @ 0x5b2e5220bd00] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] Unknown dref type 0x206c7275 size 12
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 29.916667 0.006359
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 30.000000 0.000002
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 60.000000 0.000007
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 120.000000 0.000027
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 240.000000 0.000110
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 29.970030 0.000866
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] rfps: 59.940060 0.003465
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] Before avformat_find_stream_info() pos: 4909 bytes read:32768 seeks:0 nb_streams:2
[h264 @ 0x5b2e5220c540] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5b2e5220c540] Decoding VUI
[h264 @ 0x5b2e5220c540] nal_unit_type: 8(PPS), nal_ref_idc: 3
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 120, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 60, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft4_fwd_asm_float_sse2 - type: fft_float, len: 4, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 128, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 64, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 480, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 240, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft16_asm_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 512, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 256, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 960, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 480, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_avx2 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_fwd_float_c - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only]
fft_sr_ns_float_avx2 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
[h264 @ 0x5b2e5220c540] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5b2e5220c540] Decoding VUI
[h264 @ 0x5b2e5220c540] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x5b2e5220c540] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x5b2e5220c540] Format yuv420p chosen by get_format().
[h264 @ 0x5b2e5220c540] Reinit context to 480x864, pix_fmt: yuv420p
[h264 @ 0x5b2e5220c540] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
Last message repeated 5 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b740] After avformat_find_stream_info() pos: 91871 bytes read:98304 seeks:0 frames:14
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
Duration: 00:00:10.57, start: 0.000000, bitrate: 1801 kb/s
Stream #0:00x1, 13, 1/30000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 0/1, 1544 kb/s, 30 fps, 30 tbr, 30k tbn (default)
Metadata:
vendor_id : [0][0][0][0]
Stream #0:10x2, 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
Metadata:
vendor_id : [0][0][0][0]
Successfully opened the file.
Parsing a group of options: output url thumb.jpg.
Applying option frames:v (set the number of frames to output) with argument 1.
Successfully parsed a group of options.
Opening an output file: thumb.jpg.
[out#0/image2 @ 0x5b2e5220d840] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x5b2e52252740] Created video stream from input stream 0:0
detected 8 logical cores
[h264 @ 0x5b2e52262b40] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x5b2e52262b40] Decoding VUI
[h264 @ 0x5b2e52262b40] nal_unit_type: 8(PPS), nal_ref_idc: 3
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x5b2e52252740] Starting thread...
[vf#0:0 @ 0x5b2e5238c980] Starting thread...
[vist#0:0/h264 @ 0x5b2e52213a00] [dec:h264 @ 0x5b2e5224ca00] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x5b2e52262b40] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x5b2e52262b40] Format yuv420p chosen by get_format().
[h264 @ 0x5b2e52262b40] Reinit context to 480x864, pix_fmt: yuv420p
[h264 @ 0x5b2e5225cd80] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e522fa700] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e52282a40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e52303a00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e52266d00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e52278800] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e52326c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[h264 @ 0x5b2e522b0240] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'video_size' to value '478x850'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'time_base' to value '1/30000'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'colorspace' to value '3'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'range' to value '1'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Setting 'frame_rate' to value '30/1'
[graph 0 input from stream 0:0 @ 0x7382bc002800] w:478 h:850 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv
[format @ 0x7382bc003240] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p'
[graph 0 input from stream 0:0 @ 0x7382bc002800] Invalid color range
[h264 @ 0x5b2e52262b40] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[vf#0:0 @ 0x5b2e5238c980] Error reinitializing filters!
[vf#0:0 @ 0x5b2e5238c980] Task finished with error code: -22 (Invalid argument)
[out#0/image2 @ 0x5b2e5220d840] sq: 0 EOF
[out#0/image2 @ 0x5b2e5220d840] sq: finish 0; head ts NOPTS
[out#0/image2 @ 0x5b2e5220d840] sq: finish queue
[vf#0:0 @ 0x5b2e5238c980] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x5b2e52252740] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x5b2e52252740] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x5b2e52252740] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x5b2e52252740] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x5b2e52213a00] [dec:h264 @ 0x5b2e5224ca00] Decoder returned EOF, finishing
[h264 @ 0x5b2e5225cd80] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
[vist#0:0/h264 @ 0x5b2e52213a00] [dec:h264 @ 0x5b2e5224ca00] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x5b2e52213a00] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x5b2e5220d840] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] Input file #0 (upload/library/Steffen/2025/04/06/VID-20250406-WA0003.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] Input stream #0:0 (video): 20 packets read (130288 bytes); 3 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x5b2e5220b480] Total: 20 packets (130288 bytes) demuxed
[AVIOContext @ 0x5b2e52213e80] Statistics: 163840 bytes read, 0 seeks
Conversion failed!
@paszczaq commented on GitHub (Apr 6, 2025):
I think that may be the clue - at least one of the on my video's with thumbnail issue was received through Whatsapp
@muzhaqi16 commented on GitHub (Apr 16, 2025):
I am having the same issue with a whatsapp video file, the file does exist.
@juxeii commented on GitHub (Jun 10, 2025):
Same error here for some file.
Image
v1.134.0@Blackspo0n commented on GitHub (Jun 15, 2025):
I have the same issue with the latest release '1.134.0':
@juxeii commented on GitHub (Jul 3, 2025):
The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :(
@paszczaq commented on GitHub (Jul 3, 2025):
Can you confirm that it only affects videos that has been sent via WhatsApp?
@juxeii commented on GitHub (Jul 3, 2025):
At first glance, yes. The video itself is fine, you can see it running when hovering over the "Error loading image".
@netrolite commented on GitHub (Jul 14, 2025):
For me the same error occurs on the latest current release 1.135.3 for certain round video messages saved from Telegram. Worth noting all of them were recorded around the same time (September of 2023) and always come from the same 2 users (both using the Android Telegram client). Here's the docker log:
@HansAndreManfredson commented on GitHub (Jul 18, 2025):
Having the same issue since upgrading to 1.135.3
@HansAndreManfredson commented on GitHub (Jul 21, 2025):
Any ideas how to solve that problem?
@ngvh2605 commented on GitHub (Jul 30, 2025):
I'm having the same issue with the newest version v1.136.0
@AdrienLy commented on GitHub (Aug 8, 2025):
Hello,
I have the same issue with version [v1.137.3]. And it appears on every video regardless of their origin.
@drdeimos commented on GitHub (Aug 14, 2025):
https://trac.ffmpeg.org/ticket/11020 it can be bug of ffmpeg :\
Got this from here
@foux commented on GitHub (Aug 24, 2025):
I have the same issue, even on latest (1.139.2) version
@skatsubo commented on GitHub (Aug 28, 2025):
So as posted above
Since v7.0 ffmpeg became more strict regarding track metadata/parameters, including the "reserved" color space that appears in v7.1 errors ("color range" reported in v7.0 errors):
Reproducible with basic ffmpeg thumbnail extraction against affected video files:
Full ffmpeg line called by Immich looks like this (see media.ts for details). If anyone would like to tinker with it and can suggest any fallback/workaround to handle reserved color space.
Apart from that, not much can be done on Immich side. Either source video files / camera software / messengers should be fixed to not use reserved color space to comply with standards. Or ffmpeg should get an option to bypass incorrect values (unlikely?)
@StarGest commented on GitHub (Aug 28, 2025):
I encountered a similar issue (Immich v1.139.3).
As I discovered, it occurs with the Jellyfin-ffmpeg version 7.1.1-x used in Immich.
I tried running the command to generate a preview image with Jellyfin-ffmpeg version 7.0.2-x, and the problem did not occur in this case.
It might be worth considering downgrading the Jellyfin-ffmpeg version in Immich.
Update: I have found that in ffmpeg version 8.0, this issue does not occur. As a solution, you can either downgrade to Jellyfin-ffmpeg version 7.0.2-x or update to ffmpeg version 8.0 to resolve the problem.
The command ended with an error: Jellyfin-ffmpeg: 7.1.1-1 - 7.1.1-7
The command completed successfully: Jellyfin-ffmpeg: 7.0.2-9
@skatsubo commented on GitHub (Aug 31, 2025):
Thank you @StarGest for testing 7.0 and 8.0, that sounds promising!
I've tested 7.0 successfully on my video sample.
To all: you can install jellyfin-ffmpeg 7.0.2 in Immich container using the following command.
docker exec -i immich_server sh -c 'VER="7.0.2-9" ; ARCH="$(dpkg --print-architecture)" ; URL="https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${VER}/jellyfin-ffmpeg7_${VER}-bookworm_${ARCH}.deb" ; curl -Lo /tmp/ffmpeg.deb "$URL" && dpkg -i /tmp/ffmpeg.deb && echo && ffmpeg 2>&1 | head -n2'Then trigger the thumbnail generation job and see if it helps.
@drdeimos commented on GitHub (Sep 1, 2025):
https://github.com/immich-app/immich/issues/16154#issuecomment-3240452406 - it's work for my case. Thx.
check it on this video:
@1RedGamer commented on GitHub (Sep 5, 2025):
I have the same problem:
Description
After updating Immich to the latest version, everything works except for video thumbnails.
Environment
Steps to reproduce
Record a new video on phone (tested with Honor Magic 6 Pro and Magic 7 Pro).
Upload the video to Immich.
Observe:
Notes:
Relevant logs
Conversion failed!
ERROR [AssetGenerateThumbnails]: Error: ffmpeg exited with code 234: Conversion failed!
[graph -1 input from stream 0:1 @ ...] Invalid color space
[vf#0:0 @ ...] Error reinitializing filters!
Nothing was written into output file
Investigation so far
The OS that Immich Server is running on
Ubuntu 22.04
Version of Immich Server
v1.140.1
Version of Immich Mobile App
v1.140.1 (build 3011)
Platform with the issue
Device make and model
Honor Magic 6/7 Pro
The solution gived by @skatsubo worked for me, now the thumbnails generate for the video
@skatsubo commented on GitHub (Sep 6, 2025):
I wrote a summary of this thread and several similar requests on Github and Discord.
Issue description
Video thumbnail generation fails for some files. Transcoding/playback is fine.
Symptoms: there are no thumbnails/previews in UI ("Error loading image" instead), but videos play when hovering over. Apparently, thumbnail generation is stricter than transcoding/playback when handling not well-formed videos.
Two most common error messages in logs, from ffmpeg:
Invalid color spaceorInvalid color rangeCannot allocate memory(misleading)1. Error "Invalid color space"
More strict color space check happened in ffmpeg 7.1 (inadvertently, after fixing another bug). Previously, not fully compliant videos with "reserved" color space were processed, now they fail the check.
Affected videos: from Android, from messengers.
Workaround: downgrade to ffmpeg 7.0.
Fix: TBD. Upgrade to 8.0 when it becomes available in jellyfin-ffmpeg.
Log fragments:
2. Error "Cannot allocate memory"
For thumbnail generation Immich instructs ffmpeg to extract only I-frames. When a video has no I-frames at all (not compliant with H.264), ffmpeg fails with a misleading "Cannot allocate memory" error.
Affected videos: live photos / motion photos. These videos are short, so there is higher chance that when they are cut/created by phone software, there will be no I-frames left inside.
Workaround: remove the "only I-frame" ffmpeg option
-skip_frame nointra.Fix: TBD. Kind of process all frames during thumbnail generation when no I-frames available (a bit slower).
Log fragments:
Related issues
https://github.com/immich-app/immich/issues/16154 Thumbnails are not created automatically, error when creating thumbnails manually
https://github.com/immich-app/immich/discussions/15133#discussioncomment-13476591 Problems Generating Thumbnails - ffmpeg exited with code 244
https://github.com/immich-app/immich/issues/13915 Thumbnail not generating on few videos .MTS (not all)
Workarounds / monkey patches
Invalid color space: downgrade ffmpeg to v7.0.
Cannot allocate memory: relax thumbnail generation to process all frames, not only I-frames.
UPD. Samples
samples-no-i-frame.zip
Cannot allocate memory, errors -12 / 244 due to missing I-frames:
E2EFC5AC-2A50-4C66-B211-22C81875916F.MOVreal meme video from Discord: videos don't playback at all, trancoding issuesno_i_frame.mov- a synthetic generated video, I-frames removed@jrasm91 commented on GitHub (Sep 11, 2025):
Transcoding or thumbnail generation can fail for a lot of different reasons, with similar symptoms (no thumbnails). The original, reported error was due to this:
The bug would cause the job to actually fail, which isn't supposed to happen even if the media fails to generate. This issue has been resolved, and there are still other outstanding issues with FFmpeg not working in some situations, but we can track those separately.
@simon100500 commented on GitHub (Sep 20, 2025):
The command suggested above doesn't work. Will this bug be fixed in future versions of immich? The program is currently unusable.
@skatsubo commented on GitHub (Sep 20, 2025):
@simon100500
There is an upstream bug in ffmpeg. The fix will be included in Immich when available upstream. Basically, we are waiting for jellyfin-ffmpeg 8.0.
Updated my comment above with a new command for Immich v1.142+ (Immich switched from Debian 12 Bookworm to Debian 13 Trixie, therefore old command is not working on new versions).
As this issue is closed, feel free to start a new Q&A discussion https://github.com/immich-app/immich/discussions/categories/q-a or ask on Immich Discord.
@simon100500 commented on GitHub (Sep 21, 2025):
Works fine! Thanks!