Frage

Im folgende Szenario:

ich ein Projekt bekam einen Katalog von derzeit einigen zehntausend Videodateien mit, die Zahl wird sich dramatisch erhöhen.

Doch viele von ihnen sind Duplikate. Mit jeder Videodatei habe ich semantische und beschreibende Informationen zugeordnet, die ich will Duplikate fusionieren bessere Ergebnisse für jeden achive.

Jetzt brauche ich eine Art von Verfahren, wo ich Index-Metadaten in einer Datenbank, und immer dann, wenn ein neues Video tritt in den Katalog der gleichen Daten berechnet und abgeglichen in der Datenbank.

Das Problem ist, die Videos sind nicht exakte Duplikate. Sie können unterschiedliche Qualität haben, amby abgeschnitten werden, mit Wasserzeichen oder eine Fortsetzung / Prequel haben. Oder am Anfang und / oder am Ende abgeschnitten.

Leider, desto besser der Vergleich der mehr Prozessorleistung und Arbeitsspeicher wird es so dass ich auf der Umsetzung mehrere Schichten Vergleich plane, die mit sehr anmutig, aber schnell Vergleich (maby Video lengh mit einer Toleranz von 10%) und am Ende mit dem letzten Vergleich beginnen , die darüber entscheidet, ob sie wirklich ein Duplikat (das wäre eine Gemeinschaft Abstimmung sein).

So wie ich eine Gemeinschaft habe die Ergebnisse zu überprüfen genügt es, „gute Vermutungen“ mit einem niedrigen Fehl-Verhältnis zu liefern.

So, jetzt meine Frage ist, welche Schichten können euch denken oder tun Sie einen besseren Ansatz haben?

ich die Mühe nicht darum, die Metadaten zu erstellen, ich habe genug Sklaven, das zu tun. Nur sollte der Vergleich schnell sein. Also, wenn es hilft ich das Video 100-mal so gut umwandeln kann ...

Hier sind meine aktuellen Ideen:

  • Videolänge (Sekunden)

  • erste und letzte Frame Bildanalyse

Ich würde das Bild auf eine Miniaturgröße Resampling und die durchschnittlichen RGB-Werte dann serialize Pixel für Pixel, wenn die Farbe bei diesem Pixel größer / kleiner als der Durchschnitt, dargestellt durch 0 oder 1. So bekomme ich eine binäre Zeichenfolge, die ich kann in mysql speichern und eine boolean Bit-Summe (von mysql intern unterstützt) tun und den restlichen uneval Bits zählt (wie auch intern unterstützt, die dann der Levenshtein Abstand der bianry Strings sein würde)

  • Entwicklung der Bitrate im Laufe der Zeit mit dem gleich vbr Codec

würde ich das Video in eine vbr Videodatei mit den exakt gleichen Einstellungen umcodieren. dann würde ich zu bestimmten Zeitpunkt an der Bitrate aussehen (Prozentsatz des Videos abgeschlossen oder absoluter Sekunden .. dann würden wir nur einen Teil des Videos analysieren). Gleiche wie mit dem Bild. Iif die Bitrate größer ist der Durchschnitt seiner 1 sonst seine 0. wir eine Binärkette machen und speichern sie in db und berechnen später die Levenshtein-Distanz

  • Audio analyisis (Bitrate und Dezibel varaition im Laufe der Zeit nur als Bitrate des Videos)

  • Keyframe Analyse

Bild comarision genau wie beim ersten und letzten Frame, sondern an Keyframe Positionen? Wir würden die gleichen Quelldateien verwenden wir für Bitrate calcluiations verwendet, da Keyframes schwer auf den Codec und Einstellungen abhängig sind.

  • Entwicklung von Farbe über die Zeit

Vielleicht lassen Sie uns nehmen einen oder mehrere Bereiche / Pixel im Bild und sehen, wie sie im Laufe der Zeit entwickeln. Neben der Änderung abov / unter dem Durchschnitt. schwarz / weiß würde genügen, denke ich.

  • präsentieren die Vorschläge an den Benutzer zur endgültigen Genehmigung ...

Oder werde ich den völlig falschen Weg? Ich glaube, ich kann nicht der erste mit diesem Problem sein, aber ich hatte kein Glück der Suche nach Lösungen.

War es hilfreich?

Lösung

Dies ist ein sehr großes Problem, so dass ich gewählt habe eine ziemlich lange Antwort zu schreiben, um zu versuchen, das Problem in Teile zu zerlegen, die möglicherweise einfacher zu lösen.

Es ist wichtig, dass die Vergleiche, die Rechen- und Zeitressourcen zur Verfügung unter Verwendung durchgeführt werden: Ich bezweifle, eine Lösung, die Monate Lauf nimmt in einer dynamischen Video-Datenbank wird sehr nützlich sein. Und die Größe der Datenbank macht wahrscheinlich die Nutzung von Cloud-Computing-Ressourcen nicht machbar. Also wir über die lokal Kosten für jeden Vergleich in mehreren verschiedenen Bereichen wirklich interessieren. 1) Datenspeicher, 2) Rechenressourcen und 3) Zeit

Ein Schlüssel Kosten zu berücksichtigen ist, dass die Daten der Extraktion von jedem Video benötigt für was auch immer Vergleich Metriken verwendet werden. Sobald die extrahierten Daten zur Verfügung steht, dann die Kosten für einen Vergleich durchführen, müssen in Betracht gezogen werden. Schließlich sind die Vergleiche erforderlich, um alle Videos vergleichen zueinander durchgeführt werden müssen.

Die Kosten für die ersten beiden Schritte sind O (1) über die Anzahl der Videos. Die Kosten für den letzten Schritt muss schlimmer sein als O (1), möglicherweise viel schlimmer. So ist unser vorrangiges Ziel sein sollte, die Kosten für den letzten Schritt zu minimieren, auch wenn es bedeutet, dass viele frühe, einfache Schritte hinzufügen.

Die optimalen Algorithmen für diesen Prozess hängt stark von den Eigenschaften der Datenbank, die Ebene, auf die einzelne und mehrere Übereinstimmungen vorhanden sind. Wenn 100% der Videos ein anderes Video paßt, dann wollen wir die Kosten für ein erfolgreiches Spiel zu minimieren. Allerdings ist umso wahrscheinlicher Fall, dass Streichhölzer selten sein werden, so dass wir die Kosten für ein erfolgloses Spiel minimieren wollen. Das heißt, wenn es eine schnelle und schmutzige Art und Weise zu sagen, „diese beiden Videos nicht Matches sein können, dann sollten wir es zuerst verwenden, bevor wir auch nur ein Spiel bestätigen starten.

, um die Datenbank zu charakterisieren, zunächst einige Probenahme tun und Hand-Matching den Grad der Übereinstimmung innerhalb der Datenbank estimnate. Dieses Experiment soll zeigen, wie die redundanten Videos „verklumpt“: Wenn ein bestimmtes Video ein Spiel hatte, wie wahrscheinlich war es als ein einziges Spiel mehr zu haben? Wie viele Prozent aller Spiele waren auch Teil eines mehr Spiels? Dieser Prozess wird ein ‚Modell‘ der Datenbank ergeben (eine statistische Verteilung), der verwendet wird Algorithmus Auswahl und stimmen das System zu unterstützen.

In Zukunft werde ich davon ausgehen, Streichhölzer relativ selten sind. Nach allem, wenn es viele Übereinstimmungen gibt, werden die Videos „verklumpen“, effektiv die Datenbank kleiner zu machen und somit das Problem einfacher zu machen. Nehmen wir an, das Problem bleibt so hart wie möglich.

würde ich eine Multi-Level-Kategorisierung Ansatz befürworten, wo wir eine Reihe von Algorithmen bauen würde, die immer wieder die binäre Entscheidung perform „diese beiden Videos stimmen nicht überein“ / „diese beiden Videos möglicherweise übereinstimmen“. Nur der letzte Algorithmus in der Kette benötigt zur Ausgabe der Antwort „Diese beiden Videos entsprechen.“

Klassifizierung / Algorithmen Anpassung kann in scheitern entweder eine oder beide von zwei Möglichkeiten: False Positive (nicht-passenden Videos werden als passende mislabled) und die False Negative (Matching Videos mislabeled werden als Nicht-Matching). Jede dieser falschen Entscheidungen hat eine Reihe von Wahrscheinlichkeiten zugeordnet ist, und wir wollen beide minimieren.

Da wir einen Algorithmus Pipeline bauen, wollen wir Algorithmen, die ohne Fehler zu identifizieren, nicht-Matches sind sehr gut, das heißt, sie eine extrem niedrige Falschzurückweisungsrate haben muss, und wir nicht viel kümmern sich um die falsche Rate übernehmen. Zum Beispiel Klon des Wierd Al eines Videos schauen und klingen sehr ähnlich wie das Original, und wir können es nicht keine Übereinstimmung mit dem Original bis später in der Algorithmus-Pipeline zeigt Lage sein wird.

