#node.js #express #ffmpeg
Вопрос:
У меня есть скрипт Node/Express, который использует FFMPEG для получения расширенных метаданных из видеофайла (например, файлов mp4 или mov) — я передаю URL-адрес в функцию процесса, однако это приводит к ошибке «входной файл не существует», поскольку ожидается, что этот удаленный файл будет загружен и прочитан напрямую с того же сервера. Как я могу загрузить файл из req.body.file
и временно сохранить его локально, чтобы его можно было прочитать в new ffmpeg(localfile)
функции
const express = require('express'); const router = express.Router(); const ffmpeg = require('ffmpeg'); router.post('/', async function(req, res) { console.log('Request type: ', req.method); // 'POST' try { console.log('url', req.body.file); // e.g https://example.com/video.mp4 var process = new ffmpeg(req.body.file); process.then(function (video) { let metadata = formatMetadata(video.metadata); console.log(metadata); }, function (err) { console.log('Error: ' err); }); } catch (e) { console.log(e); } }); module.exports = router;
Комментарии:
1. Используйте простой запрос http/https, который возвращает (если вы хотите) поток, передайте этот поток в stdin ffmepg.