Hier gibt es eine andere Lösung per mjpeg-streamer
Nachdem vor einigen Tagen das neue Kameraboard für den Raspberry Pi erschienen ist, musste ich mir gleich mal 2 bei Farnell ordern
Specs
Das kleine Modul hat die Abmessungen 25 x 20 x 9 mm bei 3 Gramm Gewicht! Der Bildsensor hat 5MP und schafft Fotos mit einer Auflösung von bis zu 2.592 × 1.944 Pixel. Videos werden in 1080p bei 30 Fps in h264 (oder 720p60 und 640x480p60/90) aufgenommen.
Es wird über ein 15-Poliges Flachkabel (wie heist das?) direkt auf den Raspi gesteckt. Das ganze kommuniziert über den CSI-Bus direkt mit dem BCM2835 Grafikprozessor. Erst dadurch sind im Gegensatz zu den Lösungen mit USB-Webcams überhaupt solche Frameraten möglich ohne die CPU auszulasten.
Was kann man nun damit machen
Aktuell (23.5.2013) leider noch nicht viel da es noch keine Video4Linux “Treiber” gibt. Derzeit gibt es zwei Tools um Videos oder Bilder aufzunehmen. Wenn man einer Programmier-/Scriptsprache mächtig ist, kann man z.b. alle 5 Sekunden ein Bild machen und dieser per FTP auf einen Server im Netz laden.
Wer einen Videostream übertragen will kann derzeit noch einen Umweg über VLC machen:
Videostream per VLC
Um ein Streaming vom Raspberry zu einem anderen Rechner per VLC zu realisieren muss ersteinmal VLC auf der Raspi.
1 |
sudo apt-get install vlc |
Nach der Installation kann man dann folgenden Befehl ausführen:
1 |
raspivid -o - -t 9999999999999999999 -w 640 -h 360 -fps 25|cvlc stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264 |
Nanu, was passiert hier?
Also:
raspivid ist das Tool welches ein Video von der Kamera aufzeichnet. Der Parameter “-o” gibt die Ausgabedatei an in welche geschrieben wird. Normalerweise steht hier ein Dateiname. Das “-” bezeichnet unter Linux allerdings den /stdout . Von diesem liest vlc den Datenstrom direkt ein.
Der Parameter “-t” gibt an, wie lange der Stream laufen soll (in Sekunden). Das Problem ist aktuell das man das Tool nicht unendlich laufen lassen kann. Also sollte man hier einen extrem großen Wert setzen.
“-w” und “-h” geben die Breite und Höhe des Videos an. Für das Streaming per VLC sollte man nicht die komplette HD-Auflösung nehmen da VLC dann ca 60% CPU-Zeit verbrät.
“-fps” gibt die “Frames per Second” an, also die Bildrate in “Bilder pro Sekunde”.
Dann kommt das PIPE “|” und danach VLC (“cvlc”).
“stream:///dev/stdin” sagt VLC das es den Datenstrom von /dev/stdout lesen soll (is so 😉 )
Mit “dst=:8090″ gibt man den Ausgabeport an (in dem Fall Port 8090).
Videostream ansehen
Auf dem Clientrechner startet man nun VLC und wählt dort “Netzwerk Öffnen”.
Nun sollte sich dieses Fenster öffnen
Dort trägt man die IP des Raspberry und den Port ein (z.B. http://10.0.100.6:8090). Bitte nicht das http:// vergessen!
Hat man alles richtig gemacht sollte nach einigen Sekunden das Bild zu sehen sein. Leider habe gibt es eine Verzögerung von einigen Sekunden.
Nun warten wir mal bis video4linux unterstützt wird. Dann geht es los mit Bilderkennung usw usw
hy kannst du mir helfen ??
bekomme nach deiner Anleitung den Fehler
~ $ raspivid -o – -t 9999999999999999999 -w 640 -h 360 -fps 25|cvlc stream:///dev/stdin –sout ‘#standard{access=http,mux=ts,dst=:8090}’ :demux=h264
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x1b965b8] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x1b965b8] main interface error: no suitable interface module
[0x1b955b0] main interface error: no suitable interface module
[0x1b758f0] main libvlc error: interface “globalhotkeys,none” initialization failed
[0x1b955b0] dummy interface: using the dummy interface module…
Gib es auch noch Streaming-Möglichkeiten mit weniger Zeitverzögerung ???
Also mir sind aktuell noch keine bekannt
man kann über mjpg-streamer und raspistill streamen
Ah, hast du da mal nen Link?
Sorry, hatte ich vergessen
Hier mal der Link:
http://blog.miguelgrinberg.com/post/stream-video-from-the-raspberry-pi-camera-to-web-browsers-even-on-ios-and-android
Und noch das Script dazu:
#!/bin/bash
set -x
RESOLUTION=”640×480″
FRAMERATE=”10″
MJPG_WEB_ROOT=”/home/pi/mjpg-streamer/mjpg-streamer/www”
TIMELAPS_DIR=”/home/pi/mjpg-streamer/mjpg-streamer/www/webcam”
STREAMDIR=”/tmp/stream”
PORT=”8080″
INPUTFILE_LIB=”/home/pi/mjpg-streamer/mjpg-streamer/input_file.so”
OUTHTTP_LIB=”/home/pi/mjpg-streamer/mjpg-streamer/output_http.so”
LD_LIBRARY_PATH=./
export LD_LIBRARY_PATH
mkdir /tmp/stream
raspistill -ex auto -w 640 -h 480 -q 5 -n -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &
./mjpg_streamer $1 -i “$INPUTFILE_LIB -f $STREAMDIR -r $RESOLUTION” -o “$OUTHTTP_LIB -p $PORT -w $MJPG_WEB_ROOT” &
Danke für die vielen Antworten. Werd mir das mal ansehen.
hey; ich habe das gleiche Problem wie BenjaminG;
wäre toll wenn uns jemand weiterhelfen würde
Danke schon im Vorraus
@benjamin @droid:
Ich habe das selbe Problem, wenn ich den Befehl auf dem PI im SSH-Tunnel starte. mache ich es direkt über Konsole am PI, wird die Vorschau angezeigt und der Stream läuft!
Leider habe ich es per SSH nicht hinbekommen – weder mit dem Start der SSH Session mit der Option “-x” noch mit der raspivid Option “-n” für “keine Vorschau”
Hm, also eigentlich sollte das alles kein Problem darstellen. Ich habe auf meinen Raspis auch kein X11 laufen (wird nicht benötigt). Bekomme auch diese Fehler angezeigt; aber das Streaming klappt trotzdem
Wir kommen der Lösung näher:
Meldet Euch mal mit dem User “pi” oder wenn ihr über einen normalen User angemeldet seit mit “sudo raspivid…” dann geht es!
Auch mit “sudo raspivid…” lässt sich der Fehler von benjamin und droid nicht beheben. Habe das gleich Problem und es mit Sudo als direkt Eingabe und über eine ssh- Verbindung versucht und bekomme immer den Fehler:
pi@raspberrypi ~ $ sudo raspivid -o – -t 9999999999999999999 -w 640 -h 360 -fps 25|cvlc stream:///dev/stdin –sout ‘#standard{access=http,mux=ts,dst=:8090}’ :demux=h264
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x12a2d80] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x12a2d80] main interface error: no suitable interface module
[0x1400c68] main interface error: no suitable interface module
[0x12908f0] main libvlc error: interface “globalhotkeys,none” initialization failed
[0x1400c68] dummy interface: using the dummy interface module…
weiß jemand woran das liegen könnte?
achte drauf das keine andere soft auf das cam-modul zugreift
bei mir war es motion das ich im autoboot drin hatte.
Öffne die ssh Session vorher mit:
“ssh pi@xxx.xxx.xxx.xxx -X”
Dank der X11-Umleitung startet der Stream. Aber vielleicht gibt es noch eine charmantere Lösung!