mirror of
https://github.com/KevinMidboe/immich.git
synced 2025-10-29 17:40:28 +00:00
* refactored `getFfmpegOptions` refactor transcoding, make separate service * fixed enum casing * use `Logger` instead of `console.log` * review suggestions * use enum for `getHandler` * fixed formatting * Update server/src/domain/media/media.util.ts Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> * Update server/src/domain/media/media.util.ts Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> * More specific imports, renamed codec classes * simplified code * removed unused import * added tests * added base implementation for bitrate and threads --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
44 lines
1011 B
TypeScript
44 lines
1011 B
TypeScript
import { AudioCodec, TranscodePolicy, VideoCodec } from '@app/infra/entities';
|
|
import { ApiProperty } from '@nestjs/swagger';
|
|
import { Type } from 'class-transformer';
|
|
import { IsBoolean, IsEnum, IsInt, IsString, Max, Min } from 'class-validator';
|
|
|
|
export class SystemConfigFFmpegDto {
|
|
@IsInt()
|
|
@Min(0)
|
|
@Max(51)
|
|
@Type(() => Number)
|
|
@ApiProperty({ type: 'integer' })
|
|
crf!: number;
|
|
|
|
@IsInt()
|
|
@Min(0)
|
|
@Type(() => Number)
|
|
@ApiProperty({ type: 'integer' })
|
|
threads!: number;
|
|
|
|
@IsString()
|
|
preset!: string;
|
|
|
|
@IsEnum(VideoCodec)
|
|
@ApiProperty({ enumName: 'VideoCodec', enum: VideoCodec })
|
|
targetVideoCodec!: VideoCodec;
|
|
|
|
@IsEnum(AudioCodec)
|
|
@ApiProperty({ enumName: 'AudioCodec', enum: AudioCodec })
|
|
targetAudioCodec!: AudioCodec;
|
|
|
|
@IsString()
|
|
targetResolution!: string;
|
|
|
|
@IsString()
|
|
maxBitrate!: string;
|
|
|
|
@IsBoolean()
|
|
twoPass!: boolean;
|
|
|
|
@IsEnum(TranscodePolicy)
|
|
@ApiProperty({ enumName: 'TranscodePolicy', enum: TranscodePolicy })
|
|
transcode!: TranscodePolicy;
|
|
}
|