AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Schneller Webcam Stream?

Schneller Webcam Stream?

Offene Frage von "Zacherl"
Ein Thema von Zacherl · begonnen am 19. Mai 2010 · letzter Beitrag vom 19. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:23
Hey,

ich möchte einen möglichst ruckelfreien Webcamstream erzeugen. Momentan verschicke ich periodisch einzelne JPEG Bilder. Je nach Internet Anbindung bleibt allerdings eine Verzögerung von bis zu 2 Sekunden zwischen zwei Einzelbildern bestehen.
Gibt es da eine geschickte Lösung, um das Problem zu umgehen?

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:28
Zum Browser mit aktuellen HTML-Techniken? Denkbar ungeeignet. Hier wäre vermutlich ein Stream zu einer Flash-Instanz besser.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:32
Puh, also ich glaube, das ist eine Wissenschaft für sich. Im Grunde brauchst du dafür ja einen Videocodec.

Ein erster Schritt wäre schon mal, das Bild z.B. in 8*8 Pixel große Felder zu zerteilen und jeweils prüfen, ob sich im Vergleich zum vorherigen Bild etwas verändert hat (mit Toleranz natürlich). Wenn nicht, wird dieser Block einfach schwarz, wodurch es sich durch JPEG effizienter komprimieren lassen sollte (8 Pixel ist hier optimal, weil das JPEG-Raster auch 8 Pixel groß ist). Oder man trickst irgendwie so, dass man die entsprechenden Blöcke komplett rauslöscht. Dann shickt man vor oder nach jedem Bild noch eine Bitmap mit, in der vermerkt ist, welche Pixel geändert wurden.

Der nächste Schritt wäre dann noch Bewegungserkennung, Stichwort Prädiktive Kodierung.

Aber wie gesagt, einfach ist das sicher nicht. Vielleicht gibt es ja auch freie Videostream-Codecs, die du verwenden kannst?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:36
Also der Stream soll von meinem Serverprogramm zu meinem Clientprogramm geschickt werden.

@NamenLozer:
Puh das klingt alles ziemlich aufwändig. Gibt es eventuell eine Methode MPEG2 oder sowas für meine Zwecke zu verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:39
Das einfachste, das mir einfällt, ist mit ffserver einen Videostream aufzusetzen. Verwendest du OGG Theora oder H264 könntest du diesen Stream eventuell mittels HTML5 "<video>" direkt im Browser wiedergeben.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:48
Ich möchte den Stream wie gesagt gerne in meinem Clientprogramm anzeigen, ohne auf einen Browser zurückgreifen zu müssen. Fremdkomponenten sind okay aber externe Programme würde ich gerne vermeiden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#7

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:54
Zitat von Zacherl:
aber externe Programme würde ich gerne vermeiden.
Wie gesagt, im Grunde mußt du estmal die Datenmenge verringern, je weninger Daten, desto schneller bekommst du sie rüber.

Nur die Veränderungen zu übertragen wäre da schon ein großer Fortschritt
und auch die Video-Codecs machen im Prinzip auch nichts anderes.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:56
Zitat von Zacherl:
Ich möchte den Stream wie gesagt gerne in meinem Clientprogramm anzeigen, ohne auf einen Browser zurückgreifen zu müssen. Fremdkomponenten sind okay aber externe Programme würde ich gerne vermeiden.
Naja, dann kannst du zum Beispiel Acinerella oder gleich FFMpeg nehmen um den Videostream zu dekodieren.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:59
Für Desktop Screenshots habe ich mal das Differenzbild Verfahren verwendet, wo die gleichbleibenden Teile einfach schwarz übertragen werden. Die Schwierigkeit ist halt die Toleranz, die NamenLozer erwähnte.
Ich habe absolut keine Idee, wie ich so eine Prüfung mit Toleranz überhaupt und dann noch einigermaßen ressourcenschonend implementieren könnte. Neuronale Netze erscheinen mir dafür etwas zu groß dimensioniert oder?

@igel457:
Das Acinerella schaue ich mir mal an. Die Codierung muss natürlich auch unterstüzt werden.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#10

Re: Schneller Webcam Stream?

  Alt 19. Mai 2010, 21:59
Das Problem ist weniger der Client als der Server, der den Stream auch "artgerecht" als RTP/RTMP oder RSP verschicken kann.
Dafür gibt es mehrere Lösungen, den RED5 Server, ffmpeg oder den Wowza-Server.
Mit letzterem habe ich neulich erst rumexperimentiert und es ging ziemlich gut, damit einen H264 RTMP-Stream auf ein iPhone direkt zu streamen.

Stream-Fähige Clients gibts genügend, aber wie gesagt, das A und O ist der Server. Ohne Stream-Codierung kannst du es eigentlich vergessen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz