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

14 komentarzy

  1. Ja mam niestety problem – nie mogę niczego wyrenderować, gdyż przycisk OK jest zawsze zaciemniony, jakiej opcji bym nie ustawił :-/

  2. Odpal program w konsoli i coś powinno się pojawić na wyjściu. Przy ustawianiu czegokolwiek, wszystkie podświetlane kolorami pola muszą się mienić piękną zielonią – czerwony oznacza, że coś jest nie tak z ustawieniem.

  3. Konsola nic nie mówi na ten temat a uzupełnione jest co trzeba, niemniej OK strajkuje. Muszę napisać do autora:

  4. Konsola nic nie mówi na ten temat a uzupełnione jest co trzeba, niemniej OK strajkuje. Muszę napisać do autora.

  5. Tak, ale nic to nie daje. W ogóle po otworzeniu ponownie projektu nie importują się zdjęcia, inne pola Curve Monitor i Render Preview też nic nie pokazują. Muszę chyba napisać do autora, choć zainstalowałem na Fedorze to, co autor kazał.

    PS: wybacz spam w komentarzach – wypadło mi z głowy, że linki musza przejść przez moderację, więc się powieliłem :-/ Można usunąć mój zbędny, nieświadomy spam.

  6. Czy ktoś może mnie wspomóc z kompilacją na debianie? Z git pobrałem źródła i w /usr/src/slowmoVideo/V3D/build “cmake ..” wywala mi:
    * sVflow library not found. Did you make –install it?
    Nigdzie nie namierzyłem libsVflow* a google jest niezbyt pomocne w tej sprawie.
    Z kolei “make -j3 w /usr/src/slowmoVideo/slowmoVideo/build# wywala:
    Linking CXX executable slowmoFlowEdit
    [ 36%] Built target slowmoFlowEdit
    [ 36%] Building CXX object project/CMakeFiles/sVproj.dir/emptyFrameSource_sV.cpp.o
    /usr/src/slowmoVideo/slowmoVideo/project/videoFrameSource_sV.cpp: In member function ‘void VideoFrameSource_sV::extractFramesFor(FrameSize, QProcess*)’:
    /usr/src/slowmoVideo/slowmoVideo/project/videoFrameSource_sV.cpp:172: error: expected ‘)’ before ‘;’ token
    /usr/src/slowmoVideo/slowmoVideo/project/videoFrameSource_sV.cpp:177: error: expected unqualified-id before ‘}’ token
    /usr/src/slowmoVideo/slowmoVideo/project/videoFrameSource_sV.cpp:177: error: expected ‘;’ before ‘}’ token
    make[2]: *** [project/CMakeFiles/sVproj.dir/videoFrameSource_sV.cpp.o] Błąd 1
    make[2]: *** Oczekiwanie na niezakończone zadania….
    make[1]: *** [project/CMakeFiles/sVproj.dir/all] Błąd 2
    make: *** [all] Błąd 2

    Gdzie mogę namierzyć Svflow?

  7. Debian/Ubuntu

    apt-get install build-essential cmake git ffmpeg libavformat-dev libavcodec-dev libswscale-dev libqt4-dev freeglut3-dev libglew1.5-dev libsdl1.2-dev libjpeg-dev libopencv-video-dev

  8. pomóżcie po wykonaniu wszystkich czynności program przestaje poprawnie działać tak jak by się zacioł brak odpowiedzi za każdym razem kiedy nacisne w oknie rendern przycisk ok

  9. sebar25, trochę późno ale chyba lepiej niż wcale 🙂
    w V3D/CMakeList.txt stoi wyraźnie:

    # On Unix just include the previously built library.
    Czyli skompiluj i zaistaluj najpierw ze ./slowmoVideo wersję cpu, później tą dla gpu/cl

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.