Discussion:
Framegenaues Schneiden von h.264
(zu alt für eine Antwort)
Detlef Wirsing
2014-03-11 18:05:54 UTC
Permalink
Hallo.

Gibt es inzwischen Programme, die h/x264 framegenau schneiden, ohne
das ganze Video neu zu kodieren? Wenn ich im Internet suche, habe ich
den Eindruck, es hat sich seit 2010 nichts getan. Videoredo TV Suite 4
kann es wohl, läuft aber anscheinend bisher nicht unter Windows 8.
Welche Alternativen gibt es?

Mit freundlichen Grüßen
Detlef Wirsing
Christian Potzinger
2014-03-11 19:57:13 UTC
Permalink
Post by Detlef Wirsing
Gibt es inzwischen Programme, die h/x264 framegenau
schneiden, ohne das ganze Video neu zu kodieren?
Wie sollte das bei einem Video gehen, wo nicht jedes
Frame ein Keyframe ist?
--
ryl: G'Kar
Hergen Lehmann
2014-03-11 20:21:50 UTC
Permalink
Post by Christian Potzinger
Post by Detlef Wirsing
Gibt es inzwischen Programme, die h/x264 framegenau
schneiden, ohne das ganze Video neu zu kodieren?
Wie sollte das bei einem Video gehen, wo nicht jedes
Frame ein Keyframe ist?
Es reicht, von der Schnittstelle bis zum nächsten Keyframe neu zu
kodieren. Ab dort kann dann 1:1 kopiert werden.

Hergen
Beef Jerky
2014-03-11 21:06:23 UTC
Permalink
Post by Hergen Lehmann
Es reicht, von der Schnittstelle bis zum nächsten Keyframe neu zu
kodieren. Ab dort kann dann 1:1 kopiert werden.
IIRC hat das eher was mit der GOP-Struktur zu tun. Bei closed GOPs
referenzieren B-Frames nur Frames aus der GOP, in der sie stehen. Dann
könnte man framegenau schneiden und müsste nur das betreffende GOP neu
kodieren. Bei open GOPs dürfen B-frames auch frames aus folgenden GOPs
referenzieren. Man muss dann nicht nur die eine GOP neu kodieren,
sondern letztlich alles ab dem Schnitt, weil sich quasi eine
Abhängigkeitskette ergibt. Mit open GOPs kann man nun aber sehr viel
effizienter kodieren, als mit closed GOPs und so sind z.B. alle
HDTV-Streams mit open GOPs kodiert. Selbst wenn man dann nur an
I-Frames schneidet, kann der Stream an der Schnittstelle Fehler durch
fehlende Referenzen enthalten... Ist ein bischen aus der Erinnerung aber
ich meine so ähnlich trägt es sich zu.

Gruß,
Beef
Marcel Müller
2014-03-11 21:14:00 UTC
Permalink
Post by Beef Jerky
IIRC hat das eher was mit der GOP-Struktur zu tun. Bei closed GOPs
referenzieren B-Frames nur Frames aus der GOP, in der sie stehen. Dann
könnte man framegenau schneiden und müsste nur das betreffende GOP neu
kodieren. Bei open GOPs dürfen B-frames auch frames aus folgenden GOPs
referenzieren. Man muss dann nicht nur die eine GOP neu kodieren,
sondern letztlich alles ab dem Schnitt, weil sich quasi eine
Abhängigkeitskette ergibt. Mit open GOPs kann man nun aber sehr viel
effizienter kodieren, als mit closed GOPs und so sind z.B. alle
HDTV-Streams mit open GOPs kodiert. Selbst wenn man dann nur an I-Frames
schneidet, kann der Stream an der Schnittstelle Fehler durch fehlende
Referenzen enthalten... Ist ein bischen aus der Erinnerung aber ich
meine so ähnlich trägt es sich zu.
Die Tatsache, dass man beim Fernseher auch bei HD das Programm
umschalten kann, spricht gegen diese Theorie.


