Фильтр прокрутки ffmpeg, как не иметь параметр -t? - PullRequest
0 голосов
/ 22 апреля 2020

Привет всем и спасибо за чтение! Я пытаюсь создать рабочий процесс для автоматизации редактирования видео из файла .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 в начале и конце клипа?

Спасибо за ваше время и вклад!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...