Video Schneiden

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ja schon, aber ich möchte soetwas mal selbst programmeren und wissen wie das geht.
Zuletzt geändert von Joel am 23.05.2006 17:22, insgesamt 1-mal geändert.
IngolfZ
Beiträge: 27
Registriert: 29.10.2005 11:58
Wohnort: Dreieich (Hessen)
Kontaktdaten:

Beitrag von IngolfZ »

Joel hat geschrieben:Ja schon, aber ich möchte soetwas mal selbst programmeren und wissen wie das geht.
Was du dir da vorgenommen hast ist eine Granate :freak:
Wenn du Basiswissen darüber erlangen willst, lade dir das DirectX-SDK von M$ herunter.
In der Abteilung DirectShow ist das relativ klar dargestellt.

Ach noch was, wenn du einen Video-Editor alleine schreiben willst, solltest du bis etwa 2015 nichts anderes mehr vorhaben :wink:
Man wird alt wie 'ne Kuh und lernt immer noch dazu
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

Wenn du Basiswissen darüber erlangen willst, lade dir das DirectX-SDK von M$ herunter
Und da gehts auch schon los. Gute Videoeditoren wie Vdub nutzen das VFW Interface da man damit eher die Gewissheit hat, dass sich kein anderer Filter im DS System reinschleicht. Wenns um Avi geht ist das alles kein Problem via der AviFil32 API oder dem MMIO Routinen. Aber mpeg und alle anderen speziellen Formate sollten "nativ" decodiert werden, also ohne Dshow und somit via der entspr. Dekodier-Lib.
VdubMod hat was mpeg2 angeht da z.B. einen eigenen mpeg2 decoder eingebaut.
Und am Ende willst du alles ja wieder re-enkodieren. Und da siehts genauso aus.

Avery Lee hat sehr lange an Vdub programmiert und IngolfZ hat recht, es ist ein irre Aufwand.
IngolfZ
Beiträge: 27
Registriert: 29.10.2005 11:58
Wohnort: Dreieich (Hessen)
Kontaktdaten:

Beitrag von IngolfZ »

Gute Videoeditoren wie Vdub nutzen das VFW Interface da man damit eher die Gewissheit hat, dass sich kein anderer Filter im DS System reinschleicht.
Wenn man DirectShow Filterketten unintelligent aufbaut, d.h. das "intelligent connect" nicht benutzt, ist man auch sicher, dass sich keine Filter in die Kette einschleichen.

Das haben wir in unserem PB-Projekt MPEG-Inspector ausführlich getestet und erfolgreich zum Einsatz gebracht. Das Projekt ist übrigens mit PB realisiert.
Man wird alt wie 'ne Kuh und lernt immer noch dazu
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Avi ist übrigens kein Videoformat, sondern nur ein datencontainer. Das was in dem Avi drinn ist kann dann mpeg, mpeg2, divx oder vieles andere sein.
So pauschal kann man also keine aussage in der richtung avi->VFW treffen.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ne ich will kein komplett neues viseo programm erstellen sonderen ein womit man videos schneiden kann.

Ich öffne den Video und spul den da hin wo der anfacgen soll und aufhören soll und speicher den.

Ich will kein Programm Programmieren wie Video Studio, dazu brauch ich bestimmt bis 2080.

Und mich interessiert dass wie man Videos schneidet.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Selbst ein simples schneideprogramm ist nicht einfach. In so einem Video-File liegt bei den meisten formaten nicht für jedes Video-Frame ein bild, sondern es gibt ein bild und die nächsten paar frames versuchen nur die differenz dazu zu beschreiben.
Du wirst dich für sowas also aller warscheinlichkeit selbst mit den verschiedenen kompressionsverfahren beschäftigen müssen, falls du keine geeignete Bibliothek findest.
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

Avi ist ein "Format", daher auch Avi file format ;)

Es ist richtig, dass "Format" hier ein Container ist.
Die einzelnen VideoStreams innerhalb jenes Formats/Containers besitzen ein FourCC 4 Character Identifikationscode, so z.B. bei mjpeg "mjpg" oder "DIVX", "XVID", "X264", "HUFF" etc. somit die verwendeten Compressors mit denen die Streams komprimiert wurden.

Avi hat die Möglichkeit einen Video und einen Audiostream zu besitzen. Dieses Format ist daher auf dem absterbenden Ast.
Neuere Formate wie mp4 (h264) können zudem mehrere Audiokanäle (aac) und subtitle Streams enthalten.


Das Problem beim Videoschnitt ist folgendes: Wenn du einen Stream hast, der via I,B u. P Folge enkodiert wurde (z.B. mpeg1,mpeg2,mpeg4xvid/Divx) so MUSS immer am jeweiligen "I" Farme geschnitten werden. Demnach musst du diesen ansteuern (viel Spaß). Es gibt Programme wie Cuttermaran, die lassen auch bei diesen Framegenau schneiden, aber es wird sodann jene "zerschnittene" GOP neu enkodiert welche bei mpeg2 oft 15frames und bei mpeg4 bis zu 250 frames besitzen kann.

Daher solltest du dir im Klaren sein WELCHE Codecs du in deiner Software als Import unterstützen willst.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@inc

geil, absoluter fachbegriff-overkill! :allright:

in diesem fall korrekt, weil es vielleicht vermitteln kann, wie hardcore dieses thema wirklich ist.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
IngolfZ
Beiträge: 27
Registriert: 29.10.2005 11:58
Wohnort: Dreieich (Hessen)
Kontaktdaten:

Beitrag von IngolfZ »

Kaeru Gaman hat geschrieben:..., weil es vielleicht vermitteln kann, wie hardcore dieses thema wirklich ist.
Dem kann ich voll und ganz zustimmen.
2003 habe ich mit VB angefangen ein Programm zu schreiben um MPEG-Dateien zu analysieren. 2004 habe ich mit "jear" ein kleines Team gegründet und wir sind auf PB umgestiegen.
Wir, jear und ich, kommen eigentlich aus der Hobby-Ecke Video-Bearbeitung. Uns hat interessiert, warum Video-Bearbeitung manchmal nicht das Ergebnis bringt, das wir erwartet haben. Und ganz speziell der Framegenaue-Schnitt von Videos ist selbst bei kommerziellen Programmen immer noch ein Problem.

Zuerst haben wir uns auf allgemein verfügbare Informationen über den Aufbau von MPEG Dateien abgestützt. Erst als wir im Internet "Kopien" der einschlägigen Normen (ISO/IEC 11172 und 13818) gefunden haben, sind wir in größeren Schritten vorangekommen. Und dabei haben wir uns nur auf MPEG-1 und MPEG2 PS konzentriert.

Bis 2005 habe wir die Dateien nur "numerisch" ausgewertet. In der zweiten Hälte 2005 haben wir begonnen DirectShow zu nutzen und auch die Frames visuell darzustellen. Die PB-Routinen zur Movie-Anzeige hatten uns nicht weitergebracht, da sie MPEG-2 Dateien nicht framegenau positionieren liessen. Zwischenzeitlich haben wir erkannt, dass das an den DirektShow Filter liegt, nicht jeder lässt sich framegenau positionieren.

Ich schätze mal, dass in der bisherigen Arbeit von uns etwa 1,5 Mannjahre drinstecken (inkl. Lernphase). Und wie gesagt, wir analysieren die Dateien nur, an einen Videoschnitt denken wir (vorerst) garnicht.

Wenn sich hier jemand mit PB und der Thematik Video gut auskennt, wir würden unser Team gegebenfalls erweitern :wink:
Man wird alt wie 'ne Kuh und lernt immer noch dazu
Antworten