Wiedźmińska popijawa w Pubie pod Ziemią

Wpadłem na krakowskie wydarzenie pod nazwą „Wiedźmińska popijawa” z kamerą sferyczną, zrobiłem kilka dłuższych ujęć z różnych miejsc, popracowałem łącznie kilka dni nad materiałem, poczekałem 10 godzin na wyrenderowanie filmu, i oto powstał prawie dwu i półminutowy skrót z imprezy. Nie było jednak tak łatwo, jakby mogło się wydawać. Ale od początku.

Przyszedłem na piwo

…i pograć w darta. 🙂 Przy okazji wziąłem ze sobą kamerę Garmin Virb 360 i trzy rodzaje statywów. Najmniejszy, otrzymany z kamerką, przydał się do ujęć ze stolików. Średni postawiłem na okienku między świeczkami. Duży, połączony z monopodem, posłużył do nagrania ujęć między stolikami.

Procedura nagrywania filmów była nieskomplikowana, a nawet przyjemna. Podchodziłem do ludzi, przy których chciałem postawić kamerę, pytałem się, czy mogę ich nagrać, ustawiałem sprzęt i puszczałem nagrywanie. Po około dwóch rundach w darta i kilku łykach piwa wracałem po kamerkę, zmieniałem jej umiejscowienie i zaczynałem proces od nowa. 🙂 Łącznie wykonałem 6 nagrań, na podstawie których utworzyłem film wynikowy. Przemnażając ilość ujęć przez łyki piwa, wyjdzie na to, że czas wykonania filmów zmieścił się w wypiciu jednego browara. 🙂

Oczywiście nie obeszło się bez pytań, co to za dziwna kamera. Temat nagrań 360° jednak jest już tak znany, że czasami nie musiałem odpowiadać, bo znajomy pytającego znał odpowiedź i wyjaśniał, zanim otworzyłem usta. Atmosfera była miła, a kamera prowokowała uczestników do rozmów z jej operatorem. Były zbroje, miecze, dziewki, napitek, toasty, gry… Potrzymałem miecz, a nawet mogłem bezpiecznie dotknąć języka południcy.

Po zebraniu nagrań, schowaniu sprzętu, skończeniu gry w darta i dopiciu piwa poszedłem… po kolejne piwo. Reszta wieczoru w Pubie pod Ziemią jest poza zakresem tego wpisu. 😉

Przygotowanie do montażu

Nastąpiło to trzy miesiące później, czyli w styczniu 2018 roku. Miałem surowy materiał wideo, utwór muzyczny pod podkład, potrzebne licencje na oprogramowanie i byłem bogatszy o wiedzę z zakresu tworzenia filmów sferycznych po obejrzeniu kilku samouczków. Tak naprawdę to wiele już wiedziałem, ale musiałem sobie co nieco przypomnieć, bo ostatni film sferyczny składałem prawie rok temu. Od tamtego czasu trochę się pozmieniało – jak wtedy do efektów dla filmu sferycznego wykorzystywałem Mettle Sky Box Studio, to dziś ten pakiet wtyczek do programów Adobe Premiere i Adobe After Effects został wykupiony przez firmę Adobe i jest zawarty w pakiecie Adobe Creative Cloud, który już posiadam. Gdybym poczekał rok, to nie musiałbym bulić sporej sumy za pakiet firmy Mettle, no, ale z drugiej strony nie stworzyłbym poprzednich filmów sferycznych. Drogo wyszło, ale nie żałuję.

Surowe nagranie jednego ujęcia składało się z dwóch plików, po jednym na obiektyw kamery, czyli obiektyw przedni i tylny. Poniżej prezentuję przykład klatki surowego filmu z dwóch obiektywów kamery – tylnego i przedniego.

Kiedy w sierpniu poprzedniego roku zakupiłem kamerę Garmin Virb 360, to dla rozdzielczości większej niż 4K niestety dostarczone oprogramowanie nie potrafiło złożyć obrazu z dwóch kamer w jedną całość. Któraś z aktualizacji spowodowała, że w dzień rozpoczęcia przygotowań można było już tego dokonać, jednak efekt był mocno średni, bo często było widać granicę złączeń obrazów.

W celu uzyskania lepszego złączenia obrazu z kamery przedniej i tylnej posłużyłem się zewnętrznym oprogramowaniem firmy SGOMistika VR. Wygląda na to, że na ten czas jest to najlepszy program do sklejania obrazu sferycznego z wielu kamer, który wykorzystuje algorytm Optical Flow. Polega on na zaawansowanej analizie nie jednej klatki filmu, a całego ich zestawu. Algorytm m.in. śledzi obiekty, które przechodzą z jednego obiektywu do drugiego, i stara się nie zaburzać wyglądu śledzonego obiektu na złączeniu. Efektem jest zdecydowanie lepsze, często tzw. bezszwowe, łączenie obrazów z wielu kamer. Poniżej porównanie tej samej klatki filmu sferycznego bez i z zastosowaniem algorytmu Optical Flow. Zwróćcie uwagę na lewą stronę drzewka.

Algorytm Optical Flow stosuje w czasie rzeczywistym np. kamera Insta360 Pro, ale tylko do rozdzielczości 4K. Garmin Virb 360 nie ma w sobie zaimplementowanego takiego algorytmu, więc pozostało mi zaprząc do tego celu oprogramowanie zewnętrzne. Mistika VR wyprodukowała mi ostatecznie 6 prawidłowych filmów sferycznych o proporcjach 2:1 w rozdzielczości 5.7K (5840x2920px).

Montaż

Główny projekt montowanego filmu realizowałem w Adobe Premiere Pro 2018.

