Чи можливо у FFMPEG змінити масштаб з часом?


11

Гаразд, тому використовуючи фільтр накладання, можна змінювати розташування відеороликів x / y з часом, використовуючи змінну "t". Наприклад, overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0можна використовувати для початку ковзання накладеного елемента зверху вліво вгору праворуч після того, як пройшло 2 секунди.

Що я хочу зробити - це використовувати аналогічний принцип для масштабування елементів. Я хотів би мати можливість змінити масштаб відео з часом, використовуючи вираз (наприклад scale=w=iw*t, або щось у цьому напрямку).

Чи можливо це?

коли я запускаю цей вираз через -filter_complex, я отримую

Помилка при оцінці виразу 'iw * t'.

Можливо, вираз для out_w: 'iw * t' або для out_h: '- 1' є самостійним посиланням.

Я відчуваю, що є велика ймовірність, що мені потрібно буде виправити FFMpeg, якщо я хочу отримати цю функціональність, але я подумав, що спершу попрошу, щоб дізнатися, чи хтось знатиме про подібні речі!

Хтось знає, як таке завдання може бути виконане?

Дякую за допомогу!


Зараз це звучить більше як синтаксична помилка, але я не використовував цю функцію раніше, на жаль, не можу тут реально допомогти.
PTS

1
t - це не визначена річ, коли мова заходить про накладений фільтр.
v010dya

1
Можна просто написати фільтр. wiki.multimedia.cx/index.php?title=FFmpeg_filter_howto
denjello

1
@alexspeller масштабний фільтр не підтримує редагування часової шкали, тому безпосередньо це неможливо. Я перевірю, чи є спосіб вирішення.
Gyan

1
Технічно можливо з виходом H.264 / 5. Не знаю, як гравці / редактори впораються з цим.
Gyan

Відповіді:


2

З того, що я розумію, 't' оцінюється один раз. Ви читали це: https://ffmpeg.org/ffmpeg-filters.html#zoompan ?

Документи Ffmpeg:

9.170.1 Приклади

  • Збільшити масштаб до 1,5 і одночасно перемістити панораму на місце біля центру зображення:

zoompan = z = 'min (зум + 0,0015,1,5)': d = 700: x = 'if (gte (масштабування, 1,5), x, x + 1 / a)': y = 'if (gte (масштабування, 1.5), у, у + 1) ': s = 640x360

  • Збільшити масштаб до 1,5 і панорамувати завжди в центрі зображення:

zoompan = z = 'min (зум + 0,0015,1,5)': d = 700: x = 'iw / 2- (iw / zoom / 2)': y = 'ih / 2- (ih / zoom / 2)'

  • Те саме, що вище, але без пауз:

zoompan = z = 'min (max (зум, pzoom) +0,0015,1,5)': d = 1: x = 'iw / 2- (iw / zoom / 2)': y = 'ih / 2- (ih / збільшення / 2) '

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.