Teil-1
Hallo Zusammen,
diese Anleitung beschäftigt sich mit der Ein- und Anbindung von nicht lokalen Videoströmen z.B von externen IP Kameras in die
V4L Schnittstelle (Video for Linux) mittels einer Looback Schnittstelle (v4l2loopback) und einem Streamingwerkzeug (ffmpeg).
Das Beispiel zeigt die Integration eines RTSP Streams, es können über ffmpeg auch andere Videoquellen angebunden werden, dies wird hier jedoch
nicht beschrieben und sollte ausserhalb des Forums in den FFMPEG Foren zu finden sein.
Ziel: Ein- und Anbindung von nicht lokalen Videoströmen oder Kamerahardware über IP in eine lokale Standardschnittstelle welche von Doorpi verwendet werden kann.
Na dann mal los....
1. Download Raspbian Image (Jessie Lite) unter raspberrypi.org/downloads/raspbian/
2. Installation auf einer SD-Karte wie auf der offiziellen Webseite beschrieben.
3. Lokal mittels (Funk)Tastatur anmelden.
4. RaspConfig (sudo #raspi-config) ausführen und folgende Einstellungen setzen (raspberrypi.org/documentation/configuration/raspi-config.md)
1 Expand Filesystem
3 Boot Options -> B1 Console
4 Internationalisation Options -> I1 Change Locale -> de_DE.UTF-8 UTF-8 (und auch als default auf der nächsten Seite setzen)
4 Internationalisation Options -> I2 Change Timezone -> Europe -> Berlin
4 Internationalisation Options -> I3 Change Keyboard Layout -> Generic 105-key (Intl) PC -> Other -> German -> German -> Rest bleibt Default
5 Enable Camera -> NO (Da ich die RaspiCam NICHT nutze)
7 Einen sexy Namen für den Raspi ausdenken und eintragen.
7 SSH Server aktivieren -> Would you like the SSH server to be enabled? -> Yes
7(Da ich den PiFace benutze) Advanced Options -> A6 SPI -> Yes -> Ok -> Yes
Finish -> Yes
Reboot -> Yes
5. Nach dem Reboot SSH Konfiguration nach belieben anpassen, (Ich erlaube zur Konfiguration die Anmeldung von Root temporär. (Bei fertigen Systemen melde ich mich via SSH Schlüssel, BitVise als Client, gesteuert über LSC ERPM an))
6. Password für das Konto pi setzen #passwd -> altes Password -> Neues Password -> Neues Password
7. Password für das Konto "root" setzen #sudo passwd root -> Neues Password -> Neues Password
8. Abmelden des Anwenders "pi" von der Konsole #exit
9. Anmelden an der Konsole mit dem Anwender "root"
10. Wenn notwendig IP Einstellungen anpassen (ich verwende ausschliesslich feste IP Adressen) (nano /etc/network/interfaces)
Wenn alles passt dann einfach nochmal durchstarten mittels #reboot
11. Nach dem Reboot Verbindung mit BitVise (Putty oder WinScp geht auch) herstellen Konsole öffnen
12. Wenn die Basiskonfiguration steht erstmal das Betriebssystem aktualisieren mittels
# apt-get update && apt-get upgrade (Dauert ein wenig)
13.Pause! - Eine rauchen gehen und Kaffe nachfüllen während der Raspi aktualisiert
14.Wenn alles passt dann einfach nochmal durchstarten mittels #reboot, da oftmals nicht alle Pakete und Kernelanteile neu geladen wurden nach dem Upgrade.
15. Nach dem Reboot Verbindung mit BitVise (Putty oder WinScp geht auch) herstellen Konsole öffnen
16. Befehl eingeben
# uname -a
- Als Ausgabe sollte "Linux (netbiosname) 4.4.34-v7+ #930 ....Datum Uhzeit)" erfolgen.
- Von Interesse ist hier die aktuell verwendete Kernel Version (in meinem Fall) 4.4.34-v7+, das kann von Fall zu Fall und in der
Zukunft anders aussehen, ist aber wichtig weil wir die entsprechenden Linux Header ebenfalls als Version 4.4.34-v7+ jetzt bereitstellen
müssen das sonst der DKMS Loader bei einbinden der V4L Loopback Schnittstelle die Einbindung verweigert.
17. Linux Kernel Header Dateien herunterladen.
Ihr findet die für den Raspberry aktuellen aber auch älteren Linux Header Packete u.a hier:
In meinem Fall brauche ich also die Datei "linux-headers-4.4.34-v7+_4.4.34-v7+-2_armhf.deb", welche ich erstmal extern vom Raspi in einem Ordner speichere.
18. Packet "v4l2loopback-dkms" herunterladen (bitte nicht via apt-get, aptitude oder was auch immer)
In keinem Fall die Standardversion 0.8.0 aus der aktuellen Debian Jessie Distrubution verwenden, bitte sucht im Web in den Debian Standard Libarys im minimum die Version "v4l2loopback-dkms_0.9.1-4_all.deb".
Hinweis! Version "v4l2loopback-dkms_0.10.0-1_all.deb" ist Stand 04.12.2016 noch als unstabil eingestuft.
In meinem Fall nehme ich also die Datei "v4l2loopback-dkms_0.9.1-4_all.deb", welche ich erstmal extern vom Raspi in einem Ordner speichere (Dort wo auch die Linux Header Packete liegen.
Wer will kann auch der Vollständigkeit wegen den Source dazu herunterladen "v4l2loopback-source_0.9.1-4_all.deb"
19. Installation von Werkzeugen und Paketen (fswebcam)
Ich verwende das Paket "fswebcam" um die mittels V4L bereitgestellen Schnittstellen auf der Kommandozeile testen zu können.
Die Installation erfolgt hier via:
# apt-get install fswebcam
20. Installation von Werkzeugen und Paketen (ffmpeg)
Das Packet "FFMPEG" ist nicht in der aktuellen Jessie Distrubution enthalten, deswegen muss man hier aktuell auf die offiziellen Debain Jessie Backport Quellen zurückgreifen.
Dazu in der Datei "/etc/apt/sources.list" den folgenden Eintrag
"deb http://ftp.uk.debian.org/debian jessie-backports main"
hinzufügen.
Hinweis: Bitte verwendet nicht die Debian Multimedia Gesocks Quellen, die meisten Pakete sind dort leider nicht brauchbar.
Die Datei "/etc/apt/sources.list" speichern dann auf der Kommandozeile
# apt-get update
eingeben.... dann
# apt-get install ffmpeg
(ca. 150 Megabyte Platz werden gebraucht, alle abhängigen Pakete werden mit installiert)
Nach der Installation von ffmpeg auf der Kommandozeile
# ffmpeg
eingeben, die Antwort sollte ensprechend sein
"ffmpeg version 3.2-2~bpo8+2 Copyright (c) 2000-2016 the FFmpeg developers....." und weiter Blah Blah sein.
Puh! - Fast fertig....
Teil-1 Ende