AVISource / OpenDMLSource / AVIFileSource / WAVSource

AVISource (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
OpenDMLSource (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
AVIFileSource (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
WAVSource (string filename [, ...])

AVISource bere jako argument jedno nebo více jmen souborů v uvozovkách, a čte soubor(y) s použitím buď rozhraní "AVIFile" Video-for-Windows, nebo v AviSynthu vestaveným OpenDML kódem (převzatého z VirtualDubu). Tento filtr může číst jakýkoliv soubor pro který existuje AVIFile handler (zpracovatel). To zahrnuje nejen AVI soubory ale také WAV soubory, AVS (skripty AviSynthu) soubory, a VDR (VirtualDub frameserver) soubory. Pokud zadáte jako argumenty několik jmen souborů, klipy budou spojeny dohromady pomocí   UnalignedSplice. Logický bool argument "audio"  je volitelný a výchozí je true.

Filtr  AVISource zkoumá soubor, aby určil jeho typ a posílá ho příslušnému zpracovateli - buď  AVIFile nebo OpenDML. V případě že máte problémy s jedním nebo s druhým zpracovatelem, můžete také použít filtry  OpenDMLSource a AVIFileSource, které vynutí použití jednoho nebo druhého zpracovatele. Každý ze zpracovatelů může číst obyčejné (< 2GB) AVI soubory, ale pouze OpenDML zpracovatel může číst větší AVI soubory, a pouze AVIFile zpracovatel může číst další typy jako WAV, VDR a AVS. Je zde vestavěna podpora pro ACM (Audio Compression Manager) audio (např. mp3-AVI).

WAVSource může být použit k otevření WAV souboru, nebo audio streamu z AVI souboru. To může být použito například, když je váš video stream poškozen nebo jeho kompresní metoda není podporována vaším systémem.

Parametr pixel_type (výchozí je YV12) vám umožní vybrat výstupní formát dekompresoru. Dovolené hodnoty jsou "YV12", "YV411", "YV16", "YV24", "YUY2", "Y8", "RGB32" a "RGB24". Pokud je parametr vynechán, AviSynth použije první formát podporovaný dekompresorem (v následujícím pořadí: YV12, YV411, YV16, YV24, YUY2, Y8, RGB32 a RGB24). Tento parametr nemá efekt pokud je video nekomprimovaném formátu (YUY2, RGB32 nebo RGB24), protože nebude použit žádný dekompresor. Jinými slovy: jestliže něco nespecifikujete, zkusí výstupní AVI jako YV12, pokud to není možné zkusí  YV411 a pokud ani to není možné zkusí YV16, atd ...

Pokud načteme DivX klip Avisynthem v2.5 budou barvy někdy zdeformovány (barevné kanály U a V jsou prohozené), kvůli chybě DivX (5.02 a starší). K nápravě můžete použít  SwapUV.

Od  v2.53 AVISource může také otevřít vstupní video DV typ 1 (pouze video, ne audio).

Od  v2.55, je přidána volba fourCC . FourCC, je FOUR Character Code (čtyřpísmenný kód) na začátku obsahu mediálního souboru, většinou spojovaný s avi, který říká vašemu systému, který kodek má být použit pro dekódování souboru. Můžete ho použít pro vynucení AviSource k otevření avi souboru s použitím jiného kodeku. Seznam FOURCC najdete zde . Jako výchozí se použije fourCC z avi souboru.

Některé MJPEG/DV kodeky nedávají správný výstup odpovídající standardu CCIR 601 při použití  AVISource. Problém může vznikat, je-li barevný formát vstupu a výstupu kodeku rozdílný. Například je-li vstupní barevný formát YUY2, zatímco výstupní barevný formát je RGB, nebo naopak. Jsou dva způsoby řešení:

1) Vynutit stejný výstup  jako je vstupní barevný formát. Tak například (pokud je vstup v RGB):

AVISource("file.avi", pixel_type="RGB32")

2) Opravit pomocí filtru ColorYUV:

AVISource("file.avi").ColorYUV(levels="PC->TV")

Některá související vlákna z fór:
MJPEG codecs
DV codecs

Například:

# poznámka programátora C : obrácená lomítka nejsou dublovány; klasická lomítka také fungují
AVISource("d:\capture.avi")
AVISource("c:/capture/00.avi")
WAVSource("f:\soundtrack.wav")
WAVSource("f:/soundtrack.wav")

# následující je stejné jako AVISource("cap1.avi")+AVISource("cap2.avi"):
AVISource("cap1.avi","cap2.avi")

# vypíná audio a požaduje RGB32 dekompresi
AVISource("cap.avi",false,"RGB32")

# otvírá DV s použitím Canopus DV kodeku
AviSource("cap.avi", false, fourCC="CDVC")

# otvírá avi (například DivX3) s použitím XviD kodeku
AviSource("cap.avi", false, fourCC="XVID")

# spojuje dva klipy z nichž jeden nemá audio;
# při spojování musí být klipy kompatibilní (mají stejné vlastnosti videa a audia):
A = AviSource("FileA.avi")
B = AviSource("FileB.avi") # Žádný audio stream
A ++ AudioDub(B, BlankClip(A)) 

Některé  kompresní formáty stanovují omezení na počet volání AviSource() , která mohou být umístěna ve skriptu. Někteří lidé mají zkušenost s tímto omezením s méně než 50 příkazy AviSource(). Viz  diskuze.

Změny:

v2.55 Přidána volba fourCC.

$English Date: 2009/03/08 15:07:20 $

Český překlad 18.9.2009