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 :

[C++ ou C#][DirectX] Convertir une vidéo


Sujet :

DirectX

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut [C++ ou C#][DirectX] Convertir une vidéo
    Bonjour,

    Je souhaiterais convertir une vidéo d'un format à un autre en utilisant DirectX (les codecs étant installés etc.). Convertir un Divx en mpeg par exemple...
    J'ai bien cherché mais mis à part des tutoriels vraiment basiques sur DirectX, je n'ai rien trouvé sur la conversion

    Pourriez-vous m'aider s.v.p? Tout lien est le bienvenu ...
    Un grand merci d'avance!

    Cordialement,
    Rodrigue
    Rodrigue

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

    Je veux bien t'aider, mais expliques un peu plus les problèmes que tu rencontres. Est-ce que c'est le principe de conversion que tu ne comprends pas ou est-ce que tu ne sais pas comment on code tout ça. Et quelles sont tes connaissances de directshow?

  3. #3
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Salut,

    J'ai quelques bouquins sur DirectX mais aucun d'eux ne parlent d'une conversion d'une vidéo d'un format à l'autre. Je cherche donc une âme charitable qui pourrait m'orienter sur un article, un bout de code ou tout simplement m'expliquer le principe ...

    Un grand merci d'avance!

    Cordialement,
    Rodrigue
    Rodrigue

  4. #4
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    re-

    Je souhaiterais qu'on m'explique le principe de conversion svp ...
    Je sais que DirectShow n'est pas disponible en C#, ce n'est pas un problème pour moi de coder tout ça en C++, donc le langage de programmation importe peu!
    Je souhaite donc convertir un fichier vidéo avec un format standard (càd supporté par DirectX) en MpegI.

    Un grand merci d'avance à tout ceux qui m'aideront ...

    Cordialement,
    Rodrigue
    Rodrigue

  5. #5
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    up
    Rodrigue

  6. #6
    mat.M
    Invité(e)
    Par défaut
    C'est un peu compliqué ; comme le suggère Moldavi il faut connaitre Direct Show et comprendre la hiérarchie de tous les objets COM.
    D'abord savoir se servir de Graphedit , prendre une vidéo et la glisser dessus ; cela montre les différents filtres utilisés.
    La seule réponse,laconique , que je puisse apporter c'est de décortiquer l'aide de Direct Show et les exemples "samples" fournis dans le SDK.
    Mais c'est un peu ardu à mettre en oeuvre

  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 : 49
    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
    Citation Envoyé par Rodrigue
    re-

    Je souhaite donc convertir un fichier vidéo avec un format standard (càd supporté par DirectX) en MpegI.
    DirectX supporte tous les formats vidéos. La condition c'est d'avoir le filtre adéquat.

    Si tu as tous les codecs nécessaires pour cette conversion, alors la première chose que tu peux essayer, c'est de construire le graphe d'encodage MPEG1.

    Le principe: tu mets tous les filtres nécessaires et tu demandes à directshow de construire le graphe pour toi.

    Pour mettre un filtre dans le graphe, regardes du côté de cette méthode: IBaseFilter->AddFilter(...)

    Pour le rendu: IBaseFilter->RenderFile(...)

    Ton graphe doit ressembler à un truc comme ceci:

    FichierSource->decodage->encodageMPEG1->FichierDeSortie

    C'est une chaîne simplifiée, mais c'est l'idée. A la rigueur, tu mets juste le filtre d'encodage et le filtre de sortie et tu fais un rendu avec le nom du fichier. Quand tout se passe bien, le graphe se construit et il n'y a plus qu'à faire un IBaseFilter->Run(...)

    Pour savoir comment utiliser AddFilter, tu as environ une vingtaine d'exemples dans le SDK qui utilisent cette méthode.

    Pour des exemples de conversion, je n'avais trouver que des exemples d'encodage MP3->WAVE. Désolé, me souviens plus des liens, mais fais une recherche et si tu trouves, le principe est à peu près identique, sauf que ça ne concerne que l'encodage audio.

  8. #8
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Super, j'ai utilisé GraphEdit et j'ai récupéré les filtres de construction d'un fichier Mpeg1. J'ai également trouvé une source qui crée dynamiquement les filtres nécessaires à la lecture d'un film...
    Je pense qu'il ne me reste plus qu'à mettre les deux bouts à bouts.

    Concernant le SDK, j'ai installé la dernière version du SDK de directx (dec. 2005) mais bon on dirait que je me suis planté ... Il n'y a aucun exemple DirectShow, on dirait même que c'est le DirectX pour windows Vista. Je vais déjà essayer de régler ce point

    Encore merci, je vous tient au courant.
    Cordialement,
    Rodrigue
    Rodrigue

  9. #9
    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 : 49
    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
    Pour directshow ici: http://www.microsoft.com/downloads/d...DisplayLang=en

    ou le plateform SDK.

  10. #10
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Merci pour le lien
    Rodrigue

Discussions similaires

  1. Convertir une vidéo (au format MOV) au format AVI
    Par Mariion dans le forum Vidéo
    Réponses: 2
    Dernier message: 14/11/2010, 19h09
  2. Convertir une vidéo en flv, mais pas en local
    Par brunoperel dans le forum Général Conception Web
    Réponses: 12
    Dernier message: 20/12/2007, 14h47
  3. DirectX, récupérer les images d'une vidéo
    Par edid dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 18/01/2007, 19h05
  4. Réponses: 1
    Dernier message: 08/11/2006, 17h23
  5. Réponses: 8
    Dernier message: 10/05/2006, 20h56

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