[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