Forum: Offtopic Video in Echtzeit streamen


von Jonny O. (-geo-)


Lesenswert?

Hallo zusammen,

ich bastel grade an einer Robotersteuerung, mit der ich einen Roboter 
aus der Roboterperspektive übers Internet durch meine Wohnung steuern 
kann. Ich nutze für die Steuersignale zum Roboter einen Apache Webserver 
mit PHP Programm, dass die RS232 ansteuert. An dieser hängt ein PMR 
Funkgerät mit ATMEGA8 Funkmodem, dass die Daten zum Robi sendet. Auf dem 
Robi sitzt eine Überwachungskamera die per Funk arbeitet, wobei der 
Empfänger an einen Videograbber angeschlossen ist.

Lange Rede kurzer Sinn: Ich streame das Videosignal mit dem Windows 
Media Encoder. Klappt super mit guter Qualität, nur leider bedingt durch 
den Puffer mit einer 10 Sekunden Verzögerung. Ist natürlich blöde, wenn 
man mit 10 Sekunden Verzögerung das Videosignal vom Robi bekommt :-/

Womit kann man in Echtzeit streamen, so dass ich im Browser mein 
Videosignal sehen kann?

Ev. fällt ja dem Einen oder Anderen was ein.

Grüße
Jonny

von Rahul D. (rahul)


Lesenswert?

>Womit kann man in Echtzeit streamen, so dass ich im Browser mein
>Videosignal sehen kann?

Deine 10 Seunden sind Echtzeit. Echtzeit bedeutet nur soviel, dass das 
was ma erwartet innerhalb einer bestimmten (deterministischen) 
Zeitspanne eintrifft.
Wenn du die Latenz verkleinern willst, kannst du entweder auf einen 
schnelleren Encoder, eine kleinere Auflösung oder eine analoge 
Funkübertragung umsteigen.

von abc (Gast)


Lesenswert?

... oder besser den netzwerkpuffer des streamers verkleinern (source 
code oder menü-punkt).

von Jonny O. (-geo-)


Lesenswert?

> Deine 10 Seunden sind Echtzeit. Echtzeit bedeutet nur soviel, dass das
> was ma erwartet innerhalb einer bestimmten (deterministischen)
> Zeitspanne eintrifft.

Hallo Rahul & abc,

stimmt - das habe ich etwas unglücklich formuliert. Ich meinte die 
Latenzzeit.

> Wenn du die Latenz verkleinern willst, kannst du entweder auf einen
> schnelleren Encoder, eine kleinere Auflösung oder eine analoge
> Funkübertragung umsteigen.

Das Problem liegt nicht bei der Funkübertragung, da die analog 
ausgeführt ist(Die Digitalisierung durch den Videograbber geht auch ganz 
schnell). Der Encoder ist auch schnell genug. Das Problem liegt beim 
Empfänger. Ich binde in einer HTML Seite einen Windows Media Player ein, 
der auf die URL zugreift, auf der der Stream läuft. Das Problem ist das 
der WMP immer erst einen Buffer anlegt und dann anfängt das Video 
abzuspielen. Der Buffer ist ja an und für sich eine sinnvolle Sache, da 
somit Aussetzer in der Übertragung kompensiert werden. Problematisch ist 
es halt nur wenn die Latenzzeit eine Rolle spielt. Vermutlich ist der 
WMP auch grundsätzlich für sowas ungeeignet. Man kann zwar beim WMP die 
Puffergröße ändern, aber das hat irgendwie nichts bewirkt. Auch wenn ich 
den Encoder auf eine sehr geringe Bitrate einstelle, buffert der WMP 
weiter vor sich hin.

Ev. gibt es Player, die ich in eine HTML Seite einbinden kann und die da 
besser geeignet sind. Wenn alles nicht geht, kann man natürlich auch 
einfach im Sekundentakt Bilder per FTP uploaden oder so. Wäre aber nur 
ne Notlösung.

Wie schafft das eigentlich Skype und co? Da hat man auch ein Videobild 
mit geringer Latenzzeit.

von Hans (Gast)


Lesenswert?

Es gibt ein VNC Browser Plugin unter: 
http://www.realvnc.com/support/javavncviewer.html

Über's Internet habe ich das allerdings noch nicht ausprobiert und weiß 
deshalb nicht, wie groß die Latenz ist.

VNC über's 100 MBit Ethernet hat meiner Erfahrung nach eine ausreichend 
kleine Latenz.

Allerdings weiß ich nicht, wie der Video-Grabber das Bild auf den 
Monitor bringt und ob VNC das überhaupt übertragen kann. (Das Bild 
meiner TV-Karte wird nicht übertragen - das entsprechende Fenster bleibt 
schwarz).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.