Вопрос по video, ffmpeg – ffmpeg - как работает команда перемещения оверлея / текста?

1

В Ffmpeg вы можете создавать движущийся текст:

ffmpeg -y -t 10 -s qcif -f rawvideo -pix_fmt rgb24 -s 1280x720 -i /dev/zero -g 1 -r 24 -vf drawtext="fontfile=~/fonts/Trebuchet_MS.ttf:text='thing crawls':fontsize=155:fontcolor=red:y=h-20*t" wow.mpg

Так что это даст мне черную рамку с надписью "сканирует вещи" медленно идет снизу вверх ..

Если я знаю продолжительность видео (20 секунд) и хочу, например, создать & quot; вещь падает & quot; который начинается в верхней части экрана в момент времени 0 и доходит до нижней части экрана до 00:00:20, как мне это сделать?

Также можно ли создать ситуацию, когда текст начнет двигаться сверху вниз, но остановится на середине экрана?

Ваш Ответ

1   ответ
5

Документы FFmpeg приведите полный список переменных, с которыми вам придется работать при использовании фильтра drawtext, но для мобильного текста есть некоторые особые интересы:

‘n’
the number of input frame, starting from 0

‘t’
timestamp expressed in seconds, NAN if the input timestamp is unknown

С их помощью вы можете установить положение текста относительно того, сколько кадров уже было просмотрено. Это то, чтоy=h-20*t Выражение в вашем примере делает. Какt увеличивается, текст перемещается ближе к началу видео какh-20*t уменьшается.

Чтобы ваш пример "вещь упала", вам нужен термин, подобный20*t вместо. Посколькуy позиция начинается с 0 в верхней части видео, аt увеличивается, он будет двигаться вниз по экрану.

Для текста, который останавливается в середине экрана, вы, возможно, могли бы заняться какой-нибудь изящной математикой или просто использовать FFmpeg.богатый набор логических функций, Что-то вродеy=t*20*lte(t*20,h/2) + h/2*gt(t*20,h/2) который перемещает текст в то время какt*20 меньше половины высоты, то сохраняетy положение вh/2 один разt*20 больше половины высоты.

отлично спасибо большое! Stpn

Похожие вопросы