Nazwa Użytkownika   
Hasło   
  

Zarejestruj się  
Przypomnij hasło  
 
  Strona Główna Artykuły audio/video Forum Pliki Odtwarzacze Blu-ray Soft DVD Recenzje playerów MP3 Szukaj Kontakt RSS19.05.2012 13:13 
 
Nawigacja
Strona Główna
Artykuły audio/video
Forum
Pliki
FAQ
Odtwarzacze Blu-ray
Soft DVD
Recenzje playerów MP3
Szukaj
Kontakt
Archiwum newsów
Sponsorzy serwisu
RSS
Dodaj newsa
Pliki do pobrania
Ostatnio dodane
MediaCoder 0.8.12.5242
Zoom Player Home FREE 8.1.6
x264vfw 2197
x264 Encoder rev 2197
QuickTime Input Plugin 2.5 ...
MPEG-2 Input Plugin 4.5 dla...
FLV Input Plugin 2.3 dla Vi...
DirectShow import driver 0....
SUPER v2012.build.51
SMPlayer 0.8.0

Najchętniej pobierane
VirtualDubMod 1.5.10.3 buil... [58560]
VSO ConvertXToDVD 4.1.19.365 [36272]
Virtualdub-MPEG2 1.6.19 bui... [35704]
VirtualDubMod 1.5.10.2 (b.2... [35240]
XviD 1.3.2 stable (Koepi) [34088]
WinAVI Video Converter 11.5 [33984]
Avi ReComp 1.5.4 [32307]
Ultra RM Converter 5.1.0225 [31941]
AviSynth 2.5.8 final [29223]
Auto Gordian Knot 2.55 [28297]
Sztama


AviSynth POLSKA
Szybkie statystyki
VideoAudio.pl - serwis o technologii video/audio
WITAMY:
Waldemar
jako nowego użytkownika.

Zarejestrowanch Uzytkowników: 3876

Super Administratorzy: 3
Administratorzy: 2
Użytkownicy: 3871

Użytkownicy Online:

alpinus902:08:15
artsza05:57:55
007marc16:07:01
Placio74 2 dni
SHINGO 2 dni
Waldemar 5 dni
teklan 1 tydzień
henry200 1 tydzień
Liparus 1 tydzień
manusz 1 tydzień

Gości Online: 16

Najwiecej online: 106
Bylo: 27.05.2008-19:56
Twoje IP to: 38.107.179.210

Newsy 3371
Artykuły 132
Trutka na Spam
Poprzedni | Następny
Wprowadzenie do AviSynth
Słowo wstępne
Dla początkujących pierwsze spotkanie z AviSynth może być zaskakujące. Nowicjusz zadaje sobie pytania: "Jak to uruchomić?" i "Czy muszę być programistą, aby pisać skrypty?". Niniejszy tekst ma ułatwić bezbolesne wejście w świat AviSynth niedoświadczonym osobom.

Instalacja
Aby rozpocząć pracę z AviSynth, musimy go zainstalować w systemie. W tym celu ściągamy najnowszą wersję ze strony http://www.avisynth.org i dwukrotnie klikamy ściągnięty plik programu instalacyjnego. Potem klikamy I Agree w oknie umowy licencyjnej, zaś następnie konfigurujemy instalator tak, jak na załączonym obrazku:


Dzięki temu pliki skryptów będą stowarzyszone z programem Notatnik. Czym są skrypty? Dowiesz się za chwilę. Do pracy będziemy jeszcze potrzebować programu do kompresji obrazu i dźwięku, takiego jak VirtualDubMod.

Pierwszy skrypt
Przyszedł czas na napisanie pierwszego skryptu. Poleceniem Plik -> Nowy -> Dokument tekstowy w Eksploratorze Windows tworzymy plik tekstowy. Zostanie on automatycznie podświetlony. Następnie zmieniamy jego nazwę na skrypt.avs (gdy pojawi się pytanie Czy na pewno chcesz je zmienić?, klikamy Tak). Potem dwukrotnie klikamy plik skrypt.avs - otworzy się okno programu Notatnik. Do pliku wpisujemy tekst:

Version()

Plik skrypt.avs otwieramy w programie VirtualDubMod poleceniem File -> Open video file. Powinniśmy otrzymać klip zawierający komunikat o zainstalowanej wersji AviSynth.


Zadziałało? Gratulacje! Właśnie napisałeś swój pierwszy skrypt AviSynth.

Otwieranie pliku
Aby zrobić coś sensownego w AviSynth, należy otworzyć w nim plik z filmem. Poszukajmy jakiegoś pliku *.avi. Na przykład jeśli wykorzystamy plik C:\filmy\plik.avi, musimy napisać skrypt:

AVISource("C:\filmy\plik.avi")

Po otwarciu tego skryptu w VirtualDubMod powinniśmy zobaczyć pierwszą klatkę naszego filmu. Należy wiedzieć, że AviSynth zawsze dekompresuje otwierany plik, zatem niemożliwe jest kopiowanie skompresowanego strumienia. Przez to AviSynth nie nadaje się do wycinania fragmentów filmu bez ich ponownej kompresji.
Gdy film, który chcemy załadować do AviSynth nie jest plikiem *.avi, lub funkcja AVISource() nie znajdzie dekompresora dla naszego pliku *.avi, możemy posłużyć się funkcją DirectShowSource(). Przypuśćmy, że nasz film jest w pliku C:\filmy\plik.mkv. Wówczas piszemy skrypt:

DirectShowSource("C:\filmy\plik.mkv")

Funkcja DirectShowSource() powinna poradzić sobie z każdym filmem, który odtwarza się prawidłowo w programie Windows Media Player.

Łączenie obrazu z dźwiękiem
Przypuśćmy, że strumienie obrazu i dźwięku są w osobnych plikach (C:\filmy\plik.avi i C:\filmy\plik.wav). Możemy je połączyć przy pomocy skryptu:

Video=AVISource("C:\filmy\plik.avi")
Audio=WAVSource("C:\filmy\plik.wav")
Clip=AudioDub(Video,Audio)
Clip=DelayAudio(Clip,0.500) Return Clip

Funkcja WAVSource() otwiera nieskompresowane pliki *.wav, funkcja AudioDub() łączy obraz z klipu Video z dźwiękiem z klipu Audio, zaś funkcja DelayAudio() opóżnia dźwięk w stosunku do obrazu o pół sekundy (500 milisekund). Należy wiedzieć, że przy pomocy skryptu AviSynth nie można połączyć dźwięku z obrazem łącząc ich strumienie bez dekompresji - w tym celu należy się posłużyć programem VirtualDubMod. AviSynth zawsze dekompresuje strumienie obrazu i dźwięku, które otwiera.

Filtrowanie
Celem otwarcia filmu w AviSynth jest poddanie go działaniu jakichś filtrów. Omówienie wszystkich wbudowanych w AviSynth filtrów wykracza poza zakres niniejszego opracowania (ich opisy można znaleźć na stronie http://www.avisynth.org). Pokażemy jedynie, jak dopisywać nazwy filtrów do skryptu. Spójrzmy na następujący skrypt:

AVISource("C:\filmy\plik.avi")
DelayAudio(0.500) # opóźnienie dźwięku o pół sekundy
Tweak(bright=30) # rozjaśnienie obrazu
LanczosResize(512,384) # zmiana rozmiaru do 512x384


Ten skrypt opóźni dźwięk o pół sekundy, rozjaśni obraz oraz zmieni jego rozdzielczość. Filtry stosowane są w kolejności, w jakiej zostały wpisane do skryptu. Linie rozpoczynające się znakiem # to komentarze.

Zewnętrzne wtyczki
Filtry zastosowane w tym skrypcie są wbudowane na stałe w AviSynth. Możliwe jest również korzystanie z filtrów zewnętrznych zwanych wtyczkami (ang. plugins). Aby załadować wtyczkę, posługujemy się instrukcją LoadPlugin(). Wtyczki zewnętrzne są przechowywane w plikach *.dll. Jeśli na przykład nasza wtyczka znajduje się w pliku C:\wtyczki\wtyczka.dll, na początku skryptu dopisujemy:

LoadPlugin("C:\wtyczki\wtyczka.dll")

Potem możemy już stosować w naszym skrypcie filtry, które zawiera załadowana wtyczka. Gdy na przykład załadujemy wtyczkę C:\wtyczki\tdeint.dll, możemy zastosować w naszym skrypcie funkcję TDeint() zawartą w tej wtyczce.

LoadPlugin("C:\wtyczki\tdeint.dll")
AVISource("C:\filmy\plik.avi")
TDeint()


Gdy umieścimy plik wtyczki w katalogu C:\Program Files\AviSynth 2.5\plugins, nie będziemy musieli ładować jej funkcją LoadPlugin() w naszym skrypcie - zostanie ona załadowana automatycznie.

Obsługa kilku klipów
Skrypt AviSynth może przetwarzać więcej niż jeden film. Możliwe jest załadowanie kilku filmów, poddanie ich działaniu rozmaitych filtrów, a następnie ich połączenie. Przypuścmy, że mamy do dyspozycji filmy C:\filmy\plik.avi (o rozdzielczości 640x480 i 23.976 klatkach na sekundę) oraz C:\filmy\plik.mkv (o rozdzielczości 512x384 i 25 klatkach na sekundę). W jednym skrypcie możemy poddać obróbce każdy z nich, a następnie połączyć je w jeden film.

Clip1=AVISource("C:\filmy\plik.avi")
Clip2=DirectShowSource("C:\filmy\plik.mkv")
Clip2=Tweak(Clip2,bright=30) # rozjaśnienie obrazu
Clip1=AssumeFPS(Clip1,25,true) # przyspieszenie do 25 FPS
Clip1=SSRC(Clip1,44100,false) # resampling dźwięku
Clip1=LanczosResize(Clip1,512,384) # zmiana rozmiaru do 512x384
Clip=AlignedSplice(Clip1,Clip2) # połączenie obu klipów
Return Clip


Ten skrypt otworzy plik C:\filmy\plik.avi jako Clip1, zaś C:\filmy\plik.mkv jako Clip2. Ponieważ filmy różnią się rozdzielczością i prędkością klatkową, Clip1 jest przyspieszony do 25 FPS funkcją AssumeFPS() (dźwięk jest przywracany do częstotliwości próbkowania 44.1 kHz funkcją SSRC()) i przeskalowany do rozdzielczości 512x384 funkcjąLanczosResize(). Z kolei Clip2 jest rozjaśniany funkcją Tweak(). Funkcja AlignedSplice() łączy oba filmy.

Montaż
W AviSynth możemy również dokonać montażu fragmentów jednego lub kilku filmów. Funkcja ta jest ważna, gdy chcemy na przykład wyciąć reklamy z filmu nagranego z telewizji. Przypuśćmy, że program przechwytujący podzielił film na dwa pliki: C:\filmy\plik1.avi i C:\filmy\plik2.avi (dzieje się tak podczas przechwytywania na partycje FAT32). Pliki mają odpowiednio 24.997 i 25.002 FPS (takie wahania prędkości klatkowej są spotykane w materiałach przechwyconych z analogowego źródła). Możemy się posłużyć takim skryptem:

Clip1=AVISource("C:\filmy\plik1.avi")
Clip2=AVISource("C:\filmy\plik2.avi")
Clip1=AssumeFPS(Clip1,25,true)
Clip1=SSRC(Clip1,44100,false)
Clip2=AssumeFPS(Clip2,25,true)
Clip2=SSRC(Clip2,44100,false)
Clip1=Trim(Clip1,100,5000)++Trim(Clip1,6000,10000)++Trim(Clip1,12000,15000)
Clip2=Trim(Clip2,0,3000)++Trim(Clip2,4500,9000)++Trim(Clip2,10500,13000)
Clip=LanczosResize(Clip,512,384)
Clip=Clip1++Clip2
Return Clip

Funkcja Trim(X,Y) wycina z klipu fragment rozpoczynający się klatką X i kończący się klatką Y. W naszym przykładzie w Clip1 zawiera reklamy w przedziałach klatek 5001-5999 i 10001-11999, zaś Clip2 w przedziałach 3001-4499 i 9001-10499.

Uzyskiwanie informacji o filmie
Aby uzyskać informacje o klipie generowanym przez nasz skrypt, dopisujemy na jego końcu funkcję Info(), na przykład:

Clip1=AVISource("C:\filmy\plik1.avi")
Clip2=AVISource("C:\filmy\plik2.avi")
Clip1=AssumeFPS(Clip1,25,true)
Clip1=SSRC(Clip1,44100,false)
Clip2=AssumeFPS(Clip2,25,true)
Clip2=SSRC(Clip2,44100,false)
Clip1=Trim(Clip1,100,5000)++Trim(Clip1,6000,10000)++Trim(Clip1,12000,15000)
Clip2=Trim(Clip2,0,3000)++Trim(Clip2,4500,9000)++Trim(Clip2,10500,13000)
Clip=LanczosResize(Clip,512,384)
Clip=Clip1++Clip2
Clip=Info(Clip)
Return Clip

Informacje o klipie są nadrukowane na klatkę.


Poniżej omówiono znaczenie poszczególnych linijek:
  • Frame - numer aktalnej klatki
  • ColorSpace - przestrzeń kolorów (AviSynth obsługuje YV12, YUY2, RGB32 i RGB24)
  • Width - szerokość (rozdzielczość pozioma) klatki
  • Height - wysokość (rozdzielczość pionowa) klatki
  • Frames per second - ilość klatek na sekundę (prędkość klatkowa)
  • FieldBased (Separated) Video - czy obraz zawiera rozdzielone (YES), czy splecione (NO) półobrazy
  • Parity - "parzystość" klipu, tzn. który półobraz jest wcześniejszy (Asuming Top Field First - górny półobraz, Assuming Bottom Field First - dolny półobraz)
  • Has Audio - czy plik zawiera ścieżkę dźwiękową (YES - tak, NO - nie)
  • Audio Channels - ilość kanałów w ścieżce dźwiękowej
  • Sample Type - rodzaj próbek dźwięku (Integer 8 bit - całkowite 8-bitowe, Integer 16 bit - całkowite 16-bitowe, Integer 24 bit - całkowite 24-bitowe, Integer 32 bit - całkowite 32-bitowe, Float - rzeczywiste)
  • Samples Per Second - ilość próbek dźwięku na sekundę (częstotliwość próbkowania dźwięku)
  • CPU detected - wykryte zestawy instrukcji procesora

    Dodatek: Obsługa MPEG-1 i MPEG-2
    Aby załadować do AviSynth film skompresowany w MPEG-1 (VideoCD i DVD) lub MPEG-2 (Super VideoCD i DVD), możemy posłużyć się pakietem DGMPGDec autorstwa Donalda Grafta. Składa się on z dwóch części: wtyczki do AviSynth pod nazwą dgdecode.dll i programu DGIndex. Wtyczka dgdecode.dll dekoduje strumień wideo MPEG-1 lub MPEG-2 posługując się informacjami z pliku *.d2v stworzonego przez DGIndex. Teraz omówimy krok po kroku proces otwierania plików przy pomocy pakietu DGMPGDec.
    1. Uruchom program DGIndex.


    2. Z głównego menu programu wybierz File -> Open.


    3. W oknie otwierania plików zaznacz kliknięciem pierwszy plik MPEG i kliknij przycisk Otwórz.


    4. Jeśli chcesz załadować sekwencję plików MPEG (np. kilka plików *.vob zripowanych z płyty DVD), kliknij przycisk ADD i dodaj kolejny plik podobnie jak w punkcie 3. W razie potrzeby powtórz operację.


    5. Kliknij przycisk OK.


    6. Jeśli chcesz wydzielić dźwięk z plików *.vob do osobnego pliku, wybierz Audio -> Output Method -> Demux All Tracks z menu programu.


    7. Z głównego menu wybierz File -> Save Project.


    8. W oknie zapisu pliku wskaż adres pliku projektu *.d2v i kliknij przycisk Zapisz.


    9. Napisz skrypt postaci:

    LoadPlugin("ścieżka_do_wtyczki\dgdecode.dll")
    MPEG2Source("ścieżka_do_projektu\projekt.d2v")




  • Artykuł dostępny jest również w formie dokumentu PDF
    Aby ściągnąć plik skorzystaj z menu kontekstowego myszy i opcji Zapisz element docelowy jako...
    Poprzedni | Następny
    Oceny
    Dodawanie ocen dostępne tylko dla zalogowanych Użytkowników.

    Proszę się zalogować lub zarejestrować, żeby móc dodawać oceny.

    Świetne! Świetne! 75% [3 Głosów]
    Bardzo dobre Bardzo dobre 25% [1 Głos]
    Dobre Dobre 0% [Żadnych głosów]
    Przeciętne Przeciętne 0% [Żadnych głosów]
    Słabe Słabe 0% [Żadnych głosów]
    Reklama
    Miejsce na reklamę
    Honey Pot
     

    Prawa autorskie © VideoAudio.pl 2001-2011.
    Zabronione jest bez zgody właściciela wyrażonej na piśmie; kopiowanie, powielanie lub jakiekolwiek inne wykorzystywanie w całości lub we fragmentach informacji, danych lub innych treści Serwisu.
    oldfashioned
    9816380 Unikalnych wizyt
    Powered by v6.01.19 © 2003-2009