So ziehen Sie Text automatisch aus einem Video heraus

Ich experimentiere derzeit mit After Effects und Premiere, um zu sehen, zu welchen seltsamen Dingen sie fähig sein könnten, und hoffte, jemand hätte einen Einblick in eine Idee, die ich hatte.

In dieser Situation habe ich Text, z. B. einige Untertitel oder sogar einen Zeitcode, der in das Filmmaterial eingebrannt ist. Ich habe keine der Projektdateien für dieses Filmmaterial, das einzige, womit ich arbeiten muss, ist das endgültige Video.

Gibt es eine Möglichkeit, Adobe Premiere oder After Effects automatisch erkennen zu lassen, welcher Text auf dem Bildschirm angezeigt wird? Bonuspunkte, wenn es diese Informationen dann nehmen und in ein neues Titelelement einspeisen kann.

PS: Dies alles setzt voraus, dass der Text des Quellvideos von anständiger Qualität ist (d. h. der Text ist statisch, deutlich vom dahinter liegenden Video zu unterscheiden und nicht zu klein.)

Sie könnten die Frames als Frame-Sequenz exportieren und dann OCR-Software für die Frames verwenden. Dies wäre jedoch eine Aufgabe für Shell-Skripting oder eine Programmiersprache und nicht für AE oder PP.
@stib Wenn Sie dies als Antwort hinzufügen und einige Links zu vorgeschlagener Software bereitstellen, werde ich dies akzeptieren.

Antworten (1)

Mir sind keine existierenden Lösungen dafür in Premiere oder AE bekannt.

Wenn Sie sich jedoch ein wenig mit Programmierung auskennen, können Sie möglicherweise mit OpenCV ein Skript schreiben, das Tesseract OCR auf Videoframes ausführt und den gewünschten Text ausgibt. Sobald Sie den Text und die Zeitcodes haben, können Sie auf jeden Fall ein Skript schreiben, um die Titel zu den entsprechenden Zeitcodes in AE oder Premiere zu erstellen.

(Ich bin auf diese Open-Source-Tools aufmerksam geworden, da ich gerade eine mobile App entwickle, die OCR auf Dokumenten ausführt.)

Sehen Sie sich die Dokumente zur Szenentexterkennung für OpenCV an, wenn Sie diese Route ausprobieren möchten.

Für diese Methode müssten Sie also eine Reihe von Standbildern korrekt ausgeben? Oder akzeptiert Tesseract Video? Wenn es kein Video akzeptiert, wie können Sie die Bildnummer einfach an einen Timecode binden? Einfach die Frames zählen?
OpenCV kann Videos verarbeiten, und die Dokumente zur Szenentexterkennung, auf die ich hingewiesen habe, zeigen, wie Tesseract in einem Frame über OpenCV aufgerufen wird. Sie haben dort einige C++-Beispielcodes, die Ihnen den Einstieg erleichtern könnten, aber OpenCV kann auch von Python aus verwendet werden, wenn das bequemer ist.
Was den Timecode angeht, arbeitet OpenCV mit ganzzahliger Frame-Anzahl, aber Sie könnten dies direkt beim Skripting in AE (und ich nehme Premiere an) verwenden, vorausgesetzt, die Framerate der Sequenz stimmt überein.