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

Qt Discussion :

Qt et la LibVLC [Multimédia]


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Qt et la LibVLC
    Bonjour à vous !
    Je me tourne vers vous en espérant que vous pourrez m'aider à trouver une solution à mon problème (ne dites pas 42! )
    Je m'explique :
    Je souhaite donc utiliser la librairie de vlc dans un projet Qt afin de récupérer le flux de l'écran et le streamer (via RTSP/RTP), j'avais vu un truc pour faire ça assez facilement.
    Cependant je rencontre un problème, hormis les erreurs de liens du début (oui oui la lib 32bits et le compilateur 64bits ne s'aiment pas vraiment) mais c'est réglé avec tout en 32bits.
    Maintenant on programme plante au démarrage de celui-ci. Lorsque que je l'exécute avec qt il plante et si je souhaite le débugger il me renvoi le code d'erreur : 0xc0000135.

    J'ai lu quelque part qu'il s'agissait d'une ou plusieurs .dll manquante mais les quelles j'en ai aucune idée, j'ai vérifié le chemin d'inclusion dans mon .pro, ou encore mon PATH pour les .dll de Qt mais rien n'y fait le problème persiste.

    L'inclusion de la lib dans mon .pro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LIBS += -L$$PWD/lib/ -llibvlc
     
    INCLUDEPATH += $$PWD/include
    DEPENDPATH += $$PWD/include
    J'ai constaté lors de différents essais que si je garde la lib incluse mais que je n'utilise aucun code venant a utiliser la lib j'ai aucun soucis de déploiement/exécution.

    Voici les code avec la lib :
    Le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #ifndef ICON_TRAY_H
    #define ICON_TRAY_H
     
    #include <QSystemTrayIcon>
    #include <QMenu>
     
    #include <vlc/vlc.h>
     
    #include "qconfigdialog.h"
     
    class icon_tray : public QSystemTrayIcon
    {
        Q_OBJECT
    public:
        explicit icon_tray(QObject *parent = 0);
        ~icon_tray();
    signals:
     
    public slots:
     
        void trigg_start();
        void trigg_stop();
        void trigg_exit();
        void trigg_ouvertureConfig();
     
    private:
        // pointeur vers les affichage graphique : menu et fenetre config.
        QMenu *menuContextuel;
        QConfigDialog *fenConfig;
     
        // variable d'état de la diffusion
        bool etatStream;
     
        libvlc_instance_t *instVLC;
     
     
    };
     
    #endif // ICON_TRAY_H
    Le .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    void icon_tray::trigg_start()
    {
        qDebug() << "Start";
     
        //démarrage du stream
        etatStream = true; // TODO le mettre après etre sur que le stream soit lancé
        menuContextuel->actions()[1]->setEnabled(true);
        menuContextuel->actions()[0]->setEnabled(false);
        this->showMessage("Démarrage du stream","Votre stream est lancé.",QSystemTrayIcon::Information,5000);
     
        const char* params[] = {"screen-top=0",
                                    "screen-left=0",
                                    "screen-width=640",
                                    "screen-height=480",
                                    "screen-fps=10"};
     
        instVLC = libvlc_new(0,NULL);
        libvlc_vlm_add_broadcast(instVLC,"broadcast","screen://","#transcode{vcodec=mp2v,vb=800,scale=Auto,width=800,height=600,acodec=none}:rtp{sdp=rtsp://:8554/}",
                                 5,params,1,0);
     
        qDebug() << libvlc_vlm_play_media(instVLC,"broadcast");
    }
     
    void icon_tray::trigg_stop()
    {
     
        if(etatStream)
        {
            qDebug() << "Stop";
            menuContextuel->actions()[1]->setEnabled(false);
            menuContextuel->actions()[0]->setEnabled(true);
            etatStream = false;
            this->showMessage("Arrêt du stream","Votre stream est arrêté.",QSystemTrayIcon::Information,5000);
     
            libvlc_vlm_stop_media(instVLC,"broadcast");
        }
        return;
    }
    Donc si je commente les ligne 17, 18, 19, 21 et 35 dans le .cpp mon projet ce compile et ce lance.

    Pour moi ça reste un grand mystère, donc si vous avez un quelconque avis ou suggestion je suis preneur

    MrLeblond

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Si ce sont des bibliothèques manquantes, vous pouvez le vérifier avec Dependency Walker.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour la réponse,
    J'ai donc testé le soft et il me dit que des librairie manque mais quand je les vois c'est étrange,
    Se sont des lib comme : libstdc++-6.dll, libgcc.. .dll ou encore les api_ms_win_core.. .dll
    Se serai pas plutôt mon projet qui est mal configuré? car j'ai jamais eu se soucis avant dans mes autres projet
    Je m'intérroge

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Non non, c'est normal. Lorsque l'on compile avec MinGW, il est nécessaire d'ajouter ces bibliothèques (c'est la bibliothèque standard du C++, la bibliothèque de MinGW, tout ça ). Moi, je les trouve dans les dossiers de Qt et je les copient à côté de mon exécutable.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Effectivement j'ai trouvé les deux dll pour c++ et MinGW, ensuite d'autres dll manqe j'en ai trouvé quelques unes mais celle de l'api windows et deux autres aussi.
    J'ai beau avoir farfouillé partout je crois que je vais devoir les télécharger pour les avoir, mais si vous avez des renseignement ou je peux les trouver dans le système, je met un avis de recherche

    Nom : listedllmanquante.PNG
Affichages : 215
Taille : 25,2 Ko


    Edit :
    J'ai téléchargé les dll manquante, j'ai pu les trouvés, cependant maintenant il m'en demande d'autre qui sont dans le répertoire system32, je crois qu'il y a un problème avec les dépendance parce que je veux juste faire un debug pas une release, c'est bizarre je trouve.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Arf je me suis entêté pour pas grand chose, j'aurai dû faire plus attention, c'est en tombant qu'on apprend à marcher
    C'est juste les dlls Qt qu'il fallait ajouter (ex : Qt5Core et compagnie)

    Merci en tout cas @LittleWhite
    Je reviendrais promis !

    Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/07/2011, 14h41
  2. [Ogre] [LibVLC] Texture Vidéo multicastée ?
    Par Hyt3k dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 15/06/2011, 20h39
  3. Vidéo libvlc (sur SDL_Surface) en texture OpenGL
    Par poliok dans le forum OpenGL
    Réponses: 4
    Dernier message: 10/05/2010, 08h47
  4. [libvlc] Acquisition video
    Par jiraya sama dans le forum C++
    Réponses: 1
    Dernier message: 29/05/2008, 14h44

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