Lösung MPEG2 framegenau schneiden !

::arglbarf::

::arglbarf::

Aktives Mitglied
Thread Starter
Dabei seit
12.08.2007
Beiträge
435
Reaktionspunkte
48
Hallo !

Ich habe mich in den letzten Tagen mit dem framegenauen Schnitt von MPEG2-Daten (aus EyeTV) beschäftigt und habe nun (glaube ich zumindest) eine Lösung gefunden, die ich euch mal mitteilen wollte.

Benutzte Programme:

EyeTV 3
avidemux
ffmpegX
(VLC)
(DVD-Player)

EyeTV 3:

Aufnahme als >MPEG Program Stream< exportieren.

avidemux:

Datei öffnen und mit den Cursor-Tasten an den gewünschten Stellen schneiden, danach >Rebuild I & B Frames< aus dem Menüpunkt Tools wählen und abspeichern.
Einstellungen:
Video= DVD(lavc),
(u.U. unter Konfigurieren das Seitenverhältnis einstellen),
Audio=Kopie
Format=MPEG TS

(Das Ergebnis habe ich mir im VLC angeschaut und festgestellt, dass das Bild ruckelte, zumindest am Anfangsschnitt, deswegen habe ich noch ein wenig weiterprobiert)

ffmpegX:

unter Tools >demux<
file auswählen und demuxen

dann unter >mux<
die beiden neu erzeugten Files wieder zusammenfügen
mux as DVD
Author as DVD (Video TS)

Das Ergebnis habe ich mir dann sowohl im VLC als auch im DVD-Player angeschaut und konnte keine Störungen mehr feststellen.

Ich hoffe, dass ihr damit was anfangen könnt (Rückmeldungen erwünscht), mir hat es auf jeden Fall geholfen, habe auch ein bisschen was gelernt in den letzten Tagen.


::a::
 
Man kann doch mit EyeTV schon sehr sehr genau arbeiten. Also ich kann da genau genug schneiden ohne dass dort ein etwas fehlt oder zu viel ist.
 
Tja, genau diese Erfahrung habe ich nicht gemacht. Ich habe eine Sendung in EyeTV bearbeitet und habe dann noch ein Stück der Werbung in der Datei gehabt. In EyeTV konnte man das direkt sehen, im VLC hatte ich grüne Pixelgruppen, die ich störend empfunden habe. Das muss ja auch nicht jeden stören, aber mich hat es gestört, deswegen habe ich nach einer anderen Lösung gesucht und wie ich glaube auch gefunden.
 
Wie gesagt, bei mir funktioniert das super, wenn ich auf 'Fein' klicke.
 
Ja, die Fein-Einstellung habe ich gefunden.

Damit kann ich aber nichtsdestotrotz keine einzelnen Frames anwählen.

Welche EyeTV Version läuft bei dir ? Vielleicht hat das ja mit EyeTV 2 besser funktioniert als mit der aktuellen Version ??
 
Zuletzt bearbeitet:
Wie ich gerade sehe, hattest Du das Thema schon. Warum machst Du ein neues dazu auf?
 
Zuletzt bearbeitet:
Seit wann kann man denn MPEG framegenau schneiden ohne die GOP neu zu encoden? :kopfkratz:

Na gut.. Vielleicht kann man. Aber man sollte nicht. Wenn du am Anfang des Streams zwischen zwei P-Frames schneidest und das I-Frame am Anfang wegfällt, kommt Murks raus. Das ist jedenfalls mein Kenntnisstand.

Vielleicht hast du beim zweiten Versuch zufällig GOP-Anfang und -Ende erwischt.
 
Wie ich gerade sehe, hattest Du das Thema schon. Warum machst Du ein neues dazu auf?

Ich dachte mir, es wäre für andere einfacher, die eine Lösung suchen.

Ich habe mich hier schon durch ellenlange Threads gelesen, an deren Ende ich dann genau so schlau war wie vorher...

Vielleicht hätte es in Tutorials besser reingepasst ? :confused:


Wenn du am Anfang des Streams zwischen zwei P-Frames schneidest und das I-Frame am Anfang wegfällt, kommt Murks raus. Das ist jedenfalls mein Kenntnisstand.

Ich bin der Meinung, dass ich einen Weg gefunden habe, bei dem halt kein Murks rauskommt.
Wenn irgendjemand Lust hat, könnte er ja mal einen Versuch starten und das bestätigen oder eben nicht.
 
Ich bin der Meinung, dass ich einen Weg gefunden habe, bei dem halt kein Murks rauskommt.
Wenn irgendjemand Lust hat, könnte er ja mal einen Versuch starten und das bestätigen oder eben nicht.
Och, ich kann mir auch durchaus vorstellen, dass es Softwarelösungen gibt, die genau diese Probleme umgehen. Denkbar wäre zum Beispiel, dass die Software aus dem P-Frame ein I-Frame macht und die GOP neu schreibt.

Ich bin allerdings nicht mehr so tief im Thema, dass ich das beurteilen kann. Für Videobearbeitung fehlt mir einfach die Zeit.
 
An dem Punkt könnte man anstelle von EyeTV ProjectX verwenden. Das dürfte besser sein, sollten die Streams mal Fehler aufweisen.

Sehe ich auch so. P.X ist das SwissKnife für sowas und obendrein recht leicht zu bedienen.

Prinzipiell ist ein Schnitt OHNE DEMUXEN (also ohne tatsächlichen Qualitätsverlust) nur an I-Frames möglich, soweit ich weiß. Jedes "Rekonstruieren" von GOPs wäre im Prinzip ein neuer Codingvorgang, der i. d. R. einiges an Rechenzeit und Qualität kostet. Ich bin nicht sicher, ob das sinnvoll ist und welche SW das überhaupt machen könnte.

