Delete Frames

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
FZAG
User
Beiträge: 19
Registriert: Samstag 13. April 2013, 13:29

Hallo ist es möglich mit Open CV Frames aus dem Videostring zu löschen?

Ich möchte eine Endlosschlaufe erstellen mit der ich ein Überwachungsvideo Aufzeichne, Die Sequenzen sollen nicht alzulang sein so maximal 30 Sekunden.
Meine Idde war es das Video zu schreiben und sobald ich die Länge ereicht habe und ein neues Bild erscheint, das älteste zu löschen.

Ist das Möglich oder was stehn für Alternativen zur Auswahl?

Grüsse
und Danke

Thomas
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Ich habe noch nie mit Open CV gearbeitet aber ich denke es wäre viel leichter wenn ein wenig code zu sehen ist.
Hast du denn schon mal in der Docu nach geschaut ?
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
BlackJack

@FZAG: Falls Video schreiben tatsächlich bedeutet, dass Du eine kodierte Videodatei schreibst, dann geht das eher nicht, weil man a) bei den gängigen Dateissystemen nicht effizient Daten am Anfang einer Datei (oder auch mittendrin) Daten entfernen kann, und b) bei vielen Videocodecs Folgebilder von den vorherigen abhängig sind. Du müsstest also die Bilder einzeln speichern, und könntest dann die älteren Löschen um immer nur eine bestimmte Anzahl/Länge der Überwachung auf der Platte zu haben. Einfachste Möglichkeit wäre das über das Dateisystem zu lösen. Also zum Beispiel einen Order für den „Film” und dort dann die Einzelbilder als Dateien speichern. Vielleicht noch eine Datei mit Metainformationen wie Framerate und ähnliches.
FZAG
User
Beiträge: 19
Registriert: Samstag 13. April 2013, 13:29

BlackJack hat geschrieben:@FZAG: Falls Video schreiben tatsächlich bedeutet, dass Du eine kodierte Videodatei schreibst, dann geht das eher nicht, weil man a) bei den gängigen Dateissystemen nicht effizient Daten am Anfang einer Datei (oder auch mittendrin) Daten entfernen kann, und b) bei vielen Videocodecs Folgebilder von den vorherigen abhängig sind. Du müsstest also die Bilder einzeln speichern, und könntest dann die älteren Löschen um immer nur eine bestimmte Anzahl/Länge der Überwachung auf der Platte zu haben. Einfachste Möglichkeit wäre das über das Dateisystem zu lösen. Also zum Beispiel einen Order für den „Film” und dort dann die Einzelbilder als Dateien speichern. Vielleicht noch eine Datei mit Metainformationen wie Framerate und ähnliches.

Das tönt auch sehr Vernünftig, also die einzelnen Bilder speichern, ist das auch in einen Temporäres Register möglich? so Könnte ich eine Liste (Wie Array erstellen) und dann jeweils im Loop überschreiben, und bei Triggerung entsprechend auslesen.
BlackJack

@FZAG: Register? Falls die Frage war ob man die Bilder im Speicher halten kann, statt sie auf die Platte zu schreiben: Klar, wenn der Speicher ausreicht. :-) Statt einer Liste würde sich eine `collections.deque` anbieten, weil man dort effizient an beiden Enden Elemente hinzufügen und entfernen kann.
FZAG
User
Beiträge: 19
Registriert: Samstag 13. April 2013, 13:29

BlackJack hat geschrieben:@FZAG: Register? Falls die Frage war ob man die Bilder im Speicher halten kann, statt sie auf die Platte zu schreiben: Klar, wenn der Speicher ausreicht. :-) Statt einer Liste würde sich eine `collections.deque` anbieten, weil man dort effizient an beiden Enden Elemente hinzufügen und entfernen kann.

Ja sowas ahbe ich gemeint, Zuerst habe ich an eine art Array gedacht.

Werde es mir mal anschauen

Danke
Antworten