Laden...

[ASP.NET MVC] Bild über Server laden

Erstellt von kunsti vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.306 Views
K
kunsti Themenstarter:in
89 Beiträge seit 2013
vor 8 Jahren
[ASP.NET MVC] Bild über Server laden

Hi,
ich habe folgendes Problem.
Eine Webanwendung enthält diverse Kamerastreams.
Diese sind aktuell über die View eingebunden.

  <img height="180" width="320" style="border:1px solid" src="@GatesModel.Gates[i].SrcStringForCamera" alt="Kamerastream" />

Die Quelle des Bildes sieht wie folgt aus:

http://xx.xx.xx.xxx/nphMotionJpeg?Resolution=320x180&Quality=Standard

Durch eine Umstellung und da über die IP-Adresse auf die Kamera zugegriffen wird, ergeben sich allerdings Probleme beim Zugriff.
Manche User befinden sich in einem anderen Netzwerk als die Kameras und könenn daher den Stream nicht sehen.

Die Website läuft über eine VM (Windows Server 2012) über IIS.

Meine Überlegung wäre gewesen mit einem MJPG Decoder die Bilddateien zu dekodieren, an die View zu senden und das Bild in regelmäßigen abständen zu aktualisieren.
Das kling meiner Meinung nach nach keiner guten Lösung.

Die Frage wäre nun, ob es möglich ist, den Stream über den Server bzw. die VM zu laden. Die VM hat zugriff auf die Streams, da sie sich im richtigen Netzwerk befindet. Bzw. gibt es eine bessere Lösung als meine angedachte.

viele Grüße
kunsti

742 Beiträge seit 2005
vor 8 Jahren

Ich würde mir einen Service schreiben (Windows Service z.B.) der regelmäßig die Bilder aller Kameras ausliest und in ein Verzeichnis schreibt. Pro Kamera kannst du ja einen Ordner verwenden und Zusatzinfos in den Dateinamen schreiben. Außerdem sollte der Service alte Bilder löschen (du könntest ja eine max Anzahl Bilder oder eine Größe definieren, damit deine HDD nicht voll läuft). Außerdem würde ich ein Thumbnail generieren, wenn du ein neues Bild reinbekommst.

Diese Order liegt entweder in deiner Webseite und ist per IIS erreichbar oder (besser?) du machst das per Controller: http://stackoverflow.com/questions/186062/can-an-asp-net-mvc-controller-return-an-image

Das gibt dir auch den Vorteil, dass du eine History hast (Dazu das Thumbnail).

Für den Service kann ich dir Topshelf empfehlen: http://topshelf-project.com/

Bei Erfahrung ist das max ein Tag Arbeit.

K
kunsti Themenstarter:in
89 Beiträge seit 2013
vor 8 Jahren

Danke schon mal für die Antwort.
Dabei sehe ich allerdings auch, wei bei meinem Vorschlag (auch wenn mir deiner besser gefällt) das Problem, dass der Stream eventuell zu spät geladen werden könnnte.

Du hast mich allerdings auf eine Idee gebracht. Vielleicht ist es ja möglich auf der VM einen Stream per VLC zu lasen und diesen in der View abzuspielen.
Als ich nach Möglichkeiten gesucht habe dies umzusetzen, bin ich hier drauf gestoßen, was auch interessant aussieht...

Viele Grüße
kunsti

742 Beiträge seit 2005
vor 8 Jahren

Wenn du wirklich Videos streamen willst (klang gerade eher nach einzelnen Bildern) würde ich nach fertigen Lösungen suchen, auch von Microsoft gibt es da irgendwas (Media Server oder so).

K
kunsti Themenstarter:in
89 Beiträge seit 2013
vor 8 Jahren

Ach so.
Ne ich versuche Videos zu streamen.
Ja. Es gibt IIS Media Services. Da bin ich gerade dran es zu versuchen.
Den Link den ich gepostet habe, entält eine Anleitung zum streamen mit mehreren Komponenten.

K
kunsti Themenstarter:in
89 Beiträge seit 2013
vor 8 Jahren

Leider brauch man für IIS Media Services für den Livestream Expression Encoder 4 pro.
Diese Version wird allerdings nicht mehr verkauft und es ist nur noch die normale vorhanden, die den IIS Livestream nicht unterstützt.
Kennt jemand alternativen?