Camera + ProFTP

  • Hallo an alle.

    Vor kurzem habe ich ein neues Projekt mit meinem Raspberry gestartet. Und zwar geht es darum eine Überwachungskamera zu bauen, die Videos aufnimmt (Vorab, Motion kommt in meinem Fall nicht in Frage), diese an einen FTP-Server-sendet und der diese dann konvertiert.

    Nach Plan sollte alles so ablaufen:

    - Ein Raspberry Pi Model b+ nimmt das Video auf, sendet es via WLAN an den Sever
    - Der Server ist ein Raspberry Pi 2 auf dem ProFTP läuft und eine HDD angeschlossen ist
    - Am Server wird das Video in MP4 konvertiert und dann automatisch gelöscht, nach einiger Zeit.


    Nun funktioniert eigentlich alles soweit, sprich konvertieren und löschen ohne Probleme aber das Aufzeichnen der Videos macht noch Probleme. An der Übertragung liegt es nicht, nur hört die Kamera nach einer gewissen Zeit einfach auf mit dem Filmen. Und ich hab bis jetzt keine Idee wo das Problem liegen könnte.

    Achso und ich habe alles als Shell Script geschrieben, starte dann auch alles selbst, also kein Cron.


    Hier der Code:


    Danke schon mal hier und Grüße,

    Clemens

    • Offizieller Beitrag

    Wie lang ist denn einige Zeit? Bei 2 Pi würde ich ein simples scp über den FTP-Server Ansatz bevorzugen. Leite mal die Ausgaben von Raspivid in Textdatei um, dann sollte man zumindest die Fehlermeldung nachvollziehen können.

    Code
    raspivid -o $d$pla -t 200000 --framerate 10 -w 1280 -h 720 >> /home/pi/raspivid.log

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Das Problem ist wohl, dass die Aufnahme nicht "unendlich" läuft.
    Du kannst beim Programm "raspivid" angeben, wie lange aufgenommen werden soll und wie viele Dateien erstellt werden sollen.

    Mit dem Parameter -sg kannst du sagen, wie lang ein solches Segment werden soll (in Millisekunden) und mit dem Parameter -wr, wie viele Segmente geschrieben werden sollen, bevor er wieder mit dem Nummerieren von vorne beginnt.

    Ein

    Code
    raspivid -o video%03d.h264 -w 1280 -h 720 -sg 30000 -wr 10


    erzeugt also zehn Dateien (video000-h264 bis video009.h264), die je 30 Minuten lang sind.

    Computer ..... grrrrrr

  • Zitat

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Wie lang ist denn einige Zeit? Bei 2 Pi würde ich ein simples scp über den FTP-Server Ansatz bevorzugen. Leite mal die Ausgaben von Raspivid in Textdatei um, dann sollte man zumindest die Fehlermeldung nachvollziehen können.[/font]


    konnte keine genauen Zeitraum ausmachen, aber ja, ich werde mal die Ausgabe in eine Textdatei weiterleitet, das ist eine gute Idee! Versuche dies gleich, wenn ich heute nach Hause komme.


    Zitat

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Das Problem ist wohl, dass die Aufnahme nicht "unendlich" läuft.[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Du kannst beim Programm "raspivid" angeben, wie lange aufgenommen werden soll und wie viele Dateien erstellt werden sollen.[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Mit dem Parameter -sg kannst du sagen, wie lang ein solches Segment werden soll (in Millisekunden) und mit dem Parameter -wr, wie viele Segmente geschrieben werden sollen, bevor er wieder mit dem Nummerieren von vorne beginnt.[/font]


    Danke für den Tipp, aber ich denke schon, dass es unendlich läuft, wenn ich alles in eine in einer while-true Schleife habe?


    Edit: Habe nun das Skript laufen lassen:

    1. raspivid hat keine Ausgabe erzeugt
    2. Die Aufnahme wurde nach ca. 2,5h unterbrochen, habe aber leider keine Aufzeichnung der Ausgabe am Terminal

    Habe das Skript nun nochmals gestartet und lasse ein altes Notebook laufen, auf dem der Terminal offen ist. Dann kann ich sehen, was beim letzten Punkt passiert.

    Einmal editiert, zuletzt von Clemens (29. September 2015 um 23:26)

  • Ich habe einen PI mit Kamera, auf dem ich, nach einem Neustart des PI, ein Script mit den folgenden Inhalt starte:

    Code
    /usr/bin/raspivid -w 960 -h 540 -wr 49 -sg 1800000 -t 0 -o /media/raspi/${cam_name}/%05d.h264 &

    ${cam_name} wird aus dem Namen des PI ermittelt und geht in das passende Verzeichnis auf dem NFS-Share

    Ich sehe grade, das "-t 0" braucht man doch, und die Dateinamen fangen bei 1 an.

    In dem Script wird ein Film mit der Länge von 1800000 ms erstellt, und dann zum nächsten gewechselt.
    Es werden insgesamt 49 Dateien angelegt, die 50. überschreibt die erste.

    Das läuft seit Monaten und erzeugt, bei dieser Einstellung 49 Dateien mit zusammen gut 13 GByte Daten.
    Dieser PI holt sich beim Starten das NFS-Share, das Netz wird per WLAN bereitgestellt. Es ist im übrigen ein A, kein A+

    Computer ..... grrrrrr

    Einmal editiert, zuletzt von Rasp-Berlin (30. September 2015 um 17:17)

  • Über NFS könnte man das natürlich auch machen, aber im Grunde mach ich ja genau das Gleiche wie du. Nur dass ich es via FTP übertrage. Für was steht denn das -sg? Die Zeit regel ich donn via -t?

    Grüße

  • -sg ist die Zeit, die ein Segment umfassen soll (in Millisekunden).
    -t 0 sagt, dass unbegrenzt aufgenommen werden soll.

    Ohne das ganze in Segmente zu zerlegen war bei mir, im Testbetrieb, nach gut 4GByte Schluss. Die Datei wurde, obwohl größere Dateien möglich wären, auf das (NFS-)Share nicht mehr geschrieben.

    Das Problem bei der Übertragung per FTP ist, dass du erst eine fertige Datei übertragen kannst, da die Video-Datei, die vom raspivid geschrieben wird, ja noch offen gehalten wird.

    Computer ..... grrrrrr

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!