Najnowsza wersja MJPG-streamera najwyraźniej nie działa z najnowszą wersją Raspbiana (wersja jądra 3.18.7+).
Kompilacja przebiega poprawnie, serwer HTTP również uruchamia się poprawnie, ale żadne dane wideo nie są przesyłane. Poniżej rozwiązanie tego problemu
Najpierw instalujemy potrzebne paczki.
sudo apt-get install libjpeg8-dev imagemagick libv4l-dev
Oraz tworzymy dowiązanie symboliczne. Bez niego MJPG-streamer nie skompiluje się.
sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
Wcześniejsze wersje MJPG-streamera posiadały wtyczkę input_file.so, która pozwalała na monitorowanie katalogu i przesyłanie pliku graficznego, który się w nim pojawiał.
Obecna wersja posiada wtyczkę input_uvc.so, która wymaga, aby kamera była dostępna w katalogu /dev. Kamera dedykowana dla Raspberry Pi nie jest domyślnie dostępna w tym katalogu, więc musimy załadować moduł bcm2835-v4l2. Poniższe polecenie najlepiej dodać do /etc/rc.local, aby moduł ładował się przy każdym starcie Pi.
sudo modprobe bcm2835-v4l2
MJPG-streamera nie instalujemy z oficjalnego repozytorium, ponieważ ta wersja nie działa z kamerą Pi, ale korzystamy z tego.
git clone https://github.com/SaintGimp/mjpg-streamer cd mjpg-streamer/mjpg-streamer make
Po kompilacji, pozostajemy w katalogu ze źródłami i wydajemy poniższe polecenie:
./mjpg_streamer -i "input_uvc.so -f 30 -r 1280x720" -o "output_http.so -p 8080 -w www"
Uruchomi się strumień wideo o rozdzielczości 1280×720 i szybkości 30 klatek na sekundę.
Podgląd jest dostępny pod adresem:
http://127.0.0.1:8080/stream.html
Linki
https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=100818