Laden...

Video Codecs in C# benutzen um Frames anzuzeigen

Erstellt von dr4g0n76 vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.643 Views
dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 13 Jahren
Video Codecs in C# benutzen um Frames anzuzeigen

Bzgl.

Verkehrsschilderkennung in neuen Fahrzeugen

hab ich jetzt noch ein paar Sachen zu programmieren.

Außerdem möchte ich für später die Videos die dabei entstanden sind später auch auswerten können, nicht nur die Einzelbilder die in Echtzeit von der Webcam kommen.

Hierzu ein paar Fragen:

1.) Kann man Codecs in C# benutzen, um einzelne Frames eines Videos zu lesen?
Ich möchte nicht wissen, sondern nur ob, vielleicht weiß das ja schon jemand. 😃

2.) und ist dabei Codecs per Api anzusteuern überhaupt der richtige Weg oder bietet mir da DirectShow schon wirklich alles was ich brauche?

Im Projekt WebTV1: Web-TV-Player, TV-Streams im Web hatte ich damals schon einen Video Player(Plugin) mit DirectX programmiert, dort ging es aber nur um das Abspielen des Streams.

Jetzt geht es darum einzelne Frames auszulesen.

Eine mögliche Quelle um das Problem für AVI-Files zu lösen, habe ich hier gefunden:

Der Grund dafür ist: möglichst nicht für jedes einzelne VideoFormat einen Frameextractor zu programmieren.

Avi Stream Info Structure

Codec-Basiert habe ich hier eine Diskussion gefunden:

Codecs in C#

Ich werde auf jeden Fall noch etwas weiter suchen, zuerst muss das obere Projekt abgeschlossenen werden.

EDIT: Ich habe natürlich auch hier im Forum gesucht aber dies bezüglich nichts gefunden was mir weiterhelfen würde mich für einen der beiden Ansätze zu entscheiden.

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

C
114 Beiträge seit 2008
vor 13 Jahren

Sofern du die Frames in einem Avi File hast, kannst du die AviFile Library verwenden.

„Heute back ich, morgen brau ich,
übermorgen cast ich die Königin nach int;
ach, wie gut dass niemand weiß,
dass ich Rumpelstilzchen heiß!“

"Bei Stylefragen sollteste nen Mac-User oder ne Frau fragen."

dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 13 Jahren

Ich möchte selber den Code schreiben.

Da sonst hier noch keiner geantwortet hat, ist es denn überhaupt der richtige Weg folgendes zu machen:

  • Datei auswählen
  • Datei lesen (keine Ahnung ob hier zuerst normaler Dateizugriff oder schon eine Codec-Funktion benutzt werden sollte)
  • Codec ermitteln
  • Anzahl der Frames ermitteln
  • Einzelne Frames anhand des Codec dekomprimieren falls nötig, so dass ein einzelnes Bitmap angezeigt und bearbeitet werden kann.

Oder geht das doch ganz anders? Zumindest hab ich bisher nichts(!) widersprüchliches gefunden.

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

363 Beiträge seit 2007
vor 13 Jahren

Hi,

ich weiß hier nicht wie das auslesen der einzelnen Frames funktioniert. Also ob diese wie beim Abspielen berechnet werden oder direkt ausgelesen werden. Falls letzteres der Fall ist, solltest du bedenken, das hier dann nur die I-Frames des Videos für dich nützlich sind. Die P und B-Frames speichern selber ja nur die Differenzen zu den vorhergehenden Frames.

Gruß Cookiie

"Hail to the King, Baby!"