FAQ wczytywanie plików
| Spis treści | Informacje ogólne | Wczytywanie plików | Wczytywanie skryptów | Komunikaty błędów | Rodzaje materiału źródłowego | Problemy z YV12 | Używanie pluginów VirtualDub |
Contents |
Jak wczytuje się pliki do AviSynth?
Są dwa sposoby:
- używając polecenia AviSource()
- używając polecenia DirectShowSource()
- AviSource() używa platformy Video for Windows (VfW). Jest dość stara i tak naprawdę jedyny powszechnie używany format jaki wspiera to AVI, jednak wspiera go dobrze - paradoksalnie, dzięki temu, że nie obsługuje wielu funkcji nowoczesnych kontenerów, VfW zwraca klatki w dokładnie takiej kolejności, w jakiej sa umieszczone w ścieżce wideo. Przy używaniu tego sposobu trzeba jednak pamiętać, że z obsługą pewnych haków na AVI (jak np. dźwięk VBR czy wideo w H.264) mogą pojawić się problemy. Aby otworzyć plik potrzebujesz odpowiedniego kodeka z interfejsem VfW.
- DirectShowSource() - jak sama nazwa wskazuje - używa nowszej platformy DirectShow (DS). Wspiera ona ogromną liczbę różnych formatów obrazu i dźwięku, ale z uwagi na to, że została stworzona z myślą o odtwarzaniu treści multimedialnych, nie ich edycji - nie zawsze klatkie są zwracane we właściwej kolejności. Analogicznie, musisz mieć zainstalowane odpowiednie filtry DS, aby otworzyć plik. O tym, który filtr jest używany do obsługi danego formatu, decyduje wartość MERIT.
Część formatów nie jest poprawnie obsługiwana ani przez VfW, ani przez DS. Dla niektórych formatów powstały dedykowane pluginy, zwykle bardziej wiarygodne od dekoderów VfW/DS, które nastawione są na odtwarzanie, nie na obróbkę treści multimedialnych. Istnieją też pluginy dla części formatów zupełnie nieobsługiwanych przez ww. platformy. Opis niektórych znajdziesz poniżej, zaś pełną listę tutaj.
Wczytując pliki do AviSynth, dobrze jest trzymać się poniższego przewodnika:
- gdy tylko możliwe, spróbuj wczytać swój plik używając AviSource() bądź wyspecjalizowanego pluginu, gdyż daje to najbardziej wiarygodne rezultaty;
- jeśli to się nie uda, użyj DirectShowSource() z zainstalowanym filtrem;
- jeśli to się nie uda, dokonaj konwersji pliku (najlepiej bezstratnej) do wspieranego formatu.
Poniżej opisano sporą liczbę różnych formatów wraz ze wskazówkami, jak je wczytywać do AviSynth - niemożliwe jest jednak dokładne opisanie wszystkich. Dlatego znajdziesz również informacje ogólne, których lektura pomoże ci poradzić sobie, gdy napotkasz egzotyczny, zupełnie ci nieznany format.
Wczytywanie plików - wskazówki ogólne
Jak wczytać plik zawierający ścieżkę audio i wideo?
Pliki AVI
Używając w takiej sytuacji AviSource(), oprócz odpowiedniego kodeka z interfejsem VfW będziesz potrzebował także kodeka dźwięku, kompatybilnego z platformą ACM (Audio Compression Manager). Odpowiednie kodeki są dostępne dla sporej liczby obsługiwanych przez kontener AVI formatów, jednak nie dla wszystkich. W miarę dokładną listę znajdziesz tutaj.
AviSynth obsługuje tylko po jednej ścieżce audio i wideo. Zanim wczytasz plik upewnij się, że nie zawiera więcej ścieżek - jeśli tak jest, wymuksuj te, z których chcesz korzystać. Możesz też wczytać obraz i dźwięk osobno, z dwóch różnych plików.
Czy AviSynth umie skopiować fragment ścieżki bez rekompresji, jak VirtualDub w trybie "Direct stream copy"?
Nie. Zarówno obraz, jak i dźwięk są poddawane dekodowaniu przy wczytaniu ich do AviSynth.
Istnieje mod do AviSynth 2.55 dodający wsparcie dla bezpośredniego kopiowania ścieżek. Nazywa się DSynth i możesz go pobrać stąd. Być może pewnego dnia zostanie włączony do oficjalnej kompilacji AviSynth.
Wczytywanie plików - omówienie formatów
Jak wczytać do AviSynth plik AVI?
Użyj AVISource. Przykład:
AVISource("C:\plik.avi")
Jeśli nie chcesz dźwięku:
AVISource("C:\plik.avi",false)
Jeśli AVISource() nie może otworzyć twojego pliku, musisz zainstalować odpowiedni kodek z interfejsem VfW - program GSpot może być pomocny w sprawdzeniu, jakiego kodeka potrzebujesz.
Możesz wymusić użycie konkretnego dekodera przy użyciu parametru fourCC. Zostanie użyty dekoder przypisany do podanego kodu.
## Otwieranie pliku AVI dekoderem Xvid: AVISource("C:\plik.avi", fourCC="XVID")
## Otwieranie pliku avi dekoderem Canopus DV: AVISource("C:\plik.avi", fourCC="CDVC")