From 4a67c76cb56ee8cdcdf737ff1b404bb04a657212 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Thu, 15 Sep 2022 14:26:50 +0530 Subject: [PATCH] don't use user filename as identifier while conversion --- src/services/ffmpeg/ffmpegClient.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/services/ffmpeg/ffmpegClient.ts b/src/services/ffmpeg/ffmpegClient.ts index 7aa7a29b0..6f59a7f5c 100644 --- a/src/services/ffmpeg/ffmpegClient.ts +++ b/src/services/ffmpeg/ffmpegClient.ts @@ -22,7 +22,9 @@ class FFmpegClient { async generateThumbnail(file: File) { await this.ready; - const inputFileName = `${Date.now().toString()}-${file.name}`; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [name, ext] = splitFilenameAndExtension(file.name); + const inputFileName = `${Date.now().toString()}-input.${ext}`; const thumbFileName = `${Date.now().toString()}-thumb.jpeg`; this.ffmpeg.FS( 'writeFile', @@ -57,7 +59,9 @@ class FFmpegClient { async extractVideoMetadata(file: File) { await this.ready; - const inputFileName = `${Date.now().toString()}-${file.name}`; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [name, ext] = splitFilenameAndExtension(file.name); + const inputFileName = `${Date.now().toString()}-input.${ext}`; const outFileName = `${Date.now().toString()}-metadata.txt`; this.ffmpeg.FS( 'writeFile', @@ -105,3 +109,13 @@ class FFmpegClient { } export default FFmpegClient; + +export function splitFilenameAndExtension(filename: string): [string, string] { + const lastDotPosition = filename.lastIndexOf('.'); + if (lastDotPosition === -1) return [filename, null]; + else + return [ + filename.slice(0, lastDotPosition), + filename.slice(lastDotPosition + 1), + ]; +}