Domanda
Sto cercando un framework Python che mi consentirà di riprodurre video e di disegnare su quel video (ai fini dell'etichettatura).
Ho provato Pyglet, ma questo non sembra funzionare particolarmente bene - quando si disegna su un video esistente, c'è uno sfarfallio (anche con doppio buffering e tutta quella roba buona), e non sembra che essere un modo per ottenere l'indice dei fotogrammi nel video durante la richiamata per fotogramma (solo tempo trascorso dall'ultimo fotogramma).
Soluzione
Prova un wrapper Python per OpenCV come ctypes-opencv . Il riferimento dell'API C è qui e il wrapper è molto vicino (vedere i documenti per eventuali modifiche).
L'ho usato per disegnare su video senza sfarfallio, quindi non dovresti avere problemi con questo.
Uno schema approssimativo delle chiamate necessarie:
- Carica video con cvCreateFileCapture, carica il carattere con cvFont.
- Prendi il frame con cvQueryFrame, incrementa il contatore dei frame.
- Disegna sulla cornice con cvPutText, cvEllipse, ecc. ecc.
- Mostra all'utente con cvShowImage.
Altri suggerimenti
Qt (PyQt) ha Phonon, che potrebbe dare una mano. PyQt è disponibile come GPL o payware. (Qt ha anche LGPL, ma i wrapper PyQt no)
Prova i Binding Python per GStreamer .