mirror of
https://github.com/immich-app/immich.git
synced 2024-12-29 15:11:58 +00:00
fix(server): add fallback for video thumbnail generation (#10034)
they called me a madman
This commit is contained in:
parent
69193598cb
commit
62f8bd80f4
2 changed files with 11 additions and 5 deletions
|
@ -300,7 +300,7 @@ describe(MediaService.name, () => {
|
||||||
'-frames:v 1',
|
'-frames:v 1',
|
||||||
'-update 1',
|
'-update 1',
|
||||||
'-v verbose',
|
'-v verbose',
|
||||||
`-vf fps=12,thumbnail=12,select=gt(scene\\,0.1)+gt(n\\,20),scale=-2:1440:flags=lanczos+accurate_rnd+full_chroma_int:out_color_matrix=601:out_range=pc,format=gbrpf32le`,
|
String.raw`-vf fps=12:round=up,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:1440:flags=lanczos+accurate_rnd+full_chroma_int:out_color_matrix=601:out_range=pc,format=yuv420p`,
|
||||||
],
|
],
|
||||||
twoPass: false,
|
twoPass: false,
|
||||||
},
|
},
|
||||||
|
@ -327,7 +327,7 @@ describe(MediaService.name, () => {
|
||||||
'-frames:v 1',
|
'-frames:v 1',
|
||||||
'-update 1',
|
'-update 1',
|
||||||
'-v verbose',
|
'-v verbose',
|
||||||
`-vf fps=12,thumbnail=12,select=gt(scene\\,0.1)+gt(n\\,20),zscale=t=linear:npl=100,tonemap=hable:desat=0,zscale=p=bt709:t=601:m=bt470bg:range=pc,format=gbrpf32le`,
|
String.raw`-vf fps=12:round=up,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,zscale=t=linear:npl=100,tonemap=hable:desat=0,zscale=p=bt709:t=601:m=bt470bg:range=pc,format=yuv420p`,
|
||||||
],
|
],
|
||||||
twoPass: false,
|
twoPass: false,
|
||||||
},
|
},
|
||||||
|
@ -356,7 +356,7 @@ describe(MediaService.name, () => {
|
||||||
'-frames:v 1',
|
'-frames:v 1',
|
||||||
'-update 1',
|
'-update 1',
|
||||||
'-v verbose',
|
'-v verbose',
|
||||||
`-vf fps=12,thumbnail=12,select=gt(scene\\,0.1)+gt(n\\,20),zscale=t=linear:npl=100,tonemap=hable:desat=0,zscale=p=bt709:t=601:m=bt470bg:range=pc,format=gbrpf32le`,
|
String.raw`-vf fps=12:round=up,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,zscale=t=linear:npl=100,tonemap=hable:desat=0,zscale=p=bt709:t=601:m=bt470bg:range=pc,format=yuv420p`,
|
||||||
],
|
],
|
||||||
twoPass: false,
|
twoPass: false,
|
||||||
},
|
},
|
||||||
|
|
|
@ -392,12 +392,18 @@ export class ThumbnailConfig extends BaseConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
getFilterOptions(videoStream: VideoStreamInfo): string[] {
|
getFilterOptions(videoStream: VideoStreamInfo): string[] {
|
||||||
const options = ['fps=12', 'thumbnail=12', `select=gt(scene\\,0.1)+gt(n\\,20)`];
|
const options = [
|
||||||
|
'fps=12:round=up',
|
||||||
|
'thumbnail=12',
|
||||||
|
String.raw`select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20)`,
|
||||||
|
'trim=end_frame=2',
|
||||||
|
'reverse',
|
||||||
|
];
|
||||||
if (this.shouldScale(videoStream)) {
|
if (this.shouldScale(videoStream)) {
|
||||||
options.push(`scale=${this.getScaling(videoStream)}`);
|
options.push(`scale=${this.getScaling(videoStream)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
options.push(...this.getToneMapping(videoStream), 'format=gbrpf32le');
|
options.push(...this.getToneMapping(videoStream), 'format=yuv420p');
|
||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue