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

D_A_R_K_O_S 104 Messages postés vendredi 1 février 2013Date d'inscription 23 juin 2015 Dernière intervention - 9 mars 2014 à 13:28 - Dernière réponse : D_A_R_K_O_S 104 Messages postés vendredi 1 février 2013Date d'inscription 23 juin 2015 Dernière intervention
- 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

yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 11 mars 2014 à 20:22
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
D_A_R_K_O_S 104 Messages postés vendredi 1 février 2013Date d'inscription 23 juin 2015 Dernière intervention - 12 mars 2014 à 13:59
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.