diff --git a/packages/server/Dockerfile b/packages/server/Dockerfile index 0373ffe9..78c8e9fa 100755 --- a/packages/server/Dockerfile +++ b/packages/server/Dockerfile @@ -8,8 +8,9 @@ RUN apt install -y --no-install-recommends git RUN apt install -y --no-install-recommends ssh RUN apt install -y --no-install-recommends curl RUN apt install -y --no-install-recommends nscd +RUN apt install -y --no-install-recommends bash +RUN apt install -y --no-install-recommends which RUN apt install -y --no-install-recommends ca-certificates -RUN apt install -y --no-install-recommends ffmpeg # Create workdir RUN mkdir -p /comty-server @@ -41,6 +42,12 @@ RUN /comty-server/nginx-bin -v RUN chmod -R 777 /comty-server RUN chown -R node:node /comty-server +# Install manual server dependencies +RUN mkdir -p /root/.local/bin +RUN "/comty-server/scripts/installLatestFfmpeg.sh" +RUN mv /root/.local/bin/ffmpeg /bin/ffmpeg +RUN mv /root/.local/bin/ffprobe /bin/ffprobe + # Set user to node USER node diff --git a/packages/server/classes/FFMPEGLib/index.js b/packages/server/classes/FFMPEGLib/index.js index f0b67b72..19f4ecca 100644 --- a/packages/server/classes/FFMPEGLib/index.js +++ b/packages/server/classes/FFMPEGLib/index.js @@ -57,6 +57,10 @@ export class FFMPEGLib extends EventEmitter { } return new Promise((resolve, reject) => { + if (!bin) { + return reject("No binary provided") + } + const process = child_process.exec( `${bin} ${args}`, { diff --git a/packages/server/classes/MultiqualityHLSJob/index.js b/packages/server/classes/MultiqualityHLSJob/index.js index 55eb1d28..ab2a2b43 100644 --- a/packages/server/classes/MultiqualityHLSJob/index.js +++ b/packages/server/classes/MultiqualityHLSJob/index.js @@ -108,9 +108,9 @@ export default class MultiqualityHLSJob extends FFMPEGLib { fs.mkdirSync(outputPath, { recursive: true }) } - const inputProbe = await Utils.probe(this.params.input) - try { + const inputProbe = await Utils.probe(this.params.input) + const result = await this.ffmpeg({ args: cmdStr, cwd: outputPath, diff --git a/packages/server/classes/SegmentedAudioMPDJob/index.js b/packages/server/classes/SegmentedAudioMPDJob/index.js index 3c613d94..d6e75bc3 100644 --- a/packages/server/classes/SegmentedAudioMPDJob/index.js +++ b/packages/server/classes/SegmentedAudioMPDJob/index.js @@ -105,9 +105,9 @@ export default class SegmentedAudioMPDJob extends FFMPEGLib { fs.mkdirSync(outputPath, { recursive: true }) } - const inputProbe = await Utils.probe(this.params.input) - try { + const inputProbe = await Utils.probe(this.params.input) + const ffmpegResult = await this.ffmpeg({ args: segmentationCmd, onProcess: (process) => { diff --git a/packages/server/services/files/queues/fileProcess/index.js b/packages/server/services/files/queues/fileProcess/index.js index 663a0d10..2baf0e19 100644 --- a/packages/server/services/files/queues/fileProcess/index.js +++ b/packages/server/services/files/queues/fileProcess/index.js @@ -1,4 +1,3 @@ -import path from "node:path" import fs from "node:fs" import Upload from "@shared-classes/Upload"