1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-01 08:31:59 +00:00
immich/open-api/typescript-sdk
N00MKRAD f1ca1794a1
Add AV1 transcoding support (#8491)
* Add AV1 transcoding support

- AV1 encoding on CPU via SVT-AV1 (libsvtav1 in ffmpeg)
- Supports CRF and optionally capped CRF (max bitrate)
- Tested playback successfully in Chrome Win+Android, Firefox Win+Linux, Android app

* AV1: Add support for encoding threads option

* Revert previous commit; specifying params multiple times is bad

We need to specify all svtav1-params at once, so putting the thread option into getThreadOptions is not possible.

* AV1: Override VAAPI getSupportedCodecs as it does not yet support AV1 unlike nvenc, qsv, amf

* Change BaseHWConfig supported codecs to only H264/HEVC

Configs that support VP9 and/or AV1 need to override getSupportedCodecs()

* Set SVT-AV1 threads with svtav1-params, remove duplicate block in NVENCConfig

* AV1Config: Fix empty svtav1-params array being added to options

* add tests

* update api

* allow crf-based two-pass mode

* formatting

* suggest 35

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-04-11 05:26:27 +00:00
..
src Add AV1 transcoding support (#8491) 2024-04-11 05:26:27 +00:00
.npmignore chore: publish sdk on release (#7895) 2024-03-12 12:01:12 -04:00
package-lock.json fix(deps): update typescript-projects (#8651) 2024-04-09 21:08:37 +02:00
package.json Version v1.101.0 2024-04-05 02:39:51 +00:00
README.md chore: publish sdk on release (#7895) 2024-03-12 12:01:12 -04:00
tsconfig.json chore: publish sdk on release (#7895) 2024-03-12 12:01:12 -04:00

@immich/sdk

A TypeScript SDK for interfacing with the Immich API.

Install

npm i --save @immich/sdk

Usage

For a more detailed example, check out the @immich/cli.

import { defaults, getAllAlbums, getAllAssets, getMyUserInfo } from "@immich/sdk";

const API_KEY = "<API_KEY>"; // process.env.IMMICH_API_KEY

defaults.baseUrl = "https://demo.immich.app/api";
defaults.headers = { "x-api-key": API_KEY };

const user = await getMyUserInfo();
const assets = await getAllAssets({ take: 1000 });
const albums = await getAllAlbums({});

console.log({ user, assets, albums });