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
Owner

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

If you try to open the image, it fails (Pic 2).
Image

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

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

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)
Image

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

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - stack.env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
    networks:
      internal_bridge:
        ipv4_address: 192.168.70.3
      external_bridge:
        ipv4_address: 192.168.69.4

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - stack.env
    restart: always
    healthcheck:
      disable: false
    networks:
      internal_bridge:
        ipv4_address: 192.168.70.4

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    networks:
      internal_bridge:
        ipv4_address: 192.168.70.5

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: >-
        pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
        Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align
        --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')";
        echo "checksum failure count is $$Chksum";
        [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: >-
      postgres
      -c shared_preload_libraries=vectors.so
      -c 'search_path="$$user", public, vectors'
      -c logging_collector=on
      -c max_wal_size=2GB
      -c shared_buffers=512MB
      -c wal_compression=on
    restart: always
    networks:
      internal_bridge:
        ipv4_address: 192.168.70.6

  power-tools:
    container_name: immich_power_tools
    image: ghcr.io/varun-raj/immich-power-tools:latest
    ports:
      - "8001:3000"
    env_file:
      - stack.env
    networks:
      internal_bridge:
        ipv4_address: 192.168.70.8

volumes:
  model-cache:

networks:
  internal_bridge:
    external: true
  external_bridge:
    external: true

Your .env content

UPLOAD_LOCATION=/docker/immich/data/upload
DB_DATA_LOCATION=/docker/immich/db
IMMICH_VERSION=release
DB_PASSWORD=xxxxxx
DB_USERNAME=xxxxxx
DB_DATABASE_NAME=immich
IMMICH_API_KEY=xxxxxx
IMMICH_URL="http://192.168.70.3:2283" # Your immich instace ip address and port
EXTERNAL_IMMICH_URL="https://immich.domain.tld" # External address of immich
GOOGLE_MAPS_API_KEY=xxxxxx
GEMINI_API_KEY=xxxxxx
DB_HOST=192.168.70.6
DB_PORT=5432

Reproduction steps

  1. Upload image or video
  2. Seeing not thumbnail is generated
  3. Manually triggering the thumbnail Job
  4. Error get displayed in Docker Logs
  5. Uploaded image or video now have a thumbnail

Relevant log output

[Nest] 18  - 02/17/2025, 10:09:57 AM     LOG [Api:EventRepository] Websocket Connect:    UM2qevO0S0rvwRA5AAAf
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:MediaRepository] 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
[h264 @ 0x3a6ac1e0580] Reinit context to 720x1280, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/3c/78/3c78d158-0688-4706-b874-388605edf5ac.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2018-10-01T12:36:29.000000Z
  Duration: 00:00:00.65, start: 0.000000, bitrate: 2078 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 2096 kb/s, 30 fps, 30 tbr, 90k tbn (default)
      Metadata:
        creation_time   : 2018-10-08T17:56:09.000000Z
        handler_name    : ISO Media file produced by Google Inc. Created on: 10/08/2018.
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
      Metadata:
        creation_time   : 2018-10-08T17:56:09.000000Z
        handler_name    : ISO Media file produced by Google Inc. Created on: 10/08/2018.
        vendor_id       : [0][0][0][0]
