jbilcke-hf HF staff commited on
Commit
105d641
·
1 Parent(s): 31f8aca

fallback to the boring, non-GL version

Browse files
Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
  FROM node:18
2
-
3
 
4
  ARG DEBIAN_FRONTEND=noninteractive
5
 
@@ -36,6 +36,6 @@ COPY --chown=user . $HOME/app
36
 
37
  EXPOSE 7860
38
 
39
- # TODO: we should use another docker image maybe
40
- CMD [ "xvfb-run", "-s", "-ac -screen 0 1920x1080x24", "npm", "run", "start" ]
41
- # CMD [ "npm", "run", "start" ]
 
1
  FROM node:18
2
+ # try this maybe
3
 
4
  ARG DEBIAN_FRONTEND=noninteractive
5
 
 
36
 
37
  EXPOSE 7860
38
 
39
+ # we can't use this (it time out)
40
+ # CMD [ "xvfb-run", "-s", "-ac -screen 0 1920x1080x24", "npm", "run", "start" ]
41
+ CMD [ "npm", "run", "start" ]
src/production/assembleShots.mts CHANGED
@@ -1,6 +1,8 @@
1
  import path from "node:path"
2
 
3
- import concat from 'ffmpeg-concat'
 
 
4
 
5
  import { VideoShot } from '../types.mts'
6
  import { pendingFilesDirFilePath } from "../config.mts"
 
1
  import path from "node:path"
2
 
3
+ // due to Docker issues, we disable OpenGL transitions for now
4
+ // import concat from 'ffmpeg-concat'
5
+ import concat from './concatNoGL.mts'
6
 
7
  import { VideoShot } from '../types.mts'
8
  import { pendingFilesDirFilePath } from "../config.mts"
src/production/concatNoGL.mts ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import ffmpeg from "fluent-ffmpeg";
2
+ import fs from "fs";
3
+
4
+ interface IConcatParams {
5
+ output: string;
6
+ videos: string[];
7
+ transitions: any;
8
+ }
9
+
10
+ const concat = async ({ output, videos }: IConcatParams): Promise<void> => {
11
+ if(!output || !Array.isArray(videos)) {
12
+ throw new Error("An output file and videos must be provided");
13
+ }
14
+
15
+ if(!videos.every(video => fs.existsSync(video))) {
16
+ throw new Error("All videos must exist");
17
+ }
18
+
19
+ const ffmpegCommand = ffmpeg();
20
+
21
+ videos.forEach((video) =>
22
+ ffmpegCommand.addInput(video)
23
+ );
24
+
25
+ return new Promise<void>((resolve, reject) => {
26
+ ffmpegCommand
27
+ .on('error', reject)
28
+ .on('end', resolve)
29
+ .mergeToFile(output);
30
+ });
31
+ };
32
+
33
+ export default concat;