Springe zum Inhalt

Mit der Software "Motion" und dem Raspberry Pi 2 lässt sich ein Webcam realisieren, die Bewegung im Bild erkennt und bei Bewegung dann ein Video aufnimmt. Die Installation der Software und weiterer Anpassungen wurde bereits in einem vorhergehenden Artikel beschrieben.

Nach mehreren Tests stellte sich heraus, das für eine Bildauflösung von 640x480 Pixeln durch den Raspberry Pi 2 gerade noch so eine Rate von 5 fps berechnet werden konnte. Das mag für die meisten, reinen Überwachungskameras ausreichen, wenn nicht gar schon zu viel sein. ...weiterlesen "Motion Webcam Beispiel"

Noch bis zum 14.06.2015 läuft bei Conrad eine Aktion, bei der Vorschläge für ein 3D-druckfähiges Raspberry Pi 2 Case eingereicht werden können. Es werden die drei kreativsten Vorschläge ausgewählt und die Gewinner erhalten ihr Gehäuse ausgedruckt aus dem 3D-Drucker. Anschließend wird noch ein Hauptgewinner ermittelt, der zusätzlich ein von Conrad zusammengestelltes "Raspberry Pi 2 Model B Advanced-Set 1 GB" erhält.

Mehr Informationen und den Modalitäten sind auf einer eigens für diese Aktion eingerichtete Webseite zu erfahren.

Nach der Installation von FusionPBX auf einem Raspberry Pi 2 entsprechend der Anleitung und dem Einrichten einer Extension über die Weboberfläche von FusionPBX kann sich das erste Gerät mit FreeSwitch verbinden. Beim ersten Anruf erhält man allerdings folgende Hinweis- und Fehlermeldungen:

Audio Codec Compare [SILK:99:24000:20:0:1]/[G722:9:8000:20:64000:1]
Audio Codec Compare [SILK:99:24000:20:0:1]/[PCMU:0:8000:20:64000:1]
Audio Codec Compare [SILK:99:24000:20:0:1]/[PCMA:8:8000:20:64000:1]
Audio Codec Compare [SILK:99:24000:20:0:1]/[GSM:3:8000:20:13200:1]
Audio Codec Compare [PCMU:0:8000:30:32000:1]/[G722:9:8000:20:64000:1]
Audio Codec Compare [PCMU:0:8000:30:32000:1]/[PCMU:0:8000:20:64000:1]
Audio Codec Compare [PCMU:0:8000:30:32000:1]/[PCMA:8:8000:20:64000:1]
Audio Codec Compare [PCMU:0:8000:30:32000:1]/[GSM:3:8000:20:13200:1]
Audio Codec Compare [PCMA:8:8000:30:32000:1]/[G722:9:8000:20:64000:1]
Audio Codec Compare [PCMA:8:8000:30:32000:1]/[PCMU:0:8000:20:64000:1]
Audio Codec Compare [PCMA:8:8000:30:32000:1]/[PCMA:8:8000:20:64000:1]
Audio Codec Compare [PCMA:8:8000:30:32000:1]/[GSM:3:8000:20:13200:1]
...
Hangup sofia/internal/1000@xxx.xxx.xxx [CS_NEW] [INCOMPATIBLE_DESTINATION]

Es konnte kein kompatibler Codec für beide Geräte (SIP-Telefon und FreeSwitch) gefunden werden.

Grund dafür ist, dass der unter Debian Wheezy (auf dem Raspbian aktuell basiert) GCC 4.6 als Standard-Compiler verwendet und GCC 4.6 auf der ARM-Plattform FreeSwitch falsch übersetzt. quentusrex hat den Fehler umfangreich analysiert und dokumentiert und bereits Bugreports erstellt.

Abhilfe schafft erst GCC 4.7. Mit folgenden Kommandos wird GCC 4.7 auf dem Raspberry Pi 2 installiert und als Default-Compiler eingerichtet. Beim letzten Kommando erscheint eine Auswahl, in der 4.7 als Default gewählt werden kann (Quelle).

