Tagger für MPEG1/2 ?

  • moin, moin...

    Ich hab die ISOs für MPEG (11172 und 13818) in die Finger bekommen und dabei ist mir augefallen, daß es da "Private Data"-Bereiche gibt.

    Kennt wer ein Tool/Verfahren, mit dem ich in diesem Bereich/Stream einen Text-Block ablegen kann?

    mDv...
    scholly

  • Leider braucht das Teil "elementary streams" (*.m2v,*.mpv) und ich hab entweder VCD-fertige MPEG1-Files da liegen oder geschnittene DVBT-MPEG2-Files.
    Zudem kann man nur einen String eingeben, aber anscheinend keinen vorbereiteten Textblock.

    Trotzdem danke für den Hinweis...

  • Ich hab die ISOs für MPEG (11172 und 13818) in die Finger bekommen und dabei ist mir augefallen, daß es da "Private Data"-Bereiche gibt.


    Private Data gibt es in den Video und Audio Headern der Packs. Welchem Zweck sie dienen, weiß ich nicht. Hatte auch noch keine Streams, wo welche drin waren.

    Für den User interessant sind eigentlich nur die User Data, welche man - wie bigotti5 empfiehlt - mit Restream bearbeiten kann. Ausserdem sollte jeder Hexeditor dazu geeignet sein.

    Leider braucht das Teil "elementary streams" (*.m2v,*.mpv) und ich hab entweder VCD-fertige MPEG1-Files da liegen oder geschnittene DVBT-MPEG2-Files.


    Das ist logisch. Wenn die Länge der User Data geändert wird, muss der Stream neu gemuxt werden, weil sonst die Paketgröße nicht mehr stimmt.

    Zudem kann man nur einen String eingeben, aber anscheinend keinen vorbereiteten Textblock.


    Was ist der Unterschied zwischen einem Textblock und einem String? - Der Textblock enthält zusätzlich Zeilenumbrüche (#13#10).

    Gruß Frank

  • Zitat von Fr_An

    Für den User interessant sind eigentlich nur die User Data, welche man - wie bigotti5 empfiehlt - mit Restream bearbeiten kann.

    Das hab ich auch versucht.

    Zitat

    Ausserdem sollte jeder Hexeditor dazu geeignet sein.

    Ich kannte bisher nur welche, wo man vorhandenen Text überschreiben, aber nicht einfügen konnte.

    Zitat

    Was ist der Unterschied zwischen einem Textblock und einem String? - Der Textblock enthält zusätzlich Zeilenumbrüche

    Aber in dem Stringfeld von Restream taucht dann nur die erste Zeile auf, sodaß ich mir nie sicher wäre, was da nun zum Schreiben angenommen würde.

    Zitat

    Wenn die Länge der User Data geändert wird, muss der Stream neu gemuxt werden, weil sonst die Paketgröße nicht mehr stimmt.

    Damit hat sich das wohl erledigt, die Arbeit mach ich mir nich zusätzlich.
    Ich hatte gehofft, das ginge ähnlich problemlos, wie Taggen mit abcAVI für AVI oder den ganzen ID3V2-Taggern für mp3.

    Immerhin wieder was gelernt :)

    Danke...
    scholly

  • Aber in dem Stringfeld von Restream taucht dann nur die erste Zeile auf, sodaß ich mir nie sicher wäre, was da nun zum Schreiben angenommen würde.


    Das Stringfeld nennt sich TEdit und ist in der Regel einzeilig. Man kann sich auch ein mehrzeiliges Edit erstellen oder ein TMemo verwenden.

    Damit hat sich das wohl erledigt, die Arbeit mach ich mir nich zusätzlich.
    Ich hatte gehofft, das ginge ähnlich problemlos, wie Taggen mit abcAVI für AVI oder den ganzen ID3V2-Taggern für mp3.


    Die ID3 sind etwas anderes. Wenn ich mich recht erinnere, sind das extra Datensätze, welche dem MP3 vorangestellt oder angehängt werden. Ich weiß ja nicht, wofür Du das brauchst, aber wenn Du Dir ein eigenes Programm schreibst, kannst Du dafür auch das erste Paket missbrauchen. Da steht der Pack Header und der System Header drin. Daran schliessen sich über 2000 Füllbyte im Padding Stream an.

    Gruß Frank

  • Zitat von Fr_An

    Man kann sich auch ein mehrzeiliges Edit erstellen oder ein TMemo verwenden.
    [...]
    Ich weiß ja nicht, wofür Du das brauchst, aber wenn Du Dir ein eigenes Programm schreibst, kannst Du dafür auch das erste Paket missbrauchen.

    Ich würde in meinen MPEG1-Musik-Video-Clips halt gerne dieselben Meta-Infos unterbringen, wie per ID3v2 in den dazugehörigen MP3s und in den MPEG2-Movie-Cuts das, was ich sonst per abcAVI als Meta-Infos in die AVIs verfrachte.
    Programmieren beschränkt sich allerdings bei mir auf ein wenig PureBasic; mehr is mit >50 nich mehr drinne :heul:

    guuts nächtle...
    scholly

  • Mahhlzeit!

    Zitat von Fr_An

    abcAVI verwendet laut seiner Homepage RIFF INFO tags, MovieID tags, IDivX tags.

    Yo, wobei seine Erweiterung (Extended INFO tags) FMPOV von Umfang und Info her die interessanteste Variante ist.

    Zitat

    Stellt sich die Frage, ob und wenn wie man das verbinden kann.

    Nun, ich hab halt gehofft, daß es für MPEGs auch ein Tool gibt, das es ermöglicht, in einen Bereich, der für Meta-Infos benutzt werden darf (wie die LIST INFO bei AVI), einen Block Text einzufügen.
    Über den Zusammen- und Aufbau dieses Blocks habe ich zwar Ideen, aber ich wollte erstmal abwarten, obs ein Tool für einfaches einfügen eines Text-Blocks gibt.
    Auf die Idee, daß die Files ersma demuxxed werden müssen, bin ich nicht gekommen, da das bei AVI auch ohne klappt.

    Du merkst, mein Hintergrundwissen ist löchrig und ich versteh auch nicht alles in den diversen Dokus zu 100%. ;(
    Allerdings habe ich bei meinen diversen Leseversuchen noch nix kaputt gemacht.:ani_lol:

    Und um einem möglichen Mißverständnis vorzubeugen:
    Ich such hier keinen, der mir was coded, ich hätte was Vorhandenes dann einfach benutzt ;D

    bis denne...
    scholly

  • Hallo scholly,

    den Textblock einfach hinten an die Datei anhängen. Sollte funktionieren ohne die ganze Datei zu kopieren. Vielleicht stört das deine Abspieler nicht und du müsstest dir "nur" noch Gedanken wie du das ausliest.

    Oder zu jeder Datei eine extra Datei mit gleichen Namen aber spezieller Endung erstellen. In die Datei kannst du dann reinschreiben was du willst.

    Martin

  • Zitat von Martin Dienert

    den Textblock einfach hinten an die Datei anhängen. Sollte funktionieren ohne die ganze Datei zu kopieren. Vielleicht stört das deine Abspieler nicht und du müsstest dir "nur" noch Gedanken wie du das ausliest.

    Klar, das ist die letzte Option, aber das ist für die meisten Formate halt nicht "formatkonform" und im schlechtesten Fall verschwinden die mühsam zusammengetragenen Infos, wenn man mit der Datei nochmal was anstellt.
    Insofern (ver)suche ich lieber eine Stelle im File, wo es von der Formatbeschreibung her sicher sein sollte. ;)
    Klappt aber auch nicht immer, denn VDub z.B. reicht ihm unbekannte Einträge in der LIST INFO nicht durch, sondern vernichtet alles, was nicht im RIFF-Standard definiert ist :(.

    Einen Versuch ist das Suchen und Nachfragen an kompetenter Stelle (z.B. hier ;) ) aber immer wert, manchmal kommt Interessantes dabei heraus. ;D

    bis denne...
    scholly

  • Ich wollte mir mal abcAVI genauer ansehen. Da ich mich dann doch weniger mit AVI beschäftigt habe, bin ich wieder von abgekommen. Wenn ich mir die Developer-Seite ansehe, ist dort ein Indexer zu finden. Könnte also sein, dass abcAVI einen Index und eigene Datenbank erstellt. Vielleicht weiß LigH da mehr.

    Für die User Data muss man demuxen. Heißt aber nicht, dass man das nicht anders machen kann. Die RIFF INFO tags dürften nur bei RIFF AVIs in Betracht kommen. IDivX tags hört sich nach DivX an, käme also auch nicht in Frage. Blieben die MovieID tags. Dafür habe ich allerdings auch nicht viel gefunden. Unter Umständen kann man auf http://dvd.box.sk/ oder http://www.videohelp.com/ was finden.

    Wenn der eigene Player sich an den Standard hält und beim End Code ($000001B9) mit der Wiedergabe aufhört könnte man Informationen hinten anhängen. Es sei denn die 2000 Byte des Padding Streams im ersten Paket reichen.

    Gruß Frank

  • Da es ja keinen definierten Standard für MPEG-Video-Tags gibt, müßte man wohl selber etwas definieren. Mir sind da die Extended Info-Tags am liebsten, RIFF(original) und MovieID ist etwas wenig.

    Ich hab auf Deiner HP gesehen, daß Du dich sehr mit MPEG beschäftigst, deswegen 3 kurze Fragen, bevor ich versuche, die MPEG-Docs zu studieren:
    - Ist dieser "Padding Stream" an einer fixen Stelle, sodaß man die 2000 Byte einfach überschreiben könnte?
    - Gibts eventuell sogar WIN-API-Funktionen zum finden/lesen/schreiben dieses Streams?
    - Sind Daten darin sicher oder muß ich befürchten, daß ein anderes Programm drüberschreibt und den Bereich für eigenen Bedarf nutzt?

    Schonmal :daumen: dafür, daß hier solche Hilfeanstrengungen unternommen werden.

  • - Ist dieser "Padding Stream" an einer fixen Stelle, sodaß man die 2000 Byte einfach überschreiben könnte?


    Nur im ersten Paket. Dieses enthält neben dem obligatorischen Pack Header den System Header. Da diese nur einen kleinen Bruchteil des Paketes ausfüllen, gibt es immer ein Stück Padding Stream.

    - Gibts eventuell sogar WIN-API-Funktionen zum finden/lesen/schreiben dieses Streams?


    :hm: Geschrieben wird er vom Muxer. Gelesen wird er wahrscheinlich nicht. Gefunden wird er vom Splitter, der ihn vermutlich einfach überspringt.

    - Sind Daten darin sicher oder muß ich befürchten, daß ein anderes Programm drüberschreibt und den Bereich für eigenen Bedarf nutzt?


    Absolut sicher sind sie nicht. Wenn der Stream demuxt wird, sind die Infos weg. Vermutlich auch beim Remux.

    Gruß Frank

  • Bei meinen aktuellen Recherchen bin ich über die Begriffe objektrelationale DBMS und Video Archive gestolpert. Dabei geht es um die datenbankmäßige Erfassung von Videos. Inwieweit dies Deinen Interessen entgegenkommt und was da an Software verfügbar ist, weiß ich allerdings ist.

    Gruß Frank

  • Mahhlzeit!

    Lieb gemeint :daumen:, aber objektrelationale DBMS ist für meine kleine Video-File-Verwaltung Overkill.

    Ich fahre momentan mit VDub (encoden) und abcAVI (taggen) für AVI sowie XMedia zum encoden nach MPEG1 recht gut.
    Meine Verwaltung ist dank MediaInfo(.dll) auch schon in der Lage, ettliche Infos aus Video-Files herauszuholen.

    Allerdings ist mein Programmiervermögen (PureBasic) zu bescheiden, als daß ich aus der Verwaltung heraus die Files selber formatkonform taggen und die Tags direkt auslesen kann.
    Wahrscheinlich greife ich Martins Vorschlag auf und hänge (ähnlich wie ID3v1) einen Block hintendran.
    Den schreiben/auslesen macht wenig Probleme und ich kann Inhalt/Aufbau selbst bestimmen.

    bis denne...
    scholly

Jetzt mitmachen!

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