Привет всем и спасибо за чтение! Я пытаюсь создать рабочий процесс для автоматизации редактирования видео из файла .jpg.
Я использую фильтр прокрутки ffmpeg, но у меня возникают трудности с ним.
const encodeVideo = (path, video) => {
const p = new Promise((resolve, reject) => {
Jimp.read(`${path}/${video.name}`).then((image) => {
image.resize(1280, Jimp.AUTO)
image.write(`${path}/${video.name}`)
clipDuration = Math.ceil(image.bitmap.height * 0.0135); //not working well...
const ffmpeg = spawn('ffmpeg', ['-loop', '1', '-i', `${path}/${video.name}`, '-vf', `scroll=vertical=0.001,crop=1280:720:0:0,format=yuv420p,fps=70,fade=type=in:duration=1,fade=type=out:duration=1:start_time=${clipDuration - 1}`, '-t', `${clipDuration}`, `./${path}/${video.name}.mp4`]);
ffmpeg.stderr.on('data', (data) => {
// console.log(`${data}`);
});
ffmpeg.on('close', (code) => {
resolve();
});
}).catch((err) => console.log(err))
});
return p;
}
Вот моя функция encodeVideo. Он создает прокручиваемое видео длины: clipDuration, с эффектом постепенного появления / исчезновения.
У меня следующие вопросы:
Как я могу обойти свойство clipDuration так что только scrollspeed и image.bitmap.height определяют продолжительность клипа? В настоящее время, если clipDuration слишком длинное, после завершения прокрутки она возвращается к началу. Если clipDuration слишком короткое, оно не go до конца изображения. Я хочу, чтобы он остановился, когда прокрутка достигла нижней части изображения.
Как добавить паузу 1se c в начале и конце клипа?
Спасибо за ваше время и вклад!