fix: GenerateVideoThumbnail (#8825)

* fix: GenerateVideoThumbnail

* CHANGELOG

* fix cleanup

* Revert "fix cleanup"

This reverts commit d54cf8262ac01a3deb6b8dd7689ec144d4d09ea8.
This commit is contained in:
MeiMei 2022-06-14 23:02:14 +09:00 committed by Chloe Kudryavtsev
parent 95d59b3947
commit 8f2aaba944
2 changed files with 12 additions and 7 deletions

View file

@ -9,6 +9,13 @@
You should also include the user name that made the change.
-->
## 12.x.x (unreleased)
### Improvements
### Bugfixes
- Fix GenerateVideoThumbnail failed @mei23
## 12.111.1 (2022/06/13)
### Bugfixes

View file

@ -1,12 +1,10 @@
import * as fs from 'node:fs';
import * as path from 'node:path';
import { createTemp } from '@/misc/create-temp.js';
import { createTempDir } from '@/misc/create-temp.js';
import { IImage, convertToJpeg } from './image-processor.js';
import FFmpeg from 'fluent-ffmpeg';
export async function GenerateVideoThumbnail(source: string): Promise<IImage> {
const [file, cleanup] = await createTemp();
const parsed = path.parse(file);
const [dir, cleanup] = await createTempDir();
try {
await new Promise((res, rej) => {
@ -16,15 +14,15 @@ export async function GenerateVideoThumbnail(source: string): Promise<IImage> {
.on('end', res)
.on('error', rej)
.screenshot({
folder: parsed.dir,
filename: parsed.base,
folder: dir,
filename: 'out.png', // must have .png extension
count: 1,
timestamps: ['5%'],
});
});
// JPEGに変換 (Webpでもいいが、MastodonはWebpをサポートせず表示できなくなる)
return await convertToJpeg(file, 498, 280);
return await convertToJpeg(`${dir}/out.png`, 498, 280);
} finally {
cleanup();
}