Kurs obróbki Video

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Kurs obróbki Video

Post autor: markac »

Od dawna chodziło mi po głowie stworzenie małego poradnika dotyczącego kompresji filmów na nasze potrzeby.
Grupą docelową nie są osoby profesjonalnie zajmujące się video-filmowaniem,
Ci bowiem używają profesjonalnego oprogramowania, w większości komercyjnego.

Z tego poradnika dowiesz się:
  1. Jak przycinać klipy, także bezstratnie.
  2. Dodawać filtry.
  3. Kompresować.
Instalujemy środowisko pracy

Do obróbki video posłużą nam popularne i darmowe programy:
VirtualDub
http://virtualdub.sourceforge.net/

VirtualDubMod
http://virtualdubmod.sourceforge.net/

Ten ostatni jest wymagany dla osób posiadających nagrania w MPEG-2.
Osobiście mam jeszcze taki grabber video na złącze PCMCIA:

Prolink PixelView PlayTV Mobile 4in1
który tworzy pliki w tym przestarzałym formacie z przeplotem:

Obrazek

Wymagane encodery i pluginy

Plugin DirectShow Input Driver
Potrzebny do otwierania plików video zapisanych z użyciem kontenera MP4 lub MKV,
np. pliki MOV z kamer KeyChain 808#13.
http://forums.virtualdub.org/index.php? ... =7&t=15093

Brak tego pluginu objawia się komunikatem:
Example.mov is of an unknown or unsupported file type.
Plugin Deshaker – stabilizuje obraz video.
http://www.guthspot.se/video/deshaker.htm

Bezstratny kompresor HuffYUV
Dla osób, które chcą zapisać efekty pracy bezstratnie, a następnie użyć innego (niekoniecznie) narzędzia do końcowej kompresji.
Niestety w 64 bitowej wersji Windowsa 7 nie potrafię go poprawnie zainstalować (na 32 bitowej wersji używałem go bez problemu), więc nie będzie opisu na temat jego wykorzystania.
Kodek X264 zawiera profil bezstratnej kompresji, więc prawdopodobnie może on go zastąpić.

Pluginy do VirtualDub kopiujemy po prostu do folderu plugins.

Kodek XviD
Dla osob kompresujących do XviD - brak opisu w tym poradniku.
https://www.xvid.com/download/

Kodek AVC
http://www.videolan.org/developers/x264.html

Binarki:
http://download.videolan.org/pub/x264/binaries/

Kodek audio Lame
http://lame.sourceforge.net/

Skracanie klipów AVI

Pliki MOV nie pozwalają na skracanie filmów bez ponownej kompresji, dlatego warto rozważyć aktualizację Firmware kamerki 808 i wybrać AVI zamiast MOV.

Obrazek

W przypadku plików AVI (standardowy kontener systemu Windows) skracanie klipów jest bardzo proste.

Otwieramy plik w VirtualDub i z menu wybieramy kolejno:

Video → Direct strem copy
Audio → Direct strem copy

Obrazek

Zaznaczamy wybrany fragment klipu strzałkami (2).
Następnie używamy przycisków (1) aby przesunąć zaznaczenie do najbliższych klatek kluczowych.
Pojawi się znaczek [K] (3).

Jeśli tylko jeden interesujący fragment chcemy wyeksportować, wystarczy w tym momencie użyć już tylko:

Edit → Crop to selection

Teraz wystarczy już tylko zapisać plik:

File → Save as avi...

Skracanie klipów MOV

Jak już zostało wspomniane, bezstratnie w VirtualDub tego nie wykonamy i będzie wiązało się to z rekompresją,
a że jest to temat na następy punkt, w tym miejscu opiszę tylko otwieranie takich plików w VirtualDub i sposób wykonania bezstratnego cięcia w polecanym na końcu poradniku Free Video Editor z pakietu DVDVideoSoft.

W mojej wersji VirtualDub nie trzeba nic specjalnego wykonywać, ale w innych wersjach może być potrzeba ręcznego wskazania filtru DirectShow input driver.

