Also das
Handle zu einem Gerät ist mit einer Zufallszahl zu vergleichen. Du kannst die Zahl übers Internet pusten und sie ist überall wertlos. Du musst also zuerst dir das Bild von der Kamera holen. (Ich gehe mal nicht davon aus, dass du gleich mit einem Videostream starten willst.) Sobald du das Bild hast, musst du es in einen Stream speichern (vorzugsweise TMemoryStream, damit nichts auf die Platte geschrieben wird). Jetzt hast du deinen Stream.
Um nicht zu viel Verwirrung zu verursachen, bleibe ich bei dem Indy-HTTP-Konzept.
Wenn der IdHTTPServer eine Anfrage bemerkt, leitet er sie per OnCommandGet (?, muss nicht stimmen) weiter. Dort hast du die Möglichkeit, das angefragte Objekt (ARequestInfo.Document) zu erfragen. Hat es dann z.B. den Namen "webcam.bmp", dann stellst du bei AResonseInfo.ContentType "image/(x-)bitmap" zu und AResponseInfo.ContentStream deinen Stream. Den Stream brauchst du dann nicht aus dem Speicher zu nehmen, das macht
Indy für dich. Fertig. Dann müsste das auch mit dem Browser funktionieren.
Bernhard