### [yv12][yuy2][rgb32][rgb24]

# Animate / ApplyRange

## Animate(clip, int start_frame, int end_frame, string filtername, start_args, end_args)
ApplyRange(clip, int start_frame, int end_frame, string filtername, args)

start_frame: numer klatki, od której zaczyna się działanie filtru
end_frame: numer klatki, w której kończy się działanie filtru
filtername: nazwa filtru (w cudzysłowach), który ma być zastosowany
start_args: wartości początkowe argumentów dla filtru o nazwie zadanej parametrem filtername
end_args: wartości końcowe argumentów dla filtru o nazwie zadanej parametrem filtername
args: lista argumentów dla filtru o nazwie zadanej parametrem filtername

Animate jest filtrem, który w sposób ciągły zmienia parametry filtru zadanego parametrem filtername, zaczynając od wartości początkowych parametrów (start_args) odpowiadających klatce start_frame i kończąc na wartościach końcowych parametrów (end_args), które odpowiadają klatce end_frame. Zmiana parametrów od start_args do end_args jest wykonywana w sposób liniowy w celu zapewnienia płynnego przejścia.
Nazwa filtru (parametr filtername) musi być zawarta w cudzysłowach. Parametry start_args, end_args i args nie mogą być zamknięte nawiasami. Parametry tekstowe, a także klipy video nie mogą być interpolowane i dlatego też muszą być identyczne dla dwóch ciągów argumentów: start_args, end_args. Bardzo ważne jest, żeby nie używać filtru Animate z argumentami (start_args, end_args), których to interpolacja powodowałaby zmianę rozmiaru klatek klipu! Poniższy przykład ukazuje niepoprawne użycia filtru Animate:
ColorBars(200,200).Trim(0,2000).ConvertToYV12
Animate(100,200,"BilinearResize",200,200,300,300)
Dla filtru Animate możliwe jest także użycie jako parametru filtername filtru Animate. Taka kombinacja spowoduje zamiast liniowej kwadratową zmianę argumentów start_args i end_args.
Filtr ApplyRange jest szczególnym przypadkiem Animate, w którym to start_args=end_args. Filtr ten może się okazać przydatny, jeżeli chcesz zastosować pewien filtr tylko na wybranym przedziale klatek klipu. kolejną różnicą jest to, że dla filtru ApplyRange nie może występować parametr clip w liście argumentów args. Od wersji 2.53 filtr ten obsługuje także dźwięk, a start_frame może być równe end_frame co umożliwia obróbkę pojedynczej klatki.
Parametr clip nie może występować dwa razy przy wywołaniu ApplyRange (zobacz przykład poniżej). Jest to związane z tym, że filtr podany w argumencie filtername nie ma prawa modyfikować klipu poza przedziałem (start_frame, end_frame) w trakcie działania ApplyRange, ponieważ zadaniem filtra ApplyRange jest TYLKO modyfikacja klipu w podanym przedziale. Wyjaśnienie tej kwestii zostało zaczerpnięte z poniższego tematu (5-ty post od dołu): http://forum.doom9.org/showthread.php?s=&threadid=53288
Filtr ten w nieprawidłowy sposób operuje na ścieżce dźwiękowej, tak więc nie zaleca się go stosować z filtrami operującymi na ścieżce audio (np. Amplify).

Przykłady:

ColorBars(200,200).Trim(0,2000).ConvertToYV12 Animate(0,2000,"Tweak",1,1,-255.0,1,1,1,255.0,1) | # | interpolacja liniowa; zwiększa jasność klipu
ColorBars(200,200).Trim(0,2000).ConvertToYV12 a=Animate(0,2000,"Tweak",1,1,-255.0,1,1,1,255.0,1) a.Animate(0,2000,"Tweak",1,1,-255.0,1,1,1,255.0,1) | # | interpolacja kwadratowa (szybszy wzrost jasności niż przy interpolacji liniowej); zwiększa jasność klipu
ColorBars(200,200).Trim(0,2000).ConvertToYV12 ApplyRange(500,700,"Tweak",1,1,50.0,1) | # | rozjaśnienie obrazu na przedziale (500,700)

### translated by Dj_AnT