Twitch Livestream mitschneiden - variable FR verlustfrei in konstante umwandeln

  • Moin.

    Bin mir nicht ganz sicher ob ich hier im richtigen Subforum bin aber ich fang trotzdem mal an.

    Ich suche im Grunde genommen nach einer Möglichkeit, einen, über stdin einkommenden, H.264+AAC (als MPEG-TS) Livestream verlustfrei als MP4 abzuspeichern.
    Dabei soll die variable Bildwiederholrate der Quelle durch dynamische Bildduplikation in eine konstante umgewandelt werden ohne, dass Bilder neu kodiert/komprimiert werden.
    Die Bildqualität soll dadurch bei nur etwas geringerer Kompression (aufgrund der duplizierten Frames) exakt identisch bleiben (verlustfrei).

    Kann ffmpeg vielleicht sowas?


    Hoffe mal, dass jemand ne Idee hat, da kaum ein Programm mit variablen Framerates klarkommt und einen bereits wunderbar kodierten AVC Steam nochmal zu kodieren nur um Bilder zu duplizieren wäre sehr ungünstig.

  • :welcome:

    Tut mir leid, aber ... "geht nicht". Jedenfalls wäre mir kein Programm bekannt, das in der Lage wäre, selektiv bereits encodierte Frames einer GOP so neu zu arrangieren und jeden inter-codierten Block mit neuen Referenzen zu manipulieren, dass dabei die Abhängigkeiten zwischen all den P- und B-Frames trotz einer neuen Lage zueinander erhalten bleiben. Vermutlich wäre das sogar technisch unmöglich, weil Motion-Vektoren eine andere Gewichtung bekommen, wenn die Referenzframes weiter entfernt sind. Und es gibt ja auch gewisse maximale Entfernungen, die nach dem Einfügen neuer B-Frames in Mini-GOPs (Bereiche zwischen I- oder P-Frames) überschritten werden könnten.

  • Vermutlich wäre das sogar technisch unmöglich


    Könnte man eine verlustfreie Umwandlung im Nachhinein mit mehr Rechenaufwand durchführen oder ist H.264 generell nicht flexibel genug, um so im Codec rumzupfuschen?

    2 Mal editiert, zuletzt von vin97 (31. Januar 2016 um 09:49)

  • "Der Codec" ist Software. Willst du in der Software herumpfuschen oder im Videostream? Letzteres wohl...

    Ich weiß ja nicht, wie weit so dein Verständnis geht, wie P- und B-Frames funktionieren, und was Makroblöcke sind, und was den Unterschied zwischen Intra- und Inter-Codierung angeht. Ohne diese Kenntnisse wirst du wahrscheinlich ein viel zu simples Bild davon haben, wie Komprimierung in modernen Videoformaten funktioniert. Mangelnde Flexibilität wäre jedenfalls der falsche Vorwurf. Zumindest an die Spezifikationen der Videoformate. Aber hohe Effizienz bei der Komprimierung erfordert sehr viele Abhängigkeiten zwischen den Frames, und nachträgliche Änderungen an deren Struktur bedeuten höheren Aufwand als einfaches Encodieren.

    Kurz gesagt: Der Aufwand wäre immens, und der Nutzen höchst fragwürdig. Zuerst wäre wohl zu hinterfragen, ob eine Konvertierung von VFR in CFR wirklich sein muss, zu welchem Zweck. Und wenn sie nötig wäre, dann wäre wohl eine komplette Konvertierung erforderlich, vielleicht auch mit besseren Verfahren als nur Frame-Vervielfältigungen; damit die Recodierung verlustarm bleibt, wird sie aber wahrscheinlich deutlich mehr Bitrate erfordern als ein solcher Live-Stream, der ja bereits eher mit mit starker Einschränkung der Bitrate geliefert wurde.

Jetzt mitmachen!

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