From 6fcd98b070e026f1bc0e1954ef7f2b06a7df08be Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 5 Jul 2023 19:04:25 +0000 Subject: [PATCH] rename `post-process` --- .../src/services/post-process/audio/index.js | 30 +++++++++++++++++++ .../image/index.js | 0 .../{useCompression => post-process}/index.js | 16 +++++++++- .../video/index.js | 0 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 packages/file_server/src/services/post-process/audio/index.js rename packages/file_server/src/services/{useCompression => post-process}/image/index.js (100%) rename packages/file_server/src/services/{useCompression => post-process}/index.js (64%) rename packages/file_server/src/services/{useCompression => post-process}/video/index.js (100%) diff --git a/packages/file_server/src/services/post-process/audio/index.js b/packages/file_server/src/services/post-process/audio/index.js new file mode 100644 index 00000000..5794e567 --- /dev/null +++ b/packages/file_server/src/services/post-process/audio/index.js @@ -0,0 +1,30 @@ +const ffmpeg = require("fluent-ffmpeg") + +export default async (file) => { + // analize metadata + let metadata = await new Promise((resolve, reject) => { + ffmpeg.ffprobe(file.filepath, (err, data) => { + if (err) { + return reject(err) + } + + resolve(data) + }) + }).catch((err) => { + console.error(err) + + return {} + }) + + if (metadata.format) { + metadata = metadata.format + } + + file.metadata = { + duration: metadata.duration, + bitrate: metadata.bit_rate, + size: metadata.size, + } + + return file +} \ No newline at end of file diff --git a/packages/file_server/src/services/useCompression/image/index.js b/packages/file_server/src/services/post-process/image/index.js similarity index 100% rename from packages/file_server/src/services/useCompression/image/index.js rename to packages/file_server/src/services/post-process/image/index.js diff --git a/packages/file_server/src/services/useCompression/index.js b/packages/file_server/src/services/post-process/index.js similarity index 64% rename from packages/file_server/src/services/useCompression/index.js rename to packages/file_server/src/services/post-process/index.js index bebdf6b3..17726714 100644 --- a/packages/file_server/src/services/useCompression/index.js +++ b/packages/file_server/src/services/post-process/index.js @@ -3,12 +3,15 @@ import mimetypes from "mime-types" import processVideo from "./video" import processImage from "./image" +import processAudio from "./audio" const fileTransformer = { + // video "video/avi": processVideo, "video/quicktime": processVideo, "video/mp4": processVideo, "video/webm": processVideo, + //image "image/jpeg": processImage, "image/png": processImage, "image/gif": processImage, @@ -16,6 +19,17 @@ const fileTransformer = { "image/tiff": processImage, "image/webp": processImage, "image/jfif": processImage, + // audio + "audio/flac": processAudio, + "audio/x-flac": processAudio, + "audio/mp3": processAudio, + "audio/x-mp3": processAudio, + "audio/mpeg": processAudio, + "audio/x-mpeg": processAudio, + "audio/ogg": processAudio, + "audio/x-ogg": processAudio, + "audio/wav": processAudio, + "audio/x-wav": processAudio, } export default async (file) => { @@ -30,7 +44,7 @@ export default async (file) => { const fileMimetype = mimetypes.lookup(file.filepath) if (typeof fileTransformer[fileMimetype] !== "function") { - console.warn(`File (${file.filepath}) has mimetype ${fileMimetype} and will not be processed`) + console.debug(`File (${file.filepath}) has mimetype ${fileMimetype} and will not be processed`) return file } diff --git a/packages/file_server/src/services/useCompression/video/index.js b/packages/file_server/src/services/post-process/video/index.js similarity index 100% rename from packages/file_server/src/services/useCompression/video/index.js rename to packages/file_server/src/services/post-process/video/index.js