Projektliste

Projektarchiv 07 · Desktop-App · Videoverarbeitung

Ein Videoplayer, der Szenenwechsel markiert

Video öffnen → Szenenteilung starten → Teilungspunkte auf der Zeitleiste markieren → Vorschau und Szenensprung → Abschnitt speichern

C#WPFOpenCvSharpFFMEffmpeg

Szenenwechsel erscheinen auf der Zeitleiste und sind mit einem Klick erreichbar

Ein Windows-Videoplayer, der Szenenwechsel im Video findet und auf der Zeitleiste markiert. Szenenwechsel werden auf zwei Arten erkannt, über OpenCV-Bilddifferenzen und VGG16-Merkmalsabstände; alle Player-Funktionen außer der Szenenerkennung habe ich entwickelt.

  • 8Funktionen im Detailbereich
  • 2 DingeIn den Player eingebundene Szenenerkennungsverfahren
  • 10%Verengung der Zeitleiste pro Strg+Mausrad-Schritt
Wiedergabeansicht

Die gelben Marken auf der Zeitleiste zeigen die Szenenwechsel. Beim Überfahren einer Marke erscheint das Bild als Vorschau.

Zugewiesene Rolle
Ich habe alle Player-Funktionen außer dem Algorithmus zur Szenenwechselerkennung entwickelt: Teilungsmarken und Vorschau auf der Zeitleiste, Zeitleisten-Zoom, Szenennavigation, Bearbeiten und Speichern von Teilungspunkten, Abschnittsspeicherung mit ffmpeg und das Medieninfo-Fenster.
Ergebnisse
Der Player übernimmt die Python-Erkennungsergebnisse, markiert Szenenwechsel auf der Zeitleiste und erlaubt Vorschau, Sprung, Bearbeitung und Abschnittsspeicherung in einer Ansicht.
  1. 1TeilungsmarkenZeigt erkannte Bilder als Marken auf der Zeitleiste
  2. 2Vorschau und SprungBeim Überfahren einer Marke erscheint das Bild als Vorschau, ein Klick springt dorthin
  3. 3Zeitleisten-ZoomStrg+Mausrad zoomt um die Mausposition hinein und heraus
  4. 4Bearbeiten und SpeichernTeilungspunkte hinzufügen und löschen, Metadaten speichern, Abschnitte mit ffmpeg speichern

Von dieser Technologie erwartete Änderungen

Auch lange Videos szenenweise durchsuchen

Mit den Schaltflächen für vorige und nächste Szene und den Marken auf der Leiste gelangt man direkt zur gewünschten Szene.

Dicht liegende Punkte per Zoom auswählen

Strg+Mausrad zoomt die Zeitleiste um die Mausposition, sodass sich auch eng beieinanderliegende Teilungspunkte unterscheiden lassen.

Automatische Ergebnisse von Hand verfeinern

Falsche Punkte lassen sich löschen und fehlende ergänzen und speichern, sodass die Nacharbeit nach der automatischen Erkennung in derselben Ansicht erfolgt.

Problem und Lösung

  1. ProblemSprang man bei vergrößerter Zeitleiste zur nächsten Szene, lag der Punkt außerhalb des sichtbaren Bereichs.

    Gelöst.Liegt der Zielpunkt außerhalb, wird der Bereich bis 5 Sekunden darüber hinaus erweitert, sodass der Punkt sichtbar bleibt.

  2. ProblemBeim Speichern eines Abschnitts mit OpenCV ging der Ton verloren.

    Gelöst.Ich schneide Abschnitte mit ffmpeg, sodass der Ton mitgespeichert wird.

  3. ProblemDer Player konnte nicht erkennen, wann die Python-Erkennung fertig war.

    Gelöst.Sobald die Ergebnisdatei vorliegt, zeichnet der Player die Punkte und aktiviert die Schaltflächen; während einer Erkennung wird keine neue gestartet.

Player-Ansichten

Detailbereich

Szenenteilung, Szenennavigation, Bearbeiten von Teilungspunkten und Abschnittsspeicherung laufen in diesem Bereich. Er zeigt auch Angaben wie Codec und Auflösung des Videos.