.
 
Prinzipiell ist ein Schnitt OHNE DEMUXEN (also ohne tatsächlichen Qualitätsverlust) nur an I-Frames möglich, soweit ich weiß. Jedes "Rekonstruieren" von GOPs wäre im Prinzip ein neuer Codingvorgang, der i. d. R. einiges an Rechenzeit und Qualität kostet. Ich bin nicht sicher, ob das sinnvoll ist und welche SW das überhaupt machen könnte.
Das Demuxen hat nichts mit einem neu Codieren zu tun. Demuxen, die Kurzform von Demultiplexen, nennt man einfach nur das Trennen der einzelnen Spuren. Muxen (Multiplexen) ist demzufolge das zusammenführen von verschiedenen Spuren.
Und selbstverständlich ist ein framegenaues Schneiden nicht ohne ein Neucodieren möglich. ABER, das Neucodieren benötigt so gut wie überhaupt keine Rechenzeit und kostet auch nicht unbedingt sichtbare Bildqualität.
Denn es wird in dem Fall nicht der komplette Stream neu codiert, sondern, wie weiter Oben ja auch schon erwähnt wurde, nur die entsprechende GOP. Was, wenn man bedenkt das eine GOP in der Praxis aus irgend etwas zwischen 5 und 25 Bilder besteht, verständlicherweise nicht wirklich sehr lange dauert.

Unter Windows gibt es mehrere Programme, die das schon seit langem können.

Gruß
 
An dem Punkt könnte man anstelle von EyeTV ProjectX verwenden. Das dürfte besser sein, sollten die Streams mal Fehler aufweisen.

Wie jetzt ?
Eine Aufnahme in EyeTV wird doch in einem Paket gesichert (mit Endung .eyetv). Meinst du, das Paket öffnen und die MPEG-Datei auswählen?
Ich habe mich noch nicht viel mit ProjectX auseinandergesetzt, fand das nicht besonders einleuchtend oder komfortabel.
Dann stellt sich mir da noch die Verständnisfrage, wie ProjectX fehlerhafte Streams reparieren kann. Der Stream kommt ja aus EyeTV, also gibt es doch auch bei Fehlern keine Daten, aus denen ProjectX etwas neu errechnen kann, oder wie geht das?
 
Ja, einfach die Datei mit dem eigentlich Stream (nicht den Ordner) in ProjectX ziehen. Sollte gehen. Da ich aber kein EyeTV benutze, kann ich es nicht 100%ig beschwören.

Wie genau ProjectX die Streams korrigiert, kann ich nicht (mehr) sagen. Dazu bin ich zu weit aus dem Thema raus, was den genauen Aufbau eines mpeg-Streams angeht. Aber die entsprechenden (Synchronisations) Informationen befinden sich im Stream.

ProjectX kann fehlerhafte Streams aber natürlich auch nicht reparieren in der Art, das man dann von dem Fehler nichts mehr sieht. Wenn Informationen fehlen, dann fehlen sie. Es sorgt aber dafür, das an so einer Fehlstelle Audio und Video synchron bleiben und es gerade an den Stellen bei der späteren Weiterverarbeitung keine Probleme gibt.

Kommt avidemux mit demuxten Streams zurecht? Ansonsten wäre es natürlich recht umständlich die vor dem Scheiden erst wieder muxen zu müssen.

Gruß
 
Gut, aber was soll das bringen? Das hat ja nichts damit zu tun, das ProjectX das File als Video anerkennt.
 
Kommt avidemux mit demuxten Streams zurecht? Ansonsten wäre es natürlich recht umständlich die vor dem Scheiden erst wieder muxen zu müssen.

Keine Ahnung, ob avidemux das kann, habe ich aber auch bisher keinen Sinn drin gesehen.
Die MPEG-Datei aus EyeTV ist ja gemuxt, und so habe ich sie dann auch in avidemux geschnitten.

Ich denke, dass mein Schritt in ffmpegX die Datei zu demuxen und dann wieder zu muxen wohl prinzipiell das gleiche tut wie ProjectX, nämlich die Datei zu "reparieren". Ich habe das vorher schon mal mit MPEG1-Dateien probiert, die im Quicktime Player nicht abspielbar waren. Einmal demuxt und gemuxt und voilá sind sie abspielbar.
 
Moin!

Ich vermute mal ganz stark, das wenn Du avidemux mal einen fehlerhaften Stream vorsetzt, dieser nach dem Schneiden asynchron sein wird/werden könnte. Und danach kann vermutlich selbst ProjectX nichts mehr korrigieren. Denn im Allgemeinen sind nach einem Schnitt die originalen Sync Infos (ich nenne sie jetzt mal so) nicht mehr vorhanden.
Die Abspielprobleme sind ein anderes Thema und rühren eher nicht von defekten, sondern "anders" gemuxten Streams her.

Die Defekte, von denen ich rede, machen sich oftmals durch Bildfehler und Aussetzer bemerkbar. Und mit denen haben viele Programme ihre Schwierigkeiten. Und da bewirkt ProjectX dann Wunder.

Gruß
 
  • Gefällt mir
Reaktionen: ::arglbarf::
Ah, ok, vielen Dank.

Ich brauche wohl mal einen defekten Stream, um das auszuprobieren ;)

Dann schmeisse ich ProjectX wohl doch nicht ganz so weit weg...
 
Zurück
Oben Unten