Marcel
Beef Jerky
2014-03-11 21:20:39 UTC
Permalink
Post by Marcel Müller
Die Tatsache, dass man beim Fernseher auch bei HD das Programm
umschalten kann, spricht gegen diese Theorie.
Woher weißt Du, welches Frame Dir Dein Fernseher nach dem Umschalten als
erstes anzeigt? HDTV-Streams enthalten keine IDR-Frames...
Marc Stibane
2014-03-12 11:05:40 UTC
Permalink
Post by Beef Jerky
Post by Marcel Müller
Die Tatsache, dass man beim Fernseher auch bei HD das Programm
umschalten kann, spricht gegen diese Theorie.
Woher weißt Du, welches Frame Dir Dein Fernseher nach dem Umschalten als
erstes anzeigt? HDTV-Streams enthalten keine IDR-Frames...
Ist doch wurscht. Hauptsache, nach 1-2 Sekunden ist das Bild
vollständig. Und genau diese 1-2 Sekunden könnte man re-kodieren, dann
den Rest der Aufnahme einfach nur kopieren.
--
In a world without walls and fences,
who needs windows and gates?
Beef Jerky
2014-03-12 18:07:21 UTC
Permalink
Post by Marc Stibane
Ist doch wurscht. Hauptsache, nach 1-2 Sekunden ist das Bild
vollständig. Und genau diese 1-2 Sekunden könnte man re-kodieren, dann
den Rest der Aufnahme einfach nur kopieren.
Das versuchte ich ja zu erklären. Wenn Dein h.264 Stream closed GOPs
hat, dann müsste das funktionieren. Wenn er aber open GOPs enthält geht
es nicht, denn Du müsstest das folgende GOP auch neu kodieren, aber dann
auch das nächste und das nächste usw. usf., weil jedes GOP auf das
vorhergehende verweisen *kann* nicht muss.
Marc Stibane
2014-03-12 20:57:12 UTC
Permalink
Post by Beef Jerky
Post by Marc Stibane
Ist doch wurscht. Hauptsache, nach 1-2 Sekunden ist das Bild
vollständig. Und genau diese 1-2 Sekunden könnte man re-kodieren,
dann den Rest der Aufnahme einfach nur kopieren.
Das versuchte ich ja zu erklären. Wenn Dein h.264 Stream closed GOPs
hat, dann müsste das funktionieren. Wenn er aber open GOPs enthält geht
es nicht, denn Du müsstest das folgende GOP auch neu kodieren, aber dann
auch das nächste und das nächste usw. usf., weil jedes GOP auf das
vorhergehende verweisen *kann* nicht muss.
Nein. Bzw. höchstens wenn das ein DVD- oder BluRay-Rip ist. Und auch
dann nur bis zum nächsten Kapitel. Bei Fernseh-Mitschnitten niemals.
Sonst könnte man ja nie im Stream vorspringen bzw. bei TV umschalten.
--
In a world without walls and fences,
who needs windows and gates?
Hergen Lehmann
2014-03-12 21:27:12 UTC
Permalink
Post by Marc Stibane
Nein. Bzw. höchstens wenn das ein DVD- oder BluRay-Rip ist. Und auch
dann nur bis zum nächsten Kapitel. Bei Fernseh-Mitschnitten niemals.
Sonst könnte man ja nie im Stream vorspringen bzw. bei TV umschalten.
Auch bei DVD und Bluray gehört schneller Vor-/Rücklauf zu den
Standard-Features, es müssen also in regelmäßigen und relativ dichten
Abständen geschlossene GOPs kodiert werden.

Endlos-GOPs findet man eigentlich fast nur in der Piraterie-Szene, wo
echt kewle kidz versuchen, auch noch das letzte Byte herauszuquetschen.

Hergen
Beef Jerky
2014-03-12 21:41:30 UTC
Permalink
Post by Hergen Lehmann
Endlos-GOPs findet man eigentlich fast nur in der Piraterie-Szene, wo
echt kewle kidz versuchen, auch noch das letzte Byte herauszuquetschen.
Ja, alles klar und in der Piraterie-Scene HDTV-Ausstrahlung...

Pfff..
Hergen Lehmann
2014-03-13 00:04:02 UTC
Permalink
Post by Beef Jerky
Post by Hergen Lehmann
Endlos-GOPs findet man eigentlich fast nur in der Piraterie-Szene, wo
echt kewle kidz versuchen, auch noch das letzte Byte herauszuquetschen.
Ja, alles klar und in der Piraterie-Scene HDTV-Ausstrahlung...
Aber klar doch!
Wie sonst kommen Fans in aller Welt an aktuelle Staffeln von TV-Serien,
wenn nicht durch illegal verbreitete TV-Mitschnitte? Und natürlich
erfolgen diese Mitschnitte anno 2014 überwiegend aus dem HDTV, per
Schnitt von Werbung befreit und danach mit allen greifbaren Tricks für
den Transport eingedampft.
Post by Beef Jerky
Pfff..
Wo auch immer jetzt ihr Problem liegt, Herr Trockenfleisch...
Uwe Kotyczka
2014-03-17 12:25:02 UTC
Permalink
Post by Hergen Lehmann
Bluray
und HDTV basieren aber auf MPEG-4/AVC. Das kann man verlustfrei und
fehlerfrei nur an IDR-Frames schneiden und ja, tatsächlich enthalten
Blurays IDR-Frames, damit man besser vor und zurückspulen kann.
DVB-HDTV-Streams sollen aber gar nicht gespult werden sondern
stattdessen möglichst effizient kodiert sein und zumindest die
öffentl.-rechtlichen Sender verwenden keine IDR-Frames. Nichtsdestotrotz
enthalten diese Streams I-Frames, die wie IDR-Frames vollständige Bilder
speichern an denen Dein TV beim Umschalten einspringen kann. Bei
MPEG-4/AVC taugen I-Frames aber anders als bei MPEG-2 nicht mehr zum
fehlerfreien Schneiden.
Nur mal zu meinem Verständnis (ich kenne MPEG-4/AVC nicht so gut):
Warum ist das so? Was unterscheidet I-Frames von IDR-Frames?
Post by Hergen Lehmann
Bei open GOPs ist das nächste Problem, dass Du
eine einzelne GOP nicht neu kodieren kannst, ohne im nächsten Fehler zu
erzeugen. Wenn man soetwas fehlerfrei machen wollte müsste man ab der
Schnittstelle den ganzen Rest neu kodieren...
Naja, den ganzen Rest doch wohl nicht, sondern "nur" die jeweils
betroffenen Frames. Und dann rekursiv die wiederum betroffenen
Frames.
Ist diese Rekursion nach "vernünftiger" Zeit zu Ende oder kann es
passieren, daß man wirklich bis zum Ende der Aufnahme immer wieder
Frames anfassen muß? Gibt es da eine mittlere Wahrscheinlichkeit,
über wie viele GOPs sich das Smart-Rendering zieht?

Wenn ich mich recht entsinne, konnte Avidemux 2.5.6 MPEG-4/AVC
nicht vernünftig schneiden. Ich hatte dann mal Avidemux 2.6.1
probiert, das schien aber noch sehr fehlerhaft zu sein. Inzwischen
gibt es Avidemux 2.6.7, und in einem der Change-Logs zwischen
2.6.1 und 2.6.7 stand, daß der Schnitt von h.264 inzwischen
funktioniert. Wie machen die denn das?

Beef Jerky
2014-03-12 21:40:05 UTC
Permalink
Post by Marc Stibane
Nein. Bzw. höchstens wenn das ein DVD- oder BluRay-Rip ist. Und auch
dann nur bis zum nächsten Kapitel. Bei Fernseh-Mitschnitten niemals.
Sonst könnte man ja nie im Stream vorspringen bzw. bei TV umschalten.
DVD und Bluray bei diesem Thema in einen Topf zu schmeißen zeigt mir,
dass Du nicht wirklich verstanden hast, wovon Du redest. DVD basiert auf
MPEG-2, das man an allen I-Frames verlust- und fehlerfrei schneiden
kann. An allen anderen Frames kann man MPEG-2 durch Kodieren des
betreffenden GOPs fehlerfrei und nahezu verlustfrei schneiden. Bluray
und HDTV basieren aber auf MPEG-4/AVC. Das kann man verlustfrei und
fehlerfrei nur an IDR-Frames schneiden und ja, tatsächlich enthalten
Blurays IDR-Frames, damit man besser vor und zurückspulen kann.
DVB-HDTV-Streams sollen aber gar nicht gespult werden sondern
stattdessen möglichst effizient kodiert sein und zumindest die
öffentl.-rechtlichen Sender verwenden keine IDR-Frames. Nichtsdestotrotz
enthalten diese Streams I-Frames, die wie IDR-Frames vollständige Bilder
speichern an denen Dein TV beim Umschalten einspringen kann. Bei
MPEG-4/AVC taugen I-Frames aber anders als bei MPEG-2 nicht mehr zum
fehlerfreien Schneiden. Bei open GOPs ist das nächste Problem, dass Du
eine einzelne GOP nicht neu kodieren kannst, ohne im nächsten Fehler zu
erzeugen. Wenn man soetwas fehlerfrei machen wollte müsste man ab der
Schnittstelle den ganzen Rest neu kodieren...
Christian Potzinger
2014-03-12 05:09:51 UTC
Permalink
Post by Hergen Lehmann
Post by Christian Potzinger
Wie sollte das bei einem Video gehen, wo nicht jedes
Frame ein Keyframe ist?
Es reicht, von der Schnittstelle bis zum nächsten Keyframe
neu zu kodieren. Ab dort kann dann 1:1 kopiert werden.
Deswegen frugte ich ja ;) Aber das ist wieder etwas,
was nicht jedes Programm kann (smart rendering).
--
ryl: G'Kar
Detlef Wirsing
2014-03-12 14:37:04 UTC
Permalink
Post by Christian Potzinger
Post by Hergen Lehmann
Post by Christian Potzinger
Wie sollte das bei einem Video gehen, wo nicht jedes
Frame ein Keyframe ist?
Es reicht, von der Schnittstelle bis zum nächsten Keyframe
neu zu kodieren. Ab dort kann dann 1:1 kopiert werden.
Deswegen frugte ich ja ;) Aber das ist wieder etwas,
was nicht jedes Programm kann (smart rendering).
Ebend. ;-)

Deshalb suche ich ja. Bei SDTV/MPEG2 habe ich gute Erfahrungen mit
Wombles MPEG Video Wizard gemacht. Sowas suche ich nun für HDTV.
Leider kommt Womble diesbezüglich anscheinend nicht aus den Hufen.

Mit freundlichen Grüßen
Detlef Wirsing
Detlef Wirsing
2014-03-12 14:33:33 UTC
Permalink
Post by Christian Potzinger
Post by Detlef Wirsing
Gibt es inzwischen Programme, die h/x264 framegenau
schneiden, ohne das ganze Video neu zu kodieren?
Wie sollte das bei einem Video gehen, wo nicht jedes
Frame ein Keyframe ist?
Durch Kodierung nur an den Schnittstellen.

Mit freundlichen Grüßen
Detlef Wirsing
Frank Kroschewski
2014-03-12 16:02:52 UTC
Permalink
Post by Detlef Wirsing
Gibt es inzwischen Programme, die h/x264 framegenau
schneiden, ohne das ganze Video neu zu kodieren?
Ich nutze Avidemux und/oder Tsdoctor. Tsdoctor schneidet Framegenau und
Encodet nur an der Schnittstelle. Testen kannst du es 30 Tage lang.

MfG
F.Kroschewski
Beef Jerky
2014-03-12 18:10:14 UTC
Permalink
Post by Frank Kroschewski
Ich nutze Avidemux und/oder Tsdoctor. Tsdoctor schneidet Framegenau und
Encodet nur an der Schnittstelle. Testen kannst du es 30 Tage lang.
Das TSDoctor framegenau schneiden kann wäre mir neu. Aus dem Manual:

<zitat>
Bevorzuge Schnitte vor dem Cut-Out-Schnittpunkt
Dem Cut-Out-Schnittpunkt folgt in der Regel ein Werbeblock. Da der TS-Doctor
aber leider nicht framegenau schneiden kann, würden noch alle Frames zu
sehen
sein bis zum nächsten P/I-Frame. Durch Aktivierung dieser Option wird
der P/IFrame vor dem Schnittpunkt ausgewählt und es wird sichergestellt,
dass kein Frame
der Werbung zu sehen ist.
</zitat>

Die Art und Weise wie TSDoctor einen Stream schneidet *kann* (bei open
GOPs) zu Bildfehlern durch fehlende Referenzen führen.
Lesen Sie weiter auf narkive:
Loading...