Wyznacznikiem pojawiania się kolejnych scen był podkład muzyczny. To pod niego ciąłem nagrania wideo. Mogłem wykorzystać dowolny utwór zespołu Open Access i pod materiał wideo wybrałem kawałek pt. Over a mountain peak. Pasował on idealnie do tego, co chciałem stworzyć.

Każdy film wymaga zmiany barw pod wizję autora. Do tego celu wykorzystałem standardową wtyczkę Lumetri. Do gustu przypadł mi dostępny w Lumetri filtr o nazwie Kodak 5218 Kodak 2383 (by Adobe), który zastosowałem. Wprowadził on idealny kontrast i ciepłotę barwną. Poza tym dostroiłem delikatnie barwy, manipulując suwakami wtyczki.

W związku z tym, że nagrania odbywały się w ciemnym pomieszczeniu, to konieczne było zastosowanie odszumiania. Tutaj nie widzę do tego lepszej wtyczki niż Neat Video. Program nie jest stworzony do odszumiania wideo sferycznego (taki specjalistyczny soft jeszcze nie istnieje), jednak dzięki niemu mogłem zmniejszyć szum na nagraniu.

Napisy na końcu nagrania w postaci osobnych sekwencji wideo wygenerowalem w Adobe After Effects, ponieważ Adobe Premiere nie posiada możliwości manipulowania obiektami na sferze filmu.

Sferyczne przejścia między ujęciami (dedykowane dla filmu 360°) polegały na zastosowaniu odpowiedniego efektu w Adobe Premiere z kategorii Video Effects/Immersive Video. To są właśnie te same efekty wideo, które dostarczała firma Mettle.

Problemy – rozdzielczość 5.7K

Problem z rozdzielczością 5.7K miałem już na etapie przygotowania, czyli w programie Mistika VR. Podczas tworzenia projektu w tej aplikacji niestety mamy do wyboru tylko gotowe ustawienia (presety). Były do wyboru różne rozdzielczości, ale żadna z nich nie była blisko tej dla 5.7K, czyli 5840x2920px. Mail do supportu firmy SGO zaowocował szybką odpowiedzią z linkiem do forum, na którym jest opisane, jak stworzyć swoje wymarzone gotowe ustawienie. Polega to na dotarciu do odpowiedniego pliku konfiguracyjnego, w którym można zmienić tę rozdzielczość.

W Mistika VR eksport złożonego wideo mógł odbyć się tylko przy pomocy kodeka QuickTime ProRes 4444. Popularnie używany kodek H.264 może co najwyżej zakodować film maksymalnie do rozdzielczości 4K. W Adobie Premiere eksport całego materiału musiałem zakodować w H.265, czyli kodeku, który umożliwia zakodowanie materiału do rozdzielczości 8K.

Kodek H.265 w porównaniu z H.264 potrafi zakodować ten sam materiał z dwukrotnie mniejszym bitratem (przepustowością, tj. plik jest po prostu dwa razy mniejszy), ale niestety przy trzykrotnej złożoności obliczeniowej. Oznacza to, że kodek H.265 jest bardzo łasy na procesor. Mój 12-wątkowy Intel Core i7-5820K po prostu nie wyrabiał i był na czas renderingu obciążony ciągle na 100%, czyli przez 10 godzin. Dwie karty graficzne GTX 970 połączone w SLI po prostu się nudziły, bo obliczenia związane z kodowaniem materiału w H.265 znacznie zajmowały procesor. Moje badania spowodowały utworzenie wątku na forum Adobe. Dowiedziałem się wtedy o tym, jak bardzo zasobożerny jest kodek H.265 i dla jakich operacji wykorzystywane są rdzenie CUDA karty graficznej (niestety nie wspomagają kodowania w H.265).

Dobrą alternatywą dla kodeka H.265 ma być googlowski VP9, który jest wykorzystywany np. przez serwis YouTube. Kodek VP9 jest przede wszystkim mniej wymagający, jeśli chodzi o obliczenia. Poświęciłem mu chwilę, ale nie udało mi się nim poprawnie zakodować materiału.

Finalny plik umieściłem w serwisie YouTube i na Facebooku. YouTube pozwala wyświetlać ten materiał maksymalnie w rozdzielczości 5K, a Facebook niestety tylko w 4K.

Pozostałe problemy

Niestety, mam jeszcze jeden nierozwiązany ticket związany z Mistika VR, który dotyczy niemożności zapisu filmu wynikowego z dźwiękiem. Dla tej produkcji dźwięk z kamery był mi niepotrzebny, więc temat nie miał dla mnie priorytetu.

Gdy tworzyłem napisy końcowe do filmu w Adobe After Effects, to napotkałem na dziwny problem dotyczący kolejności zastosowanych efektów. Studium przypadku dotyczyło dwóch efektów:

  • VR Plane to Sphere przekształca płaski obiekt na taki mogący być wyświetlony poprawnie na filmie sferycznym.
  • VR Blur dokonuje efektu rozmycia na obiekcie.

Kiedy efekt VR Plane to Sphere był nad VR Blur, to obiekt… stawał się niewidoczny. Gdy kolejność została zamieniona, to obiekt stawał się widoczny. Ciekawe było to, że przy pierwszej konfiguracji, gdzie obiekt był niewidoczny, w wytworzonej sekwencji wynikowej obiekt był widoczny. Wygląda to na jakiś błąd w programie, skoro po wyrenderowaniu obiekt jest jednak na filmie.

wiedzmin-final_version(148).mp4

I tu was zaskoczę. Faktycznie, wersja finalna była tylko pierwsza i ostatnia. 🙂 Przed nią były oczywiście wersje próbne, ale polegały one na utworzeniu pliku wynikowego tylko z wybranego kilkusekundowego fragmentu.

Final version poniżej.