Jako nazwę pliku wpisujemy "*" i naciskamy ENTER.
Następnie wybieramy klip video.

Obrazek

Próba zapisania takiego pliku wg poprzedniej instrukcji wygeneruje błąd:

Obrazek

Użyjemy więc alternatywnego oprogramowania w tym celu, czyli wspomnianego Free Video Editor.

Obrazek

Najważniejsze czynności zostały zaznaczone na zdjęciu.
  • otwieramy plik
  • zaznaczamy interesujący fragment
  • klikamy Invert selection [Z]
  • zaznaczamy Original format
  • zaznaczamy Split by selections
  • zapisujemy wyniki pracy Save video
Zmiana rozdzielczości filmu

Przed kompresją filmu zawsze zalecam (i tutaj zacytuję sam siebie z innego tematu na forum):
Ponowna kompresja wymaga zmniejszenia rozdzielczości przynajmniej o jeden poziom, aby zachować podobną, albo nawet taką samą jakość przy oglądaniu filmu w rozdzielczości natywnej - wynikowej.
Jeśli więc materiał źródłowy masz w rozdzielczości Full HD, film wynikowy powinien być w rozdzielczości HD.
Następnie odpowiednio: HD → 480p, 480p → 360p.

Operacje do przeprowadzenia:

Video → Full processing mode
Video → Filters → Add...

Dodajemy filtr Resize (jeśli zmieniamy rozdzielczość), którego okno konfiguracji wygląda następująco:

Obrazek

Najpierw wpisałem wybraną wysokość filmu 480p.
Szerokość została wyliczona automatycznie (przy zaznaczeniu Aspect ratio: Same as source) na 853.333,
co jest błędne, dlatego nastepnym krokiem było zaznaczenie opcji Aspect ratio: Disabled i poprawienie szerokości z zaokrągleniem w górę do liczby całkowite 854px (podzielne przez dwa – o tym w nastepnym punkcie).

W tym kroku mamy również możliwość dokonania kadrowania, jeśli plik źródłowy jest w innym formacie niż docelowy:

Obrazek

Video → Compression

Obrazek

Kodek XviD nie będzie opisywany, gdyż poradnik byłby za długi, dlatego skupię sie tylko na x264, który daje lepsze efekty przy mniejszych plikach wynikowych.

Jak widzimy, jest kilka ograniczeń, np. wysokość pliku musi być podzielna przez 2.
Oto lista rekomendowanych rozdzielczości przez YouTube dla formatu 16:9:
  • 2160p: 3840x2160
  • 1440p: 2560x1440
  • 1080p: 1920x1080
  • 720p: 1280x720
  • 480p: 854x480
  • 360p: 640x360
  • 240p: 426x240
https://support.google.com/youtube/answer/1722171?hl=en

Naciskamy "Configure" i przechodzimy do ustawień Encodera.

Obrazek

Przy standardowych ustawieniach dostałem bardzo dobre wyniki (Load Defaults).
Obowiązkowo zaznaczamy opcję Virtual Dub Hack, inaczej podczas kompresji dostaniemy kilka ostrzeżeń z błędami.

Kompresji możemy dokonać używając stałej wartości bitrate ABR, lub np. podając wartość ratefactor CRF (domyślnie).
Jest jeszcze kilka innych opcji, np. kompresja dwu-przebiegowa, która daje lepsze efekty i mniejszy plik, ale wymaga od nas większej pracy.

Domyślna wartość CRF to 23. Eksperymenty zaczynamy od tej właśnie wartości podążając w dół (do 1.0).

Dodatkowe filtry

Najczęstszymi filtrami jakie zapewne będziesz używał to:
  • resize
  • deinterlace – pozbycie się przeplotu
  • deshaker – stabilizacja video
  • null-transform – głównie do kadrowania

Zmiana fps
Przed końcową kompresją należy jeszcze zdecydować o fps.
W większości przypadków zostawiamy go bez zmian:

Video → Frame rate

Obrazek

Tutaj trzeba postępować ostrożnie, gdyż nieumiejętne posługiwanie się tą funkcją może spowodować rozsynchronizowanie się ścieżki dźwiękowej.

