SlowmoVideo – kadry ożywione

O projekcie SlowmoVideo wśród zainteresowanych kręgów zrobiło się głośno już jakiś czas temu, jednak do tej pory był on ‘zastrzeżony’ dla użytkowników kart graficznych NVIDIA. Przyczyna była prosta – ten świetny program do tworzenia filmów poklatkowych (timelapse) wydatnie korzystał z NVIDIA Cg Toolkit. Lecz parę dni temu pojawiły się łatki umożliwiające wykorzystanie OpenCV w miejsce Cg i od tej chwili programem mogą cieszyć się szersze rzesze odbiorców pragnących przekuć swe pozornie nieruchome zdjęcia w video.

Całe to zamieszanie wynikło z faktu, że SlowmoVideo nie jest programem do generowania najoczywistszej formy poklatkowej. Zamiast wyświetlać po sobie zdjęcia wg. założonego interwału, SlowmoVideo oblicza które piksele pomiędzy kolejnymi kadrami uległy przemieszczeniu i generuje klatki pośrednie. To pozwala uzyskać niesamowicie wyglądającą płynność w zwolnionym tempie. Kolejną cechą jest możliwość przyśpieszania i zwalniania transformacji pomiędzy kolejnymi klatkami – SlowmoVideo wykorzystuje do tego układ współrzędnych, gdzie oś Y to kolejna klatka/kadr naszego materiału, a oś X to jej miejsce w czasie. Oczywiście zdjęcia to nie jedna forma materiału jaką przyjmuje program, bo z powodzeniem operację zwalniania i przyśpieszania możemy przeprowadzać na wczytanym pliku wideo (obsługiwanym przez FFmpeg).

SlowmoVideo 2.6GIT

Wszystkie niedoskonałości w przejściach możemy spróbować ukryć z wykorzystaniem efektu Motion Blur, jak też użyć zewnętrznego edytora SlowmoFlowEdit do precyzyjnego usuwa skaz i artefaktów. I tak jak to wszystko brzmi w miarę logicznie, tak z samym programem trzeba odbyć parę sesji, nim zaznajomimy się z jego specyfiką.

Jak to wszystko wygląda w praktyce i czym się różni od standardowego ‘sklejania’ poszczególnych? A właśnie tak:

httpv://vimeo.com/27681404

Najkrótsza droga do osiągnięcia jakiegoś wyniku:

  • po uruchomieniu slowmoUI, wybieramy File->Preferences i upewniamy się, że wybrana jest opcja OpenCV – klikamy OK,
  • wybieramy File->New i wypełniamy kwestionariusz nowego projektu – folder i nazwa projektu, czy obrabiać będziemy wideo czy zdjęcia, oraz samo wskazanie naszych danych,
  • najprostsza transformacja bez zwracania uwagi na okoliczne opcje i przełączniki – na osi osadzamy jeden węzeł w punkcie 0, drugi węzeł przeciągamy do samej góry (pozioma linia) i w prawo zwiększając czas trwania filmiku,
  • wybieramy File->Render i określamy: liczbę klatek na sekundę, rozmiar filmu wynikowego, parametr lambda (można go zmniejszyć przy wystąpieniu skaz i artefaktów w efekcie końcowym), typ rozmycia maskującego, miejsce zapisu oraz ew. opcje FFmpeg.

Przykładowy filmik sklejony z 16 kadrów chałupniczej jakości:

httpv://youtube.com/watch?v=pItqVbKLA4I

Po krótkim treningu będziemy mogli zanurzyć się w bardziej skomplikowane opcje SlowmoVideo, takie jak bardziej wymyślny układ węzłów na osi, krzywe Beizera między węzłami oraz funkcje generujące rozmycie. Program w wersji z GIT może niekiedy mieć humory, dlatego należy wykazać się wyrozumiałością. Choćby do tego, że póki co, program nie doczekał się odpowiedniego wpisu do menu i należy uruchamiać go ‘z palca’ poleceniem ‘slowmoUI’. Kosztem wykorzystania OpenCV zamiast Cg jest nieco gorsza precyzja i prędkość działania programu i gdyby ktoś zdecydowanie nie godził się na taki kompromis, musi wykorzystać paczki .deb oferowane przez autora.

A użytkownicy Ubuntu 12.04/Mint 13/pochodne mogą zainstalować SlowmoVideo (wersja 2.6.20120712) po dodaniu repozytorium Highly Explosive:

sudo add-apt-repository ppa:dhor/myway
sudo apt-get update
sudo apt-get install slowmovideo