Die einfachste, schnellste, zuverlässigste Algorithmen sollten zuerst ausgeführt werden, da die überwiegend überwiegende Mehrheit der Tests, die nachgeben „nicht übereinstimmen“ Ergebnis. Die einfachste Prüfung auf identische Dateien in der Datenbank zu suchen wäre, etwas von Dienstprogramme vieler schnellen und einfachen Dateisystem und Datenbankwartung durchgeführt.Nach dieser Scan ausgeführt wird, können wir annehmen, wir tatsächlich benötigen zu öffnen und die Video-Dateien lesen Unterschiede zu erkennen.

Da Video Vergleich relativ hart ist, lassen Sie sich mit dem Audio starten. Denken Sie an die Datenbank als erstes eine MP3-Sammlung zu sein, die Duplikate enthalten. Nach allem, wenn wir ein guten Audio-Spiel zu bekommen, ist es sehr wahrscheinlich, wir werden ein Videospiel hat, und umgekehrt. Wir können sicher sagen, dass das Audio ist ein ‚fair‘ repräsentativ für das Video. Glücklicherweise wird eine schnelle Web-Suche viele Audio-Fingerprinting und Vergleich Pakete ergeben, die zuverlässig, schnell und reifen. Die Audio-Fingerabdruck müßte für jedes Video in der Datenbank generiert werden. Videos eine Audiospur fehlt, würde fallen automatisch in den Satz „könnte passen“.

Aber es gibt eine ‚Gotcha‘ hier: Was ist Voice-over? Wenn ein gegebenes Video zweimal codiert ist, mit und ohne Voice-over, sind sie ein Spiel oder nicht? Was ist mit dem Französisch Audio-vs Spanisch oder Englisch? Wenn diese alle in Betracht gezogen werden sollte eine Übereinstimmung sein, dann Audio müssen eventuell übersprungen werden.

An diesem Punkt wissen wir, die Dateisystem-Einträge sind alle „unterschiedlich genug“, und wir wissen, dass die Audio-Tracks sind alle „unterschiedlich genug“ (wenn getestet), Mittel, die wir nicht auf den Videodaten suchen beiseite legen können länger. Glücklicherweise sollte dies nur für einen kleinen Bruchteil der Videodatenbank durchgeführt werden müssen, so können wir einige Kosten tolerieren. Nach wie vor wollen wir noch zu ersten Versuch schnell mehr Nicht-Matches zu beseitigen, bevor wir versuchen, positiv ein Spiel zu kennzeichnen.

Da wir Auflösungsänderungen berücksichtigen müssen (zB von 1080p auf dem iPod), werden wir einen Weg zu charakterisieren Video Informationen benötigen, die nicht nur unabhängig von der Auflösung, sondern auch tolerant des Rauschens hinzugefügt und / oder Daten verloren als Teil der Auflösung zu verändern. Wir müssen Framerate Änderungen (zum Beispiel aus einem Film von 24 fps Video 30 fps) tolerieren. Darüber hinaus gibt es Änderungen Seitenverhältnis zu berücksichtigen, wie zum Beispiel von 4: 3 NTSC auf 16: 9 HD. Wir möchten, Farbraumänderungen, wie von Farbe auf Schwarz-Weiß zu handhaben.

Dann gibt es Veränderungen, die alle diese auf einmal, wie Transcodierung zwischen HD und PAL beeinflussen, die gleichzeitig Farbraum beeinflussen kann, Frame-Rate, Seitenverhältnis und Auflösung. Die Charakterisierung sollte auch tolerant gewissen Grad sein, Beschneiden und / oder Füllung, wie beispielsweise von einer hin- und herschalten zwischen 4 geschehen würde: 3 und 16: 9-Bildseitenverhältnisse (Letterbox, aber nicht Pan & Scan). Wir sollten auch Videos verarbeiten, die abgeschnitten wurden, wie die Gutschriften aus dem Ende einer Spielfilm zu entfernen. Und natürlich müssen wir auch die Unterschiede behandeln durch verschiedene Geber geschaffen, die eine identische Videostrom eingespeist wurden.

