immich/web
Sergey Katsubo 4a384bca86
fix(server): opus handling as accepted audio codec in transcode policy (#26736)
* Fix opus handling as accepted audio codec in transcode policy

Fix the issue when opus is among accepted audio codecs in transcode policy
(which is default) but it still triggers transcoding because the codec name
from ffprobe (opus) does not match `libopus` literal in Immich.

Make a distinction between a codec name and encoder:
- codec name: switch to `opus` as the audio codec name. This matches what ffprobe
returns for a media file with opus audio.
- encoder: continue using the `libopus` encoder in ffmpeg.

* Add unit tests for accepted audio codecs and for libopus encoder

* Add db migration for ffmpeg.targetAudioCodec opus

* backward compatibility

* tweak

* noisy logs

* full mapping

* make check happy

* mark deprecated

* update api

* indexOf

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-03-07 13:08:42 -05:00
..
bin chore: build sdk while server is starting (#22083) 2025-09-16 12:48:31 -04:00
src fix(server): opus handling as accepted audio codec in transcode policy (#26736) 2026-03-07 13:08:42 -05:00
static chore: update PWA support (#26491) 2026-03-02 11:35:53 +00:00
tests chore(web): bump immich/ui for tooltips (#24632) 2026-01-05 19:51:03 +00:00
.browserslistrc chore: bump browserlists version and load tscompat browserlist from file (#19212) 2025-06-16 10:03:46 -05:00
.dockerignore feat(web)!: SPA (#5069) 2023-11-17 22:13:36 -06:00
.gitignore Add ablum feature to web (#352) 2022-07-15 23:18:17 -05:00
.npmrc Add web interface with admin functionality (#167) 2022-05-21 02:23:55 -05:00
.nvmrc chore(deps): update node.js to v24.13.1 (#26275) 2026-02-17 11:45:57 +01:00
.prettierignore chore(web): fix weblate conflicts (#10071) 2024-06-10 13:59:54 +01:00
.prettierrc chore(web): enable prettier json key sorting recursively (#10120) 2024-06-11 12:52:20 +01:00
eslint.config.js feat(web): wasm justified layout, sync edition (#23194) 2025-10-25 00:06:05 -05:00
mise.toml chore: update task commands in web/mise.toml to use pnpm (#26345) 2026-02-19 16:10:55 -05:00
package.json chore: vitest 4 for web, cli, and e2e (#26668) 2026-03-04 14:19:13 +00:00
README.md fix(web): Updated web README.md (#12899) 2024-09-25 12:59:35 +00:00
svelte.config.js chore: quiet down dotenv (#26245) 2026-02-15 22:25:18 -06:00
tsconfig.json refactor(web): Extract VirtualScrollManager base class from TimelineManager (#23017) 2025-10-17 17:37:54 +00:00
vite.config.ts chore: add vitest project names and fix server config root paths (#26684) 2026-03-04 08:20:43 -05:00

Immich web project

This project uses the SvelteKit web framework. Please refer to the SvelteKit docs for information on getting started as a contributor to this project. In particular, it will help you navigate the project's code if you understand the basics of SvelteKit routing.

When developing locally, you will run a SvelteKit Node.js server. When this project is deployed to production, it is built as a SPA and deployed as part of the server project.