1 const fs = require("fs").promises
2 const seurat = require("seurat")
3 const ffmpegExtractFrames = require("ffmpeg-extract-frames")
4 const imageSize = require("image-size")
8 const url = "https://www.youtube.com/watch?v=9lNZ_Rnr7Jc"
10 fs.rm("frames", {recursive: true, force: true})
11 .then(_ => fs.mkdir("frames"))
12 .then(_ => ffmpegExtractFrames({
13 input: "bad_apple.mkv",
14 output: "frames/%5d.png",
17 .then(_ => fs.readdir("frames"))
19 const dimensions = imageSize("frames/00001.png")
20 const ratio = dimensions.width / dimensions.height
21 const size = Math.sqrt(limit)
23 return Promise.all(files.map(file =>
24 seurat.convert("frames/" + file, {
25 width: Math.floor(size * ratio),
26 height: Math.floor(size / ratio),
30 .then(frames => fs.writeFile("badapple.json", JSON.stringify({fps, frames})))