## DirectShowSource

`DirectShowSource` (string filename, float fps, bool "seek", bool "audio", bool "video")

`DirectShowSource` legge filename usando DirectShow, Può leggere molti formati trattati da Media Player compresi MPEG, MP3, e QuickTime, allo stesso modo di files AVI che AVISource non supporta (come i DV type 1, o files che usano codecs solo per DirectShow). Provate a leggere un file AVI per prima cosa con AVISource , e se non funziona provate con questo filtro.
Ci sono alcune contraindicazioni:

- Alcuni decoders (specialmente MS MPEG-4) produce video upside-down . Bisogna usare `FlipVertical`.
- I video decoders DirectShow non sono obbligati a supportare un seeking preciso , per cui molti non lo fanno.
- Ai video decoders DirectShow , inoltre, non è richiesto di dire il frame rate del video. Molti lo fanno, ma il decoder ASF no. Si deve specificare il frame rate usando il parametro fps in questo modo: `DirectShowSource` ("video.asf", fps=15).
- Questa versione del filtro scopre automaticamente il codec Microsoft DV e setta i parametri per decodificare alla risoluzione piena (invece che mezza) . Ritengo non si tratti di una controindicazione. :-)

A partire dalla v2.53 sono state aggiunte molte cose:

- C'è il supporto per l'audio in DirectShowSource. `DirectShowSource` riesce ad aprire i formati WAV/DTS/AC3/MP3, a condizione che ad esempio si riesca a riprodurle in WMP (più esattamente: ammesso che essi siano correttamente interpretati da graphedit). L'ordine dei canali è lo stesso del formato wave-format-extensible , poichè l'input è sempre decompresso in WAV. Per ulteriori informazioni, vedere anche `GetChannel`. AviSynth carica campioni PCM a 8, 16, 24 e 32 bit int come pure formati PCM float, e qualunque numero di canali.
- C'è un supporto completo del seeking (disponibile per il maggior numero dei fileformats).
- C'è il supporto per i files di GraphEdit (grf).

### Troubleshooting dei problemi video e audio .

AviSynth cerca di default di aprire solo i media che può aprire senza problemi. Se un componente non può essere aperto esso semplicemente non sarà aggiunto all'output . Questo significa che se c'è un problema, l'errore non si vedrà. Per ottenere il messaggio di errore del componente scartato, usare audio=false o video=false per disabilitare il componente che sta funzionando. In questo modo AviSynth esporrà il messaggio di errore del componente che non funziona.

#### "The Filter Graph won't talk to me"

Questo è un errore comune che si verifica quando DirectShow non è in grado di esportare nessun formato che sia leggibile da AviSynth. Provate a creare manualmente un filter graph e vedete se riuscite a costruirne uno che generi un output che AviSynth sia in grado di aprire. In caso contrario, potreste aver bisogno di scaricare filtri DirectShow addizionali che possano generare un materiale corretto.

#### The samplerate is wrong!

Alcuni filtri potrebbero avere problemi nel comunicare il corretto samplerate, e quindi nel correggerlo durante la riproduzione . Sfortunatamente non c'è modo per AviSynth di correggere ciò una volta che il file sia stato aperto. Per correggere questo problema usate AssumeSampleRate ed impostate il corretto samplerate.

#### My sound is choppy

Sfortunatamente AviSynth non può (ancora, si spera) eseguire in DirectShow un seek preciso al 100% . Aprite la colonna sonora in un altro modo, o demuxate il video file e passatelo ad AviSynth in un altro modo. Diversamente si può specificare come parametro "seek = false".

### Common tasks

Questa sezione descrive alcuni lavori che possono risultare non al 100% ovvi. :)

#### Aprire files GRF

I GRF-files di GraphEdit sono riconosciuti da DirectShowSource in modo automatico. Per fare in modo che AviSynth sia in grado di connettersi , in GraphEdit dovete lasciare aperti pins di media types cui AviSynth sia in grado di connettersi. AviSynth non cerca di disconnettere nessun filtro, per cui è importante che il tipo di output sia corretto.

#### Downmixing AC3 to stereo

Ci sono sostanzialmente due modi per farlo. Il primo consiste nel settare il downmixing nella configurazione del decoder AC3 syesso, ed il secondo è quello di usare il downmixer esterno di "Trombettworks":

1) Installate AC3filter. Oprite il file AC3 in WMP6.4 e selezionate le proprietà del file. Impostate l'output di AC3Filter a 2/0 - stereo. Se volete la miglior qualità possibile, selezionate PCM Float come formato di campionamento (Sample format).

Costruite questo script:

    v = Mpeg2Source("e:\movie.d2v")
    a = DirectShowSource("e:\Temp\Test2\test.ac3")
    AudioDub(v,a)

Infine, aprite lo script in vdub e convertite l' audio stream in MP3 (ovviamente , se serve, potete anche demuxare lo stream WAV).

2) Registrate il filtro directshow Channel Downmixer by Trombettworks (in start -> run):

regsvr32 ChannelDownmixer.ax

Aprite il file AC3 in WMP6.4 e selezionate le proprietà del file. Impostate l' output di AC3Filter a 3/2+SW 5.1 channels (questo downmixer non può gestire PCM Float, quindi qui è stato selezionate PCM 16 bit ). Nelle proprietà del downmixer, il numero dei canali di input ed output dovrebbe essere rilevato automaticamente. Testate che questo sia effettivamente corretto.

Create il seguente script:

    v = Mpeg2Source("e:\movie.d2v")
    a = DirectShowSource("e:\Temp\Test2\test.ac3")
    AudioDub(v,a)

Infine, aprite lo script in vdub e convertite l' audio stream in MP3 (ovviamente , se serve, potete anche demuxare lo stream WAV).

Per qualche ragione, tutto ciò non funziona con streams DTS :(

`$Date: 2004/10/06 18:30:31 $`