Il va donc falloir utiliser un ensemble de logiciels de construction de graphes et gestion de ses filtres.
Pour construire/modifier des graphes: tous en anglais
-GraphEdit de Microsoft fourni dans son kit de développement. (pour l'installation voir --> viewtopic.php?f=27&t=27)
-Graphstudio gratuit
-GraphEditPlus (payant mais pas mal pour les développeurs car génère le code C++ et C.net correspondant au graphe)
-Advanced Graph Manager ( bof et payant)
Pour gérer la liste de ses filtres Directshow on a :
-DSFMgr (Directshow Manager)
-FilterManager
-Directshow Detective
-Filmerit_30 en Français
Pour voir ce qui se passe dans un graphe que GraphEdit ne peut pas ouvrir (pour cause d'absence de filtre par exemple)
GRFshow_fr en Français
Nous allons tout d'abord travailler avec GraphEdit
- Fabriquons notre premier graphe : lecture d’un fichier vidéo
je fais : File(fichier) --> Render Media File (Rendre/Visionner un fichier de Media)
une fenêtre s'ouvre pour aller chercher un fichier vidéo dans un répertoire (.avi, .mpg, ...)
on clique dessus et on voit apparaitre un graphe construit automatiquement:
Ici j'ai cliqué sur landoz.avi
La première brique correspond à la source : le fichier.avi
la 2eme brique (filtre) correspond à un <AVI Splitter>, c'est à dire un Séparateur de flux audio/vidéo informatiquement entrelacés ( AVI= AUDIO VIDEO Interlaced)
on retrouve 2 flux à la sortie Stream00 et Stream01
Stream00 est le flux video codé en Mjpeg format DV ( mon caméscope)
Stream01 est le flux Audio numérique non compressé de mon caméscope DV
le flux vidéo codé est décompressé par le Filtre(brique) <DV Video Decoder >et ensuite est rendu dans une fenêtre avec le filtre <Video Renderer>
le flux audio est directement envoyé dans le filtre de rendu de ma carte son <Default Directsound Device>
On a juste à appuyer sur lecture et on voit et entend le film.
Ne pas hésiter à faire un clic droit sur chaque filtre puis sur chaque pin pour avoir les infos ou les réglages.
Si on recommence la même opération pour lire un fichier .TS (Transport Stream, qui nous intéresse au plus haut point car c’est un fichier transport DVB que l’on va émettre plus loin) :
En mode tout automatique : ( File > Render Media File), j’obtiens :
J’ai la chance d’avoir le 1er filtre, le Matroska Haali Media Splitter qui sait lire le fichier ts et sait aussi le démultiplexeur pour séparer les 2 flux principaux : vidéo et audio. Ensuite on retrouve les filtres nécessaires au décodage, affichage et écoute.
En mode manuel : je charge d’abord moi-même le filtre ( graph > insert filter > Directshow filters > File source(Async) > ‘F6DZPGoodVideo.ts’ et j’obtiens :
je clique droit sur la pin "output", je demande le rendu (Render Pin) et il me fabrique le reste du graphe :
On a donc ici le filtre lecteur, le démultiplexeur, puis les 2 décodeurs suivis de leur renderer respectifs ( vidéo et son). On observe même les valeurs de PID trouvées…