[out#0/webp @ 0x3a6ac1a2640] No explicit maps, mapping streams automatically...
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x3a6ac1a3000] batch size: 12 frames
[Parsed_scale_5 @ 0x3a6ac110d80] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
[Parsed_fps_0 @ 0x3a6ac1a2e80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> webp (libwebp_anim))
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Starting thread...
[vf#0:0 @ 0x3a6ac098880] Starting thread...
[vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x3a6ac1e0580] Reinit context to 720x1280, pix_fmt: yuv420p
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] EOF while reading input
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Decoder thread received EOF packet
[vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Decoder returned EOF, finishing
[Parsed_thumbnail_1 @ 0x3a6ae0506c0] batch size: 12 frames
[Parsed_scale_5 @ 0x3a6ae0509c0] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
[graph 0 input from stream 0:0 @ 0x3a6ae050a80] w:720 h:1280 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:1/1 csp:bt709 range:tv
[Parsed_fps_0 @ 0x3a6ae050540] fps=12/1
[Parsed_scale_5 @ 0x3a6ae0509c0] w:720 h:1280 fmt:yuv420p csp:bt709 range:tv sar:1/1 -> w:250 h:444 fmt:yuv420p csp:bt709 range:pc sar:999/1000 flags:0x00042200
[graph 0 input from stream 0:0 @ 0x3a6ae050a80] video frame properties congruent with link at pts_time: 0.333333
[Parsed_fps_0 @ 0x3a6ae050540] Set first pts to 4
[vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Terminating thread with return code 0 (success)
[vf#0:0 @ 0x3a6ac098880] Filtergraph returned EOF, finishing
[vf#0:0 @ 0x3a6ac098880] All consumers returned EOF
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] No filtered frames for output stream, trying to initialize anyway.
Output #0, webp, to 'upload/thumbs/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/b7/78/b7786459-da51-42da-b862-63d0a266e4c2-thumbnail.webp':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf61.1.100
  Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444 [SAR 999:1000 DAR 9:16], q=2-31, 200 kb/s, 12 fps, 1k tbn (default)
      Metadata:
        creation_time   : 2018-10-08T17:56:09.000000Z
        handler_name    : ISO Media file produced by Google Inc. Created on: 10/08/2018.
        vendor_id       : [0][0][0][0]
        encoder         : Lavc61.3.100 libwebp_anim
[out#0/webp @ 0x3a6ac1a2640] Starting thread...
[Parsed_fps_0 @ 0x3a6ae050540] 2 frames in, 0 frames out; 2 frames dropped, 0 frames duplicated.
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Encoder thread received EOF
[libwebp encoder @ 0x3a6ac060e00] WebPAnimEncoderAssemble() failed with error: 1
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Error submitting video frame to the encoder
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Error flushing encoder: Cannot allocate memory
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Task finished with error code: -12 (Cannot allocate memory)
[vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Terminating thread with return code -12 (Cannot allocate memory)
[out#0/webp @ 0x3a6ac1a2640] All streams finished
[out#0/webp @ 0x3a6ac1a2640] Terminating thread with return code 0 (success)
[vf#0:0 @ 0x3a6ac098880] Terminating thread with return code 0 (success)
[AVIOContext @ 0x3a6ac0611c0] Statistics: 0 bytes written, 0 seeks, 0 writeouts
[out#0/webp @ 0x3a6ac1a2640] Output file #0 (upload/thumbs/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/b7/78/b7786459-da51-42da-b862-63d0a266e4c2-thumbnail.webp):
[out#0/webp @ 0x3a6ac1a2640]   Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); 
[out#0/webp @ 0x3a6ac1a2640]   Total: 0 packets (0 bytes) muxed
[out#0/webp @ 0x3a6ac1a2640] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
[out#0/webp @ 0x3a6ac1a2640] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
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 @ 0x3a6ac110280] Input file #0 (upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/3c/78/3c78d158-0688-4706-b874-388605edf5ac.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280]   Input stream #0:0 (video): 18 packets read (157207 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280]   Total: 18 packets (157207 bytes) demuxed
[AVIOContext @ 0x3a6ac060680] Statistics: 168895 bytes read, 0 seeks
Conversion failed!
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 244: Conversion failed!
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Error: ffmpeg exited with code 244: Conversion failed!
    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:524:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Object(1) {
  id: 'b7786459-da51-42da-b862-63d0a266e4c2'
}
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:MediaRepository] 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
[h264 @ 0x496962c0580] Reinit context to 848x640, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/d4/12/d41264fe-7ed4-4526-93a1-e82aa6acbc86.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
  Duration: 00:03:55.80, start: 0.000000, bitrate: 1300 kb/s
  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 848x636, 1181 kb/s, 30 fps, 30 tbr, 30k tbn (default)
      Metadata:
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 116 kb/s (default)
      Metadata:
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x496961a0fc0] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x496960d3780] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x496961a1440] batch size: 12 frames
[Parsed_fps_0 @ 0x496961a0e40] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x496960d3780] Starting thread...
[vf#0:0 @ 0x496960984c0] Starting thread...
[vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x496962c1980] Reinit context to 848x640, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x4969a050540] batch size: 12 frames
[graph 0 input from stream 0:0 @ 0x4969a050840] w:848 h:636 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:0 @ 0x4969a050840] Invalid color range
[Parsed_fps_0 @ 0x4969a0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x496960984c0] Error reinitializing filters!
[vf#0:0 @ 0x496960984c0] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x496960984c0] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x496960d3780] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x496960d3780] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x496960d3780] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x496960d3780] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x49696230500] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x496961a0fc0] 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 @ 0x49696110280] Input file #0 (upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/d4/12/d41264fe-7ed4-4526-93a1-e82aa6acbc86.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280]   Input stream #0:0 (video): 318 packets read (1372972 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280]   Total: 318 packets (1372972 bytes) demuxed
[AVIOContext @ 0x49696060680] Statistics: 1617938 bytes read, 0 seeks
Conversion failed!
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Error: ffmpeg exited with code 234: Conversion failed!
    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:524:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
[Nest] 7  - 02/17/2025, 10:10:25 AM   ERROR [Microservices:JobService] Object(1) {
  id: 'dce2a8f8-a9cc-4c69-93bf-d14e1170a86a'
}

Additional information

No response

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). ![Image](https://github.com/user-attachments/assets/c0cc7db6-6e9d-4dcc-b7cd-72597ebe4329) If you try to open the image, it fails (Pic 2). ![Image](https://github.com/user-attachments/assets/af155c2a-3025-41e4-8eb1-b8d620371109) The “Generate Thumbnail” job is set to zero for Active and zero for Waiting (Pic 3). ![Image](https://github.com/user-attachments/assets/6b281108-7f0a-423b-843c-b701fb05935b) If I start the job manually by clicking on “Missing”, an image is first loaded in “Waiting” and then in “Active” (Pic 4). ![Image](https://github.com/user-attachments/assets/5091a172-030a-4d21-9b6f-698936c2b97a) 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) ![Image](https://github.com/user-attachments/assets/4cd43eb1-a9c0-44fc-a048-8a55aa53a97d) 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 - [x] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - stack.env ports: - '2283:2283' depends_on: - redis - database restart: always healthcheck: disable: false networks: internal_bridge: ipv4_address: 192.168.70.3 external_bridge: ipv4_address: 192.168.69.4 immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache env_file: - stack.env restart: always healthcheck: disable: false networks: internal_bridge: ipv4_address: 192.168.70.4 redis: container_name: immich_redis image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8 healthcheck: test: redis-cli ping || exit 1 restart: always networks: internal_bridge: ipv4_address: 192.168.70.5 database: container_name: immich_postgres image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: >- postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on restart: always networks: internal_bridge: ipv4_address: 192.168.70.6 power-tools: container_name: immich_power_tools image: ghcr.io/varun-raj/immich-power-tools:latest ports: - "8001:3000" env_file: - stack.env networks: internal_bridge: ipv4_address: 192.168.70.8 volumes: model-cache: networks: internal_bridge: external: true external_bridge: external: true ``` ### Your .env content ```Shell UPLOAD_LOCATION=/docker/immich/data/upload DB_DATA_LOCATION=/docker/immich/db IMMICH_VERSION=release DB_PASSWORD=xxxxxx DB_USERNAME=xxxxxx DB_DATABASE_NAME=immich IMMICH_API_KEY=xxxxxx IMMICH_URL="http://192.168.70.3:2283" # Your immich instace ip address and port EXTERNAL_IMMICH_URL="https://immich.domain.tld" # External address of immich GOOGLE_MAPS_API_KEY=xxxxxx GEMINI_API_KEY=xxxxxx DB_HOST=192.168.70.6 DB_PORT=5432 ``` ### Reproduction steps 1. Upload image or video 2. Seeing not thumbnail is generated 3. Manually triggering the thumbnail Job 4. Error get displayed in Docker Logs 5. Uploaded image or video now have a thumbnail ### Relevant log output ```shell [Nest] 18 - 02/17/2025, 10:09:57 AM LOG [Api:EventRepository] Websocket Connect: UM2qevO0S0rvwRA5AAAf [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x3a6ac1e0580] Reinit context to 720x1280, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/3c/78/3c78d158-0688-4706-b874-388605edf5ac.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2018-10-01T12:36:29.000000Z Duration: 00:00:00.65, start: 0.000000, bitrate: 2078 kb/s Stream #0:0[0x1](und): Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 2096 kb/s, 30 fps, 30 tbr, 90k tbn (default) Metadata: creation_time : 2018-10-08T17:56:09.000000Z handler_name : ISO Media file produced by Google Inc. Created on: 10/08/2018. vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default) Metadata: creation_time : 2018-10-08T17:56:09.000000Z handler_name : ISO Media file produced by Google Inc. Created on: 10/08/2018. vendor_id : [0][0][0][0] [out#0/webp @ 0x3a6ac1a2640] No explicit maps, mapping streams automatically... [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x3a6ac1a3000] batch size: 12 frames [Parsed_scale_5 @ 0x3a6ac110d80] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 [Parsed_fps_0 @ 0x3a6ac1a2e80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> webp (libwebp_anim)) [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Starting thread... [vf#0:0 @ 0x3a6ac098880] Starting thread... [vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x3a6ac1e0580] Reinit context to 720x1280, pix_fmt: yuv420p [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] EOF while reading input [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Decoder thread received EOF packet [vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Decoder returned EOF, finishing [Parsed_thumbnail_1 @ 0x3a6ae0506c0] batch size: 12 frames [Parsed_scale_5 @ 0x3a6ae0509c0] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 [graph 0 input from stream 0:0 @ 0x3a6ae050a80] w:720 h:1280 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:1/1 csp:bt709 range:tv [Parsed_fps_0 @ 0x3a6ae050540] fps=12/1 [Parsed_scale_5 @ 0x3a6ae0509c0] w:720 h:1280 fmt:yuv420p csp:bt709 range:tv sar:1/1 -> w:250 h:444 fmt:yuv420p csp:bt709 range:pc sar:999/1000 flags:0x00042200 [graph 0 input from stream 0:0 @ 0x3a6ae050a80] video frame properties congruent with link at pts_time: 0.333333 [Parsed_fps_0 @ 0x3a6ae050540] Set first pts to 4 [vist#0:0/h264 @ 0x3a6ac220780] [dec:h264 @ 0x3a6ac220a80] Terminating thread with return code 0 (success) [vf#0:0 @ 0x3a6ac098880] Filtergraph returned EOF, finishing [vf#0:0 @ 0x3a6ac098880] All consumers returned EOF [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] No filtered frames for output stream, trying to initialize anyway. Output #0, webp, to 'upload/thumbs/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/b7/78/b7786459-da51-42da-b862-63d0a266e4c2-thumbnail.webp': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 encoder : Lavf61.1.100 Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444 [SAR 999:1000 DAR 9:16], q=2-31, 200 kb/s, 12 fps, 1k tbn (default) Metadata: creation_time : 2018-10-08T17:56:09.000000Z handler_name : ISO Media file produced by Google Inc. Created on: 10/08/2018. vendor_id : [0][0][0][0] encoder : Lavc61.3.100 libwebp_anim [out#0/webp @ 0x3a6ac1a2640] Starting thread... [Parsed_fps_0 @ 0x3a6ae050540] 2 frames in, 0 frames out; 2 frames dropped, 0 frames duplicated. [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Encoder thread received EOF [libwebp encoder @ 0x3a6ac060e00] WebPAnimEncoderAssemble() failed with error: 1 [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Error submitting video frame to the encoder [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Error flushing encoder: Cannot allocate memory [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Task finished with error code: -12 (Cannot allocate memory) [vost#0:0/libwebp_anim @ 0x3a6ac0d2b80] Terminating thread with return code -12 (Cannot allocate memory) [out#0/webp @ 0x3a6ac1a2640] All streams finished [out#0/webp @ 0x3a6ac1a2640] Terminating thread with return code 0 (success) [vf#0:0 @ 0x3a6ac098880] Terminating thread with return code 0 (success) [AVIOContext @ 0x3a6ac0611c0] Statistics: 0 bytes written, 0 seeks, 0 writeouts [out#0/webp @ 0x3a6ac1a2640] Output file #0 (upload/thumbs/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/b7/78/b7786459-da51-42da-b862-63d0a266e4c2-thumbnail.webp): [out#0/webp @ 0x3a6ac1a2640] Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); [out#0/webp @ 0x3a6ac1a2640] Total: 0 packets (0 bytes) muxed [out#0/webp @ 0x3a6ac1a2640] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown [out#0/webp @ 0x3a6ac1a2640] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) 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 @ 0x3a6ac110280] Input file #0 (upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/3c/78/3c78d158-0688-4706-b874-388605edf5ac.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Input stream #0:0 (video): 18 packets read (157207 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3a6ac110280] Total: 18 packets (157207 bytes) demuxed [AVIOContext @ 0x3a6ac060680] Statistics: 168895 bytes read, 0 seeks Conversion failed! [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 244: Conversion failed! [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Error: ffmpeg exited with code 244: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:524:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Object(1) { id: 'b7786459-da51-42da-b862-63d0a266e4c2' } [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x496962c0580] Reinit context to 848x640, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/d4/12/d41264fe-7ed4-4526-93a1-e82aa6acbc86.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:03:55.80, start: 0.000000, bitrate: 1300 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 848x636, 1181 kb/s, 30 fps, 30 tbr, 30k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 116 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x496961a0fc0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x496960d3780] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x496961a1440] batch size: 12 frames [Parsed_fps_0 @ 0x496961a0e40] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x496960d3780] Starting thread... [vf#0:0 @ 0x496960984c0] Starting thread... [vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x496962c1980] Reinit context to 848x640, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x4969a050540] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x4969a050840] w:848 h:636 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x4969a050840] Invalid color range [Parsed_fps_0 @ 0x4969a0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x496960984c0] Error reinitializing filters! [vf#0:0 @ 0x496960984c0] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x496960984c0] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x496960d3780] Encoder thread received EOF [vost#0:0/mjpeg @ 0x496960d3780] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x496960d3780] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x496960d3780] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x49696230500] [dec:h264 @ 0x496960f0780] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x49696230500] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Terminating thread with return code 0 (success) [out#0/image2 @ 0x496961a0fc0] 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 @ 0x49696110280] Input file #0 (upload/upload/7fbc1247-9b89-4bcf-ad9d-bcbb41fade6f/d4/12/d41264fe-7ed4-4526-93a1-e82aa6acbc86.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Input stream #0:0 (video): 318 packets read (1372972 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x49696110280] Total: 318 packets (1372972 bytes) demuxed [AVIOContext @ 0x49696060680] Statistics: 1617938 bytes read, 0 seeks Conversion failed! [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:524:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) [Nest] 7 - 02/17/2025, 10:10:25 AM ERROR [Microservices:JobService] Object(1) { id: 'dce2a8f8-a9cc-4c69-93bf-d14e1170a86a' } ``` ### Additional information _No response_
deekerman 2026-02-20 03:12:18 -05:00
Author
Owner

@alextran1502 commented on GitHub (Feb 17, 2025):

Hello, do you mind running the stock docker-compose file and see if it help?

@alextran1502 commented on GitHub (Feb 17, 2025): Hello, do you mind running the stock docker-compose file and see if it help?
Author
Owner

@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.
Image

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)

@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. ![Image](https://github.com/user-attachments/assets/5ffd6224-743f-4b8d-92e9-10f0bc9acd06) 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)`
Author
Owner

@Tyris commented on GitHub (Feb 19, 2025):

I'm seeing similar issues, including the skipping unknown job: "undefined" failure in the logs.

@Tyris commented on GitHub (Feb 19, 2025): I'm seeing similar issues, including the `skipping unknown job: "undefined"` failure in the logs.
Author
Owner

@tenekev commented on GitHub (Feb 21, 2025):

I'm seeing the same thing. Only with Fujifilm RAF files.

@tenekev commented on GitHub (Feb 21, 2025): I'm seeing the same thing. Only with Fujifilm RAF files.
Author
Owner

@streambinder commented on GitHub (Feb 24, 2025):

Happening here as well:

[Nest] 2  - 02/24/2025, 8:23:31 AM   ERROR [Microservices:MediaRepository] 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=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga
  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
[h264 @ 0x7f881c0500] Reinit context to 368x656, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/raid/media/roll/2023/20230827-192158.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2023-08-27T19:21:58.000000Z
  Duration: 00:00:41.43, start: 0.000000, bitrate: 1608 kb/s
  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 368x656, 1347 kb/s, 30 fps, 29.97 tbr, 90k tbn (default)
      Metadata:
        creation_time   : 2023-08-27T19:21:58.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
      Metadata:
        creation_time   : 2023-08-27T19:21:58.000000Z
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x7f881d09c0] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x7f88223180] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x7f881d0d80] batch size: 12 frames
[Parsed_fps_0 @ 0x7f881d0c00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x7f88223180] Starting thread...
[vf#0:0 @ 0x7f88127c00] Starting thread...
[vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x7f881c0c00] Reinit context to 368x656, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x7f7e080540] batch size: 12 frames
[graph 0 input from stream 0:0 @ 0x7f7e080840] w:368 h:656 pixfmt:yuv420p tb:1/90000 fr:30000/1001 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:0 @ 0x7f7e080840] Invalid color range
[Parsed_fps_0 @ 0x7f7e0803c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x7f88127c00] Error reinitializing filters!
[vf#0:0 @ 0x7f88127c00] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x7f88127c00] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x7f88223180] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x7f88223180] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x7f88223180] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x7f88223180] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x7f88140a80] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x7f881d09c0] 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 @ 0x7f88090380] Input file #0 (/raid/media/roll/2023/20230827-192158.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380]   Input stream #0:0 (video): 314 packets read (1776323 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380]   Total: 314 packets (1776323 bytes) demuxed
[AVIOContext @ 0x7f88190180] Statistics: 2129920 bytes read, 0 seeks
Conversion failed!

[Nest] 2  - 02/24/2025, 8:23:31 AM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!

[Nest] 2  - 02/24/2025, 8:23:31 AM   ERROR [Microservices:JobService] Error: ffmpeg exited with code 234: Conversion failed!

    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:524:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
[Nest] 2  - 02/24/2025, 8:23:31 AM   ERROR [Microservices:JobService] Object(1) {
  id: '10d73948-1634-494a-b3ed-1243e3db1924'
}

This the comparison between three not working files + a similar one for which the thumbnail has been successfully generated:

# ls -l *.ffprobe
-rw-r--r-- 1 root root 2684 feb 24 08:33 20230819-184623.ffprobe
-rw-r--r-- 1 root root 2686 feb 24 08:33 20230827-192158.ffprobe
-rw-r--r-- 1 root root 2691 feb 24 08:34 20230920-174600.ffprobe
-rw-r--r-- 1 root root 2746 feb 24 08:37 20230920-202123-ok.ffprobe

# diff -urN 20230819-184623.ffprobe 20230827-192158.ffprobe 
--- 20230819-184623.ffprobe	2025-02-24 08:33:10.299814905 +0100
+++ 20230827-192158.ffprobe	2025-02-24 08:33:41.655556652 +0100
@@ -9,19 +9,18 @@
[...]
-    creation_time   : 2023-08-19T18:46:23.000000Z
-  Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s
-  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default)
+    creation_time   : 2023-08-27T19:21:58.000000Z
+  Duration: 00:00:41.43, start: 0.000000, bitrate: 1608 kb/s
+  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 29.97 tbr, 90k tbn (default)
[...]

# diff -urN 20230819-184623.ffprobe 20230920-174600.ffprobe
--- 20230819-184623.ffprobe	2025-02-24 08:33:10.299814905 +0100
+++ 20230920-174600.ffprobe	2025-02-24 08:34:11.203312929 +0100
@@ -9,19 +9,18 @@
[...]
-    creation_time   : 2023-08-19T18:46:23.000000Z
-  Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s
-  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default)
+    creation_time   : 2023-09-20T17:46:00.000000Z
+  Duration: 00:00:26.05, start: 0.000000, bitrate: 2166 kb/s
+  Stream #0:0[0x1](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 848x480, 1905 kb/s, 30.02 fps, 120 tbr, 90k tbn (default)
[...]

# diff -urN 20230819-184623.ffprobe 20230920-202123-ok.ffprobe
--- 20230819-184623.ffprobe	2025-02-24 08:33:10.299814905 +0100
+++ 20230920-202123-ok.ffprobe	2025-02-24 08:37:24.301712846 +0100
@@ -9,19 +9,20 @@
[...]
-    creation_time   : 2023-08-19T18:46:23.000000Z
-  Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s
-  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default)
+    creation_time   : 2023-09-20T20:21:23.000000Z
+  Duration: 00:00:06.27, start: 0.000000, bitrate: 1667 kb/s
+  Stream #0:0[0x1](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 848x480, 1613 kb/s, 30 fps, 30 tbr, 600 tbn (default)
     Metadata:
-      creation_time   : 2023-08-19T18:46:23.000000Z
+      creation_time   : 2023-09-20T20:21:23.000000Z
       vendor_id       : [0][0][0][0]
-  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
+    Side data:
+      displaymatrix: rotation of -90.00 degrees
+  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s (default)
[...]
@streambinder commented on GitHub (Feb 24, 2025): Happening here as well: ``` [Nest] 2 - 02/24/2025, 8:23:31 AM ERROR [Microservices:MediaRepository] 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=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga 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 [h264 @ 0x7f881c0500] Reinit context to 368x656, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/raid/media/roll/2023/20230827-192158.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom creation_time : 2023-08-27T19:21:58.000000Z Duration: 00:00:41.43, start: 0.000000, bitrate: 1608 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 368x656, 1347 kb/s, 30 fps, 29.97 tbr, 90k tbn (default) Metadata: creation_time : 2023-08-27T19:21:58.000000Z vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: creation_time : 2023-08-27T19:21:58.000000Z vendor_id : [0][0][0][0] [out#0/image2 @ 0x7f881d09c0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x7f88223180] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x7f881d0d80] batch size: 12 frames [Parsed_fps_0 @ 0x7f881d0c00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x7f88223180] Starting thread... [vf#0:0 @ 0x7f88127c00] Starting thread... [vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x7f881c0c00] Reinit context to 368x656, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x7f7e080540] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x7f7e080840] w:368 h:656 pixfmt:yuv420p tb:1/90000 fr:30000/1001 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x7f7e080840] Invalid color range [Parsed_fps_0 @ 0x7f7e0803c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x7f88127c00] Error reinitializing filters! [vf#0:0 @ 0x7f88127c00] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x7f88127c00] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x7f88223180] Encoder thread received EOF [vost#0:0/mjpeg @ 0x7f88223180] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x7f88223180] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x7f88223180] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x7f88140a80] [dec:h264 @ 0x7f88190b80] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x7f88140a80] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Terminating thread with return code 0 (success) [out#0/image2 @ 0x7f881d09c0] 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 @ 0x7f88090380] Input file #0 (/raid/media/roll/2023/20230827-192158.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Input stream #0:0 (video): 314 packets read (1776323 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88090380] Total: 314 packets (1776323 bytes) demuxed [AVIOContext @ 0x7f88190180] Statistics: 2129920 bytes read, 0 seeks Conversion failed! [Nest] 2 - 02/24/2025, 8:23:31 AM ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! [Nest] 2 - 02/24/2025, 8:23:31 AM ERROR [Microservices:JobService] Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:524:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) [Nest] 2 - 02/24/2025, 8:23:31 AM ERROR [Microservices:JobService] Object(1) { id: '10d73948-1634-494a-b3ed-1243e3db1924' } ``` This the comparison between three not working files + a similar one for which the thumbnail has been successfully generated: ``` # ls -l *.ffprobe -rw-r--r-- 1 root root 2684 feb 24 08:33 20230819-184623.ffprobe -rw-r--r-- 1 root root 2686 feb 24 08:33 20230827-192158.ffprobe -rw-r--r-- 1 root root 2691 feb 24 08:34 20230920-174600.ffprobe -rw-r--r-- 1 root root 2746 feb 24 08:37 20230920-202123-ok.ffprobe # diff -urN 20230819-184623.ffprobe 20230827-192158.ffprobe --- 20230819-184623.ffprobe 2025-02-24 08:33:10.299814905 +0100 +++ 20230827-192158.ffprobe 2025-02-24 08:33:41.655556652 +0100 @@ -9,19 +9,18 @@ [...] - creation_time : 2023-08-19T18:46:23.000000Z - Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s - Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default) + creation_time : 2023-08-27T19:21:58.000000Z + Duration: 00:00:41.43, start: 0.000000, bitrate: 1608 kb/s + Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 29.97 tbr, 90k tbn (default) [...] # diff -urN 20230819-184623.ffprobe 20230920-174600.ffprobe --- 20230819-184623.ffprobe 2025-02-24 08:33:10.299814905 +0100 +++ 20230920-174600.ffprobe 2025-02-24 08:34:11.203312929 +0100 @@ -9,19 +9,18 @@ [...] - creation_time : 2023-08-19T18:46:23.000000Z - Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s - Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default) + creation_time : 2023-09-20T17:46:00.000000Z + Duration: 00:00:26.05, start: 0.000000, bitrate: 2166 kb/s + Stream #0:0[0x1](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 848x480, 1905 kb/s, 30.02 fps, 120 tbr, 90k tbn (default) [...] # diff -urN 20230819-184623.ffprobe 20230920-202123-ok.ffprobe --- 20230819-184623.ffprobe 2025-02-24 08:33:10.299814905 +0100 +++ 20230920-202123-ok.ffprobe 2025-02-24 08:37:24.301712846 +0100 @@ -9,19 +9,20 @@ [...] - creation_time : 2023-08-19T18:46:23.000000Z - Duration: 00:01:00.97, start: 0.000000, bitrate: 1608 kb/s - Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, reserved, progressive), 368x656, 1347 kb/s, 30 fps, 30 tbr, 90k tbn (default) + creation_time : 2023-09-20T20:21:23.000000Z + Duration: 00:00:06.27, start: 0.000000, bitrate: 1667 kb/s + Stream #0:0[0x1](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 848x480, 1613 kb/s, 30 fps, 30 tbr, 600 tbn (default) Metadata: - creation_time : 2023-08-19T18:46:23.000000Z + creation_time : 2023-09-20T20:21:23.000000Z vendor_id : [0][0][0][0] - Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) + Side data: + displaymatrix: rotation of -90.00 degrees + Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s (default) [...] ```
Author
Owner

@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

@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](https://github.com/user-attachments/files/19263477/Immich.zip)
Author
Owner

@NightHawk0999 commented on GitHub (Mar 18, 2025):

I am seeing similar issues.

@NightHawk0999 commented on GitHub (Mar 18, 2025): I am seeing similar issues.
Author
Owner

@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.

@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.
Author
Owner

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

@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).
Author
Owner

