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 :

[VB.NET] Transformer une vidéo analogique (DirectX) en une surface DirectDraw!


Sujet :

DirectX

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 28
    Points
    28
    Par défaut [VB.NET] Transformer une vidéo analogique (DirectX) en une surface DirectDraw!
    Bonjour,

    Voilà, je cherche à comprendre comment MEdiaPortal (logiciel MEdia Center) arrive à afficher des VolumeOSD, ou des fenetres avec des semi-teintes transparentes, sur une Vidéo:


    Oui c'est fort!
    Et je me suis aperçu en fait, que seul dans MediaPortal, on peut capturer la Vidéo par un impresssion d'écran! C'est très fort!
    J ai observé vite fait leurs sources, mais c'est un tel charabiat! JE sais même pas sur quel page allez regarder!
    JE pense en fait, qu'il transforme la vidéo, non polutot qu'il mette un filtre persistant sur la vidéo, qui la transforme en surface DirectDraw ou quelque chose comme ça, d'où les "impressions d'écrans" devenues possibles!

    Je cherche à faire pareil sous Meedio (autre logiciel Media Center).
    En gros, comment réaliser ce type de transormation sur une vidéo?
    J'attend vos remqrques, vos suggestions, et votre aide, pour essayer de faire pareil sous meedio

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    Oui, en effet, MediaPortal fait quelque chose sur la vidéo, qui ne la rend plus analogique!
    J'ai essayé de faire passer des Widgets-Yahoo sur une vidéo jouer dans Media Portal, et toutes les transparences de la widget sont affiché!
    Ce qui n est pas le cas si on fait ballader la même widget sur une vidéo VLC, WindowsMediaPlayer, ou tout ce que vous voulez!
    J'espere que des techniciens du DirectDraw, et de DirectX en général, vont pouvoir me donner juste une piste où commencer mes recherches...

    Ce que j'aimerai faire donc:
    Appliquer un filtre, sur la Vidéo joué par le logiciel VideoLan par exemple, à l'aide d une winform ou je sais pas moi, qui va chercher la vidéo analogique dessous, et l applique, la convertis koi, sur une surface directDraw

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par jazz matazz
    Oui, en effet, MediaPortal fait quelque chose sur la vidéo, qui ne la rend plus analogique!
    J'ai essayé de faire passer des Widgets-Yahoo sur une vidéo jouer dans Media Portal, et toutes les transparences de la widget sont affiché!
    Ce qui n est pas le cas si on fait ballader la même widget sur une vidéo VLC, WindowsMediaPlayer, ou tout ce que vous voulez!
    J'espere que des techniciens du DirectDraw, et de DirectX en général, vont pouvoir me donner juste une piste où commencer mes recherches...

    Ce que j'aimerai faire donc:
    Appliquer un filtre, sur la Vidéo joué par le logiciel VideoLan par exemple, à l'aide d une winform ou je sais pas moi, qui va chercher la vidéo analogique dessous, et l applique, la convertis koi, sur une surface directDraw
    EDIT: Il semblerait que "DirectDraw" n'est plus utilisé, et est remplacé avantageusement par "DirectGraphics"... Donc il faut se tourner vers cette class là... (oui oui, j y connais pas grand chose en "DirectX" ).

  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
    Salut.

    Citation Envoyé par jazz matazz
    J ai observé vite fait leurs sources, mais c'est un tel charabiat!
    Je ne trouve pas les sources de ce logiciel, pourrais-tu me donner le lien de téléchargement ?
    La seule chose que j'ai vu, c'est qu'il est visiblement écrit en C#.

    Il me semble que ce n'est que récemment que l'exemple DirectShow "VMR9Allocator" a été retranscrit dans ce langage, trouvé au hasard sur google.

    Parce que ce que tu vois avec ce logiciel "MediaPortal", n'est autre que du "Video Mixing Rendering", qui existe depuis le VMR7 (quelques années déjà). La seule différence maintenant, c'est que le VMR9 fusionne avec le pipeline de rendu graphique de directX9, et bénéficie ainsi de toute sa technologie..

    Tout se trouve dans le SDK de DirectShow (en C++). Pour faire tout ça en vb.net, je me demande si ce sera possible, mais je ne connais pas ce langage, donc peut-être que je me trompe.

    Enfin, tu peux faire tout ça de manière logicielle, une simple fusion rgb-alpha, mais faudra alors un PC surpuissant.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse

    Les sources de Media Portal sont ici:
    http://sourceforge.net/project/showf...roup_id=107397

    Il est en effet écrit en C#. Au passage, le DotNEt, que ça soit VB.NET ou C# c'est vraiment du pareil au même... Certains, en discuterez lgtps, il y a de nombreux débats dessus, moi je sais que je prefere la lisibilités de VB au niveau de l'écriture, et je passe mon temps à traduire du C# au VB.NET. Les versions précédentes de VB, là ce n'était pas pareil! C++ était bien plus puissant! Avec la plateforme DotNEt, c'est kiff kiff

    Par contre, je ne connais rien à Direct Show Je sais qu il existe une class DirectX Managed pour du code managed (comme le DotNet), qui na rien à envier à celle du C++. MAis c'est tout!

    Je ne cherche pas forcément et tout de suite, à reproduire celà dans meedio, j'aimerai commencer à tato, pour en discuter avce les developpeurs de Meedio, pour comprendre quel piste choisir! Quelle direction prendre quoi.
    J'aimerai déjà savoir, si, sans toucher au lecteur, on aimerai pas toucher au lecteur vidéo, sachant que certains utilises VLc, ou d autres lecteur internes...
    On aimerai faire un panel, laissant voir l image du lecteur derriere, qui effectuerai une transformation, comme a l air de le faire MediaPortal (mais peut être que je me trompe ), le la vidéo analogique, en un rendu graphique. Un filtre de persistante au-desus de la vidéo quoi. Qui permettrait ainsi, des captures d écran de la vidéo, et de pouvoir y faire circuler des popups, des volumes OSD, avec des effets de transparences (et d alpha-bending)..

    Est-ce possible selo vous? Sans toucher au traitements vidéos du lecteur directement? mais en travaillant en surface?

  6. #6
    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.

    Merci pour ce lien. J'ai regardé les codes sources. Je ne connais pas le C#, mais il ne m'a pas fallut longtemps pour trouver les fichiers vmr9.cs, allocatorwrapper.cs et VideoPlayerVMR9wl.cs. Pas de surprise donc, il s'agit bien d'un remake du vmr9allocator en C#.

    Je sais qu il existe une class DirectX Managed pour du code managed (comme le DotNet)
    Malheureusement cela ne concerne que directXgraphics et directsound, pas directshow. Mais ça devrait venir avec Vista.


    Est-ce possible selo vous? Sans toucher au traitements vidéos du lecteur directement? mais en travaillant en surface?
    Visiblement, sous windows, VMR9 POWA. Et à l'heure du HDTV, ce serait un retour en arrière, je pense.

    Honnêtement, il me semble que personne ne travaille sur l'image en cours d'affichage pour ce genre de traitement. Et je ne crois pas que l'on ai inventé le traitement vidéo en Hardware pour des prunes. Il est bien question de performance, même avec des processeurs à 3.0Ghz, et 1Go de Ram.

    Tu peux toujours essayer de travailler au niveau des filtres, si le lecteur dont tu me parles est conforme directshow. Cela restera du traitement software, mais adieu le traitement hardware. A voir donc.

    Ce que tu dois savoir, c'est que les cartes graphiques actuelles (en générale équipées de la vmr9), sont capables de faire du mixage vidéo/image avec des performances et une qualité très poussées. Je pense que ce serait dommage de vouloir passé outre, quelques soient les considérations techniques.

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par jazz matazz
    EDIT: Il semblerait que "DirectDraw" n'est plus utilisé, et est remplacé avantageusement par "DirectGraphics"... Donc il faut se tourner vers cette class là... (oui oui, j y connais pas grand chose en "DirectX" ).
    Ouais bof ....DirectGraphics c'est rajouter des dizaines de ligne de code pour pas grand-chose.
    Autant prendre SDL, bien que lente.

    J'ai un exemple qui permet d'afficher une vidéo mpeg, AVI ou autre via DirectShow sur une surface Direct Draw.
    M'envoyer un MP

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'ai un exemple qui permet d'afficher une vidéo mpeg, AVI ou autre via DirectShow sur une surface Direct Draw.
    M'envoyer un MP
    Est-ce que c'est encore un "secret de fabrication" ?

    Sinon Page "Sources DirectX" : appel à contributions

  9. #9
    mat.M
    Invité(e)
    Par défaut
    Non Loulou24 c'est un exemple tiré de "Teach Yourself Direct X in 24" chez Sams .

    Sinon je m'excuse de me comporter comme un goujat
    Mais , des personnes m'envoient des MP pour les aider ce que je fais et j'obtiens peu de remerciements
    Pour la FAQ j'y réfléchis

Discussions similaires

  1. Afficher une vidéo en provenance d'une caméra IP
    Par Kronoob dans le forum Visual C++
    Réponses: 2
    Dernier message: 01/05/2009, 21h43
  2. Lire une vidéo et lui synchroniser une animation
    Par julien20vt dans le forum Flash
    Réponses: 0
    Dernier message: 17/12/2008, 21h46
  3. Réponses: 8
    Dernier message: 29/09/2006, 12h08
  4. Récupérer une image JPEG à partir d'une vidéo
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 09/08/2006, 10h51
  5. [C++ ou C#][DirectX] Convertir une vidéo
    Par Rodrigue dans le forum DirectX
    Réponses: 9
    Dernier message: 03/02/2006, 19h12

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