En utilisant une combinaison des choses que j’ai apprises jusqu’à présent et un peu d’aide d’autres personnes sur Internet, j’ai trouvé comment intégrer la vidéo du module de caméra Raspberry Pi dans une page Web.
Il existe deux méthodes de sortie vidéo pour cela: HTTP et RTSP. Je vais d’abord traiter HTTP car a) c’est une vidéo de meilleure qualité et b) laisser le trafic à travers un pare-feu pour HTTP est plus facile que RTSP. Les deux méthodes sont cependant très similaires.
Tout le code pour cela et d’autres éléments du module de caméra est conservé sur GitHub: https://github.com/raspberryme.com/camera-pi
La première étape consiste à créer un flux vidéo. J’ai couvert cela sur un blog précédent, mais en le répétant ici pour une facilité d’utilisation.
Vous créez le flux en exécutant la commande suivante sur le Pi (avec merci à Leo White):
raspivid -o - -t 9999999 -w 800 -h 600 --hflip | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264
Cela diffuse efficacement le flux vidéo sur le port 8080 du Pi.
Maintenant, nous créons la page Web qui affichera le flux vidéo. Pour cela, je compte sur le plugin de navigateur VLC. Il est probablement possible de le faire avec la balise du lecteur vidéo HTML5, mais je n’ai pas encore trouvé comment le faire. Créez votre page Web avec le code suivant:
<!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://PI_IP_ADDRESS: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://PI_IP_ADDRESS:8080/" ></embed> </OBJECT> </html></body>
Assurez-vous de remplacer PI_IP_ADDRESS par, étonnamment, l’adresse IP de votre Pi.
Affichez la page Web dans votre navigateur et, à condition que le plugin fonctionne, vous devriez voir une vidéo en direct. Là volonté être un délai, et cela dépendra de la vitesse de votre Pi, de la vitesse de l’ordinateur exécutant le navigateur Web et de la vitesse de votre réseau.
La version RTSP est très similaire. Voici le script de streaming:
raspivid -o - -t 99999999999 -w 800 -h 600 --hflip | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8080/}' :demux=h264
Le code HTML est:
<!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="rtsp://PI_IP_ADDRESS: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="rtsp://PI_IP_ADDRESS:8080/" ></embed> </OBJECT> </html></body>
-
SVPRO Module de caméra USB Fisheye 5 MP 30 FPS - Ultra grand angle de 200 degrés - Capteur IMX335 - Faible luminosité - Vision par ordinateur - Caméra de sécurité industrielle pour PC, Raspberry Pi
-
Keenso Module de Caméra USB, Module de Caméra USB à Objectif Grand Angle 60 ° HBV-1313 1600 * 1200 2 Millions de Pixels avec Puce OV2659