@Michael7711 commented on GitHub (Mar 30, 2025):

same here, but restart doesn't help

@Michael7711 commented on GitHub (Mar 30, 2025): same here, but restart doesn't help
Author
Owner

@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.

Image

[Nest] 7  - 04/01/2025, 12:00:01 AM   ERROR [Microservices:MediaRepository] 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
[h264 @ 0x3ac6a1b0580] Reinit context to 480x864, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/65fc3068-9448-411c-a5a7-e4c611cf505f/ae/7a/ae7aed2c-fcd1-4e43-9780-acae09c7c99a.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
  Duration: 00:03:29.03, start: 0.000000, bitrate: 1788 kb/s
  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1529 kb/s, 29.98 fps, 30 tbr, 30k tbn (default)
      Metadata:
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
      Metadata:
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x3ac6a14e7c0] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x3ac6a173a80] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x3ac6a14d380] batch size: 12 frames
[Parsed_fps_0 @ 0x3ac6a14e700] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x3ac6a173a80] Starting thread...
[vf#0:0 @ 0x3ac6a050540] Starting thread...
[vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x3ac6a1b1580] Reinit context to 480x864, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x3ac6e050540] batch size: 12 frames
[graph 0 input from stream 0:0 @ 0x3ac6e050840] w:478 h:850 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:0 @ 0x3ac6e050840] Invalid color range
[Parsed_fps_0 @ 0x3ac6e0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x3ac6a050540] Error reinitializing filters!
[vf#0:0 @ 0x3ac6a050540] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x3ac6a050540] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3ac6a173a80] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x3ac6a173a80] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x3ac6a173a80] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3ac6a173a80] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x3ac6a310500] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x3ac6a14e7c0] 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 @ 0x3ac6a120280] Input file #0 (upload/upload/65fc3068-9448-411c-a5a7-e4c611cf505f/ae/7a/ae7aed2c-fcd1-4e43-9780-acae09c7c99a.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280]   Input stream #0:0 (video): 312 packets read (2004960 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280]   Total: 312 packets (2004960 bytes) demuxed
[AVIOContext @ 0x3ac6a060680] Statistics: 2424832 bytes read, 0 seeks
Conversion failed!
[Nest] 7  - 04/01/2025, 12:00:01 AM   ERROR [Microservices:{"id":"24b3daa2-568f-4ce5-b6d8-8ee03ac99b01"}] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!
Error: ffmpeg exited with code 234: Conversion failed!
    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:518:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)

