[BUG] Watching DolbyVision video in mobile immich app on iphone 12 pro max #991

Closed
opened 2026-02-04 23:48:50 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @ghost on GitHub (Jun 24, 2023).

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
  • 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

Originally created by @ghost on GitHub (Jun 24, 2023). ### 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 ```YAML 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 ```Shell 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 ```bash 1. synchronize DV video 2. play DV video in mobile immich app ``` ### Additional information _No response_
OVERLORD added the 📱mobile label 2026-02-04 23:48:50 +03:00
Author
Owner

@alextran1502 commented on GitHub (Jun 24, 2023):

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.

@alextran1502 commented on GitHub (Jun 24, 2023): 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.
Author
Owner

@mertalev commented on GitHub (Jun 24, 2023):

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.

@mertalev commented on GitHub (Jun 24, 2023): 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.
Author
Owner

@mertalev commented on GitHub (Aug 16, 2023):

As of the latest release, HDR videos are tone-mapped for compatibility.

@mertalev commented on GitHub (Aug 16, 2023): As of the latest release, HDR videos are tone-mapped for compatibility.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#991