MPEG-1/2 Demuxer

  • Nachdem ich das MPEG-1/2 Video Projekt begonnen hatte, hatte ich nach

    Fr_An
    16. Juli 2006 um 10:07

    gefragt. Hier ist nun die erste Version nach den Testprogrammen im Projekt.

    Merkmale:

    • Anzeige der Streams, welche demuxt werden können.
    • Demuxen der Einzelstreams.
    • Demuxen aller Streams.
    • Bestimmung des Delays.

    Hinweise:

    • Normalerweise ist die erste und letzte GOP eines Videos geschlossen, auch wenn das Video nicht geschlossen encodet wurde. Ich habe auch Videos gesehen, welche geschlossen encodet wurden, aber die erste und letzte nicht geschlossen sind.
      Ist die erste GOP nicht geschlossen, ändert DGIndex den ersten PTS um die Anzeigedauer der führenden B-Frames. Dies tue ich nicht.
    • Den Quelltext gibt auf meiner Homepage unter MPEG-1/2 Demuxer.

    Angehängte Datei:
    MPEG12_Demuxer.rar 37x aufgerufen.

    Gruß Frank

  • :daumen: Soweit scheint das Programm ja schon effektiv zu sein (also die Aufgaben zu erfüllen).

    Bisher fällt mir erst mal nur oberflächliches auf:

    1) Feine Icons für die Streamtypen - aber nicht für Programm und Fenster? ;)
    2) Wenn Fenstergröße änderbar, dann bitte auch "Anchors" für die Controls sinnvoll setzen.

  • :daumen:


    Danke.

    Ich staune, dass das Programm nach nicht einmal zwei Stunden bereits vierfach abgerufen wurde. :)

    1) Feine Icons für die Streamtypen - aber nicht für Programm und Fenster? ;)


    Die Icon für das TTreeView habe ich einfach aus SVCDPal2DVD übernommen. Für das Programm-Icon hatte ich noch keine passende Idee. Bzw ich sehe immer die Icon der bei mir installierten Programme durch. Aber da war auch nichts passendes dabei.

    2) Wenn Fenstergröße änderbar, dann bitte auch "Anchors" für die Controls sinnvoll setzen.

    Da habe ich vergessen, den TForm1.Borderstyle zu ändern. Auch scheinen die Höhen in WinXP anders zu sein als bei Win2000. Ich habe TForm1.ClientHeigth gesetzt, aber der Abstand zwischen TProgressBar und TStatusBar ist bei mir unter WinXP zu groß.

    Soweit scheint das Programm ja schon effektiv zu sein (also die Aufgaben zu erfüllen).


    Die ersten Versuche hatte ich unter

    Fr_An
    1. Juli 2006 um 18:12

    vorgestellt. Dazu gesellte sich ein Demuxer für MPEG-2 Programmstreams. (MPEG-1, MPEG-2 jeweils ganz unten) Allerdings funktionieren die nur, wenn jeweils nur eine Video- und Audiospur vorhanden ist, weil die StreamIDs nur nach Video und Audio unterschieden wurden.

    Ich bin davon ausgegangen, dass die StreamIDs ab der ersten möglichen ID vergeben wurden. Ich bin mir allerdings nicht sicher, ob das immer so ist. Bei meinen 20 Test-SVCD-MPEGs war es jedenfalls so. Bei Stills ist es nicht so, wobei die in der Regel aber keine Audiospuren haben.

    Gruß Frank

  • Im Moment möchte ich nur "normale" MPEGs demuxen. Das heißt erstmal (S)VCD für SVCDPal2DVD. Dafür sollte die vorliegende Version eigentlich ausreichen. Da ich das Programm auch für meine Capture verwende, wäre in naher Zukunft auch AC3-Audio ein Thema. Ausserdem ist das Joinen ein Thema, da das von DGIndex nicht ordentlich erledigt wurde.

    VOB scheint auf dem ersten Blick tatsächlich kompliziert zu sein. Vielleicht ändert sich das bei näherem Hinsehen noch.

    Gruß Frank

  • tach auch !

    Scheint zu funzen.
    (MPG aus MPLEX aus Cuttermaran aus ProjectXaus TS vom Satelliten.)

    Pervers wie ich bin hab ich ihm einen TS gegeben, aber den wollte er nicht, auch nicht umbenannt asl MPG.
    ==> Kein gemuxtes MPEg lautet die Meldung.
    Was ja auch irgendwie richtig ist.

    Ansonsten teste ich demnächst mal mit eineigen höchst suspekten MPGs/ MPEGs aus höchst suspekten Quellen. ;)

    Gruss BergH

  • Pervers wie ich bin hab ich ihm einen TS gegeben, aber den wollte er nicht, auch nicht umbenannt asl MPG.
    ==> Kein gemuxtes MPEg lautet die Meldung.
    Was ja auch irgendwie richtig ist.


    Die Datei muss mit einem PACK_START_CODE ($000001BA) beginnen und dann muss noch die ID für MPEG-1 oder MPEG-2 folgen. Sonst ist die erste Prüfung negativ. :ja:

    An TS als Quelle hatte ich auch schon mal gedacht, aber irgendwie reichten mir die gefundenen Informationen nicht so richtig aus. Auch hatte ich bis vor kurzem noch keine Teststreams. Vielleicht wage ich mich demnächst ran.

    Ansonsten teste ich demnächst mal mit eineigen höchst suspekten MPGs/ MPEGs aus höchst suspekten Quellen. ;)


    Da könnten eventuell Fehler auftreten, die man dann analysieren und ausräumen kann/muss.

    Gruß Frank



  • Siehe ****

    Gruss BergH

  • Wenn ich mir Funktionen wünschen dürfte, ...


    Klar, dafür war schon der Thread mit dem Pflichtenheft gedacht. Da ich aber nur alle zwei, drei Wochen zu Hause bin, müsstest Du Dich leider ein wenig gedulden.

    Gruß Frank

  • Falls du Dokumente zu MPEG benötigst sag mir doch bescheid. Wir machen ein Wochenende aus und ich lass meinen NAS laufen. Da gibt es bestimmt auch was für dich ;)

    Vorher kannst du es natürlich auch selbst mal an volgenden stellen versuchen:
    - http://www.itscj.ipsj.or.jp/sc29/ dort dann dokument register. Damit bekommst du eine Suchmaske für MPEG/JPEG/MHEG Dokumente(ISO/IEC JTC1/SC29)
    - http://www.chiariglione.org und besonders http://www.chiariglione.org/mpeg/
    Die Seite sollte man eigentlich kennen, oder?!?
    - http://www.andrewduncan.ws/MPEG/MPEG-2_Picts.html
    Ein Bild sagt mehr als 100 Worte. Einige Diagramme zu MPEG Dateiformaten(vor ISO Base Format)
    - http://pda.etsi.org/pda/queryform.asp
    etsi Dokumente. Nicht wirklich MPEG, aber halt viele sachen die darauf basieren(z.B. DVB). Es ist aber eine kostenfrei Registrierung nötig. Die Standards selbst kosten aber nichts mehr, auch wenn die Preiskategorien noch immer da stehen.


    Test stream sind doch recht leit zu haben. Auf der ISO Seite findest du sogar ein Paket mit teststream(mal mit mal ohne Fehler). Aber auch viele große Firmen die an MPEG mitentwickeln/arbeiten bieten welche auf ihren seiten an. Man darf dort natürlich nicht die Klicki Bunti Seiten besuchen sondern die R&D Seiten der Firmen.
    ausserdem:
    - http://standards.iso.org/ittf/PubliclyAvailableStandards/
    Was der letzte Ordner sagt. Dokumente, Software und Testdateien.
    - http://www.dvbmagic.de/download.php?n…gory=HDTV-Clips
    HDTV TS

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Falls du Dokumente zu MPEG benötigst sag mir doch bescheid. Wir machen ein Wochenende aus und ich lass meinen NAS laufen. Da gibt es bestimmt auch was für dich ;)


    Keine schlechte Idee. Mein Problem ist immernoch, dass ich fast ausschließlich englischsprachiges Material habe und mein englisch nicht allzu gut ist.

    - http://www.chiariglione.org und besonders http://www.chiariglione.org/mpeg/
    Die Seite sollte man eigentlich kennen, oder?!?
    - http://www.andrewduncan.ws/MPEG/MPEG-2_Picts.html
    Ein Bild sagt mehr als 100 Worte. Einige Diagramme zu MPEG Dateiformaten(vor ISO Base Format)

    Damit habe ich angefangen.

    - http://www.itscj.ipsj.or.jp/sc29/ dort dann dokument register. Damit bekommst du eine Suchmaske für MPEG/JPEG/MHEG Dokumente(ISO/IEC JTC1/SC29)
    - http://pda.etsi.org/pda/queryform.asp
    etsi Dokumente. Nicht wirklich MPEG, aber halt viele sachen die darauf basieren(z.B. DVB). Es ist aber eine kostenfrei Registrierung nötig. Die Standards selbst kosten aber nichts mehr, auch wenn die Preiskategorien noch immer da stehen.

    Mal umschauen.

    Test stream sind doch recht leit zu haben. ...

    Zu MPEG-1/2 hatte ich eine Menge gefunden. Bei TS weniger. Die Adressen kannte ich noch nicht.
    __

    Morgen werde ich die neue Version des Demuxers hochladen. Drag'n'Drop und Commandline sind drin. Allerdings startet dabei noch die GUI. TS scheint etwas komplizierter zu sein, als ich gedacht hatte und ist deshalb leider noch nicht drin.

    Gruß Frank

  • Wie angekündigt, die neue Version 0.3.0.

    Änderungen

    • Drag'n'Drop.
    • Aufruf per Commandline. Nach Demuxen schließt sich das Programm. Aufruf:

      Code
      mpeg12_demuxer [Quelle] [opt: Zielverzeichnis]
    • Der Fortschrittsbalken wurde nach jedem Lesevorgang aktualisiert. Jetzt nur alle Zehntelsekunde per Timer.

    Angehängte Datei:
    MPEG12_Demuxer.rar - 18x aufgerufen.

    Gruß Frank

  • Ich habe den Demuxer bisher unter Win2000 mit MPEGs von SVCD ausprobiert. Nun habe ich ein MPEG, welches als solches mit Terratec Home Cinema aufgenommen wurde, getestet. Die Datei ist etwa 4,5 GB groß.

    Es wird kein Fortschritt angezeigt, die CPU-Auslastung geht bis 99% und das Lesen scheint bei etwas über 4 GB Schluss zu sein.

    Gruß Frank

  • Im MPEG2 Standard sind sowohl ES als auch die PS und TS verpackungen erklärt. Eine DIN Norm gibt es für MPEG2 nicht und alle anderen sind naturgemäss englisch. Da was deutsches zu finden dürfte schwer sein, zumal die deutschen bei MPEG2 haubsächlich zu techniken der Audiokompression begetragen hatten. Darum ist die MPEG2 Audio Seite z.B. auch auf einem deutschen Uni-Server(in englisch UND deutsch).

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Zitat

    Eine DIN Norm gibt es für MPEG2 nicht


    Kanns ja auch nicht geben,da es ja die sogenannte DIN-Norm hauptsächlich nur in Germany gibt.*
    International gilt ISO.

    Zitat

    ........ die deutschen bei MPEG2 haubsächlich zu techniken der Audiokompression begetragen hatten.


    Fraunhofer Institut in Erlangen,da hast Du Recht.....sind Partner der
    Moving Picture Experts Group,Sitz in Genf.[Europäisches Kernforschungszentrum in Genf ]

    Moving Picture Experts Group ist eine Arbeitsgruppe der ISO die sich mit der Entwicklung von internationalen Standards für Komprimierung und Dekomprimierung von Audio und Videodaten beschäftigt.

    *Din heisst bei uns Das ist Norm

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Es wird kein Fortschritt angezeigt, die CPU-Auslastung geht bis 99% und das Lesen scheint bei etwas über 4 GB Schluss zu sein.

    Das wird an den Routinen liegen, die du für den Zugriff verwendest.

    Borland hat von Dateien über 4 GB keine Ahnung. Das muss per Win32-API-Funktionen passieren. Die TGpHugeFile-Funktionen regeln so was erfreulich problemlos, sogar mit gepufferten Zugriffen.

  • Ich was die DIN ist. Die meisten Normen(oder auch SAtadard) der ISO stammen aber von der ISO und sind nichts anderes als deren übersetzung mit anpassungen an deutsches Recht.

    Die MPEG(JTC1/SC29/WG11) gehört nicht zur ISO, sondern zur JTC1(Joint Technical Comittee) was ein zusammenschluss der ISO mit IEC ist und die Technischen Standards erstellen.

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Eine DIN Norm gibt es für MPEG2 nicht und alle anderen sind naturgemäss englisch.

    Wenn es eine IEC gibt braucht es nicht noch eine Deutsche Industrie Norm. Da man aber im Internet etliche Hinweise darauf findet, dass man sich an deutschen Hochschulen beim Informatikstudium mit Multimedia beschäftigt, findet man ab und zu auch deutschsprachiges Material.

    Darum ist die MPEG2 Audio Seite z.B. auch auf einem deutschen Uni-Server(in englisch UND deutsch).

    Das das Fraunhofer Institut insbesondere bei MP3 und MP3 Surround eine Menge getan hat, ist mir bekannt. Aber deutsches Material habe ich nicht gefunden. :hm:

    Das wird an den Routinen liegen, die du für den Zugriff verwendest.

    Borland hat von Dateien über 4 GB keine Ahnung. Das muss per Win32-API-Funktionen passieren. Die TGpHugeFile-Funktionen regeln so was erfreulich problemlos, sogar mit gepufferten Zugriffen.

    Es könnte daran liegen, dass ich das Programm mit Delphi 7 Personal erstellt und kompiliert habe. Hier habe ich Turbo Delphi installiert und da funktioniert zumindest die Fortschrittsanzeige. Nur macht Turbo Delphi die Dateien größer.

    angehängte Datei:
    MPEG12_Demuxer.rar (15x aufgerufen)

    Gruß Frank

Jetzt mitmachen!

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