Realtime Bilder über UDP im LAN übertragen
Übersicht

naibaf7Betreff: Realtime Bilder über UDP im LAN übertragen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich möchte gerne (aus spass...) bilder (realtime) über UDP übertragen. Das möchte ich natürlich nicht übers internet sondern über LAN machen, das sollte ja bei 100mbit/s PC zu PC direktverbindung (per crossoverkabel) kein problem sein, oder? Nur, wie macht man das? Man kann ja schlecht jeden Pixel des Bildes einscannen und einzeln per UDP versenden! thx, naibaf7 |
||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber Defakto wird das so gemacht ![]() |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aber das lagt dann ja böse?? Ich meine, es gibt ja remote software und das zeug lagt nicht mal übers Internet!! wie sollte denn das per pixel versenden gehen?? is ja mal ganz schlecht! | ||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum sollte man das nicht können?
Sinnvoller wäre es aber, jedes Byte auszulesen (ReadByte), die Bytes dann per UDP an den Empfänger zu schicken, und dann das ganze wieder in eine Datei schreiben. Sollte funktionieren ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
is klar -.- aber das is dann ja niemals realtime? so hab ich ja ne minute pro bild -.- | ||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann übertrag nur das, was sich verändert ![]() |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jepp [bezieht sich auf Tankbusters Vorschlag], dann sind sie, je nach Dateiformat, eventuell schon komprimiert. Oder die Daten selbst einlesen und auch selbst komprimieren. Kompressionsroutinen für Banks sollten sich finden lassen (Vertex hatte mal sowas gemacht, allerdings für BMax; vllt mal im BB.com Codearchiv schauen). | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
- Zuletzt bearbeitet von D2006 am Mi, Feb 11, 2009 18:39, insgesamt einmal bearbeitet
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
nö...du musst doch nur 1024*768 bytes verschicken, das senden geht in einer sekunde, das empfangen wohl auch | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei so großen Bildern muss man die Infos auf verschiedene Pakete verteilen, und dann senden. Jedes UDP-Paket kann maximal um die 65.000 Bytes groß sein ![]() Bei mehr, musst du dann natürlich ein paar Paketchen verschicken, aber mit 1-2 Sekunden kommt man auf jedenfall hin ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da fehlt noch ein *3, weil ein Bild bekanntlicherweise 3 Farbkanäle besitzt ![]() Das sollte im Lan schon relativ flott gehen - übers Internet komprimieren die meisten Programme ihre Bilder bereits, wie schon von Dee angedeutet. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
[Klugschiss]Die effektive Maximalgrösse für UDP-Pakete ist in der Tat viel kleiner: Ich hab noch nie ein grösseres Paket als 2KB- UDP-Headergrösse (gibt etwas um die 2000Bytes) durch die Leitung gebracht.
Und Goodjee: *3, es sei denn, du willst nur n Graustufenbild[/Klugschiss] |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hehe ok dann siehts dann so aus, dass ich das zeug komprimieren muss, mit irgendwelchen routinen, da mir das ansonsten zu sehr langsam ist
achja ich hab grad bemerkt, dass die verbindung weitaus nicht das grösste problem ist, sondern das "einlesen" der Buffer mit den Bildern darin! das dauert einfach ewigs, bis 1024x768 pixel gelesen sind! |
||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
ReadPixelFast![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du B+ könntest du es mit DesktopBuffer![]() mfg |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst z.B. meine UDPLib aus dem Codearchiv nehmen oder die selber den netztwerk code schreiben, dann machst du folgendes :
Code: [AUSKLAPPEN] img = ReadFile("Image.png")
While not eof(img) byte = Readbyte(img) WriteByte(UDPStream,byte) Wend CloseFile(img) Oder mit meiner Lib : Code: [AUSKLAPPEN] img = ReadFile("Image.png") strg$ = "" While not eof(img) byte = Readbyte(img) strg = strg + byte+";" Wend UDP_Send(ID,strg) CloseFile(img) So einfach ist das... Dann wenn du eine nachricht krigst von einem der dir das bild (oder eine andere belibiege datei) schicken möchte, machst du das : Code: [AUSKLAPPEN] img = Writefile("Image.png")
While Not eof(UDPStream) byte = ReadByte(UDPStream) WriteByte(img,byte) Wend CloseFile(img) und mit der lib gehts genau so nur das du zusätzlich noch StringParsing betreibene musst um die bytes aus der kette rauszulesen... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok danke, ich habs jetzt so hingekriegt:
Programm 1: -ein bild im vRAM erstellen -ein rechteck aus dem desktopbuffer in den bildbuffer schreiben -bildbuffer "lockbuffern" -mit readpixelfast alles da raus kopieren und versenden -bildbuffer "unlockbuffern" Programm 2: -ein bild im vRAM erstellen -bildbuffer "lockbuffern" -jeden Pixel ins bild schreiben -bildbuffer "unlockbuffern" -das bild zeichnen |
||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könntest du deinen Code bitte mal posten? Ich will sehn, wo ich meinen noch optimieren kann ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versteh nicht, warum ihr die Pixel eines Bildes auslesen wollt, und dann die RGB-Infos sendet. Es reicht doch völlig, die Datei Byte für Byte auszulesen, und dann einfach zu verschicken.
Das geht viel schneller, und man muss sich nicht extra eine Speicherroutine für ein paar Bildformate (Png, jpg) kümmern. ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso immer bloß ein Byte, wenn in einem Paket doch mehr als genug Platz ist? Man muss das Netzwerk ja nicht gleich unnötig belasten. | ||
Starfare: Worklog, Website (download) |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja Zap, das meinte ich auch (dürfte man wohl an meinem vorletzen Post sehen ![]() Aber das ganze halt auf die Art und Weise zu machen würde doch viel Arbeit sparen ^-^ |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group