Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import ffmpeg from "fluent-ffmpeg"; | |
import fs from "fs"; | |
interface IConcatParams { | |
output: string; | |
videos: string[]; | |
transitions: any; | |
} | |
const concat = async ({ output, videos }: IConcatParams): Promise<void> => { | |
if(!output || !Array.isArray(videos)) { | |
throw new Error("An output file and videos must be provided"); | |
} | |
if(!videos.every(video => fs.existsSync(video))) { | |
throw new Error("All videos must exist"); | |
} | |
const ffmpegCommand = ffmpeg(); | |
videos.forEach((video) => | |
ffmpegCommand.addInput(video) | |
); | |
return new Promise<void>((resolve, reject) => { | |
ffmpegCommand | |
.on('error', reject) | |
.on('end', resolve) | |
.mergeToFile(output); | |
}); | |
}; | |
export default concat; |