Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 20.04.13 22:40 
Hi,

ich habe Netzwerk Technisch leider noch nicht sooo viel Erfahrung, deswegen hoffe ich mir kann hier jemand einen Tipp geben für mein Problem.

Ich habe auf Rechner A eine Camera hängen von der ich lauter JPEG Bilder bekomme, ca. 30 pro Sekunde. Die möchte ich gern via Netzwerk an ein Programm auf Rechner B streamen.

Im moment löse ich das ganze so, das ich auf Rechner B immer ein Bild von Rechner A requeste via TCP, und dieser dann daraufhin das aktuellste via TCP zurückschickt.

Das klappt soweit ganz gut, allerdings ist das gefühlt nicht die Idealste Lösung... eine Alternative die mir einfällt wäre, das Rechner A die Daten ständig via UDP schickt, und Rechner B eben nur dann etwas annimmt, wenn er grad Zeit dafür hat. Aber, nachdem bei UDP ja die Daten zerstückelt werden und auch gern mal verloren gehen weiß ich nicht wie ich das umsetzen sollte das ich immer komplette JPEG Bilder bekomme.

Im moment schickt Rechner A immer zuerst 4 Byte mit der Größe der Daten und dann die Daten selbst, Rechner B liest dann wie viele Bytes das JPEG haben wird und liest dann dementsprechend viele Bytes ein.

Wenn ich das mit UDP mache kann es ja sein das mitten im JPEG aufeinmal Daten verloren gehen etc..

Wie macht man sowas am geschicktesten?

Danke,
Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: So 21.04.13 00:07 
Die verlorenen Pakete sind nicht das einzige Problem.
Du müsstet Dich auch um die Sortierung der Pakete kümmern.
UDP ist IMHO nur geeignet um eine Nachricht über vorhandene neue Daten zu schicken.
Den Abruf der Bilder per TCP könntest Du einen Thread erledigen lassen.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 21.04.13 18:04 
UDP ist für den Zweck ideal, allerdings solltest du dafür eine streamfähige Komprimierung benutzen. JPEG-Bilder sind dafür nicht geeignet.

Einem Videostream ist es egal, wenn mal ein Paket verloren geht, da gibt es dann einen kleinen Bildfehler, aber das Video kommt gut rüber. Wenn man bei jedem Paketfehler dieses erst korrigiert, ist das für einen Livestream schlecht, weil es ggf. ruckelt.

Für diesen Beitrag haben gedankt: bummi