mirror of
https://github.com/immich-app/immich.git
synced 2024-12-25 10:43:13 +02:00
fix(server): h264 and hevc not respecting max bitrate (#3052)
* added `-bufsize` flag * updated test
This commit is contained in:
parent
615893be38
commit
b1fcf02d13
@ -396,6 +396,7 @@ describe(MediaService.name, () => {
|
||||
'-preset ultrafast',
|
||||
'-crf 23',
|
||||
'-maxrate 4500k',
|
||||
'-bufsize 9000k',
|
||||
],
|
||||
twoPass: false,
|
||||
},
|
||||
|
@ -284,7 +284,14 @@ export class MediaService {
|
||||
} else if (constrainMaximumBitrate || isVP9) {
|
||||
// for vp9, these flags work for both one-pass and two-pass
|
||||
options.push(`-crf ${ffmpeg.crf}`);
|
||||
options.push(`${isVP9 ? '-b:v' : '-maxrate'} ${maxBitrateValue}${bitrateUnit}`);
|
||||
if (isVP9) {
|
||||
options.push(`-b:v ${maxBitrateValue}${bitrateUnit}`);
|
||||
} else {
|
||||
options.push(`-maxrate ${maxBitrateValue}${bitrateUnit}`);
|
||||
// -bufsize is the peak possible bitrate at any moment, while -maxrate is the max rolling average bitrate
|
||||
// needed for -maxrate to be enforced
|
||||
options.push(`-bufsize ${maxBitrateValue * 2}${bitrateUnit}`);
|
||||
}
|
||||
} else {
|
||||
options.push(`-crf ${ffmpeg.crf}`);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user