]> git.lizzy.rs Git - badapple.git/blob - init.js
Initial commit
[badapple.git] / init.js
1 const fs = require("fs").promises
2 const seurat = require("seurat")
3 const ffmpegExtractFrames = require("ffmpeg-extract-frames")
4 const imageSize = require("image-size")
5
6 const fps = 1.0
7 const limit = 2000
8 const url = "https://www.youtube.com/watch?v=9lNZ_Rnr7Jc"
9
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",
15                 fps
16         }))
17         .then(_ => fs.readdir("frames"))
18         .then(files => {
19                 const dimensions = imageSize("frames/00001.png")
20                 const ratio = dimensions.width / dimensions.height
21                 const size = Math.sqrt(limit)
22                         
23                 return Promise.all(files.map(file =>
24                         seurat.convert("frames/" + file, {
25                                 width:  Math.floor(size * ratio),
26                                 height: Math.floor(size / ratio),
27                                 threshold: 25,
28                         })))
29         })
30         .then(frames => fs.writeFile("badapple.json", JSON.stringify({fps, frames})))
31 /**/