$ sudo apt-get install gcc-4.7 g++-4.7
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
$ sudo update-alternatives --config gcc

Anschließend muss natürlich FreeSwitch noch einmal kompiliert werden. Danach jedoch funktioniert die Codec-Auswahl korrekt.

Ich wollte auf einem komplett neu aufgesetzten Raspbian FusionPBX entsprechend der Anleitung installieren. Verwenden wollte ich die vorgeschlagene Konfiguration mit Nginx und Sqlite. Leider schlägt nach ein paar Stunden Kompilieren der letzte Konfigurationsschritt im Webbrowser fehl, da das Timeout in Nginx für FastCGI-Skripte (in dem Fall PHP) in der Standardeinstellung zu kurz eingestellt ist. Der kleine Raspi müht sich nach Kräften, schafft es aber nicht in der vorgegebenen Zeit. Die Einrichtung im Webbrowser schlägt mit "Gateway-Timeout" fehl. Abhilfe schafft der Eintrag

fastcgi_read_timeout 300;

in der Datei /etc/nginx/fastcgi_params. Nginx-Restart nicht vergessen. Damit die abschließende Konfiguration von FusionPBX neu gestartet wird, muss noch die Datei /var/www/fusionpbx/resources/config.php gelöscht und die Webseite auf dem Raspi neu aufgerufen werden.

22

Dieser Artikel behandelt das einfache Streamen eines mit dem Kameramodul des Raspberry Pi aufgenommenen Videostreams über das Netzwerk an einen anderen Computer. Wie sich der Raspberry Pi in eine Überwachungskamera mit automatisierter Aufnahme verwandeln lässt, habe ich in einem anderen Artikel beschrieben.

Übertragung mit Netcat

Mit dem vorinstallierten Programm raspivid lässt sich einfach auf den Videostream des Raspberry Pi Kameramoduls zugreifen. Für eine Übertragung an einen anderen Rechner im lokalen Netzwerk können folgende Kommandos verwendet werden.

Falls nicht schon geschehen, muss zuvor das Programm netcat installiert werden:

sudo apt-get install netcat

Anschließend wir der Videostream auf dem Rasperry Pi gestartet:

raspivid -t 0 -o - | nc 192.168.1.64 5001

Die IP-Adresse muss mit der IP-Adresse des Computers ersetzt werden, auf dem nachher das Video angezeigt werden soll. Mit den obigen Optionen wird ein Videostream in voller Auflösung (1920x1080) und 30 fps an den angegebenen Computer gesendet.

Auf dem Computer, auf dem das Video angezeigt werden soll:

nc -l -p 5001 | mplayer -fps 31 -cache 1024 -

Für die Übertragung in kleineren Auflösungen kann das obige Kommando raspivid um die Optionen -w für Breite und -h für Höhe ergänzt werden (z.B. -w 1280 -h 720).

Übertragung mit VLC und RTSP

Sollen mehrere Benutzer gleichzeitig einen Videostream anschauen können, kann obige Methode nicht verwendet werden. Hier bietet sich der Einsatz RTSP an, welches z.B. VLC hervorragend beherrscht.

Sofern noch nicht geschehen, wird VLC mit folgendem Kommando auf dem Raspberry Pi installiert:

sudo apt-get install vlc

Danach wird der VLC-Videoserver auf dem Raspberry Pi gestartet:

raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264

Obiges Kommando enthält Optionen, die das Video vertikal und horizontal spiegeln (-vf -hf), da mein Raspberry Pi auf dem Kopf steht. Bei Bedarf können diese entfernt werden.

Zum Betrachten des Videostreams auf einem anderen Computer:

vlc rtsp://raspberrypi.local:8554/

raspberrypi.local muss dabei mit der IP-Adresse oder Hostnamen ersetzt werden, unter der der Rasperry Pi im lokalen Netzwerk erreichbar ist. Alternativ kann die Adresse des Videostreams auch über die GUI von VLC unter Medien -> Netzwerkstream öffnen... eingegeben werden.