Sync every week.
Find a file
mrwogu f995056ac4 fix(server): normalize probePackets values to prevent int32 overflow
probePackets() accumulates raw ffprobe packet values in time_base units
without normalization. When time_base has a large denominator (e.g.
nanosecond 1/1e9 from IP cameras) or when PTS values use the MPEG-TS
absolute clock (~5.5e9 at 90kHz), the accumulated values overflow
int32 columns in asset_keyframe (totalDuration, pts, accDuration,
ownDuration), causing PostgresError during AssetExtractMetadata.

Two normalization strategies applied:
1. Subtract first PTS from all packets (handles MPEG-TS absolute PTS
   clock that starts at ~5.5e9 regardless of clip length)
2. Rescale all values when timeBase > 90000 (handles nanosecond
   time_base where any clip > 2.1s overflows int32)

The rescaled timeBase is returned in VideoPacketInfo and used for
asset_video.timeBase, preserving the fps ratio used by HLS.

Fixes #29600
2026-07-29 17:41:09 +02:00
.devcontainer chore(deps): update ghcr.io/devcontainers/features/docker-in-docker docker tag to v4 (#30094) 2026-07-21 16:05:54 +02:00
.github chore: skip release label validation on merge queue PRs (#30361) 2026-07-29 15:08:35 +00:00
.vscode chore(deps): update dependency eslint-plugin-unicorn to v70 - abandoned (#29684) 2026-07-20 23:47:14 -04:00
deployment chore(deps): update dependency opentofu to v1.12.4 (#28491) 2026-07-22 09:30:08 +00:00
design chore: update readme screenshot (#8182) 2024-03-22 04:31:36 +00:00
docker fix(deployment): matplotlib in rootless deployments (#30328) 2026-07-28 10:57:21 -04:00
docs fix: privacy policy link (#30344) 2026-07-28 21:12:10 -04:00
e2e chore(deps): update docker.io/valkey/valkey:9 docker digest to 3acc068 (#30298) 2026-07-28 12:25:37 +02:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
i18n chore(web): update translations (#29781) 2026-07-27 18:17:47 +00:00
machine-learning fix(deployment): matplotlib in rootless deployments (#30328) 2026-07-28 10:57:21 -04:00
misc/release feat: pump doc references (#29331) 2026-06-26 16:45:06 +00:00
mobile chore: remove old makefiles (#30339) 2026-07-28 13:49:26 -04:00
open-api fix: calendar heatmap api key permissions (#30314) 2026-07-28 12:16:59 +02:00
packages chore: version v3.1.0 2026-07-27 18:20:33 +00:00
readme_i18n feat(docs): add bulgarian readme (#29427) 2026-07-21 00:10:08 -04:00
server fix(server): normalize probePackets values to prevent int32 overflow 2026-07-29 17:41:09 +02:00
web chore: version v3.1.0 2026-07-27 18:20:33 +00:00
.dockerignore chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.editorconfig chore: linting (#7532) 2026-01-04 16:05:56 +00:00
.gitattributes chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.gitignore chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.gitmodules chore: remove stale mobile/.isar submodule entry (#27913) 2026-04-18 04:29:13 +05:30
.nvmrc chore: use mise (#28298) 2026-05-08 15:21:33 -04:00
.pnpmfile.cjs fix: exiftool-vendored.exe (#26393) 2026-02-20 09:16:42 -05:00
.prettierrc refactor: move i18n formatting to workspace root (#28360) 2026-05-11 16:19:28 -04:00
CODEOWNERS chore: add Adam to mobile's codeowner (#29816) 2026-07-10 15:10:52 -05:00
CONTRIBUTING.md feat: add spam rule to CONTRIBUTING.md genAI section (#30355) 2026-07-29 14:17:49 +00:00
install.sh fix: bash install.sh script for mac os (#15874) 2025-02-03 16:41:42 -06:00
LICENSE Change license to AGPLv3 (#7046) 2024-02-12 15:31:59 +00:00
mise.lock chore(mobile): harden mobile OpenAPI codegen and dependency install (#30202) 2026-07-27 06:07:31 -07:00
mise.toml chore(mobile): harden mobile OpenAPI codegen and dependency install (#30202) 2026-07-27 06:07:31 -07:00
package.json chore: version v3.1.0 2026-07-27 18:20:33 +00:00
pnpm-lock.yaml chore(deps): update dependency eslint-plugin-unicorn to v72 (#30092) 2026-07-21 15:33:46 +02:00
pnpm-workspace.yaml feat(web): undo archive from toast (#27061) 2026-07-16 17:53:02 +02:00
README.md feat(docs): add bulgarian readme (#29427) 2026-07-21 00:10:08 -04:00
renovate.json fix: let renovate update base images (#27272) 2026-03-25 18:00:40 +00:00


License: AGPLv3 Discord

High performance self-hosted photo and video management solution



Català Español Français Italiano 日本語 한국어 Deutsch Nederlands Türkçe 简体中文 正體中文 Українська Русский Български Português Brasileiro Svenska العربية Tiếng Việt ภาษาไทย മലയാളം

Warning

⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!

Note

You can find the main documentation, including installation guides, at https://immich.app/.

Demo

Access the demo here. For the mobile app, you can use https://demo.immich.app for the Server Endpoint URL.

Login credentials

Email Password
demo@immich.app demo

Features

Features Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Prevent duplication of assets Yes Yes
Selective album(s) for backup Yes N/A
Download photos and videos to local device Yes Yes
Multi-user support Yes Yes
Album and Shared albums Yes Yes
Scrubbable/draggable scrollbar Yes Yes
Support raw formats Yes Yes
Metadata view (EXIF, map) Yes Yes
Search by metadata, objects, faces, and CLIP Yes Yes
Administrative functions (user management) No Yes
Background backup Yes N/A
Virtual scroll Yes Yes
OAuth support Yes Yes
API Keys N/A Yes
LivePhoto/MotionPhoto backup and playback Yes Yes
Support 360 degree image display No Yes
User-defined storage structure Yes Yes
Public Sharing Yes Yes
Archive and Favorites Yes Yes
Global Map Yes Yes
Partner Sharing Yes Yes
Facial recognition and clustering Yes Yes
Memories (x years ago) Yes Yes
Offline support Yes No
Read-only gallery Yes Yes
Stacked Photos Yes Yes
Tags No Yes
Folder View Yes Yes

Translations

Read more about translations here.

Translation status

Repository activity

Activities

Star history

Star History Chart

Contributors