UV4L MMAL
Merci au commentaire de @mpromonet pour la mise à jour du pilote Linux-Projects V4L2 qui implémente maintenant très efficacement MMAL - mais cela reste un travail en cours.
Suivez ces instructions pour installer le référentiel linux-project et installer le pilote UV4L avec des extras. Ensuite, installez le serveur et mjpeg. Si vous le souhaitez, vous pouvez également expérimenter avec les autres.
Une fois que vous avez tout installé, vous pouvez accéder au serveur HTTP sur le port 8080. Vous devez également vérifier le /etc/uv4l/conf
fichier et définir si vous voulez mjpeg ou H.264 car cela fait une différence, mais vous pouvez ajuster quelques paramètres via le Web intégré. serveur.
HTML 5
C’est ce que nous attendions tous (appelé WebRTC ) et grâce au nouveau pilote, il fonctionne très bien (sur un Raspberry Pi 2).
Premièrement, suivez ces étapes, http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14 :
curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -
# Add the following line to the file /etc/apt/sources.list
# deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
sudo apt-get update
sudo apt-get install uv4l uv4l-raspicam
sudo apt-get install uv4l-raspicam-extras
Puis, sur votre Raspberry Pi 2, installez ce WebRTC (pour un Raspberry Pi 1, lisez le site lié pour d’autres options)
sudo apt-get install uv4l-webrtc
Redémarrez tous les pilotes et allez à
http://raspberry:8080/
Vous disposez désormais d'un flux vidéo de haute qualité et à faible temps de latence directement dans un navigateur moderne tel que Chrome ou Firefox. (Peut-être Safari, mais je ne peux pas vérifier car ils ne font plus Winblows et Internet Explorer ... hein)
MJPEG
Par défaut, il utilise mjpeg
à 1080p, et c'est très lent. Je l'ai peaufiné en 800x600 et en utilisant quelque chose comme iSpy pour traiter la vidéo. Pour des raisons de sécurité, je reçois environ 10 images par seconde sur une vidéo nette. Il est bien meilleur que les 3 images par seconde à 640x480 avant ce pilote. Cela fonctionne sur iPhone avec Safari, Android Chrome et presque tout le reste.
http://raspberrypi:8080/stream/video.mjpeg
Cela signifie également que motion
devrait (je dois toujours tester et comparer) fonctionner beaucoup mieux maintenant. Assurez-vous de définir la configuration pour utiliser v4l2_palette 8
ouv4l2_palette 2
H.264
Ce problème a maintenant été corrigé pour le "streaming" et nous n’avons pas besoin de faire beaucoup pour regarder des vidéos H.264 via le lecteur multimédia VLC . Le flux est toujours RAW H.264, vous devez donc le démultiplier ou le transcoder / encapsuler si vous avez besoin de l’utiliser ailleurs. Vous devriez modifier le bitrate=xxxxxx
dans le fichier de configuration si vous diffusez en streaming via Wi-Fi.
Dans VLC Media Player, vous devez lui indiquer que vous souhaitez utiliser le démultiplexeur H.264. Donc, si vous utilisez l'interface graphique, assurez-vous d'ajouter l'argument :demux=264
. De la ligne de commande, vlc http.../video.h264 --demux h264
. Sinon, vous ne verrez qu'un écran vide, même si le voyant de l'appareil photo est allumé.
http://raspberrypi:8080/stream/video.h264
Voila! Streaming HD avec un décalage d'environ 500 ms (avec ajustement, jusqu'à 200 ms). C'est certainement beaucoup plus facile que d'utiliser les anciennes méthodes. La qualité et le FPS sont excellents, mais vous ne pouvez pas intégrer cela en HTML5 sans convertir les fichiers en MP4 ou WebM . J'espère que cela sera mis en œuvre car cela en fera vraiment un excellent serveur autonome.
RTSP / RTMP / RTP
Non pris en charge / mis en œuvre
http://www.linux-projects.org/uv4l/tutorials/rtsp-server/
HLS
Non pris en charge / mis en œuvre
Il n'y a pas encore de video4linux
pilote disponible. Cela signifie que nous ne pouvons pas utiliser ffserver pour diffuser des données en utilisant /dev/video0
ou simlar comme une webcam USB.
C'est pourquoi il est si difficile de trouver le bon streaming en direct pour les navigateurs HTML5.