utilisation de libvlc 2.0.1
bonjour à toutes et à tous,
Actuellement en stage, mon sujet de stage implique la programmation d'une interface sous Qt en C++ pour le visionnage d'un flux vidéo (le principe de la webcam, avec quelques subtilités).
Alors j'ai appris le C++ il y a environ un mois (donc je ne maitrise pas encore le langage dans toute sa splendeur, mais je me débrouille), et actuellement, j'ai programmé mon interface sous Qt4.
à présent je m'attaque à la récupération d'un flux vidéo en streaming.
J'avais commencé avec ffdshow, mais je ne peut pas lire tous les formats (surtout celui qui m'intéresse, le mpeg4), et je n'ai pas de fonctions pour récupérer du stream.
Je me suis penché sur la libvlc, étant donné qu'elle résoudrais mes problèmes, mais je n'arrive pas à l'utiliser.
J'ai récupéré le programme minimal du site de videoLAN
J'ai suivi la procédure de ce topic, c'est à dire :
- copie de VLC\sdk\include à la racine de mon projet
- ajout des DLL via la commande QT : 'ajouter une bibliothèque' (clic droit sur le projet)
- ajout de #include <vlc/vlc.h> dans le main.
J'obtiens à l'exécution du programme (parce que la compilation ne me signale pas d'erreur) :
Citation:
Démarrage de C:\Documents and Settings\thomazop\Bureau\STAGE\Programmation\Qt_Projets\test_video_libvlc\test_video_libvlc-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release\release\test_video_libvlc.exe...Le programme s'est terminé subitement.
C:\Documents and Settings\thomazop\Bureau\STAGE\Programmation\Qt_Projets\test_video_libvlc\test_video_libvlc-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release\release\test_video_libvlc.exe a quitté avec le code -1073741515
à tout hasard, je vous met le code (j'ai pris le temps de voir le bêtisier...)
le .pro :
Code:
1 2 3 4 5 6 7 8 9 10
| SOURCES += \
main.cpp
LIBS += -Llib -Lvlc
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../../../../VideoLAN/VLC/sdk/lib/ -llibvlc
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../../../../VideoLAN/VLC/sdk/lib/ -llibvlcd
INCLUDEPATH += $$PWD/../../../../../../../../VideoLAN/VLC/sdk/include
DEPENDPATH += $$PWD/../../../../../../../../VideoLAN/VLC/sdk/include |
le main.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <vlc/vlc.h>
using namespace std;
int main()
{
libvlc_instance_t * inst;
libvlc_media_player_t *mp;
libvlc_media_t *m;
/* Load the VLC engine */
inst = libvlc_new (0, NULL);
/* Create a new item */
m = libvlc_media_new_path (inst, "C:\test.avi");
/* Create a media player playing environement */
mp = libvlc_media_player_new_from_media (m);
/* No need to keep the media now */
libvlc_media_release (m);
/* play the media_player */
libvlc_media_player_play (mp);
Sleep (10); /* Let it play a bit */
/* Stop playing */
libvlc_media_player_stop (mp);
/* Free the media_player */
libvlc_media_player_release (mp);
libvlc_release (inst);
return 0;
} |
Voilà.
Alors je pense qu'il s'agit d'un problème de version de libvlc, mais je ne suis pas certain, et si c'est le cas, je ne sais pas comment l'utiliser (même avec la doc...).
Merci de votre aide !
PS : je travaille sous windows xp.