Das ist ganz eine Liste! Betrachten wir einige Dinge, die wir können nicht zur Rechenschaft für: Ich vermute, dass es OK ist zum Scheitern verurteilt eine Übereinstimmung zu finden, wenn Imagewarping vorhanden ist, trotz der Tatsache, dass anamorphen Verziehen nicht ungewöhnlich ist, vor allem im 35-mm-Breitbild-Filme, die direkt waren anamorph Wiederaufbau (hoch-magere Menschen) gescannt ohne. Wir können auch scheitern wählen, wenn große Wasserzeichen in der Mitte des Rahmens vorhanden sind, obwohl wir kleinere Wasserzeichen in den Ecken tolerieren wollen. Und schließlich ist es in Ordnung, zum Scheitern verurteilt Videos zu vergleichen, die zeitlich verzerrt oder räumlich umgedreht worden sind, wie wenn man ein slo-mo des anderen, oder wurde von links nach rechts gekippt.

Hat das nur decken über den Videoraum? Hoffentlich ist es klar, warum es wichtig ist, mit dem Dateisystem und das Audio zu starten! Das heißt, zuerst denken Sie an Ihrer Datenbank mehr wie eine MP3-Sammlung, bevor es als Video-Sammlung betrachten.

Das Ignorieren der Audio-, Video ist nur eine geordnete Folge von Standbildern. Also suchen wir eigentlich für ein oder mehr Bildvergleichsalgorithmen kombiniert mit einem oder mehreren Zeitreihenvergleichsalgorithmen. Dies könnte entweder Paare getrennter Algorithmen sein (characteRize jeden Rahmen, dann kennzeichnen die Folge von Frames), oder es könnte auf die Unterschiede zwischen den Bildern in einem einzigen Algorithmus (Blick zusammengefasst werden).

Die Bilder selbst können weiter zerlegt werden, in ein monochromes ‚strukturellen‘ Bild und einem Farb ‚Overlay‘. Ich glaube, wir können sicher die Farbinformationen ignorieren, wenn es rechnerisch praktisch ist, dies zu tun.

Aus dem Vorstehenden es klingen mag, wie ich angenommen habe wir haben werden, um vollständig ein Video, um zu dekodieren alle Vergleiche auf sie auszuführen. Das ist nicht unbedingt der Fall ist, wenn der Vergleich der codierten Daten viele Schwierigkeiten hat, die ihre Nützlichkeit begrenzen. Die eine bedeutende Ausnahme ist für Objekt-Level-Video-Kodierungen wie MP4, wo auf sehr hohem Niveau Multi-Frame-Vergleiche durchgeführt wurden. Leider hat Objekt Vergleiche zwischen MP4-Streams nicht viel Forschung gesehen, und ich bin mir dessen bewusst keine Pakete der Lage, diese Funktion auszuführen. Aber wenn Sie einen finden, verwenden Sie es!

Die meisten anderen digitalen Video-Streams verwenden Codierschemata wie MPEG2, Quicktime, oder etwas ähnliches. Diese Systeme verwenden alle das Konzept des Schlüsselrahmen und Differenzrahmen, obwohl jeder Arbeitsgeräte es anders. Wenn verschiedene Videos verglichen werden (diejenigen, die nicht die gleiche Größe haben), ist es die Schlüsselbilder und Differenzrahmen unwahrscheinlich wird jeden nützlichen Grad entspricht. Allerdings bedeutet dies nicht, ist es unmöglich, und Pakete existieren, die versuchen, nützliche Informationen aus solchen Strömen zu extrahieren, ohne vollständige Decodierung. Wenn Sie einen finden, der schnell ist, kann es in einem Fall „warum versuchen Sie es nicht“ Kategorie von Tests.

Der einzige Trick Ich verwende stattdessen Rahmen vollständig von Decodierung, würde ich sie stattdessen dekodieren nur in einzelne Komponentenkanäle (HSV, HSL, YUV, was auch immer) und nicht den ganzen Weg zu den RGB-Framebuffer (es sei denn, das ist, was codiert ist schon , Na sicher). Von hier aus würde ich nächste getrennte Luminanz und Chrominanz (Farbe) Rahmen schaffen, um Vergleiche in verwandten Bereichen durchgeführt werden können. Dekodieren der ganzen Weg zu einem RGB-Bildpuffer einführen kann Fehler, die Suche nach Übereinstimmungen machen kann schwieriger.

Als nächstes würde ich die Farbinformationen verwerfen. Da ein monochromes Video seine Farbe Originals entsprechen sollten wir einfach nicht kümmern uns um Farbe!

