UNPKG

@calipsa/video-utils

Version:
46 lines 1.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const fluent_ffmpeg_1 = __importDefault(require("fluent-ffmpeg")); const tmp_promise_1 = __importDefault(require("tmp-promise")); const inputToBuffer_1 = __importDefault(require("./inputToBuffer")); const buffersToStream_1 = __importDefault(require("./buffersToStream")); exports.default = async (images, fps) => { const imageBufferPromises = images.map(inputToBuffer_1.default); const imageBuffers = await Promise.all(imageBufferPromises); const imagesStream = (0, buffersToStream_1.default)(imageBuffers); const { path, cleanup } = await tmp_promise_1.default.file(); try { await new Promise((resolve, reject) => { const proc = (0, fluent_ffmpeg_1.default)(imagesStream) .withInputFps(fps) .output(path, { end: true }) .withFpsOutput(fps) .noAudio() .format('mp4') // -f .videoCodec('libx264') // -vcodec .size('640x480') .outputOption('-pix_fmt', 'yuv420p') .outputOption('-tune', 'zerolatency') .outputOption('-preset', 'ultrafast') .outputOption('-movflags', 'faststart') // .outputOption('-q:v', '2') .on('error', reject) // .on('start', commandLine => { // console.log(`Spawned Ffmpeg with command: ${commandLine}`) // }) .on('end', () => { resolve(); }); proc.run(); }); return fs_1.default.promises.readFile(path, null); } finally { cleanup(); } }; //# sourceMappingURL=convert.js.map