[EDIT=herbivore]Originaltitel war "IP Camera"[/EDIT]
Hallo zusammen,
ich habe eine IP Camera von Logilink und möchte die Bilder dieser Camera auf einem Winform anzeigen. Aber keine Idee wie ich dies bewerkstelligen könnte.
Hallo,
ich hatte schon angefangen und einen längeren Text getippt.... Warum bitte benutzt du für sowas nicht Google? Dazu gibt es mehr als genug Tutorials und mit meiner Suchanfrage kommt sofort im ersten Treffer die Anleitung nach der ich es vor 2 Jahren auch implementiert habe...
Sorry, aber über die (auf deutsch gesagt) Faulheit mancher Leute hier muss man sich schon sehr wundern!
Gruß David
Ich finde es nicht in ordnung, wie du auf meine Frage antwortest.
Ich habe nun 2 Tage gesucht aber nicht das richtige gefunden für die Logi Link Camera und dann, habe ich diese Thema gestartet!
Ich möchte ein Winform erstellen, dass auf die im Firmennetzwerk befindlichen Camera zugreift.
Das hier ist das erste Suchergebnis was ich bei Googel bekomme wenn ich genau nach deinem Threadtitel + C# suche...
Gruß David
ich finde es auch nicht ok, wenn man sich hier aufspielt und andere leute als faul bezeichnet anstatt zu helfen. oft gibt man den suchstring anders ein und die suche liefert dann natürlich auch was anderes. die zeit die du zum (auf deutsch gesagt) wichtig sein aufwendest, hättet du auch gleich zum posten deiner suchergebnisse nutzen können, oder?
meiner meinung nach war die frage in keinster weise unverschämt....
peace 😉
Sorry, aber wenn direkt bei der Suche mit "Ip Camera C#" auf der ersten Seite 4 Musterlösungen präsentiert bekomme, wobei eine sogar eine entsprechende dll zur Verfügung stellt, frage ich mich warum das bei 2 Tagen Suche nicht gefunden wird!
Sorry wenn es etwas hart rüber gekommen ist, aber nach 2 Tagen Suche sollte man auf soetwas schon von alleine kommen!
Gruß David
Genau dieses habe ich versucht.
Allerdings kam kein Bild zurück, worauf ich weitergesucht habe.
Dies war auch mein erstes Suchergebnis
AUf welche Adresse hast du dich denn verbunden? Also auf der Kamera? Ich habe die Bibliothek von codeproject schon in vielen Projekten mit den unterschiedlichsten Kameras verwendet und hatte eigentlich nie Probleme...
Gruß David
wenn ich
http://[ADDRESSE]/screenshot.jpg nehme erhalte ich was
aber nicht bei camera vision sondern bei meinen tests.
aber ist kein live mitschnitt sondern nur ein screenshot.
Wenn du dir das Bild 10 mal pro Sekunde holst und anzeigst, haste einen Live-Stream... Welche Formate unterstützt deine Kamera denn? Ist MJPEG lauffähig?
Gruß David
Hallo ingemar,
äh, sorry, der einzige, der sich in diesem Thread aufgespielt hat, ohne zu helfen, warst doch wohl du (und ich jetzt auch, Mist). Es ist vollkommen ok, wenn man bei einer Frage, deren Antwort sich leicht über Google finden lässt, eben darauf hinweist. Und das ist auch bitte von dem Fragesteller unkommentiert und unbewertet hinzunehmen. Denn damit ja dann nicht weniger geholfen, als wenn man die Antwort noch mal abtippt. Nachdem the-cook geschrieben hatte, dass er nichts findet, wurden konkrete Links gepostet und nachdem er schrieb, dass ihm das auch nicht hilft, wurde weitere Hilfestellung geleistet. Also alles vollkommen ok. Die Helfer verdienen weit eher einen Dank statt einer Kritik an der Art ihrer Hilfe.
herbivore
Die Kamera unterstützt MJPEG hat einen Digitalzoom neige und schwenk funktion die leider dann nicht über das JPEG kommt und gewünscht wird.
http://www.logilink.de/showproduct/WC0003A.htm
Vielen dank soweit für eure hilfe
Dann probier die Biliothek von Codeproject mal mit MJPEG, das hat bisher bei allen Kameras (ausser denen von Mobotix) funktioniert!
Gruß David
vielleicht hilft mir das es gibt einen AV-Data-Port wie kann man die daten dieses ports anzeigen?
Keine Ahnung, ich habe so eine Kamera nicht. Mach folgendes:1.Finde die URL heraus um an den MJPEG-Stream zu kommen 1.Binde die dll von CodeProjekt ein 1.Initialisiere die dll mit der MJPEG-URL 1.Starten 1.VideoStream von deiner Cam geniessen 😉
Gruß David
public void Connet(){
mjpeg.MJPEGSource s = new MJPEGSource();
s.VideoSource = "192.168.100.40:4322";
s.Login = "admin";
s.Password="1234";
s.NewFrame += new videosource.CameraEventHandler(s_NewFrame);
s.Start();
}
void s_NewFrame(object sender, videosource.CameraEventArgs e)
{
this.pictureBox1.Image = e.Bitmap;
}
ist das so richtig?
ist das so richtig?
wenn er das macht was Du willst, ja, ansonsten nein. Hast du es ausprobiert?
Martin Bauer - bauer-martin.com
Hmm das verbinden auf einen Port wird dir nichts bringen, da die Bilbiothek intern einen Webrequest macht und ich könnte mir vorstellen das auf der Kamera der Webserver auf Port 80 läuft und du dann durch ein Unterverzeichnis an den Stream kommst, bei Mobotix z.B. sieht es irgenwdie so aus:
Irgendwie sowas wird es für deine Cam auch geben und genau das musst du herausfinden, dann klappt es auch 😃
Gruß David
vielleicht war das ja der anstoss für die weitere hilfe, wer weiß gg manchmal habe ich aber schon das gefühl, das einige leute hier etwas überheblich sind und naja, eh schon wissen. aber im großen und ganzen ist das ein super forum und mir wurde schon einige male sehr gut weitergeholfen!
aufspieler 1 out, hehe
Glaub mir, hier wird auch so geholfen. Aber wenn man den ganzen Tag neben der Arbeit / Studium das Forum auf hat (Ohne selbst HIlfe zu wollen) um evtl. Leuten helfen zu können die Probleme haben, kommt man sich bei solchen Posts ein wenig verarscht vor!
Gruß David
Sowas ähnliches habe ich ja bereits. http://[Address]/snapshot.jpg
allerdings hat die kamera ein Zoomfunktion digital die ich in der beiliegenden Software und der Weboberfläche verfügbar habe und ebenfalls implementieren muss
Das ist nun eine neue Anforderung.
Urspruenglich hiess es nur, wie du die Bilder auf eine Webform bekommst.
be the hammer, not the nail!
Damit bekommst du ein einzelnes JPEG, du musst aber die Adresse für den MJPEG-Stream haben... Und die Pan/Zoom-Funktion kann man normal auch per Web-APi steuern.
Gruß David
Habe nun meines Verständnis nach die richtige Address.
mjpeg.MJPEGSource s = new mjpeg.MJPEGSource();
s.VideoSource = "http://192.168.100.40:4332/snapshot.cgi";
s.Login = "admin";
s.Password = "1234";
s.NewFrame += new videosource.CameraEventHandler(s_NewFrame);
s.Start();
wenn ich dies VideoSource Address im IE eingebe lädt er ununterbrochen und kommen solche hyroklyfen zurück:
f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à!!Ø ¢áZPI$’I$PI$’I$PI$’I$PI$’I$f€à›]u]u°µ‰ Ĉº˜Q@CÁF?¶Gx`Ä}×Ñú¯ B³õ߯ï§ËJŸ¿½mÙš?ß땤ªúìப4ûE^‘¹a·EOöGn“¹–&ÝÓ8¹¼éYäN $°v GÓø¥3BÕË;…I™¾šþd1<#âÁ Aöu# ©µWá,ì j•‰WGJd\L¾_a¨WJ0¶ ]Û îÛjšŽ£¡—Ž¬"S¤D¢Z 8Ö©·j÷{m«ÛiiÊ|ié’‡Üéej–AD¨Q.už¿Õz@}ŒÁ«#®u!r¨¤ÔR© %¿¤ˆž^(ìí¦Ö¬SÉ&ümJ`NÙAâ°S¦ŠÔ(›uD¨ùŸÜ ¤à½™=“"Ò,æEï.Õº±BŒ×'‹rl Šdà„!sYolºÝˆgQÕ†êQqZ™>Ó3›“--—½³s“œq¶"]4Kp_:JŒÒÑüâûÝá¿‘ûgGø†“íþzo›¸wœG:¦ÛШ«=¤c`f>ÊeEü ûVZ‰i² *0ÎþÅ.]Ää5jè†#; ?s`Ó€ýí?j^h\ F 4Ò$ ‘V •5a/šÌ¢÷ Jž³ùî¯ú¹G ûh0d®›©ápü¬tÍ~Í–j‘Äïe%ê*Žvr¾ü;Z 2˜½ÀË‚u”5À`ºmŠÜ²2ËBƨxÙ8ÝY0 ¯.`ïÊd²öQ³h¹9TJJ⧄M@õǶ©¦WÿšþŲÿÙ«uó¼›`:ÐÁíƒ-‰m‚Œv ¿i‘-¦ü½bq«ZkÞ…‘F,£ ‰ëî,e@n«ŽÍFÚrÛJ|cåi5èÅ ØëAÑÔËÓˆºÆåÄÇþ‚€¥…kQÁÎ/ÍPAÚî@¢RÐ`ù'h<€ñû†Ç¬ˆgFÞp'„4ßIÏ©¤IøŠv~¤D#C§/á ¯ò5_żɆc Wªg™æYSVQýýõñµLƒ õñ|â@5´üRà2h ÌL#7±p*Ö&þ÷”¶þ¯Þ½™À~ò#|C„yþÀÀŠ^Þo–çÒ…”žé²ß¦ñ¬,ýBxß j›$ü–déil fjÖÈ[üչ˓µAø7ÏŪÅÆÅ…{¨çxÔü_«U¢žW3‡±H0èK@ßûª2',nÔEŒæ±zHV¼˜ŽuÀ^¸dóÅ ‚y>2)Æ Cø!À„%úU Ò{WË!fô ãËcê'“ÞÉxŽ…ŸùÚy}ò7ßä·d¿ñ}~þG}íS§·Õ¯ÜÔú£î¯Ø:¯ªý=Öý'£õ_] ®júÿ3«ý?,Vû!”™½Ÿ}é×)úß³ýý‰ž&ß;g¶?Öý¼p‡ÀÀ@‡Õm˜ßÛ%¬³ögFBÒ¡yDq$¸yˆÕþÀFÍød`’½šÎ l·!D<Ž`)µeùœ¨Ã›aB‰(0¥>Ñ5¡êJàžíŠÁ„‚數¬Ë|Ânó³XÊŽ†»8ì %²Øþ_Ë 0#b°ÃL„³b¨®Ï{gTl,»e \ , ’ViG°²#°• èßyÈR.G,RûûQpfR&÷O)uçÏÏ [ þÚ¬k?©-ØÓS¼ªsdY]q5f…©õAskÍ,Z#¡îJ .>l»U‡±™'Š‹?Ôk¬jo„‡êÀ<`Œ2wh8'NòÌnÅ=µ6Ó£A(G‰@? £`e²Õ o-Æ7üSÎw‘c|Ys‚"yÀÈÂEh«Ëai‹â= Ù¨Ÿ’k fôe dy×ç (×lX D( PxáU ùªµ;Ψ0Ba?ÖXoôÛ tè}€ÂZ¶Áà?}1¹^2‘*¤Ê’Oôq>\$0ÛvE3–?ˆòSS§‰â°xÞYW«wD¿á®è•¡…£@ø %‹ÛìCûJü3zÎçñâv¸¦É;Üñ,’Ç*þ– ‹9jŠ²;ÕÑ-V¼®¨08š[ H” ûaV|!±=YO›Vß7¶t k; €ø-P—.ØŒEg’øÀÍ'¥Áþϱ¿l@Å3d«©ñ]•iÚPL„5Z[õ·Øj·'J ÿÅ—e±i8J7\,Ùx·¶EX4 +,øÂÚ·}Õ¤™Ðî#çQ,D›É“§ªçè1FƒÊŒ5óo àÀêZ=R¹R®t×YèMV_½ZmFj]4*R‚Óø2aúk‘´ zül§?ñ:‚¦÷¯¾Qx )Pøv½ p!eºÿ(<'ýp}qaå*IJª8qa"¯E‡BXúõ¤±. y8¿a¤&á¨Éz¸ ªÂ\´ë©±Ð“¹ž_Q†¹bâp© Ò[aU˜v1¶Qƒw¢³KBXhýDÆnÏ_hæRÎ)"Äh×&ÖÄE^›$ˆEàç6†‰
aber der event
void s_NewFrame(object sender, videosource.CameraEventArgs e)
{
pictureBox1.Image = e.Bitmap;
}
wird nicht aufgerufen
Im VLC geht es wenn ich http://192.168.100.40/snapshot.cgi eingebe.
Dann schau das du ne pdb-Dateien bekommst und du die Library debuggen kannst, dann siehst du doch wo es hakt.
Kleiner Tip: In dem Stream sind die einzelnen Bildermit einem Boundary-String unterteilt, der unterscheidet sich von Kamertyp zu Kameratyp und muss manchmal angepasst werden (per Default ist es glaub myBoundary oder sowas...)
Gruß David
MJPEG.dll und Videosource.dll verwende ich nun.
Nun bekomme ich die Daten.
Allerdings erstellt die MJPEG kein Bild.
Folgende Methode gibt immer nur -1 zurück
public static int Find(byte[] array, byte[] needle, int startIndex, int count)
{
int needleLen = needle.Length;
int index;
while (count >= needleLen)
{
index = Array.IndexOf(array, needle[0], startIndex, count - needleLen + 1);
if (index == -1)
return -1;
int i, p;
// check for needle
for (i = 0, p = index; i < needleLen; i++, p++)
{
if (array[p] != needle[i])
{
break;
}
}
if (i == needleLen)
{
// found needle
return index;
}
count -= (index - startIndex + 1);
startIndex = index + 1;
}
return -1;
}
in
byte needle[]
müsste der BoundaryValue stehen, wie schon oben gesagt kann es sein das du den spezifisch für deine Kamera anpassen musst. Bei MJPEG werden JPEG hintereinander weg in einen Stream geschrieben und durch ein BoundaryValue voneinander getrennt, je nach Kameratyp variiert dieser BoundaryValue (z.B. myBoundary). Diese Methode die du da hast ist die Methode die im Stream nach dieser BoundaryValue sucht. Also schau mit einem HexEditor mal den Stream durch und guck wie die einzelnen Images im Stream getrennt werden, dann änderst du das und es läuft.
Gruß David
Super hat klappt nun alles soweit.
jetzt habe ich nur noch das problem, dass die website über folgenden Code
function recordAVI()
{
var date = new Date();
var filename = "Record" + "_" + date.getYear() + "_" + (date.getMonth() + 1) + "_" + date.getDate()
+ "_" + date.getHours() + "_" + date.getMinutes() + "_" + date.getSeconds() + ".avi"
var ReturnValue;
ReturnValue = document.IPCam_Plugin.recordAVI(filename);
if(ReturnValue == 0)
{
if (recordStatus == 0) {
document.enet.recBtn.value="Stop recording";
recordStatus = 1;
}
else {
document.enet.recBtn.value="Start recording";
recordStatus = 0;
}
}
}
das aufzeichnen startet und ich weiss nicht wie ich an dieses IPCam_Plugin ran komme.