@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. ![Image](https://github.com/user-attachments/assets/912d3472-b6f8-4bed-9652-fb2e9b60e12e) ``` [Nest] 7 - 04/01/2025, 12:00:01 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x3ac6a1b0580] Reinit context to 480x864, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/upload/65fc3068-9448-411c-a5a7-e4c611cf505f/ae/7a/ae7aed2c-fcd1-4e43-9780-acae09c7c99a.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:03:29.03, start: 0.000000, bitrate: 1788 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1529 kb/s, 29.98 fps, 30 tbr, 30k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x3ac6a14e7c0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x3ac6a173a80] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x3ac6a14d380] batch size: 12 frames [Parsed_fps_0 @ 0x3ac6a14e700] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x3ac6a173a80] Starting thread... [vf#0:0 @ 0x3ac6a050540] Starting thread... [vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x3ac6a1b1580] Reinit context to 480x864, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x3ac6e050540] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x3ac6e050840] w:478 h:850 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x3ac6e050840] Invalid color range [Parsed_fps_0 @ 0x3ac6e0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x3ac6a050540] Error reinitializing filters! [vf#0:0 @ 0x3ac6a050540] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x3ac6a050540] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3ac6a173a80] Encoder thread received EOF [vost#0:0/mjpeg @ 0x3ac6a173a80] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x3ac6a173a80] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3ac6a173a80] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x3ac6a310500] [dec:h264 @ 0x3ac6a6e0780] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x3ac6a310500] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Terminating thread with return code 0 (success) [out#0/image2 @ 0x3ac6a14e7c0] 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 @ 0x3ac6a120280] Input file #0 (upload/upload/65fc3068-9448-411c-a5a7-e4c611cf505f/ae/7a/ae7aed2c-fcd1-4e43-9780-acae09c7c99a.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Input stream #0:0 (video): 312 packets read (2004960 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ac6a120280] Total: 312 packets (2004960 bytes) demuxed [AVIOContext @ 0x3ac6a060680] Statistics: 2424832 bytes read, 0 seeks Conversion failed! [Nest] 7 - 04/01/2025, 12:00:01 AM ERROR [Microservices:{"id":"24b3daa2-568f-4ce5-b6d8-8ee03ac99b01"}] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:518:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) ```
Author
Owner

@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.

@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:0[0x1](und), 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:1[0x2](und), 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.
Author
Owner

@danieldietzler commented on GitHub (Apr 3, 2025):

@KleenaWildaHase please don't post LLM spam.

@danieldietzler commented on GitHub (Apr 3, 2025): @KleenaWildaHase please don't post LLM spam.
Author
Owner

@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!

@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!
Author
Owner

@Tyris commented on GitHub (Apr 3, 2025):

@KleenaWildaHase please don't post LLM spam.

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.

@Tyris commented on GitHub (Apr 3, 2025): > [@KleenaWildaHase](https://github.com/KleenaWildaHase) please don't post LLM spam. 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.
Author
Owner

@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)

@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)
Author
Owner

@alextran1502 commented on GitHub (Apr 5, 2025):

@KleenaWildaHase Can you confirm if this video is valid and if you can share it?

upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4
@alextran1502 commented on GitHub (Apr 5, 2025): @KleenaWildaHase Can you confirm if this video is valid and if you can share it? ``` upload/library/Melanie/2025/03/30/VID-20250330-WA0005.mp4 ```
Author
Owner

@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!

@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](https://github.com/user-attachments/files/19620917/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:0[0x1](und), 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:1[0x2](und), 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!
Author
Owner

@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

@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
Author
Owner

@muzhaqi16 commented on GitHub (Apr 16, 2025):

I am having the same issue with a whatsapp video file, the file does exist.

[Nest] 294  - 04/16/2025, 4:00:22 AM   ERROR [Microservices:MediaRepository] ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)
  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
