24 lines
707 B
JavaScript
24 lines
707 B
JavaScript
import { createTempDir } from "../../misc/create-temp.js";
|
|
import { convertToWebp } from "./image-processor.js";
|
|
import FFmpeg from "fluent-ffmpeg";
|
|
export async function GenerateVideoThumbnail(source) {
|
|
const [dir, cleanup] = await createTempDir();
|
|
try {
|
|
await new Promise((res, rej)=>{
|
|
FFmpeg({
|
|
source
|
|
}).on("end", res).on("error", rej).screenshot({
|
|
folder: dir,
|
|
filename: "out.png",
|
|
count: 1,
|
|
timestamps: [
|
|
"5%"
|
|
]
|
|
});
|
|
});
|
|
return await convertToWebp(`${dir}/out.png`, 996, 560);
|
|
} finally{
|
|
cleanup();
|
|
}
|
|
}
|