AVISource / OpenDMLSource / AVIFileSource / WAVSource

AVISource(string filename [, ...], bool "audio", string "pixel_type")

OpenDMLSource(string filename [, ...] [,bool audio = true] [, string pixel_type = YV12])

AVIFileSource(string filename [, ...] [,bool audio = true] [, string pixel_type = YV12])

WAVSource(string filename [, ...])


filename: dokładna ścieżka do pliku

audio: przyjmuje wartość true (prawda) - włącza ścieżkę audio (wartość domyślna) - a false (fałsz) ją wyłącza

pixel_type: przestrzeń kolorów klipu wynikowego, możliwe wartości: "RGB24", "RGB32", "YUY2" lub "YV12"


AVISource jako argumentu wymaga co najmniej jednej nazwy pliku, wpisanej w cudzysłowach, i wyczytuje z pliku/plików używany interfejs pliku AVI (Video-for-Windows), lub wykorzystuje wewnętrzny szyfr OpenDML (zapożyczone z VirtualDub). Filtr ten potrafi czytać każdy plik, który jest handlerem AVIFile. Obejmuje to nie tylko pliki AVI, ale również pliki WAV, AVS (skrypt AviSynh) i VDR (serwer klatek VirtualDub). Jeśli jako argument zostanie podanych kilka plików to będą one scalane w jeden za pomocą filtru UnalignedSplice. Argument bool jest dodatkowy i domyślnie ma wartość "true" ("prawda").

Filtr AVISource analizuje plik, by określić jego typ i podać go któremuś z handlerów, AVIFile lub OpenDML, jako właściwy plik. W przypadku problemów z chociaż jednym handlerem, można skorzystać z jednego z filtrów: OpenDMLSource lub AVIFileSource, które usiłują użyć jednego z handlerów. Handlery potrafią wczytać zwykłe pliki AVI (mniejsze od 2GB), ale tylko handler OpenDML potrafi obsłużyć większe pliki AVI, i tylko handler AVIFile potrafi wczytać inne typy plików, takie jak: WAV, VDR i AVS.

Do wersji 2.04, WAVSource był pseudonimem AVIFileSource. W późniejszych wersjach, WAVSource nie próbuje już otwierać strumieni video. Potrafi być użyteczny jeśli jest potrzeba odzyskania strumienia audio z pliku AVI, w którym strumień video jest uszkodzony lub jego metoda kompresji nie jest wspomagana przez system.

Powyżej wersji 2.04 filtr ten jest wspomagany przez ACM audio (Audio Compression Manager, np.: mp3-AVIs). AVISource również nie otwiera plików WAV, które muszą być wczytane przez filtr WAVSource.

Od wersji 2.06 można określić argument pixel_type, który pozwala na zmianę formatu wyjściowego dekompresora. Możliwe wartości to: "YUY2", "RGB32" i "RGB24". Jeśli video jest w formacie nie skompresowanym (YUY2, RGB32 lub RGB24) to nie ma najmniejszego sensu określanie jakiegokolwiek argumentu dla pixel_type, ponieważ w tym przypadku dekompresor nie będzie z niego korzystał. Od wersji 2.5 domyślną wartością dla pixel_type jest YV12, czyli gdy nie zostanie ustawiony argumentu dla pixel_type to dane wyjściowe w AVI będą rzutowane do YV12, jeśli jest to niemożliwe filtr spróbuje rzutowania do YUY2, a jeśli i to jest niewykonalne, to pozostaje próba rzutowania do RGB.

Czasem kolory w klipie wynikowym mogą być zniekształcone, gdy do AviSynth zostania wczytany klip DivX (kanały chromy (kolor) U i V są zamieniane) - jest to błąd po stronie DivX (do wersji 5.02 włącznie). Można użyć filtru SwapUV do zniwelowania tych zniekształceń.

Od wersji 2.53 AVISource potrafi również otwierać video w formacie DV typu 1 (tylko video, nie audio).

Niektóre kodeki MJPEG/DV podczas używania filtru AVISource, przekazują niepoprawnie, uzgodnione dane wyjściowe CCIR 601. Problem mógł powstać jeśli przestrzeń kolorów kodeka danych wejściowych i wyjściowych jest różny. Na przykład, jeśli przestrzenią kolorów danych wejściowych jest YUY2, gdy dla danych wyjściowych formatem tym jest RGB, lub odwrotnie. Są dwa sposoby na rozwiązanie tego problemu:

1) Zmusić dane wyjściowe by miały taką samą przestrzeń kolorów jak dane wejściowe, a zatem (jeśli dane wejściowe mają przestrzeń RGB32):

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

2) Za pomocą filtra ColorYUV:

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


Przykłady:

AVISource("d:\capture.avi")

#

programiści w C zauważą zapewne, że backslash'e (\) nie są podwójne, ale być nie muszą

 

AVISource("c:/capture/00.avi")

#

slash'e (/) również działają

 

 

 

WAVSource("f:\soundtrack.wav") 

#

czyli ten przykład też jest poprawny

 

 

 

WAVSource("f:/soundtrack.wav") 

#

i ten również

 

 

 

AVISource("cap1.avi","cap2.avi")

#

tak samo jak: AVISource("cap1.avi")+AVISource("cap2.avi")

 

 

 

AVISource("cap.avi",false,"RGB32")

#

wyłączona ścieżka audio i zażyczona dekompresja do RGB32


translated by Slim