Hallo Freunde der Sonne :heart:
Guddes Wetter heute!!! Was gibt es da schöneres als in seiner Kammer zu sitzen und am Raspberry zu schrauben?
GENAU!! Skripte schreiben! 
Spaß bei Seite, nach einer netten Runde im Garten möchte ich einen neuen Thread starten um mein Videostreaming zu optimieren. Natürlich mit eurer Hilfe 
Ich fand es eine nette Idee meinem Vater einen Vogelnistkasten mit integrierter Kamera zu schenken.
Natürlich mit Live-Stream direkt aus dem Vogelhaus mit der "NoIR - Kamera".
(NoIR = Kein Infrarotfilter, d.h. die Kamera macht super Bilder bei Dunkelheit.)
Ich möchte den Prozess meines Streaming optimieren, ich bin selber Anfänger und benötige deswegen eure Hilfe.
Auch meine Vorgehensweise werde ich erläutern um somit ein kleines Tutorial für andere Forenmember schaffen.
Der Ablauf meiner Arbeitsschritte
Schritt 1
Kamera anschließen und über den Befehl raspi-config die Kamera aktivieren (enable).
Schritt 2
Ich kenne bisher nur eine Methode zum Streamen - VLC Player.
Daher war mein zweiter Schritt die Installation des VLC Players auf dem Raspberry unter Raspbian mit:
Quote
Schritt 3
Nun komme ich schon zum Streaming - für Neulinge hier: Jaja, so einfach und schnell geht das mit dem Raspberry!!! 
Um das Streaming zu starten tippe ich folgenden Befehl in die Konsole:
Quote
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
Die LED der Kamera fängt an Rot zu leuchten.
Schritt 4
Ich erhebe meinen Körper und gehe runter ins Wohnzimmer zum iPad, starte den VLC Player für das iPad und verbinde mich mit einem Netzwerkstream.
Wenn ich aufgefordert werde die URL für den Stream einzugeben, gebe ich ein:
Quote
vlc rtsp://raspberrypi.local:8554/
Und ZACK! Ich sehe das Livebild der Kamera.
--------------------------------------------------------------------------
So der Stream funktioniert im Heimwerk.
Jetzt komme ich zur eigentlichen Problematik dieses Threads:
Problem 1
Ja, der ein oder andere wird sich sofort aufregen und sagen "Weshalb nimmst du den VLC?"
Ich habe vor ein paar Tagen mit dem Projekt angefangen und habe nach dieser Anleitung (hier klicken) gearbeitet, da dieses Tutorial sofort bei mir ohne irgendeine Portweiterleitung am Router funktionierte.
Bitte verfasst doch einen netten Text, wenn ihr Tipps für die Nutzung besserer Programme zum streamen habt. 
Problematik 2
Ich möchte die Übertragung des Streams optimieren.
Der Code:
Quote
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
Enthält auch Elemente die ich mir nicht erklären kann, aber er funktioniert, dass ist wichtig!!
Doch ich möchte den Code mit euch aufschlüsseln. Mögen wir beginnen:
raspivid
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
Startet die Videoaufnahme der Kamera.
-o
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--output : Output filename <filename> (to write to stdout, use '-o -')
-
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
??? Was macht dieser Parameter "-"? Ich finde dazu keinen Dokumentationen im Internet. 
-t
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--timeout : Time (in ms) to capture for. If not specified, set to 5s. Zero to disable
0
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--timeout = 0 ms
-n
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--nopreview : Do not display a preview window
??? Kann ich leider auch nicht interpretieren und bitte wäre daher sehr erfreut über einen netten Beitrag. :thumbs1:
-vf
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--vflip : Set vertical flip
-hf
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--hflip : Set horizontal flip
-w 1280 -h 720
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--width : Set image width <size>. Default 1920
--height : Set image height <size>. Default 1080
-fps 25
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
-framerate : Specify the frames per second to record
Hier ein Wiki-Link, falls jemand nicht weiß was "FPS" sind. :-)
-g 100
raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
--intra : Specify the intra refresh period (key frame rate/GoP size)
??? Lecko mio!! Keine Ahnung was dieser Parameter macht
Hat jeman Ahnung? :s
|
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[/quote]
Trennt einen vom anderen Befehl in der Linux-Konsole.
cvlc
??? Im Internet finde ich nur Dokumentation die auf "vlc" und nicht "cvlc" basieren. Kann da jemand helfen?
-vvv
"Verbose verbose verbose". Verbose output (debug infos can be displayed by selecting "Debug logging" interface under View->Add Interface menu)
??? Kann ich selber jetzt nichts mit anfangen. 
stream:///dev/stdin
??? Meines Wissens ist "/" der Root-Ordner unter Linux und "dev" irgendein Geräte-Ordner ..^^
--sout
??? Schlag mich tot. 
'#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264
??? Hierzu kann ich auch nur sagen, dass es super funktioniert bei mir, wenn ich den Stream abrufe, aber mehr kann ich auch nicht sagen
Über das Real-Time Streaming Protocol kann man hier mehr nachlesen.
------------------------------------------------------------------------------
Es gibt hier viele Passagen wo ich (und auch sicher andere^^) keine Ahnung haben was manche dieser Parameter verursachen. Teilt euer Wissen ruhig :-)))
Hier die Quelle von den Kommandos zu "raspivid"
Auch wenn ihr Verbesserungsvorschläge für den obrigen Code habt, dann immer her damit!!
Ich würde den Befehl auch später gerne in ein Python- oder Icon-Skript einbinden und dann damit den 24/7 Streaming-Dienst zu gewehrleisten.







Gruß