Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet de Terminale

    23 mars 2017 à 9:26:18

    Salut les amis,

    Je viens vous voir car nous rencontrons quelques soucis moi et mes amis dans notre réalisation du projet de terminale, à quelques mois maintenant de la fin du projet. Je vous raconte globalement le projet pour que vous compreniez, nous bossons sur une caméra rotative sur l'axe x et y, avec 2 servo-moteurs commandé via un raspberry, chose que nous avons déjà réalisé avec succès, reste plus que la possibilité de commander ces servos-moteurs via une page web mais on devrait y arriver. Ce qui nous pose aujourd'hui problème c'est du côté de l'image de la caméra.

    En effet, dans la manière que je vous décrirai ci-dessous pour transmettre le flux, la caméra branché sur le raspberry à environ 2 secondes de retard lorsque l'on visionne ce flux via vlc sur notre page web ou directement sur vlc depuis un pc portable distant, alors que bien sur directement sur le raspberry elle ne possède aucun retard. Je précise que la caméra est branché directement sur le port caméra du raspberry et non en USB, elle est donc normalement optimisé pour et que nous faisons le lien entre le raspberry et le pc via une connexion local wifi (un routeur).

    Voici commande je procède pour transmettre le flux, via la commande :

    raspivid -o - -t 9999999 -w 800 -h 600 --hflip | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264

    Puis ensuite je n'est qu'à récuperer ce flux directement sur vlc en "flux réseau" puis en entrant l'adresse IP du raspberry ainsi que le port ou aussi sur ma page web avec le code que je vous transmet ci-dessous :

    <!DOCTYPE html>
    <html><body>
    <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
     codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
     width="800" height="600" id="vlc" events="True">
     <param name="Src" value="http://IPRASP:8080/" />
     <param name="ShowDisplay" value="True" />
     <param name="AutoLoop" value="False" />
     <param name="AutoPlay" value="True" />
     <embed id="vlcEmb" type="application/x-google-vlc-plugin" version="VideoLAN.VLCPlugin.2" autoplay="yes" loop="no" width="640" height="480"
     target="http://IPRASP:8080/" ></embed>
    </OBJECT>
    </html></body>

    Voila, j'attend vos réponses pour savoir si vous avez un meilleur moyen de transmettre ce flux en direct sans décalage ou très léger, car la on est sur un décalage entre 2 et 5 seconde ce qui est assez perturbant quand on manipule les moteurs à distance pour les arrêter à temps par exemple.

    Je me tiens aussi à disposition pour répondre à d'éventuelles questions :). Merci d'avance !

    -
    Edité par QuentinAnselme 23 mars 2017 à 9:28:19

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2017 à 7:39:39

      Salut

      C'est normal d'avoir une latence, encore plus avec un Raspberry Pi, encore plus en WiFi. Tu as tenté de baisser la résolution / définition, voir ce que ça donnait ?

      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2017 à 0:33:16

        Salut Pouknouiki,

        Tout d'abord merci de ta réponse. Alors oui j'ai essayer de baisser la définition et les fps dans la commande, mais étonnement j'avais encore plus de latence. En feuilletant un peu quelques forums j'ai vu que cela avait rapport au fait que certains paramètres sont optimiser pour être utilisé à tel ou tel dimension avec tel fps .. enfin ça me surpasse un peu ça, mais oui j'ai essayer et ce n'est pas mieu. 

        Sinon, oui évidemment la latence est normal, en wifi encore plus j'en suis conscient mais enfin 3-4 secondes me paraissent énorme quand même quand je vois que je commande ma go pro depuis mon téléphone en wifi avec aucune latence, je pense qu'il y a un moyen de faire mieu, enfin j'espère ^^.

        J'attend toujours vos aides ingénieuses :D

        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2017 à 15:43:22

          Peut être qu'il faudrait se poser la question de la connexion Wi-Fi. Tu as fait des tests en Ethernet histoire de comparer ? Qu'est ce que tu utilises comme carte Wi-Fi ?
          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2017 à 15:57:28

            J'ai déjà fait la connexion par ethernet directement lié au routeur du coup, et c'est la même chose. Il faudrait que je réessaye pour voir la latence mais de mémoire elle était de toute façon déjà d'au moins 2 secondes, ce qui est encore une fois je trouve énorme.

            Et la carte wifi est celle intégré au raspberry, possédant un PI 3.

            • Partager sur Facebook
            • Partager sur Twitter
              27 mars 2017 à 15:18:50

              Hello,

              ça dois venir du plugin VLC. Nous on avait fait un truc dans le genre et on tournait à 20 - 25 ips avec un image 480p et un ping raisonnable (avec une connexion non fibre et à la campagne).

              Après tout était fait maison, c'est pour cela que je ne peux pas trop t'aider, mais je peux juste te dire que la rasp est largement capable de gérer un flux vidéo sans lag. 

              On l'avait fait avec un rasp 2.

              PS: on avait un traitement d'image (détection de mouvement avec openCV) + chiffrage du flux en plus. Donc avec 2 traitements en moins et un PI3, c'est vraiment pas normal.

              -
              Edité par arno21 27 mars 2017 à 15:22:57

              • Partager sur Facebook
              • Partager sur Twitter

              Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

                28 mars 2017 à 0:12:27

                Salut,

                Non en faite il n'y a pas de lag mais c'est juste que l'image vue sur vlc possède 2 à 5 seconde de retard que le direct mais elle est parfaitement fluide, on doit torner sur du 30-40 fps sans problême. Vous ne possédiez aucun decalage vous ?

                • Partager sur Facebook
                • Partager sur Twitter
                  28 mars 2017 à 10:03:03

                  Nop, enfin 0.3 sec grand max
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

                    28 mars 2017 à 16:58:44

                    Ha ouais bizarre .. et vous passiez par la même commande que moi ? puis vous visionniez le flux directement via vlc ? Ou totalement différemment ? Parce que quand tu dis fait maison je ne vois pas trop ^^.

                    On a tester sinon une autre solution, en passant par python et la bibliothèque de la caméra en envoyant ensuite les données de l'image et en les réceptionnant les données sur un autre pc et en ouvrant l'image (qui était à chaque fois refresh) en coutinu via pygame sur un autre pc. Cette fois-ci on avait aucun décalage mais par contre c'était pas d'une fluidité extrême et surtout on avait parfois de gros freeze.

                    C'est donc très pénible ce satané flux vidéo ^^ si quelqu'un à bien sur une solution je suis toujours preneur :D

                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 mars 2017 à 10:33:16

                      On a créé un serveur pour transmettre le flux vidéo de la rasp à notre serveur Java pour l'affichage sur le site.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

                      Projet de Terminale

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown