Strona 1 z 1

Kurs obróbki Video

: czwartek 30 paź 2014, 17:58
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

: czwartek 30 paź 2014, 19:24
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.

: czwartek 30 paź 2014, 19:36
autor: fragles
Dobra robota! Dodaję do ulubionych.

: czwartek 30 paź 2014, 19:50
autor: misiekkk
Super poradnik.

Z niecierpliwością czekam na kolejne odcinki.

: czwartek 30 paź 2014, 20:13
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...

: czwartek 30 paź 2014, 20:23
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!

Re: Kurs obróbki Video

: czwartek 30 paź 2014, 22:36
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.

Re: Kurs obróbki Video

: czwartek 30 paź 2014, 22:46
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ć.

: piątek 31 paź 2014, 09:44
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 ;-)

: sobota 01 lis 2014, 12:28
autor: krzyzak0
Rewelacja :)

: sobota 01 lis 2014, 14:27
autor: markac
Doszło coś o profilach i poziomach.
Temat dotyczy także XviD, ale tam mamy przyjazny kalkulator w zestawie.

: poniedziałek 03 lis 2014, 21:20
autor: markac
Post wzbogacono o Lekcję 3 - Scalanie klipów.

Re: Kurs obróbki Video

: sobota 11 mar 2017, 22:17
autor: Agrodzinski
Free Video Editor - dlaczego podczas edycji video program się strasznie tnie?

Re: Kurs obróbki Video

: sobota 11 mar 2017, 22:54
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.

Re: Kurs obróbki Video

: sobota 11 mar 2017, 23:05
autor: markac
Niestety, AVS nie wspiera CUDA, jak Adobe Premiere Pro.