Wie kann die resultierende Folge von monochromen Bildern am besten zu einer anderen Sequenz verglichen werden, die sehr unterschiedlich aussehen können, kann dennoch möglicherweise ein Spiel sein? Es gibt in diesem Bereich buchstäblich Jahrzehnte der Forschung gewesen, viel davon unter „skaleninvarianten Einstimmungserkennungs“ eingestuft. Leider sehr wenig von dieser Forschung direkt angewandt wurde, um festzustellen, wann Videos nicht oder nicht übereinstimmen.

Für unsere Zwecke können wir dieses Problem aus verschiedenen Richtungen nähern. Erstens müssen wir für sie selbst wissen, was ist und nicht eine Übereinstimmung in der Schwarz-Weiß-Domäne. Zum Beispiel kümmern wir uns nicht um Pixel-Ebene Unterschiede, da auch wenn zwei Matching-but-verschiedene Videos die gleiche Auflösung hatte, müssen wir ein gewisses Maß an Lärm tolerieren aufgrund Dinge wie Encoder Unterschiede.

Ein einfache (aber langsam) Weg ist jedes Bild in eine Form zu umwandeln, die sowohl unabhängig von Auflösung und Seitenverhältnis. Eine solche Transformation ist in den Ortsfrequenzbereich, und die 2D-FFT ist ideal für diese. Nachdem die imaginäre Komponente verwirft, normalisierte die reale Komponente Rauschen bei hohen Frequenzen abgeschnitten zu entfernen, und kann bei niedrigeren Frequenzen Seitenverhältnis Effekte zu entfernen, dann auf eine Standardskala Auflösung Unterschiede beseitigen. Die resultierenden Daten sieht wie eine seltsame kleine Bild, das direkt über Video-Streams verglichen werden kann.

Es gibt viele andere mögliche Rahmentransformationsstrategien, viele weitaus effizienter als die FFT und eine Literaturrecherche sollte sie markieren. Leider weiß ich von wenigen, die in Softwarebibliotheken implementiert wurden, die so einfach sind wie die FFT verwenden.

Sobald wir die monochrome verwandelt habenFrames in eine kleinere und nützliche Domain, wir noch müssen den Vergleich zu einem anderen solchen Strom von einem anderen Video auszuführen. Und das Video ist so gut wie sicher kein Rahmen zu Rahmen Spiel zu sein, so dass ein einfacher Vergleich wird sicherlich scheitern. Wir brauchen einen Vergleich, der auf Rechnung Unterschiede in der Zeitdomäne, einschließlich hinzugefügt / entfernt Rahmen und Unterschiede in Framerate nehmen.

Wenn Sie an der Folge von FFT-Frames betrachten, werden Sie einige sehr unterschiedliche Verhalten feststellen. Szene Blendungen sind abrupt und extrem leicht zu erkennen, Schnitte können auch unterschieden werden, und es ist in der Regel nur langsame Veränderungen in der FFT zwischen den Schnitten gesehen. Aus der Folge von FFTs können wir jeden Rahmen als die erste nach einem Schnitt / fade, oder als ein Rahmen zwischen den Schnitten / Fades beschriften. Was wichtig ist, ist die Zeit zwischen jedem Schnitt / fade, unabhängig von der Anzahl Rahmen zwischen ihnen, das einer Unterschrift oder Fingerabdruck erzeugt, die weitgehend unabhängig von der Framerate ist.

Unter diesen Fingerabdruck eines ganzen Video liefert Daten, die massiv kleiner als das Video selbst ist. Es ist auch eine lineare Abfolge von Zahlen, eine einfache Zeitreihenvektor, ähnlich wie Audio und kann mit vielen der gleichen Tools analysiert werden.

Das erste Werkzeug ist eine Korrelation durchzuführen, um zu bestimmen, ob das Muster von Schnitten in einem Video eine enge Übereinstimmung in einem anderen Video darauf ist. Wenn es erhebliche Unterschiede gibt, dann sind die Videos anders. Wenn sie eine enge Übereinstimmung, dann sind die nur wenige FFTs nach jedem korrelierten Schnitt muss verglichen werden, um festzustellen, ob die Rahmen sind ähnlich genug ist, ein Spiel zu sein.

Ich werde nicht in den Vergleich der 2D-FFTs gehen hier, da es reichlich Referenzen sind, die die Arbeit weit besser als ich kann.

Hinweis: Es gibt viele andere Manipulationen (über eine 2D-FFT), die auf monochromen Rahmen angewandt werden, um zusätzliche Fingerabdrücke zu erhalten. Darstellungen von tatsächlichem Bildinhalt können durch Extrahieren der Innenkanten des Bildes (buchstäblich wie eine FBI Fingerabdruck) erzeugt werden, oder durch selektive Schwellwertbildung des Bildes und eine ‚Klecksen‘ Operation durchführt (eine verknüpfte Liste verwandter Gebietsdeskriptoren erstellen). Das Verfolgen der Entwicklung der Kante und / oder Blobs zwischen den Bildern verwendet werden kann, nicht nur Schnittlisten zu erzeugen, sondern auch verwendet werden kann, zusätzliche High-Level-Bildmerkmale zu extrahieren, die unter Verwendung einer 2D-FFT verloren.

Wir haben eine Reihe von Vergleichsalgorithmen konstruiert, die bei der Suche nach nicht-Matches sehr schnell sein sollten, und nicht zu viel Zeit benötigen, um schlüssig Matches zu bestimmen. Ach, Algorithmen, die keine Lösung zu machen! Wir müssen mehrere Aspekte berücksichtigen damit zusammen, wie diese Algorithmen sollten am besten umgesetzt werden.

Als erstes wollen wir nicht öffnen und zu jeder Videodatei, die alle mehr Zeit als nötig zu lesen, sonst die CPU Stall könnte für Daten von der Platte zu warten. Wir wollen ja auch nicht weiter in eine Datei als nötig lesen, obwohl wir zu früh nicht aufhören wollen zu lesen und möglicherweise ein späteres Spiel zu verpassen. Sollten die Informationen, die jedes Video gespeichert werden charakterisiert, oder sollten sie neu berechnet werden, wenn nötig? Die Bewältigung dieser Probleme wird ein effizientes und effektives Video-Vergleichssystem ermöglichen, entwickelt werden, getestet und eingesetzt werden.

Wir haben es möglich, gezeigt ist, um Videos zu vergleichen mit einem gewissen Hoffnung der Spiele unter stark wechselnden Bedingungen, mit Recheneffizienz zu finden.

Der Rest ist für den Leser als Übung. ; ^)

Andere Tipps

Gute Frage! Nur testen wird, welche dieser Faktoren erzählen die besten Indikatoren sein. Einige Ideen:

  • Entwicklung der Bitrate im Laufe der Zeit mit dem gleichen vbr Codec: Sounds sehr CPU-intensiv, aber ich denke, es wäre toll Ergebnisse. Audio-Analyse scheint, wie es ähnliche Ergebnisse mit weniger Arbeit geben würde.
  • ersten und letzten Frame Bildanalyse: Wäre nicht mehr als 50% davon würden schwarz sein? Eine bessere Idee könnte das sehr mittleren Rahmen zu verwenden, aber ich würde zählen nicht auf diese Technik zuverlässig zu sein.
  • Mit Bayes-Statistik um aufzuzeichnen, welche Faktoren die besten Beiträge zu einem positiven übereinstimmen. Dies könnte in der Testphase zu auszusondern nicht hilfreich und teueren Vergleichen durchgeführt werden.
  • Erhalten Sie Benutzern helfen! Lassen Sie Benutzer Gruppe zusammen dupliziert sie finden. Sie stimmen auf dem einen mit der besten Qualität und dass man als primäre / offizielle Version innerhalb der Gruppe handeln.
  • Start mit den einfachsten Vergleiche und fügen Sie kompliziertere Tests, wenn Sie die Mängel der Einfältigen finden. Videolänge wäre ein guter sein, mit zu beginnen, dann vielleicht einig rudimentären Audio-Analyse, und arbeiten Sie sich von dort nach oben.

Versuchen Sie einfach, um dieses Produkt - Duplizieren Video Search (. Ex Visual Search Pony), die doppelte Videodateien verschiedener finden Bitraten, Formate, Auflösungen und etc.

Zum Beispiel der Stern-wars.avi (640x480 H.264) und sw.mpg (1280x720 MPEG) werden als Duplikate erkannt werden, falls beide sind Kopien eines großen Films -. Star Wars

Wie pro ihrer Website, verwendet das Produkt einige Video-Techniken von Fingerabdrücken, wie Schlüsselrahmen exctraction oder smth. wie diese, tut von Video-Encoding-unabhängig sein, Auflösung, Qualität, Bitrate und etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top