[h264 @ 0x3f244050400] Reinit context to 480x864, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/photos/library/eff5e672-1c8e-4e32-a5d3-c0b332926752/2025/2025-02-06/VID-20250206-WA0000.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
  Duration: 00:00:40.02, start: 0.000000, bitrate: 1644 kb/s
  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1514 kb/s, 29.33 fps, 23.98 tbr, 30k tbn (default)
      Metadata:
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
      Metadata:
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x3f2440afb40] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x3f2441c3600] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x3f2440af540] batch size: 12 frames
[Parsed_fps_0 @ 0x3f2440ad140] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x3f2441c3600] Starting thread...
[vf#0:0 @ 0x3f2440f0b40] Starting thread...
[vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x3f244051800] Reinit context to 480x864, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x3f248050480] batch size: 12 frames
[graph 0 input from stream 0:0 @ 0x3f248050780] w:478 h:850 pixfmt:yuv420p tb:1/30000 fr:24000/1001 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:0 @ 0x3f248050780] Invalid color range
[Parsed_fps_0 @ 0x3f248050300] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x3f2440f0b40] Error reinitializing filters!
[vf#0:0 @ 0x3f2440f0b40] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x3f2440f0b40] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3f2441c3600] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x3f2441c3600] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x3f2441c3600] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3f2441c3600] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x3f2449c0e00] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x3f2440afb40] 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 @ 0x3f244100200] Input file #0 (/photos/library/eff5e672-1c8e-4e32-a5d3-c0b332926752/2025/2025-02-06/VID-20250206-WA0000.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200]   Input stream #0:0 (video): 325 packets read (2168586 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200]   Total: 325 packets (2168586 bytes) demuxed
[AVIOContext @ 0x3f2440e0480] Statistics: 2392064 bytes read, 0 seeks
Conversion failed!

[Nest] 294  - 04/16/2025, 4:00:22 AM   ERROR [Microservices:{"id":"c0c9c373-c055-499a-ac62-32420badeca8"}] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!

Error: ffmpeg exited with code 234: Conversion failed!

    at ChildProcess.<anonymous> (/app/immich/server/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:524:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
    at Process.callbackTrampoline (node:internal/async_hooks:130:17)
@muzhaqi16 commented on GitHub (Apr 16, 2025): I am having the same issue with a whatsapp video file, the file does exist. ``` [Nest] 294 - 04/16/2025, 4:00:22 AM ERROR [Microservices:MediaRepository] ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-23ubuntu4) 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 [h264 @ 0x3f244050400] Reinit context to 480x864, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/photos/library/eff5e672-1c8e-4e32-a5d3-c0b332926752/2025/2025-02-06/VID-20250206-WA0000.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:00:40.02, start: 0.000000, bitrate: 1644 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1514 kb/s, 29.33 fps, 23.98 tbr, 30k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x3f2440afb40] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x3f2441c3600] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x3f2440af540] batch size: 12 frames [Parsed_fps_0 @ 0x3f2440ad140] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x3f2441c3600] Starting thread... [vf#0:0 @ 0x3f2440f0b40] Starting thread... [vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x3f244051800] Reinit context to 480x864, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x3f248050480] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x3f248050780] w:478 h:850 pixfmt:yuv420p tb:1/30000 fr:24000/1001 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x3f248050780] Invalid color range [Parsed_fps_0 @ 0x3f248050300] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x3f2440f0b40] Error reinitializing filters! [vf#0:0 @ 0x3f2440f0b40] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x3f2440f0b40] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3f2441c3600] Encoder thread received EOF [vost#0:0/mjpeg @ 0x3f2441c3600] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x3f2441c3600] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3f2441c3600] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x3f2449c0e00] [dec:h264 @ 0x3f2440e0d80] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x3f2449c0e00] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Terminating thread with return code 0 (success) [out#0/image2 @ 0x3f2440afb40] 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 @ 0x3f244100200] Input file #0 (/photos/library/eff5e672-1c8e-4e32-a5d3-c0b332926752/2025/2025-02-06/VID-20250206-WA0000.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Input stream #0:0 (video): 325 packets read (2168586 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3f244100200] Total: 325 packets (2168586 bytes) demuxed [AVIOContext @ 0x3f2440e0480] Statistics: 2392064 bytes read, 0 seeks Conversion failed! [Nest] 294 - 04/16/2025, 4:00:22 AM ERROR [Microservices:{"id":"c0c9c373-c055-499a-ac62-32420badeca8"}] Unable to run job handler (thumbnailGeneration/generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/app/immich/server/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:524:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) at Process.callbackTrampoline (node:internal/async_hooks:130:17) ```
Author
Owner

@juxeii commented on GitHub (Jun 10, 2025):

Same error here for some file.
Image v1.134.0

[Nest] 7  - 06/10/2025, 8:59:39 AM   ERROR [Microservices:MediaRepository] 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

[h264 @ 0x58dae1a0580] Reinit context to 480x864, pix_fmt: yuv420p

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/180af784-2c2c-429d-b093-9fed379278c1/2024/2024-07-22/VID-20240722-WA0007.mp4':

  Metadata:

    major_brand     : mp42

    minor_version   : 0

    compatible_brands: mp42isom

  Duration: 00:00:11.11, start: 0.000000, bitrate: 1775 kb/s

  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1515 kb/s, 29.78 fps, 29.75 tbr, 90k tbn (default)

      Metadata:

        vendor_id       : [0][0][0][0]

  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)

      Metadata:

        vendor_id       : [0][0][0][0]

[out#0/image2 @ 0x58dae12d8c0] No explicit maps, mapping streams automatically...

[vost#0:0/mjpeg @ 0x58dae162880] Created video stream from input stream 0:0

[Parsed_thumbnail_1 @ 0x58dae12d200] batch size: 12 frames

[Parsed_fps_0 @ 0x58dae12d2c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.

Stream mapping:

  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))

[vost#0:0/mjpeg @ 0x58dae162880] Starting thread...

[vf#0:0 @ 0x58dae030540] Starting thread...

[vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Starting thread...

[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Starting thread...

Press [q] to stop, [?] for help

[h264 @ 0x58dae1a1980] Reinit context to 480x864, pix_fmt: yuv420p

[Parsed_thumbnail_1 @ 0x58db2050540] batch size: 12 frames

[graph 0 input from stream 0:0 @ 0x58db2050840] w:478 h:850 pixfmt:yuv420p tb:1/90000 fr:119/4 sar:0/1 csp:reserved range:tv

[graph 0 input from stream 0:0 @ 0x58db2050840] Invalid color range

[Parsed_fps_0 @ 0x58db20503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.

[vf#0:0 @ 0x58dae030540] Error reinitializing filters!

[vf#0:0 @ 0x58dae030540] Task finished with error code: -22 (Invalid argument)

[vf#0:0 @ 0x58dae030540] Terminating thread with return code -22 (Invalid argument)

[vost#0:0/mjpeg @ 0x58dae162880] Encoder thread received EOF

[vost#0:0/mjpeg @ 0x58dae162880] Could not open encoder before EOF

[vost#0:0/mjpeg @ 0x58dae162880] Task finished with error code: -22 (Invalid argument)

[vost#0:0/mjpeg @ 0x58dae162880] Terminating thread with return code -22 (Invalid argument)

[vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Decoder returned EOF, finishing

[vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Terminating thread with return code 0 (success)

[vist#0:0/h264 @ 0x58dae140a80] All consumers of this stream are done

[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] All consumers are done

[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Terminating thread with return code 0 (success)

[out#0/image2 @ 0x58dae12d8c0] 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 @ 0x58dae090280] Input file #0 (upload/library/180af784-2c2c-429d-b093-9fed379278c1/2024/2024-07-22/VID-20240722-WA0007.mp4):

[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280]   Input stream #0:0 (video): 322 packets read (2052334 bytes); 2 frames decoded; 0 decode errors; 

[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280]   Total: 322 packets (2052334 bytes) demuxed

[AVIOContext @ 0x58dae140480] Statistics: 2427136 bytes read, 2 seeks

Conversion failed!


[Nest] 7  - 06/10/2025, 8:59:39 AM   ERROR [Microservices:{"id":"8c8e3c79-3c56-4b09-8d99-5cc5c60e5002"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!


Error: ffmpeg exited with code 234: Conversion failed!


    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)

    at ChildProcess.emit (node:events:518:28)

    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
@juxeii commented on GitHub (Jun 10, 2025): Same error here for some file. Image `v1.134.0` ``` [Nest] 7 - 06/10/2025, 8:59:39 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x58dae1a0580] Reinit context to 480x864, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/180af784-2c2c-429d-b093-9fed379278c1/2024/2024-07-22/VID-20240722-WA0007.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:00:11.11, start: 0.000000, bitrate: 1775 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 478x850, 1515 kb/s, 29.78 fps, 29.75 tbr, 90k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x58dae12d8c0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x58dae162880] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x58dae12d200] batch size: 12 frames [Parsed_fps_0 @ 0x58dae12d2c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x58dae162880] Starting thread... [vf#0:0 @ 0x58dae030540] Starting thread... [vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x58dae1a1980] Reinit context to 480x864, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x58db2050540] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x58db2050840] w:478 h:850 pixfmt:yuv420p tb:1/90000 fr:119/4 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x58db2050840] Invalid color range [Parsed_fps_0 @ 0x58db20503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x58dae030540] Error reinitializing filters! [vf#0:0 @ 0x58dae030540] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x58dae030540] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x58dae162880] Encoder thread received EOF [vost#0:0/mjpeg @ 0x58dae162880] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x58dae162880] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x58dae162880] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x58dae140a80] [dec:h264 @ 0x58dae141200] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x58dae140a80] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Terminating thread with return code 0 (success) [out#0/image2 @ 0x58dae12d8c0] 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 @ 0x58dae090280] Input file #0 (upload/library/180af784-2c2c-429d-b093-9fed379278c1/2024/2024-07-22/VID-20240722-WA0007.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Input stream #0:0 (video): 322 packets read (2052334 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x58dae090280] Total: 322 packets (2052334 bytes) demuxed [AVIOContext @ 0x58dae140480] Statistics: 2427136 bytes read, 2 seeks Conversion failed! [Nest] 7 - 06/10/2025, 8:59:39 AM ERROR [Microservices:{"id":"8c8e3c79-3c56-4b09-8d99-5cc5c60e5002"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:518:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) ```
Author
Owner

@Blackspo0n commented on GitHub (Jun 15, 2025):

I have the same issue with the latest release '1.134.0':

  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
[h264 @ 0x3538a2d0580] Reinit context to 480x864, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/f39b9225-67f1-45c8-b754-cbcf09aae889/2023/July/VID-20230714-WA0005.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
  Duration: 00:00:45.73, start: 0.000000, bitrate: 1873 kb/s
  Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 480x864, 1612 kb/s, 30 fps, 30 tbr, 90k tbn (default)
      Metadata:
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
      Metadata:
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x3538a14e7c0] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x3538a173180] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x3538a14d380] batch size: 12 frames
[Parsed_fps_0 @ 0x3538a14e700] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x3538a173180] Starting thread...
[vf#0:0 @ 0x3538a050400] Starting thread...
[vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x3538a2d1980] Reinit context to 480x864, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x3538e050540] batch size: 12 frames
[graph 0 input from stream 0:0 @ 0x3538e050840] w:480 h:864 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:0 @ 0x3538e050840] Invalid color range
[Parsed_fps_0 @ 0x3538e0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x3538a050400] Error reinitializing filters!
[vf#0:0 @ 0x3538a050400] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x3538a050400] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3538a173180] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x3538a173180] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x3538a173180] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3538a173180] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x3538a230500] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x3538a14e7c0] 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 @ 0x3538a120280] Input file #0 (upload/library/f39b9225-67f1-45c8-b754-cbcf09aae889/2023/July/VID-20230714-WA0005.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280]   Input stream #0:0 (video): 325 packets read (2179924 bytes); 2 frames decoded; 0 decode errors; 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280]   Total: 325 packets (2179924 bytes) demuxed
[AVIOContext @ 0x3538a060540] Statistics: 2556707 bytes read, 0 seeks
Conversion failed!

[Nest] 7  - 06/14/2025, 10:00:21 AM   ERROR [Microservices:{"id":"bdd0f631-6134-4da4-94b7-ae4c387c7286"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!

Error: ffmpeg exited with code 234: Conversion failed!

    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)```
@Blackspo0n commented on GitHub (Jun 15, 2025): I have the same issue with the latest release '1.134.0': ```Nest] 7 - 06/14/2025, 10:00:21 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x3538a2d0580] Reinit context to 480x864, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/f39b9225-67f1-45c8-b754-cbcf09aae889/2023/July/VID-20230714-WA0005.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:00:45.73, start: 0.000000, bitrate: 1873 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 480x864, 1612 kb/s, 30 fps, 30 tbr, 90k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x3538a14e7c0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x3538a173180] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x3538a14d380] batch size: 12 frames [Parsed_fps_0 @ 0x3538a14e700] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x3538a173180] Starting thread... [vf#0:0 @ 0x3538a050400] Starting thread... [vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x3538a2d1980] Reinit context to 480x864, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x3538e050540] batch size: 12 frames [graph 0 input from stream 0:0 @ 0x3538e050840] w:480 h:864 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:0 @ 0x3538e050840] Invalid color range [Parsed_fps_0 @ 0x3538e0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x3538a050400] Error reinitializing filters! [vf#0:0 @ 0x3538a050400] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x3538a050400] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3538a173180] Encoder thread received EOF [vost#0:0/mjpeg @ 0x3538a173180] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x3538a173180] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3538a173180] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x3538a230500] [dec:h264 @ 0x3538a700600] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x3538a230500] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Terminating thread with return code 0 (success) [out#0/image2 @ 0x3538a14e7c0] 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 @ 0x3538a120280] Input file #0 (upload/library/f39b9225-67f1-45c8-b754-cbcf09aae889/2023/July/VID-20230714-WA0005.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Input stream #0:0 (video): 325 packets read (2179924 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3538a120280] Total: 325 packets (2179924 bytes) demuxed [AVIOContext @ 0x3538a060540] Statistics: 2556707 bytes read, 0 seeks Conversion failed! [Nest] 7 - 06/14/2025, 10:00:21 AM ERROR [Microservices:{"id":"bdd0f631-6134-4da4-94b7-ae4c387c7286"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)```
Author
Owner

@juxeii commented on GitHub (Jul 3, 2025):

The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :(

@juxeii commented on GitHub (Jul 3, 2025): The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :(
Author
Owner

@paszczaq commented on GitHub (Jul 3, 2025):

The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :(

Can you confirm that it only affects videos that has been sent via WhatsApp?

@paszczaq commented on GitHub (Jul 3, 2025): > The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :( Can you confirm that it only affects videos that has been sent via WhatsApp?
Author
Owner

@juxeii commented on GitHub (Jul 3, 2025):

The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :(

Can you confirm that it only affects videos that has been sent via WhatsApp?

At first glance, yes. The video itself is fine, you can see it running when hovering over the "Error loading image".

@juxeii commented on GitHub (Jul 3, 2025): > > The issue still persists. The amount of "Error loading image" thumbnails keeps increasing :( > > Can you confirm that it only affects videos that has been sent via WhatsApp? At first glance, yes. The video itself is fine, you can see it running when hovering over the "Error loading image".
Author
Owner

@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:

[Nest] 7  - 07/14/2025, 7:49:02 AM   ERROR [Microservices:MediaRepository] 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
[h264 @ 0x40e78200180] Reinit context to 384x384, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/user/2023/October/file_70@10-10-2023_16-19-10.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2023-10-10T16:19:10.000000Z
  Duration: 00:00:29.72, start: 0.000000, bitrate: 1090 kb/s
  Stream #0:0[0x1](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 65 kb/s (default)
      Metadata:
        creation_time   : 2023-10-10T13:16:59.000000Z
        handler_name    : SoundHandle
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 384x384, 1023 kb/s, 29.28 fps, 24.92 tbr, 90k tbn (default)
      Metadata:
        creation_time   : 2023-10-10T13:16:59.000000Z
        handler_name    : VideoHandle
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0x40e7814ccc0] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x40e78173780] Created video stream from input stream 0:1
[Parsed_thumbnail_1 @ 0x40e7814fcc0] batch size: 12 frames
[Parsed_fps_0 @ 0x40e7814cc00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x40e78173780] Starting thread...
[vf#0:0 @ 0x40e78050540] Starting thread...
[vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x40e78201180] Reinit context to 384x384, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x40e7c050540] batch size: 12 frames
[graph 0 input from stream 0:1 @ 0x40e7c050840] w:384 h:384 pixfmt:yuv420p tb:1/90000 fr:299/12 sar:0/1 csp:reserved range:tv
[graph 0 input from stream 0:1 @ 0x40e7c050840] Invalid color range
[Parsed_fps_0 @ 0x40e7c0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x40e78050540] Error reinitializing filters!
[vf#0:0 @ 0x40e78050540] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x40e78050540] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x40e78173780] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x40e78173780] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x40e78173780] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x40e78173780] Terminating thread with return code -22 (Invalid argument)
[vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Decoder returned EOF, finishing
[vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Terminating thread with return code 0 (success)
[vist#0:1/h264 @ 0x40e78240f80] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x40e7814ccc0] 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 @ 0x40e78120280] Input file #0 (upload/library/user/2023/October/file_70@10-10-2023_16-19-10.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280]   Input stream #0:1 (video): 55 packets read (329671 bytes); 2 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280]   Total: 55 packets (329671 bytes) demuxed
[AVIOContext @ 0x40e78060540] Statistics: 393216 bytes read, 0 seeks
Conversion failed!

[Nest] 7  - 07/14/2025, 7:49:02 AM   ERROR [Microservices:{"id":"343db151-11b4-4b76-8842-8b10d3e26f95"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed!

Error: ffmpeg exited with code 234: Conversion failed!

    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:518:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
@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: ``` [Nest] 7 - 07/14/2025, 7:49:02 AM ERROR [Microservices:MediaRepository] 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 [h264 @ 0x40e78200180] Reinit context to 384x384, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/library/user/2023/October/file_70@10-10-2023_16-19-10.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 2023-10-10T16:19:10.000000Z Duration: 00:00:29.72, start: 0.000000, bitrate: 1090 kb/s Stream #0:0[0x1](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 65 kb/s (default) Metadata: creation_time : 2023-10-10T13:16:59.000000Z handler_name : SoundHandle vendor_id : [0][0][0][0] Stream #0:1[0x2](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 384x384, 1023 kb/s, 29.28 fps, 24.92 tbr, 90k tbn (default) Metadata: creation_time : 2023-10-10T13:16:59.000000Z handler_name : VideoHandle vendor_id : [0][0][0][0] [out#0/image2 @ 0x40e7814ccc0] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x40e78173780] Created video stream from input stream 0:1 [Parsed_thumbnail_1 @ 0x40e7814fcc0] batch size: 12 frames [Parsed_fps_0 @ 0x40e7814cc00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x40e78173780] Starting thread... [vf#0:0 @ 0x40e78050540] Starting thread... [vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x40e78201180] Reinit context to 384x384, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x40e7c050540] batch size: 12 frames [graph 0 input from stream 0:1 @ 0x40e7c050840] w:384 h:384 pixfmt:yuv420p tb:1/90000 fr:299/12 sar:0/1 csp:reserved range:tv [graph 0 input from stream 0:1 @ 0x40e7c050840] Invalid color range [Parsed_fps_0 @ 0x40e7c0503c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x40e78050540] Error reinitializing filters! [vf#0:0 @ 0x40e78050540] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x40e78050540] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x40e78173780] Encoder thread received EOF [vost#0:0/mjpeg @ 0x40e78173780] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x40e78173780] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x40e78173780] Terminating thread with return code -22 (Invalid argument) [vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Decoder returned EOF, finishing [vist#0:1/h264 @ 0x40e78240f80] [dec:h264 @ 0x40e78062980] Terminating thread with return code 0 (success) [vist#0:1/h264 @ 0x40e78240f80] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Terminating thread with return code 0 (success) [out#0/image2 @ 0x40e7814ccc0] 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 @ 0x40e78120280] Input file #0 (upload/library/user/2023/October/file_70@10-10-2023_16-19-10.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Input stream #0:1 (video): 55 packets read (329671 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x40e78120280] Total: 55 packets (329671 bytes) demuxed [AVIOContext @ 0x40e78060540] Statistics: 393216 bytes read, 0 seeks Conversion failed! [Nest] 7 - 07/14/2025, 7:49:02 AM ERROR [Microservices:{"id":"343db151-11b4-4b76-8842-8b10d3e26f95"}] Unable to run job handler (generate-thumbnails): Error: ffmpeg exited with code 234: Conversion failed! Error: ffmpeg exited with code 234: Conversion failed! at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22) at ChildProcess.emit (node:events:518:28) at ChildProcess._handle.onexit (node:internal/child_process:293:12) ```
Author
Owner

@HansAndreManfredson commented on GitHub (Jul 18, 2025):

Having the same issue since upgrading to 1.135.3

@HansAndreManfredson commented on GitHub (Jul 18, 2025): Having the same issue since upgrading to 1.135.3
Author
Owner

@HansAndreManfredson commented on GitHub (Jul 21, 2025):

Any ideas how to solve that problem?

@HansAndreManfredson commented on GitHub (Jul 21, 2025): Any ideas how to solve that problem?
Author
Owner

@ngvh2605 commented on GitHub (Jul 30, 2025):

I'm having the same issue with the newest version v1.136.0

@ngvh2605 commented on GitHub (Jul 30, 2025): I'm having the same issue with the newest version v1.136.0
Author
Owner

@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.

@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.
Author
Owner

@drdeimos commented on GitHub (Aug 14, 2025):

https://trac.ffmpeg.org/ticket/11020 it can be bug of ffmpeg :\

Got this from here

@drdeimos commented on GitHub (Aug 14, 2025): https://trac.ffmpeg.org/ticket/11020 it can be bug of ffmpeg :\ Got this from [here](https://github.com/immich-app/immich/issues/20405#issuecomment-3132600964)
Author
Owner

@foux commented on GitHub (Aug 24, 2025):

I have the same issue, even on latest (1.139.2) version

@foux commented on GitHub (Aug 24, 2025): I have the same issue, even on latest (1.139.2) version
Author
Owner

@skatsubo commented on GitHub (Aug 28, 2025):

So as posted above

https://trac.ffmpeg.org/ticket/11020 it can be bug of ffmpeg
Got this from https://github.com/immich-app/immich/issues/20405#issuecomment-3132600964

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):

[graph 0 input from stream 0:1 @ 0x40e7c050840] Invalid color range
or
[graph -1 input from stream 0:1 @ 0x600003c68a50] Invalid color space
...
Error: ffmpeg exited with code 234: Conversion failed!

Reproducible with basic ffmpeg thumbnail extraction against affected video files:

ffmpeg -i VIDEO.mp4 -vf fps=1 -update 1 thumb.jpg
  • works in v5
  • fails in v7

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.

/usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int \
  -i VIDEO.mp4 \
  -y -fps_mode vfr -frames:v 1 -update 1 -v verbose \
  -vf "fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse" \
  video-preview.jpeg

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?)

@skatsubo commented on GitHub (Aug 28, 2025): So as posted above > https://trac.ffmpeg.org/ticket/11020 it can be bug of ffmpeg > Got this from https://github.com/immich-app/immich/issues/20405#issuecomment-3132600964 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): > [graph 0 input from stream 0:1 @ 0x40e7c050840] Invalid color range > _or_ > [graph -1 input from stream 0:1 @ 0x600003c68a50] Invalid color space > ... > Error: ffmpeg exited with code 234: Conversion failed! Reproducible with basic ffmpeg thumbnail extraction against affected video files: ```sh ffmpeg -i VIDEO.mp4 -vf fps=1 -update 1 thumb.jpg ``` - works in v5 - fails in v7 Full ffmpeg line called by Immich looks like this (see [media.ts](https://github.com/immich-app/immich/blob/e78144ea316e8b09ef998c0463cb2b9faef3b14e/server/src/utils/media.ts#L388) for details). If anyone would like to tinker with it and can suggest any fallback/workaround to handle reserved color space. ```sh /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int \ -i VIDEO.mp4 \ -y -fps_mode vfr -frames:v 1 -update 1 -v verbose \ -vf "fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse" \ video-preview.jpeg ``` 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?)
Author
Owner

@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

C:\Users\mix19\Desktop\video>D:\Torrents\jellyfin-ffmpeg_7.1.1-7_portable_win64-clang-gpl\ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i SL_MO_VID_20250408_125556.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse SL_MO_VID_20250408_125556-preview.jpeg
ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
  built with clang version 20.1.7
  configuration: --cc=clang --pkg-config-flags=--static --extra-cflags=-I/clang64/ffbuild/include --extra-ldflags=-L/clang64/ffbuild/lib --prefix=/clang64/ffbuild/jellyfin-ffmpeg --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --enable-lto=thin --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      59. 39.100 / 59. 39.100
  libavcodec     61. 19.101 / 61. 19.101
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample   5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
[h264 @ 0000023f790c67c0] Reinit context to 1920x1088, pix_fmt: yuvj420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SL_MO_VID_20250408_125556.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2025-04-08T10:55:56.000000Z
    location        : +27.7326+034.1885/
    location-eng    : +27.7326+034.1885/
    com.android.version: 15
    com.android.capture.fps: 120.000000
  Duration: 00:00:00.84, start: 0.000000, bitrate: 52495 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1920x1080, 49033 kb/s, 120.11 fps, 120 tbr, 90k tbn (default)
      Metadata:
        creation_time   : 2025-04-08T10:55:56.000000Z
        handler_name    : VideoHandle
        vendor_id       : [0][0][0][0]
      Side data:
        displaymatrix: rotation of -90.00 degrees
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 97 kb/s (default)
      Metadata:
        creation_time   : 2025-04-08T10:55:56.000000Z
        handler_name    : SoundHandle
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 0000023f790a7780] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0000023f7917eac0] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0000023f7ade9b80] batch size: 12 frames
[Parsed_fps_0 @ 0000023f7ade9c80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0000023f7917eac0] Starting thread...
[vf#0:0 @ 0000023f7909a7c0] Starting thread...
[vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0000023f7ac5d400] Reinit context to 1920x1088, pix_fmt: yuvj420p
[Parsed_thumbnail_1 @ 0000023f79159b00] batch size: 12 frames
[graph -1 input from stream 0:0 @ 0000023f79159000] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] EOF while reading input
[graph -1 input from stream 0:0 @ 0000023f79159000] Invalid color space
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Decoder thread received EOF packet
[Parsed_fps_0 @ 0000023f79159900] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Decoder returned EOF, finishing
[vf#0:0 @ 0000023f7909a7c0] Error reinitializing filters!
[vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Terminating thread with return code 0 (success)
[vf#0:0 @ 0000023f7909a7c0] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0000023f7909a7c0] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0000023f7917eac0] Encoder thread received EOF
[vost#0:0/mjpeg @ 0000023f7917eac0] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0000023f7917eac0] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0000023f7917eac0] Terminating thread with return code -22 (Invalid argument)
[out#0/image2 @ 0000023f790a7780] 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 @ 0000023f7908cac0] Input file #0 (SL_MO_VID_20250408_125556.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0]   Input stream #0:0 (video): 100 packets read (5103208 bytes); 1 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0]   Total: 100 packets (5103208 bytes) demuxed
[AVIOContext @ 0000023f790bc580] Statistics: 5146089 bytes read, 1 seeks
Conversion failed!

The command completed successfully: Jellyfin-ffmpeg: 7.0.2-9

C:\Users\mix19\Desktop\video>D:\Torrents\jellyfin-ffmpeg_7.0.2-9_portable_win64-clang-gpl\ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i SL_MO_VID_20250408_125556.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse SL_MO_VID_20250408_125556-preview.jpeg
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with clang version 19.1.7
  configuration: --cc=clang --pkg-config-flags=--static --extra-cflags=-I/clang64/ffbuild/include --extra-ldflags=-L/clang64/ffbuild/lib --prefix=/clang64/ffbuild/jellyfin-ffmpeg --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --enable-lto=thin --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-d3d12va --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
[h264 @ 000001a289e83ac0] Reinit context to 1920x1088, pix_fmt: yuvj420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SL_MO_VID_20250408_125556.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2025-04-08T10:55:56.000000Z
    location        : +27.7326+034.1885/
    location-eng    : +27.7326+034.1885/
    com.android.version: 15
    com.android.capture.fps: 120.000000
  Duration: 00:00:00.84, start: 0.000000, bitrate: 52495 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1920x1080, 49033 kb/s, 120.11 fps, 120 tbr, 90k tbn (default)
      Metadata:
        creation_time   : 2025-04-08T10:55:56.000000Z
        handler_name    : VideoHandle
        vendor_id       : [0][0][0][0]
      Side data:
        displaymatrix: rotation of -90.00 degrees
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 97 kb/s (default)
      Metadata:
        creation_time   : 2025-04-08T10:55:56.000000Z
        handler_name    : SoundHandle
        vendor_id       : [0][0][0][0]
[out#0/image2 @ 000001a289e65080] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 000001a289ec8880] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 000001a28bc5ec00] batch size: 12 frames
[Parsed_fps_0 @ 000001a28bc5ed00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 000001a289ec8880] Starting thread...
[vf#0:0 @ 000001a289e59d80] Starting thread...
[vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 000001a289e7a3c0] Reinit context to 1920x1088, pix_fmt: yuvj420p
[Parsed_thumbnail_1 @ 000001a289e75000] batch size: 12 frames
[graph 0 input from stream 0:0 @ 000001a289e74b00] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] EOF while reading input
[transpose @ 000001a289e75100] w:1920 h:1080 dir:1 -> w:1080 h:1920 rotation:clockwise vflip:0
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Decoder thread received EOF packet
[Parsed_fps_0 @ 000001a289e74400] Set first pts to (in:0 out:0) from start time 0.000000
[Parsed_fps_0 @ 000001a289e74400] fps=12/1
[vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Decoder returned EOF, finishing
[graph 0 input from stream 0:0 @ 000001a289e74b00] video frame properties congruent with link at pts_time: 0.0084
[vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Terminating thread with return code 0 (success)
[Parsed_thumbnail_1 @ 000001a289e75000] frame id #0 (pts_time=0.000000) selected from a set of 1 images
Output #0, image2, to 'SL_MO_VID_20250408_125556-preview.jpeg':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    com.android.capture.fps: 120.000000
    location        : +27.7326+034.1885/
    location-eng    : +27.7326+034.1885/
    com.android.version: 15
    encoder         : Lavf61.1.100
  Stream #0:0(eng): Video: mjpeg, 1 reference frame, yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1080x1920, q=2-31, 200 kb/s, 12 fps, 12 tbn (default)
      Metadata:
        creation_time   : 2025-04-08T10:55:56.000000Z
        handler_name    : VideoHandle
        vendor_id       : [0][0][0][0]
        encoder         : Lavc61.3.100 mjpeg
      Side data:
        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
        displaymatrix: rotation of -0.00 degrees
[out#0/image2 @ 000001a289e65080] Starting thread...
[vf#0:0 @ 000001a289e59d80] All consumers returned EOF
[Parsed_fps_0 @ 000001a289e74400] 1 frames in, 1 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 000001a289e59d80] Terminating thread with return code 0 (success)
[vost#0:0/mjpeg @ 000001a289ec8880] Encoder thread received EOF
[AVIOContext @ 000001a289e9d880] Statistics: 141879 bytes written, 0 seeks, 1 writeouts
[vost#0:0/mjpeg @ 000001a289ec8880] Terminating thread with return code 0 (success)
[out#0/image2 @ 000001a289e65080] All streams finished
[out#0/image2 @ 000001a289e65080] Terminating thread with return code 0 (success)
[out#0/image2 @ 000001a289e65080] Output file #0 (SL_MO_VID_20250408_125556-preview.jpeg):
[out#0/image2 @ 000001a289e65080]   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (141879 bytes);
[out#0/image2 @ 000001a289e65080]   Total: 1 packets (141879 bytes) muxed
[out#0/image2 @ 000001a289e65080] video:139KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
frame=    1 fps=0.0 q=6.3 Lsize=N/A time=00:00:00.08 bitrate=N/A speed=0.883x
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Input file #0 (SL_MO_VID_20250408_125556.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40]   Input stream #0:0 (video): 100 packets read (5103208 bytes); 1 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40]   Total: 100 packets (5103208 bytes) demuxed
[AVIOContext @ 000001a289e7ad00] Statistics: 5146089 bytes read, 1 seeks
@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** ```plain C:\Users\mix19\Desktop\video>D:\Torrents\jellyfin-ffmpeg_7.1.1-7_portable_win64-clang-gpl\ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i SL_MO_VID_20250408_125556.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse SL_MO_VID_20250408_125556-preview.jpeg ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers built with clang version 20.1.7 configuration: --cc=clang --pkg-config-flags=--static --extra-cflags=-I/clang64/ffbuild/include --extra-ldflags=-L/clang64/ffbuild/lib --prefix=/clang64/ffbuild/jellyfin-ffmpeg --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --enable-lto=thin --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 libpostproc 58. 3.100 / 58. 3.100 [h264 @ 0000023f790c67c0] Reinit context to 1920x1088, pix_fmt: yuvj420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SL_MO_VID_20250408_125556.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2025-04-08T10:55:56.000000Z location : +27.7326+034.1885/ location-eng : +27.7326+034.1885/ com.android.version: 15 com.android.capture.fps: 120.000000 Duration: 00:00:00.84, start: 0.000000, bitrate: 52495 kb/s Stream #0:0[0x1](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1920x1080, 49033 kb/s, 120.11 fps, 120 tbr, 90k tbn (default) Metadata: creation_time : 2025-04-08T10:55:56.000000Z handler_name : VideoHandle vendor_id : [0][0][0][0] Side data: displaymatrix: rotation of -90.00 degrees Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 97 kb/s (default) Metadata: creation_time : 2025-04-08T10:55:56.000000Z handler_name : SoundHandle vendor_id : [0][0][0][0] [out#0/image2 @ 0000023f790a7780] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0000023f7917eac0] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0000023f7ade9b80] batch size: 12 frames [Parsed_fps_0 @ 0000023f7ade9c80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0000023f7917eac0] Starting thread... [vf#0:0 @ 0000023f7909a7c0] Starting thread... [vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Starting thread... Press [q] to stop, [?] for help [h264 @ 0000023f7ac5d400] Reinit context to 1920x1088, pix_fmt: yuvj420p [Parsed_thumbnail_1 @ 0000023f79159b00] batch size: 12 frames [graph -1 input from stream 0:0 @ 0000023f79159000] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] EOF while reading input [graph -1 input from stream 0:0 @ 0000023f79159000] Invalid color space [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Decoder thread received EOF packet [Parsed_fps_0 @ 0000023f79159900] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Decoder returned EOF, finishing [vf#0:0 @ 0000023f7909a7c0] Error reinitializing filters! [vist#0:0/h264 @ 0000023f790b4cc0] [dec:h264 @ 0000023f7abd2d80] Terminating thread with return code 0 (success) [vf#0:0 @ 0000023f7909a7c0] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0000023f7909a7c0] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0000023f7917eac0] Encoder thread received EOF [vost#0:0/mjpeg @ 0000023f7917eac0] Could not open encoder before EOF [vost#0:0/mjpeg @ 0000023f7917eac0] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0000023f7917eac0] Terminating thread with return code -22 (Invalid argument) [out#0/image2 @ 0000023f790a7780] 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 @ 0000023f7908cac0] Input file #0 (SL_MO_VID_20250408_125556.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Input stream #0:0 (video): 100 packets read (5103208 bytes); 1 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0000023f7908cac0] Total: 100 packets (5103208 bytes) demuxed [AVIOContext @ 0000023f790bc580] Statistics: 5146089 bytes read, 1 seeks Conversion failed! ``` **The command completed successfully: Jellyfin-ffmpeg: 7.0.2-9** ```plain C:\Users\mix19\Desktop\video>D:\Torrents\jellyfin-ffmpeg_7.0.2-9_portable_win64-clang-gpl\ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i SL_MO_VID_20250408_125556.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse SL_MO_VID_20250408_125556-preview.jpeg ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers built with clang version 19.1.7 configuration: --cc=clang --pkg-config-flags=--static --extra-cflags=-I/clang64/ffbuild/include --extra-ldflags=-L/clang64/ffbuild/lib --prefix=/clang64/ffbuild/jellyfin-ffmpeg --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --enable-lto=thin --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-d3d12va --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 [h264 @ 000001a289e83ac0] Reinit context to 1920x1088, pix_fmt: yuvj420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SL_MO_VID_20250408_125556.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2025-04-08T10:55:56.000000Z location : +27.7326+034.1885/ location-eng : +27.7326+034.1885/ com.android.version: 15 com.android.capture.fps: 120.000000 Duration: 00:00:00.84, start: 0.000000, bitrate: 52495 kb/s Stream #0:0[0x1](eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1920x1080, 49033 kb/s, 120.11 fps, 120 tbr, 90k tbn (default) Metadata: creation_time : 2025-04-08T10:55:56.000000Z handler_name : VideoHandle vendor_id : [0][0][0][0] Side data: displaymatrix: rotation of -90.00 degrees Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 97 kb/s (default) Metadata: creation_time : 2025-04-08T10:55:56.000000Z handler_name : SoundHandle vendor_id : [0][0][0][0] [out#0/image2 @ 000001a289e65080] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 000001a289ec8880] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 000001a28bc5ec00] batch size: 12 frames [Parsed_fps_0 @ 000001a28bc5ed00] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 000001a289ec8880] Starting thread... [vf#0:0 @ 000001a289e59d80] Starting thread... [vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Starting thread... Press [q] to stop, [?] for help [h264 @ 000001a289e7a3c0] Reinit context to 1920x1088, pix_fmt: yuvj420p [Parsed_thumbnail_1 @ 000001a289e75000] batch size: 12 frames [graph 0 input from stream 0:0 @ 000001a289e74b00] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] EOF while reading input [transpose @ 000001a289e75100] w:1920 h:1080 dir:1 -> w:1080 h:1920 rotation:clockwise vflip:0 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Decoder thread received EOF packet [Parsed_fps_0 @ 000001a289e74400] Set first pts to (in:0 out:0) from start time 0.000000 [Parsed_fps_0 @ 000001a289e74400] fps=12/1 [vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Decoder returned EOF, finishing [graph 0 input from stream 0:0 @ 000001a289e74b00] video frame properties congruent with link at pts_time: 0.0084 [vist#0:0/h264 @ 000001a289e84d00] [dec:h264 @ 000001a28bb097c0] Terminating thread with return code 0 (success) [Parsed_thumbnail_1 @ 000001a289e75000] frame id #0 (pts_time=0.000000) selected from a set of 1 images Output #0, image2, to 'SL_MO_VID_20250408_125556-preview.jpeg': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 com.android.capture.fps: 120.000000 location : +27.7326+034.1885/ location-eng : +27.7326+034.1885/ com.android.version: 15 encoder : Lavf61.1.100 Stream #0:0(eng): Video: mjpeg, 1 reference frame, yuvj420p(pc, reserved/reserved/smpte170m, progressive, left), 1080x1920, q=2-31, 200 kb/s, 12 fps, 12 tbn (default) Metadata: creation_time : 2025-04-08T10:55:56.000000Z handler_name : VideoHandle vendor_id : [0][0][0][0] encoder : Lavc61.3.100 mjpeg Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A displaymatrix: rotation of -0.00 degrees [out#0/image2 @ 000001a289e65080] Starting thread... [vf#0:0 @ 000001a289e59d80] All consumers returned EOF [Parsed_fps_0 @ 000001a289e74400] 1 frames in, 1 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 000001a289e59d80] Terminating thread with return code 0 (success) [vost#0:0/mjpeg @ 000001a289ec8880] Encoder thread received EOF [AVIOContext @ 000001a289e9d880] Statistics: 141879 bytes written, 0 seeks, 1 writeouts [vost#0:0/mjpeg @ 000001a289ec8880] Terminating thread with return code 0 (success) [out#0/image2 @ 000001a289e65080] All streams finished [out#0/image2 @ 000001a289e65080] Terminating thread with return code 0 (success) [out#0/image2 @ 000001a289e65080] Output file #0 (SL_MO_VID_20250408_125556-preview.jpeg): [out#0/image2 @ 000001a289e65080] Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (141879 bytes); [out#0/image2 @ 000001a289e65080] Total: 1 packets (141879 bytes) muxed [out#0/image2 @ 000001a289e65080] video:139KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown frame= 1 fps=0.0 q=6.3 Lsize=N/A time=00:00:00.08 bitrate=N/A speed=0.883x [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Input file #0 (SL_MO_VID_20250408_125556.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Input stream #0:0 (video): 100 packets read (5103208 bytes); 1 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 000001a289e6fe40] Total: 100 packets (5103208 bytes) demuxed [AVIOContext @ 000001a289e7ad00] Statistics: 5146089 bytes read, 1 seeks ```
Author
Owner

@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.

@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.
Author
Owner

@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:

Stream #0:1[0x2](eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, reserved/reserved/smpte170m), 3840x2160, 32115 kb/s, 59.79 fps, 58 tbr, 90k tbn (default)
@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: ``` Stream #0:1[0x2](eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, reserved/reserved/smpte170m), 3840x2160, 32115 kb/s, 59.79 fps, 58 tbr, 90k tbn (default) ```
Author
Owner

@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.

  • Thumbnails for older videos (uploaded before the update) are visible on both web and mobile.
  • Thumbnails for newly uploaded videos (recorded from phones) fail to generate.
  • Hover preview works in the web UI, but static thumbnails (.jpeg) are missing.
  • Photos are unaffected.

Environment

  • Server: Ubuntu 22.04, Docker, Immich v1.140.1
  • Client: Android app v1.137.2 build.3002
  • NAS: Mini PC (Ryzen 7, 16GB RAM)
  • Browser: Chrome (same problem also in the Android app)

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:

  • Thumbnail fails to generate.
  • Error appears in logs (ffmpeg exited with code 234).
  • Previews still work on hover.

Notes:

  • Tried both H.265 (HEVC) and H.264 on phone → same error.
  • Tried re-uploading an older video (same phone) that previously had thumbnails → now also fails to generate.
  • Videos recorded on a different device (try with my Sony camera) generate thumbnails fine.

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

  • Issue seems related to how ffmpeg in the Immich container handles videos recorded on some phones (color space reserved/pc and rotation metadata).
  • Not caused by permissions or storage (confirmed).
  • Reproducible across multiple devices (two Honor phones).
  • Likely regression introduced between Immich versions (older videos that had thumbnails no longer regenerate).

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

  • Server
  • Web
  • Mobile

Device make and model

Honor Magic 6/7 Pro

The solution gived by @skatsubo worked for me, now the thumbnails generate for the 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. - Thumbnails for older videos (uploaded before the update) are visible on both web and mobile. - Thumbnails for newly uploaded videos (recorded from phones) fail to generate. - Hover preview works in the web UI, but static thumbnails (.jpeg) are missing. - Photos are unaffected. **Environment** - Server: Ubuntu 22.04, Docker, Immich v1.140.1 - Client: Android app v1.137.2 build.3002 - NAS: Mini PC (Ryzen 7, 16GB RAM) - Browser: Chrome (same problem also in the Android app) **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:** - Thumbnail fails to generate. - Error appears in logs (ffmpeg exited with code 234). - Previews still work on hover. **Notes:** - Tried both H.265 (HEVC) and H.264 on phone → same error. - Tried re-uploading an older video (same phone) that previously had thumbnails → now also fails to generate. - Videos recorded on a different device (try with my Sony camera) generate thumbnails fine. **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** - Issue seems related to how ffmpeg in the Immich container handles videos recorded on some phones (color space reserved/pc and rotation metadata). - Not caused by permissions or storage (confirmed). - Reproducible across multiple devices (two Honor phones). - Likely regression introduced between Immich versions (older videos that had thumbnails no longer regenerate). ### 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 - [x] Server - [x] Web - [x] Mobile ### Device make and model Honor Magic 6/7 Pro The solution gived by @skatsubo worked for me, now the thumbnails generate for the video
Author
Owner

@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:

  1. Invalid color space or Invalid color range
  2. Cannot 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:

[graph -1 input from stream 0:0] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc
[graph -1 input from stream 0:0] Invalid color space
[Parsed_fps_0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated
[vf#0:0] Task finished with error code: -22 (Invalid argument)
[in#0/mov,mp4,m4a,3gp,3g2,mj2] Input file #0 (SL_MO_VID_20250408_125556.mp4)
ERROR [Microservices:{"id":"dce2a8f8-a9cc-4c69-93bf-d14e1170a86a"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 234: Conversion failed!

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:

[Parsed_fps_0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated
[vost#0:0/libwebp_anim] Task finished with error code: -12 (Cannot allocate memory)
[in#0/mov,mp4,m4a,3gp,3g2,mj2] Input file #0 (/data/upload/cdd1241e-10cb-4632-b1ea-64af1ca7c182/06/13/0613c88f-6943-4eac-a9a6-be83134c2040.mov)
ERROR [Microservices:{"id":"f9080f7b-0d8c-448e-99a6-4c0d4dcd6958"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed!

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.

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'
# Updated command compatible with Immich v1.142+ (based on Debian 13 Trixie)
docker exec --user root -i immich_server sh -c 'VER=7.0.2-9; PORTABLE_ARCH=$(dpkg --print-architecture | sed "s/amd//"); 
  PORTABLE_URL="https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${VER}/jellyfin-ffmpeg_${VER}_portable_linux${PORTABLE_ARCH}-gpl.tar.xz"; 
  apt-get update && apt-get install -y xz-utils; 
  curl -Lo /tmp/ffmpeg.tar.xz "$PORTABLE_URL" && tar xf /tmp/ffmpeg.tar.xz -C /usr/bin; 
  ffmpeg 2>&1 | head -n2'

Cannot allocate memory: relax thumbnail generation to process all frames, not only I-frames.

docker exec --user root immich_server sed -i "s/'-skip_frame nointra', //" /usr/src/app/server/dist/utils/media.js
docker restart immich_server

UPD. Samples

samples-no-i-frame.zip
Cannot allocate memory, errors -12 / 244 due to missing I-frames:

@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: 1. `Invalid color space` or `Invalid color range` 2. `Cannot 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: ```sh [graph -1 input from stream 0:0] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 fr:120/1 sar:0/1 csp:reserved range:pc [graph -1 input from stream 0:0] Invalid color space [Parsed_fps_0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated [vf#0:0] Task finished with error code: -22 (Invalid argument) [in#0/mov,mp4,m4a,3gp,3g2,mj2] Input file #0 (SL_MO_VID_20250408_125556.mp4) ERROR [Microservices:{"id":"dce2a8f8-a9cc-4c69-93bf-d14e1170a86a"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 234: Conversion failed! ``` ### 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: ```sh [Parsed_fps_0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated [vost#0:0/libwebp_anim] Task finished with error code: -12 (Cannot allocate memory) [in#0/mov,mp4,m4a,3gp,3g2,mj2] Input file #0 (/data/upload/cdd1241e-10cb-4632-b1ea-64af1ca7c182/06/13/0613c88f-6943-4eac-a9a6-be83134c2040.mov) ERROR [Microservices:{"id":"f9080f7b-0d8c-448e-99a6-4c0d4dcd6958"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed! ``` ### 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. ```sh 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' ``` ```sh # Updated command compatible with Immich v1.142+ (based on Debian 13 Trixie) docker exec --user root -i immich_server sh -c 'VER=7.0.2-9; PORTABLE_ARCH=$(dpkg --print-architecture | sed "s/amd//"); PORTABLE_URL="https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${VER}/jellyfin-ffmpeg_${VER}_portable_linux${PORTABLE_ARCH}-gpl.tar.xz"; apt-get update && apt-get install -y xz-utils; curl -Lo /tmp/ffmpeg.tar.xz "$PORTABLE_URL" && tar xf /tmp/ffmpeg.tar.xz -C /usr/bin; ffmpeg 2>&1 | head -n2' ``` **Cannot allocate memory:** relax thumbnail generation to process all frames, not only I-frames. ```sh docker exec --user root immich_server sed -i "s/'-skip_frame nointra', //" /usr/src/app/server/dist/utils/media.js docker restart immich_server ``` --- ### UPD. Samples [samples-no-i-frame.zip](https://github.com/user-attachments/files/22248693/samples-no-i-frame.zip) **Cannot allocate memory, errors -12 / 244** due to missing I-frames: - `E2EFC5AC-2A50-4C66-B211-22C81875916F.MOV` real meme video from [Discord: videos don't playback at all, trancoding issues](https://discord.com/channels/979116623879368755/1405765593109500064/1414772759837540393) - `no_i_frame.mov` - a synthetic generated video, I-frames removed
Author
Owner

@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:

Cannot read properties of undefined (reading 'replaceAll')

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.

@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: ``` Cannot read properties of undefined (reading 'replaceAll') ``` 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.
Author
Owner

@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.

root@NikonHome:/volume1/docker/dockge/stacks/immich# 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'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 41.1M  100 41.1M    0     0   9.7M      0  0:00:04  0:00:04 --:--:-- 11.0M
(Reading database ... 11379 files and directories currently installed.)
Preparing to unpack /tmp/ffmpeg.deb ...
Unpacking jellyfin-ffmpeg7 (7.0.2-9-bookworm) over (7.0.2-9-bookworm) ...
dpkg: dependency problems prevent configuration of jellyfin-ffmpeg7:
 jellyfin-ffmpeg7 depends on libllvm16; however:
  Package libllvm16 is not installed.
 jellyfin-ffmpeg7 depends on libtheora0 (>= 1.0); however:
  Package libtheora0 is not installed.
 jellyfin-ffmpeg7 depends on libvpx7 (>= 1.12.0); however:
  Package libvpx7 is not installed.
 jellyfin-ffmpeg7 depends on libx265-199 (>= 3.5); however:
  Package libx265-199 is not installed.
 jellyfin-ffmpeg7 depends on libxcb-dri2-0 (>= 1.8); however:
  Package libxcb-dri2-0 is not installed.

dpkg: error processing package jellyfin-ffmpeg7 (--install):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.41-12) ...
Errors were encountered while processing:
 jellyfin-ffmpeg7
@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. ``` root@NikonHome:/volume1/docker/dockge/stacks/immich# 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' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 41.1M 100 41.1M 0 0 9.7M 0 0:00:04 0:00:04 --:--:-- 11.0M (Reading database ... 11379 files and directories currently installed.) Preparing to unpack /tmp/ffmpeg.deb ... Unpacking jellyfin-ffmpeg7 (7.0.2-9-bookworm) over (7.0.2-9-bookworm) ... dpkg: dependency problems prevent configuration of jellyfin-ffmpeg7: jellyfin-ffmpeg7 depends on libllvm16; however: Package libllvm16 is not installed. jellyfin-ffmpeg7 depends on libtheora0 (>= 1.0); however: Package libtheora0 is not installed. jellyfin-ffmpeg7 depends on libvpx7 (>= 1.12.0); however: Package libvpx7 is not installed. jellyfin-ffmpeg7 depends on libx265-199 (>= 3.5); however: Package libx265-199 is not installed. jellyfin-ffmpeg7 depends on libxcb-dri2-0 (>= 1.8); however: Package libxcb-dri2-0 is not installed. dpkg: error processing package jellyfin-ffmpeg7 (--install): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.41-12) ... Errors were encountered while processing: jellyfin-ffmpeg7 ```
Author
Owner

@skatsubo commented on GitHub (Sep 20, 2025):

@simon100500

Will this bug be fixed in future versions of immich?

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.

The command suggested above doesn't work.

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.

@skatsubo commented on GitHub (Sep 20, 2025): @simon100500 > Will this bug be fixed in future versions of immich? 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. > The command suggested above doesn't work. 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.
Author
Owner

@simon100500 commented on GitHub (Sep 21, 2025):

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

Works fine! Thanks!

@simon100500 commented on GitHub (Sep 21, 2025): > 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). Works fine! Thanks!
Sign in to join this conversation.
No milestone
No project
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
No description provided.