Spaces:
Sleeping
Sleeping
| const express = require('express') | |
| const multer = require('multer') | |
| const ffmpeg = require('fluent-ffmpeg') | |
| const fs = require('fs') | |
| const path = require('path') | |
| const archiver = require('archiver') | |
| const app = express() | |
| const upload = multer({ dest: '/tmp' }) | |
| app.post('/upload', upload.single('video'), (req, res) => { | |
| const video = req.file.path | |
| const out = `/tmp/f_${Date.now()}` | |
| fs.mkdirSync(out) | |
| ffmpeg(video) | |
| .output(`${out}/frame_%d.png`) | |
| .on('end', () => { | |
| const zip = `${out}.zip` | |
| const stream = fs.createWriteStream(zip) | |
| const archive = archiver('zip') | |
| stream.on('close', () => { | |
| fs.rmSync(video) | |
| fs.rmSync(out, { recursive: true, force: true }) | |
| res.download(zip, () => fs.unlinkSync(zip)) | |
| }) | |
| archive.pipe(stream) | |
| archive.directory(out, false) | |
| archive.finalize() | |
| }) | |
| .run() | |
| }) | |
| app.listen(7860) |