Hallo miteinander.
Ich hab mich heute neu in diesem Forum angemolden, weil ich im Internet (Google und co.) keine brauchbare Lösung zu meinem Problem gefunden habe und ich schlicht und einfach eine Erklärung benötige.
private void button1_Click(object sender, EventArgs e)
{
string sourceURL = "http://192.168.8.48/";
byte[] buffer = new byte[100000];
int read, total = 0;
// HTTP Request
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sourceURL);
// Login
string userName = "admin";
string password = "";
req.Credentials = new NetworkCredential(userName, password);
// Rückmeldung
WebResponse resp = req.GetResponse();
// HTTP Stream
Stream stream = resp.GetResponseStream();
// Daten vom Stream lesen
while ((read = stream.Read(buffer, total, 1000)) != 0)
{
total += read;
}
//Bild bekommen
Bitmap bmp = (Bitmap)Bitmap.FromStream(new MemoryStream(buffer, 0, total));
pictureBox1.Image = ByteToImage(buffer);
Nun meine Frage, was mache ich falsch? Ich kann das Programm ausführen, jedoch kriege ich immer eine Fehlermeldung, sobald ich auf den Button klicke, durch welchen das Bild abgerufen werden sollte.
Ich hoffe ihr versteht meine Frage und könnt mir helfen 😉
Freundliche Grüsse
DisTurbed
@Björn
Was verstehst du nicht? Ich hab mir Punkt 5 durchgelesen bevor ich gepostet hatte 🙂
@Björn
Was verstehst du nicht? Ich hab mir Punkt 5 durchgelesen bevor ich gepostet hatte 😃
- Problem genau beschreiben - inkl. genauer Fehlermeldung - und konkrete Fragen stellen
Ich sehe keine Fehlermeldung und raten wird hier auch keiner..
Oh sorry hab ich irgendwie nicht korrekt eingefügt.
Hier die Fehlermeldung:
Fehlermeldung:
System.ArgumentException: Ungültiger Parameter.
bei System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
bei System.Drawing.Image.FromStream(Stream stream)
bei IPCam.Form1.button1_Click(Object sender, EventArgs e) in c:\Users\rido\Desktop\C#\Projects\IPCam\IPCam\Form1.cs:Zeile 49.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Dies erscheint, nachdem ich im angehängten Bild auf _Details _klickte.
Und was sagt uns die Fehlermeldung? Das aus deinem Buffer bzw. MemoryStream kein Bild erstellt werden kann bzw. keins enthält.
ich denke auch nicht, dass es direkt unter
string sourceURL = "http://192.168.8.48/";
kein Bild gibt sondern eher eine Html Seite
So ist es. Also entweder den Code nach dem Bild durchsuchen oder alternativ ein Webcontrol statt der Picturebox verwenden.
Irgendwo müsste ich aber auch noch einen Code zum runterladen des Bildes rumliegen haben...
Hm ja durch diese URL wird man auf die Steuerungssoftware der Kamera geleitet. Sprich man sieht dort was die IP-Cam überwacht.
Dies hab ich nun geändert, hab aber immer noch dieselben Fehler 🙁
URL ist jetzt aber: ht****tp://192.168.8.48/eng/liveView.cgi
Und wie könnte ich das mit dem Buffer hinkriegen? Bin noch nicht so das Genie in C#.
Übrigens besten Dank für eure Bemühungen!
Das mit dem Buffer ist korrekt. Nur liegt hinter der URL kein Bild! Da wird eine HTML-Seite sein, die auf ein Bild verweist / anzeigt / verlinkt. Mehr können wir dir nicht helfen.
Ja das ist richtig. Ziel der Aufgabe wäre eben die dort angezeigte Videoaufnahme im C# zu streamen.
Hab jetzt auch rausgefunden wie man wenigstens ein Bild von, zum Beispiel Google Bilder über die URL anzeigen lassen kann.
Dies ist ja schon mal ein Anfang.
Im Anhang noch der Stream der vorherigen URL.
Hallo DisTurbed,
welche URL steht denn in der Adressleiste, wenn du einen Rechtsklick auf das Kamerabild machst und dann auf "Bild in neuem Tab öffnen" klickst?
Oder ist das kein Bild sondern etwas anderes?
Gruß
pinki
Es wäre ratsam, wenn Du erst mal erörterst, mit welcher Technolgie Du das einzeigen willst oder musst.
Offensichtlich fehlen Dir jegliche Grundinformationen, wie sowas funktioniert. Und im Prinzip ist es Deine Aufgabe herauszufinden, welche Möglichkeiten Du überhaupt hast.
Du hast hier nämlich im Web-Bereich einen Thread gestartet, der Windows Forms Code zeigt und anschließend verweist Du wiederum auf HTML Inhalte, die wiederum Flash oder ActiveX nutzen.
Finde also erst mal raus, was die Kamera, bzw. die Kamera-Software von Haus aus bietet.
Bei vielen Kameras kann man sich nämlich aufschalten bzw. erhält ein ActiveX-Objekt zurück, das man dann entweder in Forms oder in HTML einbetten kann.
Nur die Grundinformationen zu holen ist eben Deine Aufgabe, nicht unsere.
Thread nach Grafik&Sound verschoben
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
@pinki
Hallo 🙂 Wenn ich Rechtsklick auf die Aufnahme mache passiert gar nichts.
@Abt
Ja ich kann dir höchstens sagen was für ein Kameratyp die Cam ist und welcher Hersteller. Mehr weiss ich leider auch nicht. Und wie du bereits gesagt hast, fehlt mir einiges an Grundkentnissen.
Hersteller: TrendNet
Modell: TV-IP672PI
10 Sekunden googeln:
VLC rtsp://IPADDRESS:554/play1.sdp
JPEG http://IPADDRESS/image/jpeg.cgi
MJPEG http://IPADDRESS/mjpeg.cgi
MJPEG http://IPADDRESS/GetData.cgi
MJPEG ht****tp://IPADDRESS/video/mjpg.cgi
yeah danke Morphiex
Das habe ich nicht gefunden tut mir Leid...
Nun kommt keine Fehlermeldung mehr, wenn ich den Stream hingegen in der Picture Box einblenden will, gibt das Programm keine Rückmeldung.
MJPEG. Das Ziel ist es die Aufnahme im C# Projekt wiederzugeben.
JPEG funktioniert soweit 😁
Dann kannst du aber nicht einfach so ein Bild herunterladen, sondern musst schon das MJPEG-Protokoll implementieren.
Ganz einfach ausgedrückt:
Oder du suchst dir einen fertigen MJPEG-Decoder
z.B. http://mjpeg.codeplex.com (habe ich allerdings nicht getestet)
yeah danke. Sowas kann mir bereits weiterhelfen 🙂
Den Link werde ich mir morgen auch mal noch anschauen!
Werde mich wieder melden.
Danke und bis später!
Den Rest solltest du jetzt alleine hinbekommen. Du weiß jetzt ja auch, dass du alle nötigen Informationen (leicht) im Netz findest, erst recht, da du natürlich nicht der bist, der vor dem Problem steht, siehe auch [Hinweis] Wie poste ich richtig? Punkt 1.1.