Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playing a video inside immich (mobile app) after download still plays low-res preview #9217

Closed
1 of 3 tasks
almogtzabari opened this issue May 2, 2024 · 3 comments
Closed
1 of 3 tasks

Comments

@almogtzabari
Copy link

The bug

In Google Photos, if you open a video that is not stored locally on your device, it will play a low-resolution preview version. However, once you download it to your device (and close and re-open the video), it will play the original full-resolution version.

In contrast, when you download a video via Immich, it downloads it in full resolution (which is good). However, if you try to play it using the Immich app, it won’t play the full-resolution version; instead, it plays the same preview, low-res version that was played prior to downloading. This means that if you’d like to play the original full-res version, you will have to play it via the built-in Photos app (and not via Immich).

This issue is happening on iOS (did not check Android).

The OS that Immich Server is running on

Ubuntu 22.04

Version of Immich Server

1.103.1

Version of Immich Mobile App

1.103.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
      file: hwaccel.transcoding.yml
      service: nvenc # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: ['start.sh', 'microservices']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: always

  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}-cuda
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
      file: hwaccel.ml.yml
      service: cuda # 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:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always
  
  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local:14
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_CLUSTER: 'TRUE'
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      SCHEDULE: "@daily"
      POSTGRES_EXTRA_OPTS: '--clean --if-exists'
      BACKUP_DIR: /db_dumps
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database

volumes:
  model-cache:

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# 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=XXXXXXXXXXX

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=./postgres

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Play a video, preferably a 60FPS one in order to notice difference. It should play at lower-res / 30FPS.
2. Download the video.
3. Try to play the video again, and you'll still see the same lower-res / 30FPS version.
4. Play the video from the built-in Photos app and it will play the full-res / 60FPS version.

Relevant log output

No response

Additional information

No response

@almogtzabari almogtzabari changed the title Playing a video inside immich after download still plays low-res preview Playing a video inside immich (mobile app) after download still plays low-res preview May 2, 2024
@bo0tzz
Copy link
Member

bo0tzz commented May 2, 2024

When you download a video it just gets stored to your device, the Immich app does not keep track of it to use it for displaying after.

@bo0tzz bo0tzz closed this as completed May 2, 2024
@JW-CH
Copy link
Contributor

JW-CH commented May 2, 2024

@bo0tzz Should this be a feature-request? Seems odd that it will download it and still stream the lower res video.

@almogtzabari
Copy link
Author

almogtzabari commented May 2, 2024

@bo0tzz
After testing it on Android as well, it seems like my Android device (app version 1.103.1) is able to play my 4K60 videos even without downloading them locally (which is weird 🤔), whereas my iOS devices (app version 1.103.0) won't play it 4K60FPS even if I download (looks like 720@30). Does this difference make sense? Maybe there is a bug here after all?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants