none
Ftp Client - Bilder von einer IP Cam empfangen? RRS feed

Antworten

Alle Antworten

  • Hallo Ellen,

    möchtest Du Dir das wirklich antun, einen eigenen FTP Server zu entwickeln, wo es so etwas schon, wie Sand am Meer gibt?

    Beispielsweise:

    FileZilla Server
    http://filezilla-project.org/download.php?type=server

    Was zum Abschauen und Lernen (.NET/C#):

    Advanced FTP Server
    http://beta.codeproject.com/KB/IP/AdvancedFTPServer.aspx


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    • Als Antwort markiert Ellen Ramcke Mittwoch, 9. Juni 2010 15:21
    Sonntag, 6. Juni 2010 19:37
    Beantworter
  • Hallo Thorsten,

    ich dachte an eine schlanke Anwendung, welche nichts weiter macht als von dieser Cam Bilder im jpg Format zu empfangen und diese auf Festplatte zu speichern. So wie ich NET jetzt kennengelernt habe, ist das im ersten Ansatz eine Programmseite.

    Ich schaue mir die Beispiele an und melde mich wieder.

    schöne Grüße

    Ellen

     


    Ich benutze/ I'm using VB2008 & VB2010
    Montag, 7. Juni 2010 10:42
  • Hallo Ellen,

    In dem folgenden Diskussionsfaden habe ich zum Beispiel eine Datei von dem FTP Server heruntergeladen.

    http://social.msdn.microsoft.com/Forums/de-DE/visualbasicde/thread/e147e6a8-ad26-442d-8e0d-f605d30eaa50#8b190e8d-5c41-486b-9407-eef2feda71e2

    Den Upload kann man mit der WebClient.UploadFile-Methode machen.

    z.B.

    Try
      Dim filename As String = ftpURI & "PING.bmp"
      Dim client As New WebClient
      client.Credentials = New NetworkCredential("anonymous", "password")
      client.UploadFile(filename, "C:\PING.bmp")
      MsgBox("File uploaded!")
    Catch ex As Exception
      MsgBox(ex.ToString)
    End Try

     

    Grüße,

    Robert

    Und alles kann man mit diesem Thema kombinieren J http://www.vb-helper.com/howto_net_video_capture.html (geht das auch mit IP Cam?)
    • Als Antwort markiert Ellen Ramcke Mittwoch, 9. Juni 2010 15:21
    Montag, 7. Juni 2010 14:46
    Moderator
  • Hallo Robert und Thorsten,

    zunächst für alle MSDNler, welche sich für diesen Beitrag interessieren.
    Die eingesetzte kamera:http://www.hama.de/webresources/article-documents/00053/man/00053104man_de_72.pdf

    Diese Kamera hat eine integrierte Bewegungserkennung. Diese ist in rectangle Bereichen
    und in der Sensity parametrierbar. Es ist damit möglich, Schnappschüsse
    auf eine SD Karte (1) zu speichern, oder alternativ auf einen FTP Server (2) zu laden.

    Eine Lösung zu 1: (super nur 2 NET Klassen)

     download direkt von der SD Karte:
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
        Dim filename As String = "http://192.168.2.126/camera-cgi/getsdfile.cgi?filename=Motion_2010-06-07_17-54-50.jpg"
        Dim client As New WebClient
        Try
          client.Credentials = New NetworkCredential("admin", "1234")
          client.DownloadFile(filename, "D:\test.jpg")
          MsgBox("File downloaded!")
        Catch ex As Exception
          MsgBox(ex.ToString)
        End Try
    
      End Sub

    Eine Lösung zu 2:

    The Personal FTP Server (Freeware)
    www.michael-roth-software.de/

    Hier Log:

    08.06.2010/18:29:30 User: admin IP: 192.168.2.126 eingeloggt. 08.06.2010/18:29:32 User: admin IP: 192.168.2.126 betritt D:\cam\ 08.06.2010/18:29:33 User: admin IP: 192.168.2.126 schrieb D:\cam\motion-2009-01-01-09-56-38.jpg auf Server 08.06.2010/18:29:33 ! User: admin IP: 192.168.2.126 getrennt

    Meine Fragen:

    zu 1. geht, aber so nicht einsetzbar, da Filenamen nicht bekannt sind:

    - Die Kamera unterstüzt UPnP. D.h. die Cam IP wird durch den Cam Namen ersetzt. Wie kann ich das Problem in der Uri lösen?
    - Wie kann ich mit HTTP eine Fileliste herunterladen?

    zu 2. geht

    Kann ich das nicht besser mit einer FTPWebRequest Klasse lösen?
    http://msdn.microsoft.com/de-de/library/system.net.ftpwebrequest(v=VS.80).aspx
    Ich möchte dieses als Teil einer Application haben und keinen eigenständigen Server.
    Ich brauche Hilfestellung in welche Richtung ich weiter eintwickeln sollte.

    schöne Grüße Ellen

    Vielen Dank für die vielen Infos. Ihr habt mich ganz schön "zugeschüttet"



    Ich benutze/ I'm using VB2008 & VB2010
    • Bearbeitet Ellen Ramcke Dienstag, 8. Juni 2010 19:33 Code war weg
    Dienstag, 8. Juni 2010 18:52
  • Hallo Ellen,
    Kann ich das nicht besser mit einer FTPWebRequest Klasse lösen?
    Nein, denn wie der Name schon sagt, ist diese dazu da eine Abfrage auf einem FTP Server zu starten. Du kannst allerdings mit der HttpWebRequest Klasse ein aktuelles Bild von der Kamera abholen, wenn ich die Anleitung im Schnelldurchlauf mit Punkt 2.4.6 Login-Free richtig interpretiere. Das hat allerdings nichts mit Bewegungserkennung zu tun, sondern das müsste von Dir zyklisch initiiert werden.

    Ich möchte dieses als Teil einer Application haben und keinen eigenständigen Server.

    Wo dieser Server nachher werkelt spielt keine Rolle. Fakt ist, wenn Du für die Kamera als "Server" auftreten möchtest (einen Gegenpol, wo die Kamera ihre Bilder hinschicken kann, wenn sie Bewegung erkennt), brauchst Du einen "Listener", der auf Anfragen dieser Kamera reagiert. Der kann auch in Deiner Anwendung selber sitzen. Von dem Link den ich Dir genannt habe, kannst Du dann weite Teile komplett ignorieren und nimmst Dir nur den Part raus, der Teile des FTP Protokolls implementiert und Dateiuploads entgegen nimmt. Diese Datei speicherst Du dann auch nicht auf der Festplatte, sondern kannst sie direkt in-Memory weiterverarbeiten oder bspw. in einer PictureBox anzeigen. Vielleicht findest Du im Internet auch Beispiele, die sich noch konkreter mit dem reinen FTP Part beschäftigen.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Dienstag, 8. Juni 2010 19:41
    Beantworter
  • Fakt ist, wenn Du für die Kamera als "Server" auftreten möchtest (einen Gegenpol, wo die Kamera ihre Bilder hinschicken kann, wenn sie Bewegung erkennt), brauchst Du einen "Listener", der auf Anfragen dieser Kamera reagiert.

    Hallo Thorsten,

    genau das ist der Lösungsweg, den ich verfolge. Ich würde folgendermassen vorgehen:

    new TcpListener --> .BeginAcceptTcpClient --> new TcPClient --> .

    .GetStream()  --> Filestream Methode --> Datei speichern

     

    Ist das ein vernünftiger Weg, oder zu umständlich?

    schöne Grüße

    Ellen

     


    Ich benutze/ I'm using VB2008 & VB2010
    Mittwoch, 9. Juni 2010 10:44
  • Hallo Ellen,

    Noch etwas über Camera Vision - video surveillance on C#. Kommt Die Sektion „Accessing JPEGs and MJPEGs“ aus diesem Artikel näher an Deiner Lösung ?

    Grüße,

    Robert

    • Als Antwort markiert Ellen Ramcke Mittwoch, 9. Juni 2010 15:20
    Mittwoch, 9. Juni 2010 12:22
    Moderator
  • Hallo Robert,

    dieser Artikel hilft mir sehr. Ich habe immerhin schon 2 Lösungen, welche gehen.

    Von daher können wir diesen thread gerne beenden. Diese Sache wird mich noch einige

    Zeit beschäftigen. Wenn noch Fragen sind melde ich einfach mich wieder.

    Vielen Dank und schöne Grüße

    Ellen


    Ich benutze/ I'm using VB2008 & VB2010
    Mittwoch, 9. Juni 2010 15:20