immich
immich copied to clipboard
[BUG] Watching DolbyVision video in mobile immich app on iphone 12 pro max
The bug
Videos shot on iphone 12 pro max in dolby vision mode do not play correctly in the mobile immich app. All such videos are played with low contrast and color saturation, there is no DV support in the player. Because of this, the entire library of my videos is displayed incorrectly.
The OS that Immich Server is running on
Debian
Version of Immich Server
v1.63.0
Version of Immich Mobile App
v1.62.0
Platform with the issue
- [ ] Server
- [ ] Web
- [X] Mobile
Your docker-compose.yml content
version: "3.8"
services:
��immich-server:
����container_name: immich_server
����image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
����command: ["start-server.sh"]
����volumes:
������- ${UPLOAD_LOCATION}:/usr/src/app/upload
����env_file:
������- .env
����depends_on:
������- redis
������- database
������- typesense
����restart: always
��immich-microservices:
����container_name: immich_microservices
����image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
����command: ["start-microservices.sh"]
����volumes:
������- ${UPLOAD_LOCATION}:/usr/src/app/upload
����env_file:
������- .env
����depends_on:
������- redis
������- database
������- typesense
����restart: always
��immich-machine-learning:
����container_name: immich_machine_learning
����image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
����volumes:
������- ${UPLOAD_LOCATION}:/usr/src/app/upload
������- model-cache:/cache
����env_file:
������- .env
����restart: always
��immich-web:
����container_name: immich_web
����image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
����env_file:
������- .env
����restart: always
��typesense:
����container_name: immich_typesense
����image: typesense/typesense:0.24.0
����environment:
������- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
������- TYPESENSE_DATA_DIR=/data
����logging:
������driver: none
����volumes:
������- tsdata:/data
����restart: always
��redis:
����container_name: immich_redis
����image: redis:6.2
����restart: always
��database:
����container_name: immich_postgres
����image: postgres:14
����env_file:
������- .env
����environment:
������POSTGRES_PASSWORD: ${DB_PASSWORD}
������POSTGRES_USER: ${DB_USERNAME}
������POSTGRES_DB: ${DB_DATABASE_NAME}
������PG_DATA: /var/lib/postgresql/data
����volumes:
������- pgdata:/var/lib/postgresql/data
����restart: always
��immich-proxy:
����container_name: immich_proxy
����image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
����environment:
����� # Make sure these values get passed through from the env file
������- IMMICH_SERVER_URL
������- IMMICH_WEB_URL
����ports:
������- 80:8080
����depends_on:
������- immich-server
����restart: always
volumes:
��pgdata:
��model-cache:
��tsdata:
Your .env content
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=mypassword
DB_DATABASE_NAME=immich
REDIS_HOSTNAME=immich_redis
UPLOAD_LOCATION=/opt/immich/idata
TYPESENSE_API_KEY=<myapikey>
DISABLE_REVERSE_GEOCODING=false
REVERSE_GEOCODING_PRECISION=3
IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
Reproduction steps
1. synchronize DV video
2. play DV video in mobile immich app
Additional information
No response
This is a limitation of the player rather than an Immich bug and it appears to not have a fix for this until the video player library supports it.
Assuming the videos are transcoded, it's probably because video transcoding currently doesn't handle HDR and makes everything SDR. It would be good to add tone-mapping to preserve their color reproduction when going from HDR to SDR.
In the meantime, you can try disabling transcoding. I think the existing videos will still use the transcoded version, but new ones will use the original video instead.
As of the latest release, HDR videos are tone-mapped for compatibility.