Kilka przykładów z życia:

Zmiana fps z 60 na 30:
  1. Frame rate conversion → Process every other frame (decimate by 2).
Przyspieszenie filmu x2:
  1. Change frame rate to 60
  2. Convert fo fps 30
Na koniec został już tylko dźwięk.
Gdy mamy już zainstalowany kodek Lame, wybieramy format mp3.

Audio → Full processing mode
Audio → Compression

Obrazek

Lepsze efekty daje kodek AAC, następca kodeka mp3, ale na tę chwilę nie znalazłem Encodera do VirtualDub-a.

Koniec prac zwieńczamy oczywiście zapisując plik z rozszerzeniem mp4 (dla h.264).

Podsumowując, zamieszczam klatki z klipów zakodowane w XviD i X264 stosująć ten sam bitrate.

Informacje o klipie:
  • Długość klipu: 10s.
  • Bitrate video: ~450kbps
  • Rozdzielczość: 480p
  • Rozmiar pliku: ~600kB (bez dźwięku).
XviD Zoom 100%

Obrazek

XviD Zoom 200%

Obrazek

X264 Zoom 100%

Obrazek

X264 Zoom 200%

Obrazek

Widać wyraźnie, że kodek X264 wygrywa.
Oczywiście normalnie nie uzyskasz tak dobrego obrazu przy opisywanym bitrate ze źródeł ogólnie dostępnych, jak nasze kamerki.
Trzeba wziąć pod uwagę, że źródłem był klip o rozdzielczości 4k...

Photobucket chyba nie zastosował własnej kompresji zdjęć, co wnioskuję po rozmiarze zdjęcia.

Dodatkowe polecane oprogramowanie:

DVDVideoSoft
http://www.dvdvideosoft.com/pl/

Obrazek

avs4you - płatne (zakupiłem, polecam)
http://www.avs4you.com/

Obrazek

K-Lite Codec Pack
http://www.codecguide.com/

W skład zestawi wchodzą kodeki, Player, MediInfo i inne przydatne narzędzia.

Lekcja 2
Tylko dla Geeków

W tej części opiszę poszczególne i najważniejsze moim zdaniem parametry kodeka x264vfw.
Zalecałem użycie domyślnych ustawień, które dobrze się sprawują i w dalszym ciągu je polecam - nie ma sensu ich zmieniać.

Jednakże, jeśli używasz alternatywnego oprogramowania i alternatywnych encoderów dostarczanych z danym narzędziem, warto pogłębić wiedzę.

Aktualizacji poradnika by nie było, gdybym nie odkrył, że w płatnym oprogramowaniu AVS Video Editor i jego encoderze ustawiane są parametry na wyrost, co przekłada się na kompatybilność odtwarzania na różnych urządzeniach.

To czy dany film może zostać odtworzony na danym urządzeniu, zależy od jego profilu (ang. Profile) i poziomu (ang. Level).
Dotyczy to zarówno XviD jak i X264.

Lista możliwych poziomów została podana na stronie Wikipedii:
http://pl.wikipedia.org/wiki/H.264/MPEG-4_AVC

Poziom definicje między innymi maksymalną rozdzielczość i fps.
Należy wybrać najmniejszy poziom odpowiadający naszym wymaganiom.

AVS Video Editor wybiera najwyższy poziom 5.1 bez względu na zastosowaną rozdzielczość i fps, co ogranicza odtwarzanie naszego filmu do urządzeń, które potrafią odtworzyć filmy poziomu 5.1.

X264 automatycznie dobiera parametry biorąc pod uwagę szereg ustawień użytkownika.
Jeśli chcesz wyliczyć poziom ręcznie, wystarczy posiłkować się zacytowaną tabelką,
ewentualnie użyć darmowego narzędzia, np.

H.264 Level Calculator
https://gist.github.com/moret/1217033

Jest to zwykła strona internetowa wykorzystująca JavaScript, którą odpalamy w przeglądarce (po ściągnięciu).
Wpisujemy wymaganą rozdzielczość, fps i dostajemy odpowiedni Poziom, który należy zastosować, np.:

Obrazek

Wyliczony Poziom wyznacza nam także. maks. Bitrate, jaki możemy zastosować, wg tabelki dla poziomu 3 otrzymujemy:
  • 352x480@61.4 (12)
  • 352x576@51.1 (10)
  • 720x480@30.0 (6)
  • 720x576@25.0 (5)
12.5 Mbit/s dla profilu High, mieścimy się więc w widełkach.
Przykładowo dla poziomu 2.2 możliwe parametry filmu to:
  • 352x480@30.7(10)
  • 352x576@25.6 (7)
  • 720x480@15.0 (6)
  • 720x576@12.5 (5)
Mieścimy się w rozdzielczości (6), ale nie fps (ilości klatek na sekundę), która wynosi 15fps dla tego poziomu.

Wspomniałem tylko o poziomach, ale są jeszcze profile.

Jeśli zainstalowałeś pakiet kodeków K-Lite, powinieneś mieć narzędzie MediaInfo (można zainstalować jako oddzielny program), które występuje w menu kontekstowym po kliknięciu prawym klawiszem myszy na wybrany film.

Dla filmu demo stworzonego na potrzeby tej lekcji uzyskuję następujące wyniki:

Obrazek

Czyli High@L3.0.

Rodzaje profili:
  1. Profil Podstawowy – Baseline Profile (BP) Głównie dla aplikacji o najniższym wykorzystaniu kodera, ten profil wykorzystywany jest przede wszystkim do wideokonferencji oraz urządzeń i aplikacji przenośnych.
    Np. starsze urządzenia iPod i iPhone 1/3G.
  2. Profil Główny – Main Profile (MP) Uniwersalny dla klientów przekazów strumieniowych np. satelitarnych DVB-S2 oraz naziemnych DVB-T i DVB-T2 o rozdzielczości nieprzekraczającej 720x576 pikseli.
    Np. iPhone 4, iPad 1, Apple TV 2 i starsze
  3. Profil Wysoki – High Profile (HiP) Głównie wykorzystywany dla klientów przekazów strumieniowych o wysokiej rozdzielczości np. satelitarnych DVB-S2 oraz naziemnych DVB-T i DVB-T2. Skuteczniejszy od Main Profile, ponieważ jest w stanie w pełni skorzystać z rozdzielczości 1280x720i, 1280x720p oraz 1920x1080i. Stosowany jest również do kompresji filmów na dyskach HD DVD i Blu-ray.
    Np. iPhone 4S, iPad 2, Apple TV 3 i starsze
Jaki profil wybrać?
Dla naszych zastosowań oczywiście High:
Wysoka rozdzielczość (od 720p i 720i), HD DVD i Blu-ray, dla filmów przechowywanych na dysku.

Krótki opis potwierdzający wiedzę encyklopedyczną (z Wikipedii):
http://www.gravlab.com/2013/11/07/diffe ... -profiles/

Kompresja 2-przebiegowa
Jeszcze lepsza jakość, mniejszy plik wynikowy, większa ilość poświęconego czasu.

Wybierając kompresję dwu-przebiegową, tracimy możliwość wybrania kompresji typu CRF.
Pamiętając jaki bitrate ostatnio się sprawdził, wybieram ABR 450kbps.
  • Wybieramy Rate Controll: Multipass – 1st pass (pierwszy przebieg).
  • Wybieramy lokalizację dla nowo-tworzonego pliku statystyk Stats file.
  • Zapisujemy plik.
Obrazek
Po skończonej kompresji jeszcze raz wchodzimy w ustawienia encodera i wybieramy drugi przebieg:
  • Rate Controll: Multipass – Nth pass.
  • Zapisujemy film do tego samego pliku (zastępujemy go).
Obrazek
GOTOWE.

Stosunek pojemności pliku dla pojedynczego i podwójnego przebiegu:
613 KB vs 584 KB

Oczywiście rozmiar to nie jedyna zaleta dwu-przebiegowej kompresji.

Lekcja 3
Scalanie klipów bez rekompresji.

