vendredi 27 décembre 2013

Gstreamer et Serveur de streaming RTSP sur Raspberry Pi (1ere Partie)

Ce tutoriel va nous permettre de construire, grâce à une raspberry pi, un serveur de streaming vidéo et/ou audio et notamment diffuser un flux vidéo provenant d'une caméra. N'ayant pas encore en ma possession le module caméra de la raspberry pi, je vais utiliser une webcam USB du commerce compatible avec la raspberry pi (USB Webcam).

Le serveur de streaming que nous allons installer est basé sur le protocole RTSP (Real Time Streaming Protocol). Ce protocole RTSP est implémenté sur la couche 7 du modèle OSI (couche applicative) et utilise les couches de transports RTP/RTCP pour faire circuler les flux de données sur un réseau IP.
L'avantage du RTSP est de diffuser un ou plusieurs flux seulement quand un client se connecte au serveur et ce même client peut interagir avec le flux de données (lecture, pause, retour en arrière, en avant, etc ...).

Ce tutoriel est divisé en deux billets, Ce billet est consacré à la construction et l'installation d'un serveur RTSP basé sur le framework GStreamer sur notre raspberry pi et le second billet est consacré à l'introduction de GStreamer avec des cas simples d'utilisation et notamment la démonstration de notre serveur RTSP.

Pour ce billet, nous allons travailler avec :
  • Notre environnement de compilation : buildroot-2013.08.1.
  • Kernel 3.12.0.
  • Chaîne de compilation croisée construite avec crosstool-NG 1.15.0.
  • Packages rpi-userland et rpi-firmware.
  • Framework GStreamer version 1.2.0 et ses plugins standards (base, bad, ugly et good) en version 1.2.0.
  • Plugin OMX (OpenMAX IL wrapper) version Git, qui nous permettra d'encoder les vidéos grâce aux GPU de la raspberry pi.
  • Serveur RTSP version Git aussi.

jeudi 5 décembre 2013

Raspberry pi et Hotspot Wifi avec le DWA-121

Ce billet est consacré à la transformation d'une raspberry pi en hotspot wifi grâce au dongle wifi DWA-121.
J'ai déjà présenté ce dongle et comment l'interfacer avec une raspberry pi dans un précédent billet.
On va reprendre tout ça pour l'utiliser avec le nouveau noyau linux 3.12.0.

J'utilise le terme "hotspot" mais il faudrait plus utiliser le terme "point d'accès" puisque je n'aborderai pas la partie partage de connexion Internet grâce aux iptables. De nombreux tutoriels existent sur le net sur le partage de connexion.

Les outils principaux abordés sur ce billet seront :
  • 8192cu.ko : Driver pour le dongle DWA-121
  • wireless tools (iwconfig, iwlist, ...) : Utilitaires pour la gestion du wifi.
  • hostapd : Utilitaire de création de point d'accès wifi.
  • dhcpd : démon de serveur dhcp permettant l'attribution d'adresses IP aux appareils se connectant à la raspberry pi.


lundi 2 décembre 2013

Afficheur Alphanumérique (bonus python)













Dans un précédent billet, on a vu comment s'interfacer avec l'afficheur LCD 2x16 caractères depuis un code écrit en C. On va maintenant s'intéresser à un module python pour afficher des informations sur l'afficheur.
L'un des principaux avantages du python par rapport au langage C est que l'on a pas besoin de compiler le code pour le lancer sur la raspberry pi, donc moins galère pour faire du prototypage.

La base de l'environnement embarqué de travail est :

  • buildroot-2013.08.1
  • kernel 3.12.0
  • chaîne de compilation croisée : buildroot-uclibc