Extraire une image d'une vidéo

ludo2223 Messages postés 49 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 31 janvier 2010 - 16 févr. 2009 à 09:53
cs_Ricquet Messages postés 20 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 30 novembre 2010 - 23 sept. 2009 à 10:21
Bonjour à tous,

Je souhaiterais extraire une image d'une vidéo pour créer une fenêtre qui afficherait les aperçus de toutes les vidéos d'un répertoire.
(différents formats avi, quick time, ...)

J'ai testé :
   - TMediaPlayer : j'affiche la vidéo dans une frame, je met la position de lecture au milieu de la vidéo pour ne pas avoir un écran noir mais quand j'enregistre la frame en image je n'ai pas l'image de la vidéo (même en mettant la lecture sur pause)
  - TWindowsMediaPlayer : je n'ai pas trouver de fonction allant en ce sens
  - VFW (Vidéo for Windows) : avec la version que j'ai testé je suis parvenu à extraire une frame mais ca ne semble fonctionner qu'avec des avi

Voilà, si vous avez des pistes (autres composants, ou méthodes ), je testerais tout ca...

Merci d'avance pour vos réponses

Ludovic

10 réponses

ludo2223 Messages postés 49 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 31 janvier 2010
16 févr. 2009 à 12:12
J'ai trouvé : tscap32 dont le site est ici

mais il ne semble pas supporter l'unicode.

Ce composant permet de lire des vidéos en streaming et extraire des images du flux.

Si vous en connaissez d'autres ;)

Merci d'avance

Ludovic
0
ludo2223 Messages postés 49 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 31 janvier 2010
16 févr. 2009 à 15:08
Bonjour,

Merci beaucoup pour ton aide.

J'ai fait quelques tests et Bass Vidéo à l'air vraiment sympa mais je viens de m'apercevoir que la licence pour l'inclure dans une application est assez chère (950 €). D'après ce qu'ils disent sur le forum BassVidéo en fait partie :$

Si tu connais un autre composant qui permettrais de faire des thumbnails à partir de vidéo.

Merci d'avance

Ludovic
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
16 févr. 2009 à 18:21
Salut,



DirectX et DirectShow. Mais 'faut dompter la bête... 
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
16 févr. 2009 à 20:51
si tu as un exemple , je suis preneur
(d'ailleurs si tu trouves des tutos DirectX , DirectShow (pas DelphiX) en Delphi ET de bonnes qualités, je suis preneur ;) )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
16 févr. 2009 à 21:06
Je sens un mec intéressé, là.

J'crois toujours qu'y'a un mec qui va s'y mettre, à force d'en parler...
Mais 'va falloir qu'on retrousse nos manches à nous, je crois.
          mdr
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
16 févr. 2009 à 22:40
mais j'ai trouvé des composants DelphiX (vraiment très sympa et facile
d'utilisation ) mais j'aimerais le faire "tout seul comme un grand " ;)


Y'a bien des tutos sur MSDN mais en plus d'être chaud (anglais +
directX ) , c'est en c++ si je ne m'abuse ... et y'a quelques petites
différences quand même !

Pour les fous : http://msdn.microsoft.com/en-us/library/bb219685(VS.85).aspx


OpenGl , c'est mieux (car portable) mais coté 2d j'ai des trucs 1 peu bizarre qui se passe ... et des fonctions exemples sur le net qui passe toute seul et qui ne compile pas chez moi


Mais je pense que si il faut s'intéresser à quelque chose , c'est plus
à openGl qu'à directX (enfin, c'est mon avis ... et je ne suis pas
contre microsoft (d'ailleurs je suis sous XP et sur DelphiFR :) ))

 
N'empêche que oui, je suis très intéresse quand même (ça serait très utile pour ma dernière source de gérer directX / OpenGl , et un peu novateur sur ce site en plus ! )
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
16 févr. 2009 à 22:51
... Une alternative (mais pas vraiment) très intéressante à OpenGL, c'est GLScene pour nous.
    C'est quand même beaucoup plus abordable.
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
16 févr. 2009 à 22:55
oui mais GlScene (à mon avis) est une réel usine à Gaz ! il y a beaucoup de choses , voir même de trop !
Puis peu de personne installerait GLScene sur leur machine ...

Sinon c'est vrai que c'est une suite de composants vraiment très intéressant ;)

Promis dernier post hors sujet sur ce topic ...
0
ludo2223 Messages postés 49 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 31 janvier 2010
17 févr. 2009 à 11:52
Bonjour,

J'ai regardé DelphiX ca à l'air sympa

Vous n'avez pas une idée pour extraire une frame d'une vidéo. J'ai testé l'activex WindowsMediaPlayer parce que wmp permet de prendre une photo (ctrl+i) depuis la version 9 je crois. Le problème  c'est que je ne trouve pas comment y faire appel depuis Delphi.

Merci d'avance pour votre aide ;)
0
cs_Ricquet Messages postés 20 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 30 novembre 2010
23 sept. 2009 à 10:21
bonjour,
pour répondre à la question initiale j'ai glané ça pour .avi que tu pourras peut-être étendre à d'autres formats...
procedure affichage-image_milieu_video_avi;
  	var inputparm, rectparm : TMCI_ANIM_RECT_PARMS; //structure mmsystem  
begin   
// détermine l'image dessinée pour l'avi / milieu du film (mediaplayer est open)    	 
mediaPlayer.Position := mediaPlayer.length div 2; 	  

//commande mmsystem pour recuperer les coordonnées de la video chargée ci dessus !

mcisendcommand(deviceid,mci_where,mci_anim_where_source,longint(@rectparm));
application.processmessages;
rect:= rectparm.rc;//affecte les coordonnées de la video à rect

setpanelrect(rect, display); 	// procedure definissant la taille du panel pour affichage avi
inputparm.rc:=rect;		//recupère les coordonnées de la zone d affichage du mediaplayer

//commande mmsystem pour forcer la video à se dessiner entièrement dans display
mcisendcommand(deviceid,mci_put,MCI_ANIM_PUT_DESTINATION,longint(@inputparm));
end;

Question : je cherche à mettre du .wav dans du .avi pour sonoriser, j'ai cherché au prés de aviwriter... mais j'ai pas trouvé. quelqu'un aurait -il une piste ? Merci.
0
Rejoignez-nous