immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
44.83k stars 2.18k forks source link

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

Closed x3mal777 closed 1 year ago

x3mal777 commented 1 year ago

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

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

alextran1502 commented 1 year ago

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.

mertalev commented 1 year ago

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 1 year ago

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