From e06ca8c4a9c210ecdd5f33960a976798f3d0633c Mon Sep 17 00:00:00 2001 From: Abhinav-grd Date: Mon, 30 Aug 2021 09:27:27 +0530 Subject: [PATCH] fix seek more than videoLength ebug --- src/services/ffmpegService.ts | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/services/ffmpegService.ts b/src/services/ffmpegService.ts index 9eba002fe..412fcec13 100644 --- a/src/services/ffmpegService.ts +++ b/src/services/ffmpegService.ts @@ -51,17 +51,25 @@ async function generateThumbnailHelper(ffmpeg: FFmpeg, file: File) { inputFileName, await getUint8ArrayView(new FileReader(), file) ); - - await ffmpeg.run( - '-i', - inputFileName, - '-ss', - '00:00:01.000', - '-vframes', - '1', - thumbFileName - ); - const thumb = ffmpeg.FS('readFile', thumbFileName); + let seekTime = 1.0; + let thumb = null; + while (seekTime > 0) { + try { + await ffmpeg.run( + '-i', + inputFileName, + '-ss', + `00:00:0${seekTime.toFixed(3)}`, + '-vframes', + '1', + thumbFileName + ); + thumb = ffmpeg.FS('readFile', thumbFileName); + break; + } catch (e) { + seekTime = Number((seekTime / 2).toFixed(3)); + } + } ffmpeg.FS('unlink', thumbFileName); ffmpeg.FS('unlink', inputFileName); return thumb;