web/queue: add audio covers & crop them when needed

This commit is contained in:
wukko 2025-06-26 17:36:55 +06:00
parent 164ea8aeb9
commit e4ce873b56
No known key found for this signature in database
GPG Key ID: 3E30B3F26C7B4AA2
2 changed files with 21 additions and 3 deletions

View File

@ -82,11 +82,27 @@ const makeAudioArgs = (info: CobaltLocalProcessingResponse) => {
return; return;
} }
const ffargs = [ const ffargs = [];
"-vn",
if (info.audio.cover) {
ffargs.push(
"-map", "0",
"-map", "1",
...(info.audio.cropCover ? [
"-c:v", "mjpeg",
"-vf", "scale=-1:800,crop=800:800",
] : [
"-c:v", "copy",
]),
);
} else {
ffargs.push("-vn");
}
ffargs.push(
...(info.audio.copy ? ["-c:a", "copy"] : ["-b:a", `${info.audio.bitrate}k`]), ...(info.audio.copy ? ["-c:a", "copy"] : ["-b:a", `${info.audio.bitrate}k`]),
...(info.output.metadata ? ffmpegMetadataArgs(info.output.metadata) : []) ...(info.output.metadata ? ffmpegMetadataArgs(info.output.metadata) : [])
]; );
if (info.audio.format === "mp3" && info.audio.bitrate === "8") { if (info.audio.format === "mp3" && info.audio.bitrate === "8") {
ffargs.push("-ar", "12000"); ffargs.push("-ar", "12000");

View File

@ -80,6 +80,8 @@ export type CobaltLocalProcessingResponse = {
copy: boolean, copy: boolean,
format: string, format: string,
bitrate: string, bitrate: string,
cover?: boolean,
cropCover?: boolean,
}, },
isHLS?: boolean, isHLS?: boolean,