Wiele kamer dzieli filmy na klipy i jest to całkowicie normalne.
Aby scalić klipy w jeden dłuższy film, muszą być spełnione pewne wymagania, takie jak:
identyczny format, rozdzielczość, fps, itp.
Jednym słowem, klipy muszą pochodzić z tej samej kamery.

W przypadku AVI, możemy posłużyć się VirtualDub-em.
  1. Otwieramy pierwszy klip za pomocą VirtualDub File → Open video file...
  2. Następny dodajemy przez File → Append AVI segment...
  3. Powtarzamy punkt 2 dla pozostałych klipów
Jeśli chcemy zapisać film bezstratnie bez ponownej kompresji wybieramy:
  • Video → Direct stream copy
  • Audio → Direct stream copy
  • Zapisujemy plik File → Save as AVI
Obrazek
A co z plikami MOV?

Niestety, VirtulDub tego nie wykona.
Nie ma też takiego narzędzia w pakiecie DVDVideoSoft.
W płatnym pakiecie avs4you - który zresztą posiadam - znalazłem AVS Video ReMarker, który pozwala skracać i scalać klpy video bez ponownej kompresji, cytuję informacje ze strony:
Note: the files must have the same parameters - frame size (height, width), frame rate, coded with the same codec etc. so that you can merge them without the need of re-encoding.
O tych ograniczeniach wspominałem już wcześniej.

Obrazek

Działa to trochę dziwnie, gdyż plik źródłowy posiada ścieżkę dźwiękową:
PCM
Bit rate: 512 Kbps
Channel(s): 1 channel
a wyjściowy już:
PCM
Bit rate: 1 411.2 Kbps
Channel(s): 2 channels
Z tego wynika, że jeśli chodzi o ścieżkę dźwiękową, to raczej nie jest to „direct stream copy” - wg nomenklatury VirtualDub.

Bitrate Video mniej więcej się zgadza, ale identyczny nie jest.
Szybkość scalania jest jednak na tyle duza, że pozwala przypuszczać na brak zastosowanej ponownej kompresji video (po co mieliby kłamać w helpie?).
http://www.avs4you.com/guides/how-to-me ... files.aspx
Ostatnio zmieniony poniedziałek 03 lis 2014, 21:24 przez markac, łącznie zmieniany 10 razy.
Awatar użytkownika
pirzol
Posty: 986
Rejestracja: czwartek 18 sie 2011, 19:57
Lokalizacja: Nowy Sącz
Kontakt:

Post autor: pirzol »

Super sprawa, w pigułce.
Już kiedyś użyłem Twoich podpowiedzi, obróbka filmów MPEG z GoPro na virtualdubie super śmiga.
----------------------
http://www.fpvdrones.pl
Encyklopedia FPV, RC Heli i nie tylko...
Szkolenie VLOS - pomoc w samokształceniu.

Realis familiam pater, mater et filii est.
Awatar użytkownika
fragles
Posty: 1713
Rejestracja: poniedziałek 02 wrz 2013, 22:54
Lokalizacja: Góry Świętokrzyskie

Post autor: fragles »

Dobra robota! Dodaję do ulubionych.
Awatar użytkownika
misiekkk
Posty: 2084
Rejestracja: środa 01 cze 2011, 21:24
Lokalizacja: Kędzierzyn-Koźle

Post autor: misiekkk »

Super poradnik.

Z niecierpliwością czekam na kolejne odcinki.
Świat z góry wygląda lepiej ;-)
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Post autor: markac »

Dziekuje. Kilka godzin sie poswiecilo :-)
Niestety to tylko podstawy podstaw, bo wypadaloby opisac kazdy parametr encodera, ale to temat na ksiazke,
dlatego zeby nie wglebiac sie w szczegoly, warto uzywac predefiniowanych profili w polecanych programach, ktore sa dostarczane z odpowiednimi kodekami.
Nie wystarczy znac kodeki. Trzeba znqc limity, restrykcje, profile, wiedziec jaki bitrate dzwieku stosowac do danej rozdzielczowci.
Do tego metody skalowania przy resize, typ pliku zrodlowgo, statyczny, animacja, dynamiczny itp...
Awatar użytkownika
Ładziak
Posty: 1236
Rejestracja: czwartek 16 cze 2011, 00:09
Lokalizacja: Warszawa

