Bibliothèque pour lire fichier vidéo [Résolu]

Messages postés
104
Date d'inscription
vendredi 1 février 2013
Dernière intervention
23 juin 2015
- - Dernière réponse : D_A_R_K_O_S
Messages postés
104
Date d'inscription
vendredi 1 février 2013
Dernière intervention
23 juin 2015
- 12 mars 2014 à 13:59
Bonjour,
Je suis à la recherche d'un bibliothèque pour lire un fichier vidéo dans mon programme ( en c++ ) type bande annonce. Est ce que quelqu'un en connaîtrait une ? ( mes recherche n'ont pas était concluante...)
Je programme sous windows avec code::block.
Merci d'avance ! :)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
0
Merci
Salut,

La lib. DirectShow est la plus performante.
Elle lit tout les formats et est assez simple d'utilisation (COM)

Dans le style :

#include <dshow.h>

// Les interfaces utiles
IGraphBuilder *g_pGraphBuilder;
IMediaControl *g_pMediaControl;
IMediaSeeking *g_pMediaSeeking;
IBaseFilter   *g_pSourceCurrent;
IBaseFilter   *g_pSourceNext;
IMediaEventEx *g_pEvent;
IVideoWindow  *g_pVidWin;


// Le graph DirectShow
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder,reinterpret_cast<void **>(&g_pGraphBuilder));

// IMediaControl Interface
g_pGraphBuilder->QueryInterface(IID_IMediaControl, reinterpret_cast<void **>(&g_pMediaControl));

// IMediaSeeking Interface
g_pGraphBuilder->QueryInterface(IID_IMediaSeeking, reinterpret_cast<void **>(&g_pMediaSeeking));
    


// Un rendu Direct
g_pGraphBuilder->RenderFile(pFile, NULL);
g_pMediaControl->Run();
g_pEvent->WaitForCompletion(INFINITE, &evCode);




// Ou avec un dialog perso
if( CreateMediaDialog(pParent, sTitre, cx, cy) ) // CreateDialogIndirectParam
{
	g_pGraphBuilder->RenderFile(pFile, NULL);
	g_pGraphBuilder->QueryInterface(IID_IVideoWindow, (void **)&g_pVidWin);
	
	// placer l'overlay DirectShow dans la fenêtre principale
	g_pVidWin->put_Owner((OAHWND)g_hwndMedia);

	// mettre en place la redirection des événements vers la fenêtre principale
	g_pEvent->SetNotifyWindow((OAHWND)g_hwndMedia, WM_GRAPHEVENT, 0);
	
	g_pMediaControl->Run();
}





Sinon y'a les AVIStream
Mais beaucoup plus limité

#include <mmsystem.h>
#include <vfw.h>

PAVISTREAM m_pasMovie;              
AVISTREAMINFO m_asiMovie;      

AVIStreamOpenFromFile(&m_pasMovie, lpszFilename, streamtypeVIDEO, 0, OF_READ,NULL);

// ect ...


bye...
Commenter la réponse de yann_lo_san
Messages postés
104
Date d'inscription
vendredi 1 février 2013
Dernière intervention
23 juin 2015
0
Merci
Merci beaucoup c'est exactement ce que je cherchais !
Commenter la réponse de D_A_R_K_O_S

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.