diff options
Diffstat (limited to 'src/server/DashUploadUtils.ts')
-rw-r--r-- | src/server/DashUploadUtils.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index d9b38c014..ff6b2381c 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -16,6 +16,7 @@ import { resolvedServerUrl } from "./server_Initialization"; import { AcceptableMedia, Upload } from './SharedMediaTypes'; import request = require('request-promise'); const parse = require('pdf-parse'); +const ffmpeg = require("fluent-ffmpeg"); const requestImageSize = require("../client/util/request-image-size"); export enum SizeSuffix { @@ -62,7 +63,7 @@ export namespace DashUploadUtils { const category = types[0]; let format = `.${types[1]}`; - console.log(green(`Processing upload of file (${name}) with upload type (${type}) in category (${category}).`)); + console.log(green(`Processing upload of file (${name}) and format (${format}) with upload type (${type}) in category (${category}).`)); switch (category) { case "image": @@ -71,6 +72,14 @@ export namespace DashUploadUtils { return { source: file, result }; } case "video": + if (format.includes("x-matroska")) { + await new Promise(res => ffmpeg(file.path) + .videoCodec("copy") // this will copy the data instead of reencode it + .save(file.path.replace(".mkv", ".mp4")) + .on('end', res)); + file.path = file.path.replace(".mkv", ".mp4"); + format = ".mp4"; + } if (videoFormats.includes(format)) { return MoveParsedFile(file, Directory.videos); } |