FAQ wczytywanie plików

From Avisynth wiki
Revision as of 21:46, 9 June 2008 by Thar (Talk)

Jump to: navigation, search

| 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:

  1. używając polecenia AVISource()
  2. używając polecenia DirectShowSource()
  • AviSource() używa platformy Video for Windows (VfW). Aby otworzyć plik potrzebujesz odpowiedniego kodeka z interfejsem VfW.
  • DirectShowSource() - jak sama nazwa wskazuje - używa nowszej platformy DirectShow (DS). Analogicznie, musisz mieć zainstalowane odpowiednie filtry DS, aby otworzyć plik.

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 obydwu sposobów?

AviSource

  • Zalety:
    • zazwyczaj dokładniej przelicza klatki i nie myli się w kolejności. Paradoksalnie, wynika to z prostoty VfW - nie wspiera pewnych zaawansowanych możliwości nowoczesnych formatów, dzięki czemu może bezbłędnie odczytywać stare.
  • Wady:
    • mała liczba wspieranych formatów (z popularnych obecnie kontenerów obsługuje tylko AVI),
    • niedostatki techniczne (np. brak porządnego wsparcia dla dźwięku VBR)

DirectShow

  • 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. Konflikty można rozwiązywać za pomocą GraphEdit (patrz niżej).

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")
Personal tools