How to exclude specific videos from being transcoded?
For some videos I would prefer no transcoding at all as they are quite large. Are there some kind of exclusion patterns for video transcoding or another trick to achieve this?
docker compose logs docsdocker ps -a docsfdisk -l and df -h)./close command, and re-open it later if needed._large in file names. It adds custom "if - then" that checks file path.handleVideoConversion in sources https://github.com/immich-app/immich/blob/f15376a107f5cab7acca9ad8968afa6a0f9caaf2/server/src/services/media.service.ts#L466-L472docker compose down immich-server or re-run the patch with different speed value, e.g. 1._largehandleVideoConversionLOG [Microservices:MediaService] Skipping asset from transcoding (custom patch): 548a1f1f-149b-459e-8ffd-25d58dde4746 /data/library/admin/2025/2025-08/VID_20250823_131435_large.mp4docker compose down immich-server# patch
docker exec --user root immich_server sed -i '/const input = asset.originalPath/a\ if (input.includes("_large")) { this.logger.log(`Skipping asset from transcoding (custom patch): ${asset.id} ${input}`); return enum_1.JobStatus.Skipped; }' server/dist/services/media.service.js
# verify
docker exec immich_server grep -A1 -B1 'custom patch' server/dist/services/media.service.js
# restart container to apply
docker restart immich_server async handleVideoConversion({ id }: JobOf<JobName.AssetEncodeVideo>): Promise<JobStatus> {
const asset = await this.assetJobRepository.getForVideoConversion(id);
if (!asset) {
return JobStatus.Failed;
}
const input = asset.originalPath;docker exec immich_server sh -c ' SPEED=3.1416
PATTERN="minFov:15"
JS=$(grep -l "$PATTERN" /build/www/_app/immutable/chunks/*.js)
sed -i "s/$PATTERN/moveSpeed:$SPEED,$PATTERN/" "$JS"
grep -Eo "moveSpeed:.{50}" "$JS"
rm "$JS.br" "$JS.gz" '
docker restart immich_server