Überwachungskameras: Videocodecs zum geschickten Komprimieren vieler ähnlicher Bilder

Stannis

Lieutenant
Registriert
Juli 2011
Beiträge
602
Hi,
Ich habe da ein kleineres Überwachsungskameraprojekt (vrstl. wie immer RasbPis, 2019 und so) am Start, das fürs erste nur Einzelbilder senden soll. Problem ist, dass die Kameras übers mobile Internet angebunden werden müssen und ihre Bilder ab und an zu meinem Server übertragen sollen, ergo sind die Datenmengen das Problem.

Jetzt gibts mehrere Möglichkeiten, wie man das Problem unter Kontrolle kriegen kann:
  1. Man überträgt nur ab und zu, etwa, wenn auch eine signifikante Veränderung zwischen zwei Bildern detektiert wurde
  2. Man überträgt ein Bild alle 45 min, um mit 2GB Volumen auszukommen (bei 1MB-Bildgröße). lol.
  3. Man überträgt eine Weile mit high Speed, und danach etwa alle 30s ein Bild mit den gedrosselten 64kbit/s
  4. Schauen, ob die Methode im Threadtitel was bringen könnte
Idee bei Nr. 4 ist diese: Man nimmt kurze Videos auf (1-5 min), mit einer sehr niedrigen Framerate von vielleicht einem Bild alle 5s oder so. Videokompression funktioniert ja u.a. so, dass nur die Unterschiede zwischen aufeinander folgenden Bildern gespeichert werden müssen. Filme Ich eine Stunde lang eine weiße Wand ohne Veränderung, sollte das resultierende Video recht klein sein.
Überträgt man ab und zu also so ein "Standbildvideo", sollte die Datenrate ein ganzes Stück niedriger sein, als wenn man alle 5s ein jpeg schicken würde, stimmt ihr mir da zu?

Ist meine Überlegung stichhaltig? Kann mir jemand etwas zu Videocodecs sagen und dazu, für wie allgemein sinnvoll du das Konzept hältst?

Falls jemand darüber hinaus Anregungen zum Projekt, besonders den 4 Punkten, hat, nur raus damit
 
Ich gehe davon aus, dass du sämtliche nicht-technische Problematik bereits im Griff hast, insbesondere dass es sich von der Beschreibung her rechtlich um eine Sendeanlage handeln würde.
Stannis schrieb:
ab und an zu meinem Server übertragen
Die Frage ist hier, wie viel Zeit maximal zwischen Aufnahme und Übertragung liegen soll.

Man kann mit ffmpeg eine Sequenz von JPEG-Dateien einfach in ein (Zeitraffer-)Video umwandeln. Z.B:
Code:
$ ffmpeg -framerate 25  -i DSCN%04d.JPG video.mkv
(In diesem Beispiel wird angenommen, dass die Bilddateien DSCN0000.JPG bis DSCN9999.JPG benannt sind. Falls nicht, entsprechend anpassen)

Die Datenrate und den Videocodec kannst du entsprechend deiner Vorgaben zu Datenvolumen und Videoqualität wählen. Der Videocodec kümmert sich dann automatisch darum, dass ähnliche Frames geringe Datenmengen verursachen.
 
In meiner eigenen Bastelwerkstatt filme Ich was Ich will, Ich werd mich schon nicht selbst verklagen ;D

ffmpeg ist ein mächtiges Tool. Hast Du eine Ahnung, wieso es einen Unterschied in der Videogröße macht, wenn man 10 ähnliche Bilder mit 25 fps oder 0.2 fps zusammenfasst?
Die Menge an Information müsste ja gleich bleiben, aber das 0.2-Video ist ganz erheblich größer, obwohl es immer noch nur aus den 10 Bausteinen bestehen kann
 
Aliens werden ja nicht einfallen in die Werkstatt. Vielleicht mit einem Bewegungssensor koppeln, dann gibt's eben nur LIVE-Bild wenn sich vor ca. 30 Minuten was getan hat, ansonsten eben nix.
 
Stannis schrieb:
Hast Du eine Ahnung, wieso es einen Unterschied in der Videogröße macht, wenn man 10 ähnliche Bilder mit 25 fps oder 0.2 fps zusammenfasst?
Die einzige mögliche Erklärung die mir einfällt, dass die Datenrate in kbit/s (und nicht kbit/frame) festgelegt wird, und das 0.2 fps Video länger und dementsprechend größer ist.
 
Zurück
Oben