UV4L MMAL
Dzięki komentarzowi @mpromonet do aktualizacji sterownika Linux-Projects V4L2, który teraz bardzo skutecznie implementuje MMAL - ale wciąż jest w toku.
Postępuj zgodnie z tymi instrukcjami, aby zainstalować repozytorium projektu linux i zainstalować sterownik UV4L z dodatkami. Następnie zainstaluj serwer i mjpeg. Jeśli chcesz, możesz eksperymentować z innymi.
Po zainstalowaniu wszystkiego możesz uzyskać dostęp do serwera HTTP na porcie 8080. Powinieneś również sprawdzić /etc/uv4l/conf
plik i ustawić, jeśli chcesz mjpeg lub H.264, ponieważ to robi różnicę, ale możesz dostosować kilka ustawień za pośrednictwem wbudowanej strony internetowej serwer.
HTML 5
Na to wszyscy czekaliśmy (zwany WebRTC ), a dzięki nowemu sterownikowi działa świetnie (na Raspberry Pi 2).
Najpierw wykonaj następujące kroki, 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
Następnie na swoim Raspberry Pi 2 zainstaluj to WebRTC (w przypadku Raspberry Pi 1, przeczytaj link do strony, aby uzyskać inne opcje)
sudo apt-get install uv4l-webrtc
Uruchom ponownie wszystkie sterowniki i przejdź do
http://raspberry:8080/
Teraz masz strumieniowe przesyłanie wideo wysokiej jakości z małym opóźnieniem bezpośrednio do nowoczesnej przeglądarki, takiej jak Chrome lub Firefox. (Może Safari, ale nie mogę sprawdzić, ponieważ nie robią już Winblows i Internet Explorer ... eh)
MJPEG
Domyślnie używa mjpeg
rozdzielczości 1080p i jest bardzo powolny. Dostosowałem go do rozmiaru klatki 800 x 600 i korzystałem z czegoś takiego jak iSpy do przetwarzania wideo. Dla bezpieczeństwa dostaję około 10 fps na wyraźnym wideo. Jest znacznie lepszy niż 3 fps przy 640x480 przed tym sterownikiem. Działa na iPhonie z Safari, Androidem Chrome i prawie wszystkim innym.
http://raspberrypi:8080/stream/video.mjpeg
Oznacza to również, że motion
powinienem (nadal muszę testować i porównywać) działać teraz znacznie lepiej. Pamiętaj, aby ustawić konfigurację do użycia v4l2_palette 8
lubv4l2_palette 2
H.264
Zostało to naprawione dla „przesyłania strumieniowego” i nie musimy się starać, aby oglądać wideo w formacie H.264 za pomocą odtwarzacza multimedialnego VLC . Strumień jest sill RAW H.264, więc musisz go zdemodować lub transkodować / encapsualte, jeśli potrzebujesz, aby działał gdzie indziej. Powinieneś poprawić bitrate=xxxxxx
plik konfiguracyjny, jeśli przesyłasz strumieniowo przez Wi-Fi.
W odtwarzaczu VLC musisz powiedzieć, że chcesz korzystać z demuxera H.264. Więc jeśli używasz GUI, pamiętaj, aby dodać argument :demux=264
. Z linii poleceń vlc http.../video.h264 --demux h264
. W przeciwnym razie zobaczysz pusty ekran, nawet jeśli dioda LED kamery jest włączona.
http://raspberrypi:8080/stream/video.h264
Voila! Przesyłanie strumieniowe HD z opóźnieniem około 500 ms (z dostosowaniem, do 200 ms). Jest to zdecydowanie łatwiejsze niż stosowanie starych metod. Jakość i FPS są znakomite, ale nie można tego osadzić w HTML5 bez transkodowania do MP4 lub WebM . Mam nadzieję, że zostanie to wdrożone, ponieważ naprawdę sprawi, że będzie to wspaniały samodzielny serwer.
RTSP / RTMP / RTP
Nieobsługiwany / wdrażany
http://www.linux-projects.org/uv4l/tutorials/rtsp-server/
HLS
Nieobsługiwany / wdrażany
Nie ma video4linux
jeszcze dostępnego sterownika. Oznacza to, że nie możemy używać ffserver do strumieniowego przesyłania danych za pomocą /dev/video0
lub simlar jak kamera internetowa USB.
Dlatego tak trudno jest znaleźć prawidłowe przesyłanie strumieniowe na żywo dla przeglądarek HTML5.