Überwachungsvideo erzeugen

  • Hu zusammen,

    Ein Bekannter von ir hat folgendes Anliegen:
    Er hat eine Überwachungskamera die jede Minute ein Bild schießt (kein Ton). Dieses kann man sich via web-Oberfläche auch anschauen.
    Bzw. via simplen curl Aufruf auf seinen Rechner runterladen.

    Nun soll ein großer continuierlicher Clip aus diesen Einzelbildern entstehen.
    D.h. wenn ein neues Bild "ankommt" soll es immer an's Letzte gehängt werden ... Frage ist nur wie ?

    Der Weg via avisynth fällt aus. Zwar könnte man via ImageSource bilder importieren, aber dann müßte der video stream jedes mal komplett neu erzeugt werden.

    Meine Idee ist: Man nehme das Bild (jpg) "encode" es als Motion-JPEG mit einer Länge von 0.04 sek (= PAL) und hänge es immer an den bestehenden Stream an. MJPG sollte keine Referenzen zu anderen Bildern haben.
    Problem hierbei: bei einem Elementar-Stream sollte das problemlos klappen, aber steckt das Ganze in einem Container, müßte der jedes mal neu ge-muxed werden ... Oder gibt's da welche die sowas unterstützen ? (.ts vielleicht ?)

    So, und nun das Ganze noch irgentwie als Script zusammenbasteln ;)
    ffmpeg oder mencoder vielleicht ... ?

  • Gegenfrage:

    Muss denn das "Video" jederzeit vollständig als Datei zur Verfügung stehen? Oder würde es genügen, in dem Moment eins zusammenzubauen, wo tatsächlich mal jemand drauf zugreift?

    Im letzteren Fall könnte ich mir schon vorstellen, dass es Möglichkeiten gäbe, durch ffmpeg im Moment des Zugriffs ein Video aus einer JPEG-Sequenz zu generieren.

    Ich glaube, wenn klarer ist, wie häufig und zu welchem Zweck eine umfassende Videodatei statt der Einzelbilder benötigt wird, findet sich auch leichter eine angepasste Lösung. Aber jede Minute ein JPEG an einen MJPEG-Stream anzufügen wäre sicher keine so gute Idee. Jedes Frame hat ja unterschiedliche Größe. Vorteil an einem AVI-Kontainer wäre, dass jedes Frame seinen Index-Eintrag hat, man also leicht spulen kann; ein roher MJPEG-Stream könnte nur sequenziell ohne großen Aufwand abgespielt werden, springen wäre aber schwierig, und Informationen über das Timing (Framerate) hätte er auch nicht.

  • OK, der File muß also nicht sofort komplett da sein ... sollte aber auch nich 'ne Stunde brauchen bis er fertig gerendert ist ...

  • Falls ffmpeg "JPEG-Sequenz in MJPG-AVI" ohne Recodierung schafft, sollte das ein reines Multiplexen sein, also nicht viel länger dauern, als man es ohnehin kopieren muss.

    Der Ansatz wäre:

    Code
    ffmpeg -r [i]Framerate[/i] -i [i]JPEG-sprintf-Dateimaske[/i] -codec copy [i]Ausgabedatei[/i]

    Das "sprintf"-Format sollte dafür bekannt sein (z.B. "%06d" als Platzhalter für "000000 - 999999"). Ich hoffe, das Prozentzeichen macht unter Windows keine Probleme.

    ffmpeg FAQ 3.2 How do I encode single pictures into movies?


  • Er hat eine Überwachungskamera die jede Minute ein Bild schießt (kein Ton). Dieses kann man sich via web-Oberfläche auch anschauen.
    Bzw. via simplen curl Aufruf auf seinen Rechner runterladen.


    Ich würde die Technik wechseln, eine Kamera verwenden die durch Bewegung ausgelöst wird und aufnimmt.
    Genügend Spielzeug dieser Art gibt es für Autofahrer, Werbung für "Sicherheit" gegen Parkplatzrempler!

  • Ich habe auch so eine kleine Überwachungskamera, allerdings (wie von Rübezahl erwähnt) Bewegungsgetriggert. Egal - man hat jede Menge Bilder, und möchte diese gern aneinander hängen. Ich habe das mit MakeAVI gemacht. Simpel und gut für diesen Zweck.

    gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

    Einmal editiert, zuletzt von akapuma (27. Dezember 2014 um 22:18)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!