extra infos im x264 stream unterbringen ?

  • Hallöchen... :D

    beim encoden mit x264 werden ja bekanntlich die Encodiereinstellungen mit in den stream geschrieben. Gibt es eine Möglichkeit für einen normal sterblichen auch andere Zusatzinfos mit in den stream zu packen, so dass sie dann zusammen mit den Encode-einstellungen in Mediainfo lesbar werden ?

    Grüße :)

  • In x264 habe ich solche Optionen nicht gesehen. Eventuell ist es mit anderen Tools aber möglich, einen MPEG4-Videostream zu verändern, um solche Informationen aufzunehmen.

    Wesentlich einfacher wäre es aber wohl, Zusatzdaten im Kontainer zu hinterlegen. Matroska bietet mit Sicherheit einige Möglichkeiten, Stream-Kommentare und Film-Kommentare (insgesamt) unterzubringen.

  • Meinst du nicht, ich hätte hier welche aufgezählt, wenn ich welche kennen würde? Wenigstens ansatzweise? -- Aber es gibt auch Tools, die ich nicht kenne.

    Es ist schon zu lange her, dass ich mich genau erinnern könnte, aber vielleicht können die mpeg4iptools was in der Richtung.

    Ansonsten - wie gesagt - sind Kontainer leichter zu manipulieren (mkvtoolnix).

  • Tatsächlich wäre es wohl am einfachsten, die entsprechende Methode von x264 entsprechend anzupassen. Rudimentäre Kenntnisse in C vorausgesetzt ;)

    Du solltest dir mal die Funktion "param2string" in "common/common.c" näher ansehen:
    http://git.videolan.org/gitweb.cgi?p=x…common/common.c

    Im Grunde sollte es genügen entsprechende Zeilen nach folgendem Muster in die genannte Funktion einzufügen:

    Code
    s += sprintf( s, "Mein Text hier!" );

    Eventuell musst du aber noch die Größe des Puffer anheben (siehe erste Zeile der Funktion). Derzeit wird Platz für insgesamt 1000 Zeichen reserviert.

  • Rudimentäre Kenntnisse in C vorausgesetzt ;)

    sie haben mich durchschaut mylord... bin ein C nuller :nein:

    Im Grunde sollte es genügen entsprechende Zeilen nach folgendem Muster in die genannte Funktion einzufügen:

    Code
    s += sprintf( s, "Mein Text hier!" );


    Eventuell musst du aber noch die Größe des Puffer anheben (siehe erste Zeile der Funktion). Derzeit wird Platz für insgesamt 1000 Zeichen reserviert.


    sorry, bin zu doof... heisst das, das manipulierte .txt-file in x264.exe umbenennen und das wars dann ?(schäm...)

  • sorry, bin zu doof... heisst das, das manipulierte .txt-file in x264.exe umbenennen und das wars dann ?(schäm...)

    D'oh! Nein, so einfach geht's dann doch nicht ;D

    Du benötigst schon den kompletten x264 Quellcode. Das sind durchaus ein paar mehr Dateien! Es genügt aber, die genannte Datei anzupassen.

    Um daraus eine ausführbare EXE Datei zu machen, müssen die Quellcodes dann aber auch noch kompiliert werden :ratlos:

    Dazu benötigt man eine funktionsfähige MSYS/MinGW Umgebung. Am besten inklusive YASM, Pthreads und (sofern MP4 Ausgabe gewünscht) GPAC.

    Wenn das für dich bisher mehr nach böhmischen Dörfern kling, fällt die Option wohl erstmal weg. Es sei denn du hast viel Zeit und Muße :D

    Darf man fragen, welche Information du eigentlich in den H.264 Stream einbetten willst ???

  • D'oh! Nein, so einfach geht's dann doch nicht ;D

    [Blockierte Grafik: http://www.greensmilies.com/smile/smiley_emoticons_flucht.gif]

    Darf man fragen, welche Information du eigentlich in den H.264 Stream einbetten willst ???

    ääh... lol lustige Witze vielleicht ? :D:D nee spaß beiseite, war nur so eine Idee...
    Meistens haben sich meine "sinnlosen" Einfälle im Nachhinein als sehr nützlich erwiesen und da habe ich mir gedacht, vllt wäre das bei dieser "Idee" genauso...

    was spräche denn dagegen, zum Beispiel, eine kurze Inhaltsangabe zum codierten Film einzubetten ?? Tausend Zeichen wären mehr als genug. ja, ja, ich weiss, Kontainer und so... geht auch, klar... is aber längst nicht so originell... :D hat noch niemand vorher so auf die Weise gemacht, verstehst ? Der Phantasie sind keine Grenzen gesetzt und ich lebe meine Spieltriebe auch gerne aus... aber in diesem Fall...:( shit. Ich bin todtraurig jetzt :D

  • Wenn du die einzubettende Nachricht auch noch variabel gestalten willst (Stichwort: Inhaltsangabe), dann müsste man die jeweilige Nachricht ja wohl als zusätzliches Parameter an x264 übergeben. Auch das ist theoretisch machbar, benötigt aber schon einiges mehr an Aufwand. Da ohnehin jeder relevante Container entsprechende Meta Tags unterstützt, ist es den Aufwand wohl nicht wert. Mal ganz davon abgesehen, dass deine "Inhaltsangabe" aus dem H.264 Bitstrom ohnehin von keinem existierenden Player auslesbar wäre - ganz im Gegensatz zu regulären Meta Tags auf Container Ebene. Klar, man könnte sich die x264 Parameter mit MediaInfo und Co anzeigen lassen und dann auch "manuell" deine Inhaltsangabe einsehen. Aber welchen Vorteil soll das bringen?

  • Aber welchen Vorteil soll das bringen?


    auf den ersten Blick mag es vielleicht für eine Inhaltsangabe sinnlos erscheinen... ich gebe zu dass es ein vllt "unglücklich gewähltes" Beispiel ist...

    es liegt in der Natur der Dinge/Erfindungen, dass man in der Gegenwart noch nicht wissen kann wofür sich die Idee in der Zukunft eignen könnte...
    aber meine kleine linke Fingerkuppe juckt, das ist ein untrügliches Zeichen das hier evt. noch was schlummert... :D Kennst du das Gefühl ?

  • Wie schon mehrfach erwähnt: Mit mkvmerge lassen sich verschiedene Informationen in einer Matroska-Datei unterbringen. Nicht im Video-Stream, sondern "daneben" - aber zumindest einfach und flexibel.

    Muss es unbedingt im Video-Stream sein? Filme hebt man sich doch meist als Gesamtheit mit Tonspur(en) auf...

  • Wie schon mehrfach erwähnt...


    ich habs auch schon mehrfach gelesen... :ja:

    Muss es unbedingt im Video-Stream sein?


    gestern fiel mir noch eine Eigenart dieses Verfahrens ein...
    ohne eine Neukodierung würde man z.b. die extra-Infos nicht entfernen können.
    Mit ein bisschen Phantasie täten sich bestimmt verschiedene Verwendungsmöglichkeiten für auf... Mal sehen was mir noch alles zu einfällt... aber das is ja alles sinnlos da sowas bestimmt nicht von irgendwem "kompiliert" werden wird.

  • gestern fiel mir noch eine Eigenart dieses Verfahrens ein...
    ohne eine Neukodierung würde man z.b. die extra-Infos nicht entfernen können.

    Doch, das geht ganz leicht. Den Stream in einem x-beliebigen HexEditor laden und alle Bytes, die zu der "Nachricht" gehören, mit 0x00 Bytes überschreiben. Klar, wenn man eine "geheime" Nachricht verstecken möchte, dann ist es so zumindest etwas besser geschützt, da Otto Normal-User wohl erst gar nicht auf die Idee kommt, dort nach einer Nachricht zu suchen. Aber jeder, der sich halbwegs mit der Materie auskennt, kann die Nachricht genau so leicht finden wie entfernen. Wenn man eine geheime, nicht zu entfernende Nachricht in ein Video einbetten möchte, dann verwendet man dazu ein robustes Video Wasserzeichen! Ohne den geheimem Schlüssel nicht auslesbar und ohne extreme Qualitätsverluste auch nicht zu entfernen. Nicht mal bei einer Formatwandlung ^^

    Mit ein bisschen Phantasie täten sich bestimmt verschiedene Verwendungsmöglichkeiten für auf... Mal sehen was mir noch alles zu einfällt... aber das is ja alles sinnlos da sowas bestimmt nicht von irgendwem "kompiliert" werden wird.

    Wer sagt, dass du es nich selbst kompilieren kannst? Aber rudimentäre C Kenntnisse und den Umgang mit der GNU Toolchain wirst du dir schon anlesen müssen...

  • Doch, das geht ganz leicht. Den Stream in einem x-beliebigen HexEditor laden und alle Bytes, die zu der "Nachricht" gehören, mit 0x00 Bytes überschreiben.


    oh schluck... ich dummie...

    Ohne den geheimem Schlüssel nicht auslesbar und ohne extreme Qualitätsverluste auch nicht zu entfernen. Nicht mal bei einer Formatwandlung ^^

    Meinst du damit sowas wie z.b. das DivX Video Wasserzeichen, das erst dann verschwindet wenn man den Codec installiert hat ?

    Wer sagt, dass du es nich selbst kompilieren kannst?

    Klaro, eine Kuh lernt auch Schlittschuhlaufen wenn sie sonst nichts weiter zu tun hat... :D:D:D ...sorry, verzeih mir :zunge:

  • oh schluck... ich dummie... Meinst du damit sowas wie z.b. das DivX Video Wasserzeichen, das erst dann verschwindet wenn man den Codec installiert hat ?

    Nein! Ich rede von "echten" Video Wasserzeichen. Nicht von einfachen Overlay Grafiken. Ein Video Wasserzeichen ist für den Betrachter unsichtbar. Lediglich mit der entsprechenden Software und sofern man den geheimen(!) Schlüssel kennt, kann man die (geheime) Nachricht wieder aus dem Video auslesen. Und wie bereits erwähnt gibt es robuste Video Wasserzeichen, die sogar Formastwandlungen, verlustbehaftete Kompression (bis zu einem gewissen Grad) und Skalierung überstehen. Sowas bekommt man quasi nicht mehr raus ohne das Video dabei komplett zu zerstören...

Jetzt mitmachen!

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