IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

[DirectShow] rendu d'un fichier video deja ouvert


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut [DirectShow] rendu d'un fichier video deja ouvert
    Bonjour,

    Je viens vous demander des conseils sur la facon dont je dois resoudre ce probleme.

    Je travaille sur des fichiers mpeg-2, j'ai un programme qui ouvre le fichier, qui fait quelques traitements, et ensuite j'aimerais afficher la video.

    J'ai donc lu quelques tutoriaux et fait un lecteur avec VMR9, l'ennui c'est que la methode RenderFile prend en parametre un "chemin" vers le fichier.

    Le problème est là, comment puis-je faire pour afficher le flux video, depuis mon programme qui traite le mpeg-2 et qui a deja ouvert le fichier?

    Merci d'avance.

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Salut.

    Tu refermes le fichier que ton programme a ouvert et tu le passes à la méthode RenderFile.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    En fait je ne peux pas faire cela pour des raisons de performance,
    lire -> traiter -> ecrire -> lire -> rendre c'est beaucoup trop.

    Est-ce qu'il n'y a pas une autre facon?

  4. #4
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Re.

    La méthode simple, sous windows, c'est de créer un filtre de traitement vidéo. Pour cela voir les exemples du SDK qui traitent des "filters".

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Oui il faut faire un filtre comme l'indique Moldavi.
    S'aider de l'utilitaire indispensable GraphEdit qui permet de déterminer quels filtres à connecter

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Merci pour le filtre je vais voir ca plus en detail.

    J'ai un autre probleme, ou plutot une question.
    DirectShow comporte un filtre "MPEG-2 Demultiplexer", j'ai lu un peu la doc sur msdn et je vois qu'il est possible d'utiliser ce filtre pour demultiplexer des flux mpeg2.

    En fait j'ai un flux mpeg2 TS (transport stream) et mon but serait d'utiliser ce filtre pour obtenir le flux ES et les autres flux qui viennent avec.
    Mais voilà sur le site msdn ils ne dissent pas comment configurer ce filtre et surtout il n'y pas un petit bout de code d'exemple.
    Bref je ne sais pas comment l'utiliser en fait.

    Est-ce que quelqu'un aurait un site ou une doc precise a lire?

    Merci pour tout.

  7. #7
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Salut.

    Pour ajouter un filtre dans le graphe:

    "IFilterGraph::AddFilter": http://msdn.microsoft.com/library/de...haddfilter.asp

    Bien sur avant, il faut l'initialiser, de la même manière que l'interface IGraphBuilder, mais avec le CLSID recherché.

    Assures-toi avant, que le filtre du flux mpeg2 TS se connecte bien à un filtre de démultiplexage tel que celui de microsoft (avec graphedit par exemple).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Sur ce site http://www.dvbportal.de/projects/hdtvpump/index.html j'ai trouvé un filtre qui permet de lire les fichiers *.ts

    J'ai construit mon graphe manuellement, j'ai reussi a jouer la video, j'ai aussi configure un pin de sortie du demultiplexer pour qu'il traite des packets psi comme indiqué ici
    http://msdn.microsoft.com/archive/de...psistreams.asp

    Mais maintenant, comment faire pour recuperer ces données là?
    J'ai pas mal lu la msdn et je ne trouve pas.

    Quelqu'un aurait une idée? Sinon une autre question est-ce qu'il est possible de changer à la volée le pid qu'on map dans le demux?

    Merci d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/08/2009, 20h59
  2. Ecrire ds un fichier excel DEJA ouvert
    Par Teddy7 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/01/2009, 13h45
  3. Lire fichier Excel deja ouvert.
    Par ketthos dans le forum C#
    Réponses: 2
    Dernier message: 28/05/2007, 01h59
  4. [C# V1.1]Detecter si un fichier est deja ouvert ou pas !
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/10/2006, 10h54
  5. Detecter si un Fichier est deja ouvert
    Par Didier Derain dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/02/2005, 20h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo