PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Framegenaues Schneiden - wie muss ich vorgehen?



chakkman
05.12.2015, 20:31
Hi,

gibt sicher schon Dutzende Threads zum gleichen Thema, leider bin ich aber immer noch nicht fündig geworden, bzw. mache immer noch etwas falsch... egal, was ich nutze, ob Cutana, oder VirtualDub direkt, ich bekomme es einfach nicht hin, framegenau zu schneiden. Mir scheint immer so, dass beim Spulen rückwärts/vorwärts sowohl in Cutana, als auch in VirtualDub irgendwann die Vorschau ungenau wird, und ich an der falschen Stelle schneide. Besonders sichtbar ist das in Cutana, denn dort sind die Vorschau im großen Bild, und die Vorschau in den Einzelbildern bei Doppelklick auf den Start-/Endpunkt des Schnitts nicht identisch. Nun habe ich auch gelesen, man sollte bei den H264-Filmen nicht an den Keyframes schneiden, da in diesen auch die Informationen für die nächsten Frames gespeichert sind. Ist das vielleicht der Fehler, den ich mache? Oder ist beim Spulen etwas zu beachten, so dass die Vorschau nicht ungenau wird? Bin echt ratlos. DivX SD ist völlig problemlos in jedem Schnittprogramm framegenau zu schneiden, nur bei den H264 Aufnahmen bekomme ich es einfach nicht hin.

chakkman
07.12.2015, 19:18
Danke euch für die Tipps. Leider ist es ja nicht immer möglich an den Keyframes zu schneiden, wenn die nicht genau am Anfang/Ende der Werbung sind... ich werde mal ein bisschen rumexperimentieren. Wichtig war mir auch vor allem mal, dass mir jemand bestätigt, dass es problematisch ist mit den H264-Aufnahmen in Hinsicht auf framegenaues Schneiden, so wie ich es hier oft gelesen habe, war das für viele gar kein Problem... vielleicht haben viele ja auch kein Problem damit, wenn ein paar Bilder Werbung dazwischen sind, mich stört das sehr (Perfektionist und so :p).

habkeinen
07.12.2015, 21:54
Ich habe generell keine Probleme, h264-Material framegenau zu schneiden. Ich nutze allerdings otrverwaltung++ (mit mkvtoolnix) unter Linux-Betriebssystemen, wobei das Cutinterface allerdings nicht immer stabil läuft und unter manchen Distributionen gar nicht mehr funktioniert.
Unter Windows funktioniert framegenauer Schnitt mit VirtualDub gut (ohne Cutana, Coldcut & Co.), auch wenn die Handhabung eher suboptimal ist.
Avidemux 2.6.x ist deutlich komfortabler, allerdings darf nur an Keyframes geschnitten werden (d.h.der erste Frame muss ein Keyframe sein) und HQ- oder HD-avis müssen vorher in mkv- oder mp4-Container umgepackt werden (Wenn ich mich recht erinnere, macht nur der mkv-Demuxer Probleme mit dem Seitenverhältnis). Das passt bei Sendungen ohne Werbeunterbrechungen oft sehr gut.
Also zusammengefasst: Mit Virtualdub oder mkvtoolnix als Backend lässt sich h264-Material recht gut verarbeiten. Und fürs Schneiden sind Videocodecs ohnehin nie optimiert worden...

hugo2514
07.12.2015, 22:33
Ich habe bisher keinerlei Probleme beim framegenauen Schneiden von HQ-Aufnahmen feststellen können. Mich würde auch nur ein einziges Frame oder ein verschluckter Ton von 1ms stören - aber derartiges finde ich fast nie in meinen geschnittenen Aufnahmen (coldcut). Wenn doch, wird korrigiert und erneut geschnitten. Die Vorschau in Coldcut funktioniert dabei auch framegenau.
Aufnahmen ohne Werbung schneide ich aber direkt in Vdub und dann auch der Einfachheit halber an Keyframes vorn. Hinten ist es ja egal.

habkeinen
07.12.2015, 23:11
@chakkman:
Ich darf widersprechen...
Dass framegenauer Schnitt mit VirtualDub möglich sein muss, zeigt doch allein schon die Tatsache, dass praktisch alle otr-Schnittlösungen, die framegenauen Schnitt bieten, dies eben mit VirtualDub tun (selbst otrverwaltung++ mit wine kann das unter Linux). Allerdings ist beim Schnitt mit VirtualDub pur Einiges zu beachten.
Schaust du hier: http://wiki.onlinetvrecorder.com/index.php/H.264-Codec

chakkman
07.12.2015, 23:27
Die Frage ist, warum funzt das dann nicht so ohne Weiteres bei mir. Habe es auf 4 verschiedenen Computern versucht, mit Avidemux, VirtualDub, CutAssistant, Cutana, mit ffdshow, und mit x264vfw. Nie hat es framegenau geklappt, immer war die Vorschau ungenau (und bei Avidemux geht das Schneiden ja ohnehin bei H264 nur an den Keyframes). Und die Antworten von Artemis und AndyK70 gehen ja auch in die Richtung, dass man einiges beachten muss, damit man framegenau schneiden kann.

Und ja, ich habe mich genau an die hier geposteten Tutorials gehalten, sowohl bei VirtualDub, als auch bei Cutana, selbst die Programmversionen habe ich genau beachtet, trotzdem war kein framegenauer Schnitt möglich, und immer Teile der Werbung nachher im Film.

chakkman
08.12.2015, 01:12
Eben das meine ich. Bei DivX brauche ich mir da gar keine Gedanken zu machen, Keyframe oder nicht, egal, ich schneide an dem Frame, an dem ich mich befinde, und es passt. H264 nur am Keyframe, oder ich muss schauen, wieviele Bilder vor oder nach der Stelle (falls es das gibt) an der ich mich (in der Vorschau) befinde, schneiden muss, damit es passt. Mir fällt jetzt übrigens ein, dass ich das auch in VirtualDub eine Zeitlang so gehalten habe, dass ich 2 Bilder vor dem Frame, an dem Schnitt erfolgen sollte, geschnitten habe, und es dann meistens gepasst hat. Aber dann hatte ich wieder ein paar Aufnahmen, in denen noch 2 Bilder von der Werbung vorhanden waren, so dass ich wieder bei Null angefangen bin. Muss mal schauen, wie sich das jetzt verhält.

hugo2514
08.12.2015, 22:32
Auch DivX basiert auf Keyframes und Zwischenschritten, die keine vollständigen Bilder sind.
Ergo kannst Du auch da nicht einfach zwischen den Keyframes schneiden ohne zumindest teilweise Neucodierung.
Was vielleicht mal einen Versuch wert ist in VDub: bei der Vorschau von einem Keyframe ausgehend loslaufen mit den einzelnen Bildern. Und Rückwärts dauert sehr lange, weil diese Richtung jeweils komplett neu berechnet werden muß aus dem vorherigen Keyframes und allen vorherigen Zwischenschritten, das sollte man möglichst vermeiden über längere Strecken, bestenfalls mal ein Bild, weil man den Szenenwechsel gefunden hat.

Artemis1121
08.12.2015, 23:38
Es gibt 3 Frame-typen:
1) I-Frames: das sind Bilder die sich nicht auf andere Bilder beziehen.
2) P-Frames: beziehen sich nur auf vorherige Bilder.
3) B-Frames: beziehen sich auf vorherige und nachfolgende Bilder.

https://upload.wikimedia.org/wikipedia/commons/e/e2/GOP_2.svg

Nach I- und P-Frames kann man problemlos einfach abschneiden. Würde man das bei B-Frames machen, würden die Informationen auf die nachfolgenden Frames ins Leere laufen. Deswegen muß man den Teil seit dem letzten P-Frame neu kodieren.
Schneidet man den Anfang, so muß der Teil bis zum nächsten I-Frame neu kodiert werden.

DivX unterstützt zwar B-Frames, da jedoch viele Hardware-Player damit Probleme haben, werden sie bei OTR-Divx-Dateien nicht genutzt. man kann also an jeder beliebigen Stelle einfach abschneiden, der Anfang muß aber bis zum nächsten I-Frame immer neu kodiert werden.

Ein Format, bei dem man an jeder beliebigen Stelle einfach schneiden kann, ist zum Beispiel DV. Dies besteht nur aus I-Frames und wird bei Videokameras genutzt.

B-Frames verursachen noch ein Problem. Damit man B-Frames dekodieren kann, muss man die nachfolgenden P-Frames bereits dekodiert haben. In den Dateien werden also die Frames umsortiert. Beim Abspielen stimmt jetzt die Position des Frames nicht mehr mit der Wiedergabeposition überein, muss also kompensiert werden.
Das wird hier gut erklärt: http://www.avidemux.org/admWiki/doku.php?id=using:b-frames

Warum macht man überhaupt diese Frames die das Schneiden komplizierter machen? Sie sind der Hauptgrund, warum man die benötigten Bitraten bei gleicher Qualität drastisch senken kann/konnte.

habkeinen
09.12.2015, 15:11
Soweit ich weiß, unterstützt der avi-Container weder B-Frames noch I-Frames, die auf andere Frames referenzieren. Nur deswegen gibt's überhaupt Freeware, mit der wir otr-h264-Dateien framegenau scheiden können.
zu VirtualDub: Mit den genannten Versionen (wichtig!) und den im Wiki genannten Einstellungen geht es bei mir ohne Probleme.

chakkman
09.12.2015, 16:03
Soweit ich weiß, unterstützt der avi-Container weder B-Frames noch I-Frames, die auf andere Frames referenzieren. Nur deswegen gibt's überhaupt Freeware, mit der wir otr-h264-Dateien framegenau scheiden können.
zu VirtualDub: Mit den genannten Versionen (wichtig!) und den im Wiki genannten Einstellungen geht es bei mir ohne Probleme.
Selbst mit Spulen, vor und zurück, und springen innerhalb der Datei etc., und bei Filmen mit vielen Werbeeinblendungen mittendrin? Immer alles framegenau, und ohne jegliche Bilder der Werbung, auch wenn du einen, oder 2 Frames vor dem Werbebeginn schneidest?

habkeinen
09.12.2015, 22:46
Selbst mit Spulen, vor und zurück, und springen innerhalb der Datei etc., und bei Filmen mit vielen Werbeeinblendungen mittendrin? Immer alles framegenau, und ohne jegliche Bilder der Werbung, auch wenn du einen, oder 2 Frames vor dem Werbebeginn schneidest?
Ja. Allerdings schneide ich eigentlich nur noch unter Linux mit otrverwaltung++, wo man VirtualDub (avi) oder mkvtoolnix (mkv) verwenden kann. Da schneide ich framegenau, und das Ergebnis passt genau.
Unter Windows mit VirtualDub und vfw hat es vor ca. 1 Jahr ebenfalls bestens funktioniert.

chakkman
09.12.2015, 23:46
Bin echt ratlos. Mache alles nach Anleitung, selbst die Programm- und Codecversionen sind die gleichen, und du machst es genauso, aber bei dir ist framegenaues Schneiden möglich, bei mir nicht. Da fragt man sich dann schon, wie kommt das. DivX ist wie gesagt absolut kein Problem, nur mit H264 geht es in keinem Programm, weder in Avidemux, VirtualDub, noch im CutAssistant, oder in Cutana.

Nimm's mir nicht übel, wenn ich nochmal frage, aber bist du dir wirklich sicher dass du, sogar wenn du vorwärts, rückwärts, seitwärts spulst, und nach Vorschau schneidest, die Schnitte auch wirklich exakt an dem Frame vorgenommen werden, an dem du in der Vorschau schneidest? Sorry, komm mir langsam doof vor, aber ich habe das wirklich schon auf 4 verschiedenen Computer, und mit allen genannten Programmen, und auch mit 2 Codecs, ffdshow und x264vfw probiert, und es ging nie. Und nun sagt mir auf einmal jeder, dass das genauso geht, und das ist echt verwirrend, wenn man genau alles so macht, und es funktioniert halt nicht.

predalien
10.12.2015, 08:48
Vielleicht findet sich ja ein (sehr) hilfsbereiter User der ein auf Linux basierendes VirtualBox-Image erstellt, in dem alle nötigen Programme installiert und Einstellungen vorgenommen wurden, die zum framegenauen Schneiden nötig sind. Sofern die Programme kostenlos verfügbar sind, wovon ich ausgehe, könnte dieses Image dann an die User verteilt werden, die selbst Probleme mit dem Schneide-Setup haben.

Ich würde es ja selber machen, aber ich schneide selbst nicht. Da ich aber das Forum schon etwas länger verfolge bekomme ich die wiederholten Schneide-Dramen mit. Es ist nur eine Idee, aber möglicherweise funktioniert das ja.

chakkman
10.12.2015, 13:13
Ich glaube nicht, dass es was mit Linux oder nicht Linux zu tun hat. Und ehrlich gesagt habe ich auch immer noch Zweifel, dass das, was habkeinen da schreibt, so auch wirklich stimmt... daher habe ich in meinem letzten Post auch nochmal nachgefragt, ob auch wirklich exakt an der Stelle der Schnitt erfolgt, die in der Vorschau für den Schnitt gewählt wurde, und zwar selbst dann, wenn man in der Datei wild springt und spult. Ich behaupte immer noch dass das nicht geht.

Möchte nicht behaupten, dass hier jemand vorsätzlich lügt, oder Mist schreibt, es ist bloß so, dass manche da einfach nicht so penibel sind, vielleicht 3 oder 4 Frames vorher und nachher vom Film weg schneiden, und dann passt es, und der Schnitt war vermeintlich framegenau, wo er es gar nicht war. Wie gesagt, 4 Computer, verscheiedene Betriebssysteme, verschiedene Codecs, verschiedene Programme und Versionen - Ergebnis immer das gleiche hier. Und ganz doof und der Materie nicht erfahren bin ich auch nicht.

AndyK70
10.12.2015, 18:05
daher habe ich in meinem letzten Post auch nochmal nachgefragt, ob auch wirklich exakt an der Stelle der Schnitt erfolgt, die in der Vorschau für den Schnitt gewählt wurde, und zwar selbst dann, wenn man in der Datei wild springt und spult. Ich behaupte immer noch dass das nicht geht.

Aufgrund der technischen Gegebenheiten des h.264 codecs, welche Artemis sehr schön und ausführlich dargelegt hat, ist es keinem möglich genau an dem Frame einen Schnitt zu haben, an dem man in der Vorschau einen Schnittpunkt gesetzt hat. Ausnahme ist, wenn der nachfolgende Frame ein Keyframe ist.

Wie oft noch?


Möchte nicht behaupten, dass hier jemand vorsätzlich lügt, oder Mist schreibt, es ist bloß so, dass manche da einfach nicht so penibel sind, vielleicht 3 oder 4 Frames vorher und nachher vom Film weg schneiden, und dann passt es, und der Schnitt war vermeintlich framegenau, wo er es gar nicht war.
Ich schneide so, dass das Ergebnis 100% perfekt ist. Also ein absolut unsichtbarer Übergang, sofern es möglich ist.
was interessiert mich dann, ob ich den Schnittpunkt wegen des Versatzes um 3 Frames früher oder später legen muss?

chakkman
10.12.2015, 18:22
Aufgrund der technischen Gegebenheiten des h.264 codecs, welche Artemis sehr schön und ausführlich dargelegt hat, ist es keinem möglich genau an dem Frame einen Schnitt zu haben, an dem man in der Vorschau einen Schnittpunkt gesetzt hat. Ausnahme ist, wenn der nachfolgende Frame ein Keyframe ist.

Wie oft noch?


So oft noch, wie behauptet wird, dass framegenaues Schneiden bei diesem Codec möglich ist. Warum behauptet man sowas, wenn es nicht stimmt, und man versetzen muss, um framegenau zu schneiden? Das irritiert nicht nur mich, sondern jeden, der das hier liest.

Nicht falsch verstehen, ich bin sehr dankbar für eure Tipps. Mit geht's jetzt lediglich darum, falsche Behauptungen aus der Welt zu schaffen. Framegenau ist framegenau, und das heisst exakt an der Stelle, an der man in der Vorschau schneidet.... alles andere ist nicht framegenau.

AndyK70
11.12.2015, 11:24
So oft noch, wie behauptet wird, dass framegenaues Schneiden bei diesem Codec möglich ist. Warum behauptet man sowas, wenn es nicht stimmt, und man versetzen muss, um framegenau zu schneiden? Das irritiert nicht nur mich, sondern jeden, der das hier liest.

Anscheinend haben wir verschiedene Definitionen von Framegenau schneiden.
Du willst in der Vorschau an genau den Frame den Schnittpunkt setzen, an dem nachher auch geschnitten wird.
Für mich ist framegenaues Schneiden, dass ich in dem geschnittenen Frame genau das bekomme, was ich haben will.

@habkeinen: Wenn ich Schnittlisten von otrvnic oder von PX nehme, dann brauche ich mir keine Gedanken machen. Die beiden schneiden genau so, wie ich es auch mag. Sie geben sich Mühe und versuchen immer den besten (möglichst unsichtbaren) Übergang hin zu bekommen. Von den beiden passen die Schnittlisten bei mir zu 99%. (Mal abgesehen davon, dass jeder auch mal etwas übersehen kann.)
Hab mir die Schnittlisten von deinen Beispielen angesehen. Das sind alles Sendungen von öffentlich Rechtlichen, also ohne Werbeunterbrechungen. Schau doch mal nach Sendungen von Pro7, RTL, RTL II, usw. Da wird es dann interessant.

hugo2514
11.12.2015, 22:04
Also ich schneide auch framegenau. Mit coldcut, das ja in Deiner Auflistung der probierten Tools fehlt.
Da ich mir immer Szenenwechsel als Schnittpunkte raussuche, bin ich mir auch sicher, dass es dann wirklich an diesem Frame geschnitten wird.
Es kann natürlich Zufall sein, dass der Codec sowieso immer an jedem Szenenwechsel einen Keyframe einschiebt.

AndyK70
13.12.2015, 21:40
Das ist ganz anders bei DivX.

Die Erklärung dazu hat dir schon Artemis gegeben.

monarc99
14.12.2015, 13:22
Warum nicht 100%?

Ist schwer zu erklären, aber ich probiere es mal:


Es liegt am BFrame Delay Effekt, den einige Programme nicht rausrechnen.

Sobald BFrames im Spiel sind, ist die Reihenfolge der Frames im Stream nicht mehr linear. d.h. der Decoder (z.B. x264vfw,ffdshow) muss die Frames richtig sortieren, bevor er sie einem Programm (z.B. Coldcut, Virtualdub) übergibt.
Dafür muss der Decoder bei alten APIs (wie sie CC,CA,VD verwenden) tricksen. Dabei kommt es aber zu einer Verschiebung der Frames (auch bframe delay genannt)

z.B.: so bekommt Coldcut das Frame 252, wenn er glaubt, dass er gerade Frame 250 vom Decoder anfordert. -> eine Verschiebung der Frames -> in diesem Fall ist der bframe delay 2, weil es sich um 2 Frames verschoben hat.

Um wieviel die Frames verschoben werden, kann von Rechner zu Rechner unterschiedlich sein. In der Regel um die 2-8 - hängt vom jeweiligen Decoder und der Anzahl der Decoderthreads ab.
Das bedeutet, dass cutlisten von Rechner zu Rechner nicht mehr übertragbar sind, solange Programme verwendet werden, die den bframe delay nicht rausrechnen. In unseren Fall Coldcut, Cutassisant oder Virtualdub.


Beispiel:

Coldcut User 1, auf seinem Rechner wird durch den Decoder, den er bei sich installiert hat, die Frames um 2 verschoben. Coldcut rechnet es nicht raus, sondern ignoriert es. (mit der Folge, dass alle Werte in den cutlisten falsch sind)
User 1 erstellt jetzt eine für ihn tadellose cutlist, die bei ihm perfekt funktioniert und lädt sie auf cutlist.at hoch.

CutAssistant User 2, bei ihm werden die Frames durch den Decoder um 4 verschoben.
Er lädt die Cutlist von User 1 und schneidet damit. Natürlich funktioniert die cutlist bei ihm nicht richtig, Der Schnitte liegen 2 Frames daneben.
Dafür bekommt User 1 logischerweise eine böse Bewertung von User 2 auf cutlist.at, weil er diesen als unfähig ansieht.

Cutana User 3 lädt auch die cutliste von User 1. Da Cutana fast das einzige Programm ist, dass den bframe delay richtig behandelt, ist der bframe delay in Cutana 0.
Das bedeutet, das man auch wirklich Frame 250 sieht, wenn cutana Frame 250 anzeigen soll. Man könnte also sagen, es arbeitet framegenau.

Trotzdem sind auch Cutana User vom bframe delay betroffen, weil sie mit Virtualdub schneiden müssen. Und VD ist teilweise in bestimmten Situationen auch vom bframe effekt (und diversen Bugs) betroffen.
Auch bei User 3 kann der Schnitt also daneben gehen.

Um es zusammenzufassen:
Wenn ihr framegenauen Schnitt bei H264 wollt, werdet CC, CA und VD los.
Cutana (und auch otrverwaltung++) arbeiten richtig.

Cutana bräuchte nur einen Ersatz für VD fürs Schneiden, dann hättet ihr eine framegenau Lösung für H264.
(wie es otrverwaltung + smartmkvmerge schon ist)

mfg