Post autor: Ładziak »

markac pisze:Skracanie klipów MOV

Jak już zostało wspomniane, bezstratnie tego nie wykonamy i będzie wiązało się to z rekompresją,
Wykonamy, wykonamy, tylko innym programem: Free Video Editor

Program jest darmowy i tnie bezstratnie m.in. MOV z Mobiusa, ale i inne popularne formaty.
Jedynie przy instalacji należy odhaczyć doinstalowanie dodatków typu Opera, toolbar przeglądarkowy i radio - no chyba że ktoś to akurat potrzebuje :-)

markac, dobra robota!
Awatar użytkownika
michal_cz
Posty: 278
Rejestracja: niedziela 23 wrz 2012, 07:14
Lokalizacja: Gdańsk

Re: Kurs obróbki Video

Post autor: michal_cz »

markac pisze: MOV Jak już zostało wspomniane, bezstratnie tego nie wykonamy i będzie wiązało się to z rekompresją,
MOV, AVI, MP4 - to tylko kontenery, w przypadku mobiusa z tą samą zawartością, zarówno pliki quicktime jak i avi są skompresowane tym samym kodekiem.
Skracać bestratnie można każdy z tych formatów, jak i zamieniać bezstratnie między kontenerami za pomocą darmowego softu zarówno na jabola jak i pieca - mpegstreamclip.
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Re: Kurs obróbki Video

Post autor: markac »

michal_cz pisze: MOV, AVI, MP4 - to tylko kontenery, w przypadku mobiusa z tą samą zawartością, zarówno pliki quicktime jak i avi są skompresowane tym samym kodekiem.
Tak, to się zgadza, nigdzie tego nie neguję, a nawet potwierdzam.

Warto dodać, że z AVI z breloczka jest problem na VirtualDub przy przewijaniu (być może problem jest tylko u mnie), natomiast z MOV nie.

Przetestuję jeszcze wspomniany Free Video Editor, bo w moim pakiecie FreeVideoSoft miałem tylko Free Video Dub. Czas zaktualizować.
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Post autor: markac »

Uaktualniłem poradnik o bezstratne cięcie plików MOV w Free Video Editor, chociaż nie wiem czy dobrze jest mieszać różne oprogramowania w jednym poście ;-)
krzyzak0
Posty: 7
Rejestracja: poniedziałek 07 kwie 2014, 18:37
Lokalizacja: Częstochowa

Post autor: krzyzak0 »

Rewelacja :)
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Post autor: markac »

Doszło coś o profilach i poziomach.
Temat dotyczy także XviD, ale tam mamy przyjazny kalkulator w zestawie.
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Post autor: markac »

Post wzbogacono o Lekcję 3 - Scalanie klipów.
Agrodzinski
Posty: 15
Rejestracja: wtorek 07 lut 2017, 10:34
Lokalizacja: Stargard, Zachodniopomorskie

Re: Kurs obróbki Video

Post autor: Agrodzinski »

Free Video Editor - dlaczego podczas edycji video program się strasznie tnie?
Awatar użytkownika
PiotrSz
Posty: 3518
Rejestracja: środa 21 sie 2013, 22:04
Lokalizacja: Olsztyn

Re: Kurs obróbki Video

Post autor: PiotrSz »

Agrodzinski pisze:Free Video Editor - dlaczego podczas edycji video program się strasznie tnie?
Po pierwsze
Obrazek

A tnie Ci się ponieważ masz skopane kodeki albo masz za słaby komputer.
Awatar użytkownika
markac
Posty: 1506
Rejestracja: poniedziałek 27 gru 2010, 21:48
Lokalizacja: Warszawa

Re: Kurs obróbki Video

Post autor: markac »

Niestety, AVS nie wspiera CUDA, jak Adobe Premiere Pro.
ODPOWIEDZ