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).
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
Ja mam niestety problem – nie mogę niczego wyrenderować, gdyż przycisk OK jest zawsze zaciemniony, jakiej opcji bym nie ustawił :-/
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.
Konsola nic nie mówi na ten temat a uzupełnione jest co trzeba, niemniej OK strajkuje. Muszę napisać do autora:
Konsola nic nie mówi na ten temat a uzupełnione jest co trzeba, niemniej OK strajkuje. Muszę napisać do autora:http://www.fotosik.pl/pokaz_obrazek/eb52178dcf5c4c82.html
Konsola nic nie mówi na ten temat a uzupełnione jest co trzeba, niemniej OK strajkuje. Muszę napisać do autora.
A próbowałeś zmienić Orginal Size na Small?
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.
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?
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
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
Uruchom program w terminalu i zobacz, jaki błąd się pojawia.
mam windowsa i w tym niema terminala tylko cmd
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