You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When hardware transcoding is enabled (encoding, the decoding setting doesn't seem to make this better or worse), videos transcoded from an upload in portrait format appear with green/color stripe artifacts, while landscape formats do not. This only occurs with hardware encoding enabled on the rockchip platform. When disabling hardware encoding the issue is no longer present.
name: immichservices:
immich-server:
container_name: immich_serverimage: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}extends:
file: hwaccel.transcoding.ymlservice: rkmpp # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcodingvolumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- ./immich_config.json:/etc/immich_config.json
- /nvme/frigate/exports:/exportsenv_file:
- .envports:
- 2283:3001depends_on:
- redis
- databaserestart: unless-stoppeddeploy:
resources:
limits:
cpus: '2.0'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}-cudaimage: 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-accelerationfile: hwaccel.ml.ymlservice: armnn # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicablevolumes:
- model-cache:/cacheenv_file:
- .envrestart: unless-stoppeddeploy:
resources:
limits:
cpus: '2.0'redis:
container_name: immich_redisimage: docker.io/redis:6.2-alpine@sha256:d6c2911ac51b289db208767581a5d154544f2b2fe4914ea5056443f62dc6e900healthcheck:
test: redis-cli ping || exit 1restart: unless-stoppeddeploy:
resources:
limits:
cpus: '1.0'database:
container_name: immich_postgresimage: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}POSTGRES_USER: ${DB_USERNAME}POSTGRES_DB: ${DB_DATABASE_NAME}POSTGRES_INITDB_ARGS: '--data-checksums'volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/datahealthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1interval: 5mstart_interval: 30sstart_period: 5mcommand: ["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: unless-stoppeddeploy:
resources:
limits:
cpus: '2.0'volumes:
model-cache:
Your .env content
# The location where your uploaded files are stored
UPLOAD_LOCATION=/disks/external_usb
# The location where your database files are stored
DB_DATA_LOCATION=/nvme/immich/postgres
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=America/Los_Angeles
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=<REDACTED># The values below this line do not need to be changed###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
Reproduction steps
1. On rockchip platform, enable hardware encoding
2. Upload a video in portrait format (I'm using a pixel 6, resulting in a video uploaded in HVEC in either 1920x1080 or 1440x1080 depending on how it was initiated, both present with issues)3. Once transcoding is done, there are green-stripe artifacts in the web app view (the mobile app appears to correctly use the original, but I haven't tested in a low-bandwidth remote access scenario)
Note: A video in the same resolution in'landscape' format does not have this issue. I don't know why this is the case.
The bug
When hardware transcoding is enabled (encoding, the decoding setting doesn't seem to make this better or worse), videos transcoded from an upload in portrait format appear with green/color stripe artifacts, while landscape formats do not. This only occurs with hardware encoding enabled on the rockchip platform. When disabling hardware encoding the issue is no longer present.
With hardware transcoding:
Hardware transcoding disabled:
The OS that Immich Server is running on
Ubuntu 24.04 LTS (GNU/Linux 6.1.0-1014-rockchip aarch64)
Version of Immich Server
v1.107.0
Version of Immich Mobile App
1.107.0 buil.145
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Relevant log output
Additional information
ffmpeg commands with and without hardware encoding:
Without:
root 1950964 204 3.3 1103256 275352 ? SNl 10:06 0:06 /usr/bin/ffmpeg -i upload/upload/f7cecbb4-cf89-45d7-ba78-262c47c574f3/d9/64/d964c87c-76f2-436d-a8e6-d46a6f9bb10c.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map 0:2 -v verbose -vf scale=720:-2,format=yuv420p -preset medium -crf 23 upload/encoded-video/f7cecbb4-cf89-45d7-ba78-262c47c574f3/0e/22/0e225248-9912-4c35-9113-4db64f671ee8.mp4
With:
root 1951502 198 1.1 809368 97348 ? SNl 10:08 0:03 /usr/bin/ffmpeg -i upload/upload/f7cecbb4-cf89-45d7-ba78-262c47c574f3/d9/64/d964c87c-76f2-436d-a8e6-d46a6f9bb10c.mp4 -y -c:v h264_rkmpp -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map 0:2 -g 256 -v verbose -vf scale=720:-2,format=yuv420p -level 51 -rc_mode CQP -qp_init 23 upload/encoded-video/f7cecbb4-cf89-45d7-ba78-262c47c574f3/0e/22/0e225248-9912-4c35-9113-4db64f671ee8.mp4
The text was updated successfully, but these errors were encountered: