Come costruire un filtergraphs .xgr


Premessa

Tutti i software TV attuali si appoggiano a filtri grafici esterni per distribuire e riprodurre il flusso audio e video.

- ProgDVB 4.33 include solo i filtri ELECARD (Audio e Video)
- DVBDream 0.7.9 include NVIDIA (A/V), CYBERLINK (A/V), SONIC (V), INTERVIDEO (A)
- Skyview, DVBViewer e DVBPortal includono solo un filtro source SKYAVC.AX e altri filtri proprietari
- Mytheatre non include nessun filtro

Il corretto funzionamento di questi software quindi è direttamente legato alla presenza dei codec video e audio all'interno di Windows. Se si seleziona un filtro grafico e non sono stati installati i relativi codec lo schermo potrebbe rimanere nero. In alcuni casi potrebbe verificarsi che funzioni solo l'audio o solo il video, o che l'audio venga riprodotto con grossi disturbi. ProgDVB potrebbe visualizzare messaggi tipo "Errore! filtro non trovato!", DvbViewer invece "Cannot locate B2C2..."

Purtroppo è molto difficile stabilire una regola generale, viste le differenze che passano da un PC all'altro. Non a caso tutti i software prevedono la possibilità di scegliere diversi filtri. E comunque è impossibile offrire una garanzia sul corretto funzionamento proprio perchè i programmatori non possono sapere cosa avete installato, che codec avete, che versione di quel codec...

Da questo nasce l'esigenza di conoscere bene il loro funzionamento al fine di ottimizzare il sistema. Ogni codec ha proprie caratteristiche e non è semplice stabilire quale sia il migliore. Non vi resta che provarli tutti (stando attenti a non incasinare il sistema!)

In molti sul forum hanno chiesto a gran voce i filtri NVIDIA, non implementati direttamente in ProgDVB. Altri invece hanno chiesto di capire come costruire un proprio filtro grafico. Cercherò di soddisfare entrambe le richieste, seguendo la strada più semplice e breve.

Primo: installare i codec

Per prima cosa bisogna installare i codec video e audio che vogliamo usare. In genere i programmi per Windows si "installano" tramite eseguibili .exe o .com e si "disinstallano" tramite il pannello di controllo e INSTALLAZIONE APPLICAZIONI. I codec invece hanno estensione .ax o .dll e si "registrano" all'interno del REGISTRO DI WINDOWS.
I codec Nvidia sono prelevabili dalla sezione Download. In pratica sono gli stessi compresi nel CodecPack di DVBDream e cioè Nvidia Codec version 0.0.0.227.
Per registrare un filtro basta cliccarci 2 volte sopra; verrà visualizzato il messaggio "DllRegisterServer in nviddec.ax riuscito". Se viene mostrata la finestra "Selezionare il programma da utilizzare..." bisogna registrare il filtro dal Prompt di msdos. Dal menù START/PROGRAMMI/ACCESSORI lanciamo PROMPT DEI COMANDI. Raggiungiamo la cartella in cui sono posizionati i codec e scriviamo "regsvr32 nomefiltro" ad esempio "regsvr32 nvviddec.ax" e così per tutti gli altri filtri. In alternativa si può cliccare col tasto destro del mouse sul filtro e scegliere dal menù "Register ActiveX".

Creare il filtergraphs con Graphedit

ProgDVB, Skyview e Mytheatre contengono un'utility: Graphedit - Directshow Graphic Tool.
Con questo software si possono aprire i file .xgr esistenti oppure tramite il pulsante CONNECT visualizzare i filtri in uso. Questo pulsante però non visualizza nessun flusso con ProgDVB. Se invece apriamo Skyview e clicchiamo sul pulsante immediatamente viene mostrato il grafico del flusso corrente:


 

Proviamo ora a crearne uno nuovo. Esaminando i file .xgr di ProgDVB possiamo osservare che a differenza di Skyview, in cui la sorgente è B2C2MPGFilter, l'origine è "File Source (Async.)". Clicchiamo sul pulsante INSERT FILTER. Dalla lista all'interno della finestra scendiamo fino a trovare la voce "DirectShow Filters" e apriamo la struttura cliccando su +. Scendiamo fino a trovare la voce "File Source (Async.)" e clicchiamo su INSERT FILTER

Si aprirà una finestra in cui selezionare un INPUT FILE. Selezionare un qualsiasi .Mpg2 registrato precedentemente, ai fini della creazione del filtro non importa quale sia il file. All'interno del riquadro grigio verrà inserito un rettangolo con il nome del file scelto. Questo è il nostro punto di origine del nostro flusso Mpg2. Ora bisogna separare il flusso audio da quello video. Per fare questo ripetiamo la procedura precedente ma questa volta inseriremo "ELECARD MPEG2 DEMULTIPLEXER". Un altro rettangolo verrà visualizzato nel quadro principale. Ora bisogna collegare i due componenti. Per far ciò trasciniamo il pin, cioè il piccolo quadratino accanto ad OUTPUT, con il mouse (una freccia seguirà i movimenti del mouse) fino al pin INPUT. Se la connessione è esatta e compatibile i due componenti verranno collegati da una freccia. In più verranno visualizzate 2 nuove uscite (Video e Audio)

Ora possiamo pilotare separatamente i 2 flussi. Nel nostro caso stiamo usando i filtri Nvidia, per cui ancora INSERT FILTER e dalla lista selezioniamo NVIDIA AUDIO DECODER stando attenti a verificare che il codec effettivamente si riferisca al file che abbiamo registrato.

La stessa procedura per NVIDIA VIDEO DECODER. Sarà un gioco da ragazzi collegare tramite mouse le uscite con i relativi INPUT. Cliccando col tasto destro su uno dei rettangoli è possibile selezionare "Filter Properties"

Siamo quasi alle uscite. Inseriamo dalla lista i filtri VIDEO RENDERER e OVERLAY MIXER2 (questo perchè non si può connettere direttamente "video decoder" e "video renderer". Per l'audio invece dalla lista, stavolta però nella sezione AUDIO RENDERERS, scegliamo "DEFAULT DIRECTSOUND DEVICE". Colleghiamo tutto come mostrato nell'immagine

Ora salviamo innanzitutto il lavoro in un file .grf e poi, per portarlo in ProgDVB, dal menù FILE scegliamo "SAVE AS XML" che ci offrirà la possibilità appunto di salvare in formato .xgr. E' importante il nome che diamo al file. Infatti, affinché ProgDVB lo mostri insieme agli altri nella lista è necessario innanzitutto salvarlo in ..\ProgDVB\Filtergraphs, e poi che il nome del file deve iniziare con "tv." ad esempio "tv.prova by Pit.xgr".

 

1/2
PAG. SEGUENTE >>