summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrinsuki <428rinsuki+git@gmail.com>2019-07-20 03:28:14 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-07-20 03:28:14 +0900
commit7ac13a386c96dbecd7b880baeb049219918857c1 (patch)
treebf4e9abe89cd3bef84bdef20fd63b8e512073db7 /src
parentImprove usability of quote note by pasting url (#5196) (diff)
downloadmisskey-7ac13a386c96dbecd7b880baeb049219918857c1.tar.gz
misskey-7ac13a386c96dbecd7b880baeb049219918857c1.tar.bz2
misskey-7ac13a386c96dbecd7b880baeb049219918857c1.zip
Improve GenerateVideoThumbnail (#5186)
* Improve GenerateVideoThumbnail * use fluent-ffmpeg * Update src/services/drive/generate-video-thumbnail.ts
Diffstat (limited to 'src')
-rw-r--r--src/services/drive/generate-video-thumbnail.ts24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/services/drive/generate-video-thumbnail.ts b/src/services/drive/generate-video-thumbnail.ts
index c2646182db..f0adc7c338 100644
--- a/src/services/drive/generate-video-thumbnail.ts
+++ b/src/services/drive/generate-video-thumbnail.ts
@@ -1,7 +1,7 @@
import * as fs from 'fs';
import * as tmp from 'tmp';
import { IImage, convertToJpeg } from './image-processor';
-const ThumbnailGenerator = require('video-thumbnail-generator').default;
+import * as FFmpeg from 'fluent-ffmpeg';
export async function GenerateVideoThumbnail(path: string): Promise<IImage> {
const [outDir, cleanup] = await new Promise<[string, any]>((res, rej) => {
@@ -11,14 +11,18 @@ export async function GenerateVideoThumbnail(path: string): Promise<IImage> {
});
});
- const tg = new ThumbnailGenerator({
- sourcePath: path,
- thumbnailPath: outDir,
- });
-
- await tg.generateOneByPercent(5, {
- size: '100%',
- filename: 'output.png',
+ await new Promise((res, rej) => {
+ FFmpeg({
+ source: path
+ })
+ .on('end', res)
+ .on('error', rej)
+ .screenshot({
+ folder: outDir,
+ filename: 'output.png',
+ count: 1,
+ timestamps: ['5%']
+ });
});
const outPath = `${outDir}/output.png`;
@@ -26,7 +30,7 @@ export async function GenerateVideoThumbnail(path: string): Promise<IImage> {
const thumbnail = await convertToJpeg(outPath, 498, 280);
// cleanup
- fs.unlinkSync(outPath);
+ await fs.promises.unlink(outPath);
cleanup();
return thumbnail;