Mehr I-Frames zum Schneiden

  • Mir persönlich gefällt nicht, dass ein Reencoding des ganzen Films notwendig ist. Kennt jemand ein Programm (frei oder kostenpflichtig; Linux oder Windows), das Frame-genau schneiden kann, das ursprüngliche Encoding beibehält für alle Streams und halt am Anfang neuen I-Frame einfügt und bis zum nächsten I-Frame ein Reencoding macht; am Ende Reencoding vom letzten I-Frame bis zum Schnittpunkt?


    Diese Alternative zu meiner Ursprungsfrage nehme ich auch gern!
    Und so einfach das klingt, ich habe bisher nichts derartiges gefunden.

    Avidemux kann das übrigens, aber nur für Codecs "Divx3" und "Mpeg4".
    http://avidemux.sourceforge.net/doc/en/cutting.xml.html

  • Moin

    Zitat von Commerzpunk

    Diese Alternative zu meiner Ursprungsfrage nehme ich auch gern!
    Und so einfach das klingt, ich habe bisher nichts derartiges gefunden.

    Kann ich nur bestätigen ! Bin/war auch auf der Suche nach solch einem Schnittprogramm, meine bei der suche irgendwo gelesen zu haben, daß bei H265 (eventuell auch h264) es technisch vom Codec ncht möglich ist, bei P bzw B Frames zu schneiden per Smartrendering. Meine DVB-T2 (ÖR) schneide ich mit Avidemux, die halbe SEkunde am Anfang/Ende sind zu verschmerzen, meine Mpeg2 Aufnahmen (Private) schneide ich Framegenau mit DVBcut und codiere sie erst dann mit Handbrake.

    Tschau nepo

  • Mir persönlich gefällt nicht, dass ein Reencoding des ganzen Films notwendig ist. Kennt jemand ein Programm (frei oder kostenpflichtig; Linux oder Windows), das Frame-genau schneiden kann, das ursprüngliche Encoding beibehält für alle Streams und halt am Anfang neuen I-Frame einfügt und bis zum nächsten I-Frame ein Reencoding macht; am Ende Reencoding vom letzten I-Frame bis zum Schnittpunkt?

    Das hier bereits genannte VideoRedo TV Suite macht das. Ist aber kostenpflichtig (die Lizenzgebühren sind 'ne Hausnummer) und nur für Windows. Ich habe seit einigen Jahren eine Lizenz. Das Programm macht genau das, was es soll.

    videoredo.com

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ich habe hier ein Dualbootsystem. In der Regel arbeite ich mit Linux, für Photoshop und VideoRedo nehme ich aber Windows. Auch aus arbeitstechnischen Gründen muss ich halt auf beiden Systemen fit sein.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • meine bei der suche irgendwo gelesen zu haben, daß bei H265 (eventuell auch h264) es technisch vom Codec ncht möglich ist, bei P bzw B Frames zu schneiden per Smartrendering.

    Findest du die Information noch mal? Würde mich interessieren.

    Vielleicht verstehe ich auch Smartrendering nicht. Auf Anhieb will es mir noch nicht in den Kopf, dass es nicht mit Reencoding vom ersten Schnittpunkt bis zum ersten I-Frame und vom letzten I-Frame bis zum Schnittpunkt am Ende gehen sollte. (Dass man nicht einfach abschneiden kann am Ende - was man leicht meinen könnte - ist schon klar, wegen der B-Frames, die auf die Zukunft referenzieren können).

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

  • War auch lange auf der Suche nach so einer Software. Und ja, VideoReDo ist wirklich ein klasse Tool dafür.
    Gleichzeitig aber vom Preisniveau her für mich uninteressant für meine Bedürfnisse und Einsatzzwecke.
    Letztendlich muss aber jeder für sich entscheiden, was er für Ansprüche hat.

    Für meine paar Aufnahmen wird Avidemux mit Schnittmöglichkeit in I-Frame (Start) und P-Frame (Ende) meinen Anforderungen gerecht.
    Die paar Sekunden, die da verloren gehen, merkt man i. d. R. im Anschluss gar nicht mehr...

    @Commerzpunk
    Bin noch auf folgendes Tool aufmerksam geworden. Selbst aber noch nie getestet. Vielleicht ist es einen Versuch wert (zumal Portable).
    https://www.videohelp.com/software/MKV-Cutter

  • Hier findest Du eine gute Erklärung zum MPEG-2: https://www.radonmaster.de/robernd/tMPEG.html

    H264/H265 funktioniert nach dem gleichen Prinzip, mit dem Unterschied, dass die GOPs größer und variabler sind und natürlich verbesserte Kompressionsalgorhytmen besitzen (Redundanz- und Irrelevanzreduktion).

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Danke dir. Deckt sich auch mit meinem bisherigen Verständnis. Allerdings halt nicht mit der Aussage oben, dass "es technisch vom Codec nicht möglich ist, bei P bzw B Frames zu schneiden per Smartrendering.". Aber vielleicht verstehe ich einfach "Smartrendering" nicht. Dass eine Neukodierung um die Schnittstellen notwendig ist, ist leicht nachvollziehbar. Aber dazwischen sollte es ohne Neukodierung gehen. Oder heißt jetzt "Smartrendering", dass überhaupt kein Frame neu kodiert wird? (Ich fände es schon smart genug, wenn zwischen den unberührten I-Frames nicht neu kodiert wird. Und insbesondere beim Cut-In ist es unabhängig von vorliegenden B-Frames ja nahezu offensichtlich, dass das nicht gehen kann).

    Aus dem Link oben: "Ein bildgenauer Schnitt ist nur möglich, wenn in der Nachbarschaft des Schnittes die Bilder decodiert und wieder neu encodiert werden."

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

  • Findest du die Information noch mal? Würde mich interessieren.

    Vielleicht verstehe ich auch Smartrendering nicht. Auf Anhieb will es mir noch nicht in den Kopf, dass es nicht mit Reencoding vom ersten Schnittpunkt bis zum ersten I-Frame und vom letzten I-Frame bis zum Schnittpunkt am Ende gehen sollte. (Dass man nicht einfach abschneiden kann am Ende - was man leicht meinen könnte - ist schon klar, wegen der B-Frames, die auf die Zukunft referenzieren können).

    Vom Prinzip funktioniert Smart Rendering bei H264/H265 fast genau so, wie es bei MPEG-2 noch war.

    Was sich geändert hat, ist, dass neuere Encoder/Codecs viel mehr Optionen und Optimierungen enthalten, die es umöglich machen, Streams einfach aneinander zu hängen.
    Damit das "gesmart gerenderte" Video abspielbar ist, müssen die kopierten GoPs (group of pictures = I Frame mit allen folgenden Bildern, die von diesen I Frame abhängen) kompatibel zu den neu kodierten GoPs sein.
    Wenn nicht, gibt es Bildfehler am Schnittpunkt der neuen und alten GoPs.

  • Danke dir. Kannst du das noch genauer erläutern bzw, eine Referenz nenne?

    Wenn es nur darum geht, dass es schwerer ist, Streams aneinander zu hängen: das passiert ja auch, wenn man an I-Frames einen Werbeblock rausschneidet. Und das scheinen ja avidemux und ts-doctor gut zu beherrschen, ohne Artefakte.

    Welche Optionen und Optimierungen erschweren denn das aneinander hängen oder machen es (scheinbar) unmöglich? Ist mit einem I-Frame nicht wirklich tabula rasa? Wenn nicht, wie kann Live-TV funktionieren, das ja bei I-Frame einsetzen wird?

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

  • Danke dir. Kannst du das noch genauer erläutern bzw, eine Referenz nenne?

    Wenn es nur darum geht, dass es schwerer ist, Streams aneinander zu hängen: das passiert ja auch, wenn man an I-Frames einen Werbeblock rausschneidet. Und das scheinen ja avidemux und ts-doctor gut zu beherrschen, ohne Artefakte.

    Beispiel: ein HD Stream mit H264 kodiert

    Wenn du nur an I-Frames schneidest, nimmst du einfach ganze GoPs raus. Dann die übrig gebliebenen GoPs wieder aneinanderzufügen, ist dann einfach, weil ja alle GoPs vom gleichen Encoder und mit den gleichen Kodiereinstellungen erzeugt wurden. Und die kannst du relativ einfach aneinander hängen.

    Beim Smart Rendern erzeugst du aber neue GoPs. Und die müssen in der Kodierung identisch zu den alten GoPs sein. Und dafür musst du den Encoder und die Kodiereinstellungen der alten GoPs kennen. Diese sind dir aber bei einem fremdem Stream unbekannt. Wenn die Kodierungen der alten und neuen GoPs nicht zusammenpassen, gibt es Probleme an der Schnittstelle (bis hin zum Crash des Decoders)

    z.B. meine alte WDTV hatte einen H264 Hardware Decoder
    wenn ich ihr einen H264 Stream mit ref=3 ( Referenzframes) gegeben habe, weiss der Decoder, dass er bis zu 3 Frames der schon decodieren Bilder im Decoding Buffer halten muss, um die folgenden Frames decodieren zu können. Und wenn ref über den gesamten Stream gleich war, klappte das auch hervorragend.

    Ein Stream aber mit den ersten 250 Frames mit ref=3, und die nächsten 250 Frames mit anderen Kodiereinstellungen (z.B. ref=8), hat den Decoder crashen lassen. Nur Steckerziehen hat ihn dann wiederbelebt. Das auf einmal Frames im Bitstream sind, die bis zu 8 vorherige Frames referenzieren und die er auch nicht im Decoding Buffer aufgehoben hat, hat ihn böse straucheln lassen.

    Und bei h264/h265 gibt es viele Parameter, die über den ganzen Stream gleich sein müssen, sonst kommen die Decoder damit nicht klar.
    Bei Mpeg-2 war das alles noch einfacher gestrickt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!