AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webcamstream über Indys an andern Rechner schicken
Thema durchsuchen
Ansicht
Themen-Optionen

Webcamstream über Indys an andern Rechner schicken

Ein Thema von Clane · begonnen am 1. Nov 2006 · letzter Beitrag vom 1. Dez 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 5. Nov 2006, 15:25
Hi,

der LiveStream der Cam ist doch Bmp, und das kann in Ram zu Jpeg umgewandelt werden !

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
arnold mueller

Registriert seit: 27. Jul 2005
129 Beiträge
 
#12

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 5. Nov 2006, 15:54
Na sag ich doch...

Falls es kein MPEG2 oder gar MPEG4 Stream ist, dann ist es mit Sicherheit ein MJPG Stream, also ganz viele JPG Bilder in Folge. Jedes JPG Bild erkennst Du am Header.

Zitat von Clane:
- Du hast das Bild als Bmp oder Jpeg(is auch egal)!

eben nicht ich hab den livestream von der webcam ...
  Mit Zitat antworten Zitat
arnold mueller

Registriert seit: 27. Jul 2005
129 Beiträge
 
#13

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 5. Nov 2006, 16:03
Also ich kenne keine Webcam die Bitmaps verschickt...

Die meisten schicken JPG's.

Zitat von DataCool:
Hi,

der LiveStream der Cam ist doch Bmp, und das kann in Ram zu Jpeg umgewandelt werden !

Greetz DataCool
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#14

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 5. Nov 2006, 17:18
Also ich übergebe meine Vidoframes aus der callback heraus in eine Variable, deren Inhalt die ich beim nächsten onread des serversockets verschicke. Das werkelt so allseits hübsch ereignisgesteuert und bleibt synchronisiert, egal wo einmal ein Engpass auftreten sollte. Memorystreams sind da sehr komfortabel an zu wenden.

Eine meiner Webcams liefert die Frames als JPEG ab und die beiden anderen als Bitmaps, die auf dem Kopf stehen.

Die Funktion capgetvideoformat stellt die Info über die Videocodierung zur Verfügung. Der Parameter videoformat.bitmapinfoheader.biCompression ist 0 bei Bitmaps und 4 bei jpegs. Wenn man das berücksichtigt, dann kann man jede Cam verwenden.

Das bewegt Video Bild kann man dann mit einem Programm oder auch genau so gut mit einem javascript im Browser ansehen. dazu braucht es nichtmal einem player und ist dennoch flackerfrei und ruckelfrei.

grüsse,
der flossinger
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#15

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 1. Dez 2006, 17:30
Hi,
bei mir gehts nichtso ganz...

folgendes habe ich:

Client:

Delphi-Quellcode:

var
ms:TMemorystream;
gif:TGifimage;

begin
gif:=TGifimage.create;
gif.LoadFromFile('C:\002.gif');
ms:=Tmemorystream.Create;
gif.SaveToStream(ms);

if not client.Connected then client.connect;
ms.Position:=0;

client.Socket.WriteBufferOpen;
client.Socket.Write(ms);
client.Socket.WriteBufferFlush;
client.Socket.WriteBufferClose;

FreeAndNil(ms);

end;
Server:

Delphi-Quellcode:
procedure TForm1.ServerExecute(AContext: TIdContext);
var
ms:TMemorystream;
gif:TGifimage;

begin
ms:=Tmemorystream.Create;
gif:=TGifimage.Create;

 AContext.Connection.Socket.ReadStream(ms);

gif.LoadFromStream(ms);
gif.SaveToFile('C:\xyz.gif');

end;
ich hoffe ihr könnt mir helfen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 1. Dez 2006, 17:42
Hi!

Das Problem ist, das Du i.d.R. für den Upload nicht genug DSL Bandbreite zur Verfügung hast.
Somit mußt Du Dich um einen Codec oder eine andere Art von Komprimierung kümmern.
Sonst wirst Du je nach Cam-Auflösung nicht mehr als 3-4 Bilder pro Sekunden übertragen können...

Wenn dann der Upload in stocken kommt, mußt Du Frames auslassen, damit es auf der anderen Seite nicht völlig blöde aussieht.

Falls Du mal einen MPEG4 Codec im Delphi Source (Keine DLL oder ActiveX) sag bescheidt..

Grüsse Frank

PS.: Mein Video-Chat kommt bisher leider auch nur auf 10 Frames/Sekunde. Muss wohl meinen eigenen Codec noch ein bischen optimieren...
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#17

Re: Webcamstream über Indys an andern Rechner schicken

  Alt 1. Dez 2006, 17:53
Zitat von Mavarik:
Hi!

Das Problem ist, das Du i.d.R. für den Upload nicht genug DSL Bandbreite zur Verfügung hast.
Somit mußt Du Dich um einen Codec oder eine andere Art von Komprimierung kümmern.
Sonst wirst Du je nach Cam-Auflösung nicht mehr als 3-4 Bilder pro Sekunden übertragen können...

Wenn dann der Upload in stocken kommt, mußt Du Frames auslassen, damit es auf der anderen Seite nicht völlig blöde aussieht.

Falls Du mal einen MPEG4 Codec im Delphi Source (Keine DLL oder ActiveX) sag bescheidt..

Grüsse Frank

PS.: Mein Video-Chat kommt bisher leider auch nur auf 10 Frames/Sekunde. Muss wohl meinen eigenen Codec noch ein bischen optimieren...
naja 3-4bilder/s reichen mir ja...müsste nur wissen was an meinem code falsch ist
siehe beitrag vor dir
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:18 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