Циклічний текст, який витирає зліва направо, за допомогою фільтра FFMPEG


3

У мене є наступна команда FFMPEG, яка правильно витирає текст у нижній частині відео.

ffmpeg -y -i test_small.mov -acodec libmp3lame -vcodec libx264 -pix_fmt yuv420p -b:a 192k -b:v 1400k -ar 44100 -crf 18 -vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=foo.ttf: y=h-line_h-10:x=(5*n): fontcolor=white: fontsize=40: shadowx=2: shadowy=2" -an left_to_right_small.mp4

Але це відбувається тільки один раз. Як я можу змінити це так, що анімація цикли з затримкою між кожним циклом?

Відповіді:


5

Це працює:

-vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=foo.ttf: y=h-line_h-10:x=(mod(5*n\,w+tw)-tw): fontcolor=white: fontsize=40: shadowx=2: shadowy=2"

Подивитися Desmos як це працює.

Graph

x -xis - ширина відео.

y -Аксис є часом.

Чорна лінія - це ширина зображення (регулюється в Desmos через повзунок, x ).

Чорний відтінок - це текст у моїй формулі.

t в Desmos відповідає tw у FFmpeg CMD, яка є шириною тексту.

Синя область - це текст у вашій початковій формулі.


Це круто! Як я можу встановити кількість циклів?
Bachalo

@eco_bach Це не так просто, як здається. Ви можете використовувати if.
Timothy Gu

@eco_bach насправді виконано: (if(lt(5*n/(w+tw)\,NUMBER_OF_LOOPS)\,mod(5*n\,w+tw)-tw\,w)). Подивитися Desmos
Timothy Gu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.