Jestem nowy w Raspberry Pi, a nawet nowy w Raspberry Pi. Widziałem wiele samouczków online dla kamery Raspberry Pi, ale jeszcze nie znalazłem, która pozwala mi przesyłać strumieniowo bezpośrednio z kamery Raspberry Pi, jak to możliwe z kamerą internetową (za pomocą SimpleCV lub OpenCV). Miałem nadzieję, że ktoś wskaże mi właściwy kierunek.
93
ssh raspberrypi raspivid -o - -t 0 -fps 25 -w 640 -h 360 | mpv - --speed 2 --fps 25
(„--speed 2” zapobiega zbyt dużemu opóźnieniu).Odpowiedzi:
Rozwiązanie sugerowane przez Diego jest dobre, z wyjątkiem tego, że jest dość powolne i ma ogromne opóźnienie wideo, ponieważ vlc tam ponownie przesyła strumień raspvid. Od 12/2013 dostępny jest oficjalny sterownik v4l2: http://www.ics.com/blog/raspberry-pi-camera-module#.VJFhbyvF-b8 To sprawia, że wspomniane ponowne strumieniowanie jest nieaktualne. Po prostu załaduj moduł i użyj go:
Spowoduje to utworzenie strumienia HTTP na porcie 12345, możesz także użyć innych formatów, takich jak rtcp z odpowiedzi Diego. Przeczytaj więcej na ten temat tutaj: https://web.archive.org/web/20151012014829/http://www.videolan.org:80/doc/streaming-howto/en/ch03.html
źródło
:demux=264
do CVLC ponieważ strumień jest RAW h264 i trzeba ustawić demuxer:cvlc v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:12345}' :demux=264
. Umożliwia to na przykład oglądanie strumienia w VLC na Androida.autoreconf -vfi
powinieneś teraz używać./bootstrap.sh
Istnieje kilka opcji do wyboru. W mojej pracy używamy VLC do przesyłania strumieniowego wideo przechwyconego przez Raspberry Pi Camera z naszych serwerowni do biura. Jednym minusem tego jest opóźnienie około 5 sekund i nie znalazłem rozwiązania tego problemu. Oto nasza konfiguracja:
Zainstaluj i zaktualizuj Raspbian i upewnij się, że kamera jest włączona (możesz to zrobić, uruchamiając sudo raspi-config i wybierz Włącz kamerę)
Zainstaluj VLC
Utwórz skrypt, aby uruchomić strumień z następującą zawartością, lub uruchom polecenie (nic innego nie można zrobić, jeśli uruchomisz polecenie).
Spraw, by skrypt mógł zostać uruchomiony
Jeśli chcesz uruchomić strumień automatycznie, musisz dodać skrypt do crontab. Aby ta praca działała, musiałem stworzyć inny skrypt uruchamiany przez crona (OBS! VLC nie może być uruchamiany jako sudo, więc upewnij się, że masz właściwy cron).
sudo nano myscript2.sh
:Następnie:
Aby oglądać transmisję wideo, otwórz VLC na komputerze w tej samej sieci, co Raspberry Pi, którego używasz do przesyłania strumieniowego. Naciśnij Media -> Otwórz Networkstream i wklej następujące pola:
Jeśli nie obchodzi Cię liczba klatek na sekundę (klatki na sekundę) i nie chcesz opóźnień, możesz użyć MJPEG. Możesz przeczytać więcej o tym TUTAJ
Obejrzyj TĄ wiki o Raspberry Pi Camera Module. Mam nadzieję, że znajdziesz to, czego szukasz.
źródło
Próbowałem kilka opcji. Jednak znalazłem najlepszy wynik, korzystając z tego projektu: RPi-Cam-Web-Interface ze społeczności eLinux
strumień ma prawie zerowe opóźnienie.
powodzenia :)
źródło
Najłatwiejszy sposób, jaki udało mi się znaleźć, aby uzyskać transmisję wideo na żywo z bezgłowego malinowego pi z aparatem malinowym pi.
To rozwiązanie działa od razu po rozpakowaniu, bez instalowania dodatkowego oprogramowania na PI.
Na PI:
Na komputerze można przesyłać strumieniowo za pomocą VLC:
(zakładając, że 192.168.66.154 jest adresem IP PI)
źródło
Możliwe forum opublikowałem na forum malinowym przy użyciu lekkiego serwera RTSP opartego na live555, który jest zasilany sterownikiem V4L2 obsługującym przechwytywanie H264:
Następnie powinieneś być w stanie uzyskać dostęp do strumienia RTSP za pomocą:
źródło
--network-caching 300
UV4L (także) obsługuje standardowe przesyłanie strumieniowe wideo i audio HTML5 bez konieczności konfiguracji. Możliwe są również inne opcje, takie jak MJPEG przez http.
Aktualizacja:
UV4L obsługuje teraz także transmisję audio i wideo na żywo do Jitsi Meet Rooms przez Internet. Nie jest wymagana specjalna konfiguracja. To tak proste, jak wypełnienie swojego nazwiska, pokoju i kliknięcie Start .
2. aktualizacja:
UV4L obsługuje teraz także wideo zakodowane sprzętowo w formacie H264, z pełną prędkością fps, HD i prawdopodobnie Full HD w przyszłości.
źródło
Oba
mjpeg_streamer
imotion
wydają się mieć lepsze opóźnienie niż cvlc.Za pomocą
mjpg_streamer
mjpeg_streamer
wymaga kompilacji, ale instrukcje na github są proste.Po kompilacji można go uruchomić, uruchamiając go
start.sh
z katalogu projektu lub uruchamiając bezpośrednio (w katalogu projektu):gdzie
8090
jest port TCP. Jeśli nie zostanie określony,8080
domyślnie będzie używany port .start.sh
Skrypt zawiera kilka przykładów użycia z dodatkowych opcji.Za pomocą
motion
Motion zawiera usystematyzowaną usługę, która ułatwia automatyczne uruchamianie przy rozruchu, zatrzymaniu lub ponownym uruchomieniu.
Aby używać go w trybie kamery IP, należy wprowadzić następujące ustawienia
/etc/motion/motion.conf
:Następnie w
/etc/default/motion
zestawie:Aby usługa uruchomiła się automatycznie podczas rozruchu:
Użyj
systemctl start/stop/restart motion
dla odpowiedniej akcji.Domyślny port przesyłania strumieniowego to
8081
. Port jest ustawionystream_port
w pozycji/etc/motion/motion.conf
.źródło
Nie wiem, czy szukasz oprogramowania do nadzoru, ale udało mi się zainstalować i uruchomić
motion
wykrywacz ruchu oprogramowania. Powinieneś zajrzeć do oficjalnego przewodnika .źródło
Byłem w stanie przesyłać strumieniowo wideo za pomocą WebRTC uv4l na Raspberry Pi 2. To bardzo proste. Wystarczy postępować zgodnie z tym samouczkiem. Mam nadzieję, że ta pomoc.
źródło
Miałem problem z pobraniem strumienia wideo w systemie Windows 7. Było wiele rozwiązań dla systemu Linux, nie mogłem do tej pory replikować ich w systemie Windows. W końcu mam dość szybkie rozwiązanie:
Na Raspberry Pi:
Na komputerze z systemem Windows:
Tak więc, jak sądzę, nic nie zostaje przepakowane ani zreformowane, zmienione ani nic takiego. Strumień binarny z raspvid jest podawany do mpc i pokazywany. Moja malina działa przez Wi-Fi, więc na początku otrzymuję spore opóźnienie, które jest o pół minuty ograniczone do tych 0,2-0,3 sekundy opóźnienia.
Niestety nie mogłem używać VLC w ten sam sposób, ponieważ
nc -l -p 5001 | vlc -
po prostu otwiera okno VLC bez żadnego wideo.źródło
Użyłem Nginx z obsługą RTMP do przesyłania strumieniowego na świat, wraz z avconv do przetwarzania danych wejściowych z kamery. Kod jest dostępny na Github .
źródło
Chociaż kod Petera Hansena całkiem dobrze działa dobrze w sieci LAN, dla zachowania kompletności: TCP dotyczy integralności danych w porównaniu z czasem rzeczywistym. W strumieniu czasu rzeczywistego utrata danych może być dopuszczalna ze względu na terminowe wyświetlanie. W takim przypadku UDP może być lepszy. Nie testowałem tego kodu.
Jeśli jest to kamera bezpieczeństwa, można rozważyć multiemisję. Nowoczesne routery mogą to zrobić nawet w modelach o wartości 100 USD.
źródło
Zainstalowałem rozwiązanie ONVIF z https://github.com/BreeeZe/rpos na mojej pi, postępując zgodnie z instrukcjami na README.md .
Jedyną różnicą jest to, że zainstalowałem
node v8.4.0
. To pozwala mi zobaczyć wyjście mojej kamery w NVR podłączonym do tej samej sieci. Kamerę można również odtwarzać bezpośrednio przez strumień sieciowy odtwarzacza VLC przy użyciu adresurtsp://192.168.1.3:8554/h264
źródło
Po pewnym czasie pojawił się podobny problem:
https://www.npmjs.com/package/ws-avc-player
Jest bardziej prosty niż inne proponowane rozwiązania, ale myślę, że działa dobrze, jeśli priorytetem jest małe opóźnienie w sieci.
Działa w większości przeglądarek (nawet mobilnych w rozdzielczości 480p) bez żadnych wtyczek potrzebnych w przeglądarce.
źródło
raspivid
kamery. Zffmpeg
drugiej strony dostaję tylko jedną dziesiątą klatek na sekundę. Użyłem czystego Raspbian i Pi Zero. Czy masz dla mnie jakieś wskazówki?node example/index.js raspivid
Powinno działać od razu po wyjęciu z pudełka, jeśli masz problemy, spróbuj uruchomić tylkonode example/index.js
i osobno/opt/vc/bin/raspivid -pf baseline -ih -t 0 -w 640 -h 480 -hf -fps 15 -g 30 -o - | nc localhost 5000
i sprawdź, czy występują błędy z malin