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 |
Jakie formaty plików może odczytać AviSynth?
AviSynth odczytuje każdy format obsługiwany przez Video for Windows (VfW) i DirectShow (DS), wystarczy zainstalować odpowiednie kodeki bądź filtry. To daje możliwość odczytania większości istniejących formatów multimedialnych, choć jest kilka wyjątków, jak flv4 (VP6) czy dvr-ms.
Na ile różnych sposobów mogę wczytać swój plik do AviSynth?
Są dwa sposoby:
- używając polecenia AVISource()
- używając polecenia DirectShowSource()
Różnią się one platformą, z której korzystają przy dekodowaniu wideo. AVISource() odczytuje plik przez Video for Windows, DirectShowSource() przez nowsze DirectShow. To oznacza, że przy użyciu AVISource będziesz mógł odczytać wyłącznie ścieżki wideo, do których zainstalowałeś kodeki z interfejsem VfW. Analogicznie, przy otwieraniu pliku za pośrednictwem DirectShow potrzebne są odpowiednie filtry (filtry DS, nie pomyl z filtrami AviSynth).
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.
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.
Jakie są wady i zalety używania DirectShowSource()?
Zalety:
- wsparcie dla naprawdę wielu formatów (popularny zestaw filtrów ffdshow sam wspiera ponad 80 różnych kodeków obrazu i dźwięku!).
Wady:
- problemy z kolejnością i numerowaniem klatek. AviSynth, jako edytor nieliniowy, wymaga, by każda klatka była tak samo dostępna. DirectShow, jako platforma odtwarzania multimediów, pobiera klatki w inny sposób, co może powodować wspomniane wyżej problemy.
- problemem może być też użycie konkretnego dekodera w sytuacji, gdy więcej niż jeden filtr obsługuje dany format. Częściowym rozwiązaniem jest utrzymywanie porządku w zainstalowanych filtrach DirectShow i minimalnej, niezbędnej ich liczby.
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.
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")