datetime object mit Videoframes

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
m.g.o.d
User
Beiträge: 75
Registriert: Samstag 4. April 2020, 13:17

Hallo Zusammen,

folgendes Problem bereitet mir gerade Kopfschmerzen:

Ich muss mit Videoframes rechnen können. Ich habe eine Liste, die eine Startzeit hat:

02:45:51:11 (Eine Sekunde hat 24 Frames)

und einen Clip mit einer Duration:

00:00:10:04 (4 Frames)

Jetzt muss ich es irgendwie hinbekommen, dass:

02:45:51:11 + 00:00:10:04
=> 02:46:01:15 ergibt.

Also irgendwie die datetime.time Klasse mit einer Logik versehen, dass Frames richtig verrechnet werden. Frames > 24 sind eine Sekunde...

Leider habe ich sowas noch nie gemacht. Könnt ihr mir einen Hinweiß geben, wie ich vorgehen kann? Vermutlich muss ich irgendwie die Klasse time/datetime erweitern, oder?

Viele Grüße,
m.g.o.d
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@m.g.o.d: Reichen da nicht zwei Funktionen: eine die Zeichenketten wie "02:45:51:11" und "00:00:10:04" in `datetime`-Objekte wandelt die man addieren kann, und eine die aus einem `datetime`-Objekt wieder eine Zeichenkette in dem Format mit Zeit + Frames umwandelt?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn du genau rechnen willst, brauchst du nur einer Funktion, die die Zeichenketten in Frames umgerechnet und umgekehrt. Dann musst du nur mit ganzen Zahlen rechnen.
tonikae
User
Beiträge: 90
Registriert: Sonntag 23. Februar 2020, 10:27

Da könnte dir evtl. "matplotvideo" weiterhelfen
https://pypi.org/project/matplotvideo/0.0.1/
Das synchronisiert punktgenau Daten und Video
m.g.o.d
User
Beiträge: 75
Registriert: Samstag 4. April 2020, 13:17

Hallo Zusammen, erstmal danke für eure Antworten.

Es gibt bei Python ein Modul "timecode", was diese Berechnung macht. Leider stimmt das Ergebnis bei 25 Frames als Basis leider um -1 Frame nicht :-(

Ich werde dort mal den Weg versuchen, die Zeitangabe komplett in Frames umzurechnen und danach wieder zu wanden.
Antworten