MPEG2 Dateiaufbau wg. Demultiplexen...



  • Hallo!
    Ich suche Dokumentationen über den Dateiaufbau von MPEG2 Files.
    Konkret wie bei SVCDs die beiden Audiospuren zu der Videospur multiplexed werden.
    Mein Ziel ist es eine SVCD mit 2 Audiospuren einzulesen und eine Audiospur zu entvernen, so dass das resultierende Vile eben nur noch die eine Video und die eine gewünschte Audiospur besitzt.

    Der Hintergrund liegt darin, dass es derzeit anscheinend kein Programm für die TechnoTrend Premium Kartten (WinTV Nexus z.B.) gibt, das in der Lage ist SVCDs mit 2 Audiospuren wiederzugeben (Dieser Kartentyp hat einen hardware MPEG2 Decoder mit dem man dann seine alten Rechner wieder als Videostation zum Leben erwecken kann).
    So lange nur eine Audiospur vorhanden ist arbeiten die existierenden Programme ganz gut, sobald aber eine 2. Spur vorhanden ist kommen diese Programme durcheinander.

    Somit kommt bei mir der Wunsch nach einem kleinen Tool auf das automatisch die eine Audiospur verwirft.

    Bei meiner üblichen Quelle für so Sachen habe ich leider nichts passendes gefunden (http://www.wotsit.org/).

    MfG
    Simon S.



  • MPEG2 ist ein ISO/IEC Standard

    ISO/IEC International Standard 13818; "Generic coding of moving
    pictures and associated audio information", November 1994.

    da musst du entweder viel Geld für hinlegen, nach finaldrafts suchen oder mal in der Bücherei schauen (in Unis kann man sich wohl auch Standards ausleihen)



  • Hmm...
    Dass man für die Algorythmen zum encodieren Geld blechen muss ist mir bekannt.

    So weit müsste ich eigentlich gar nicht gehen, da ich eigentlich nur Dokumentationen brauche wie der Dateiaufbau nach dem encodieren von statten geht (also wie die Video und Audio Daten zusammenkopiert werden).

    Im Netz gibt es auch zahlreiche De/Multiplexer für MPEG Files die kostenlos für alle verfügbar sind.
    bbMPEG z.B. liegt sogar OpenSource vor, nur verstehe ich den sourcecode noch nicht.

    Nur bei Programmen, die MPEG2 Encodieren muss man in die Tasche greifen (TMPG war lange zeit kostenlos auch mit MPEG2 Support, musste für diesen dann jedoch Geld bezahlen womit TMPG inzwischen halb free und halb shareware ist).

    Nun gut, wenn rein zufällig noch jemand etwas herumliegen hat... Würde mich über alle Dokumentationen freuen.

    THX
    Simon S.



  • hmm, ich glaub du hast mich nicht verstanden. Weisst du was die ISO ist? (die haben auch C++ standardisiert)

    ich hab nämlich von dem Standard (der Dokumentation) zum MPEG2 Format gesprochen und nicht von einem Programm zum encodieren 🙂



  • Ich weiss nicht worauf sich diese ISO norm genau bezieht.

    Im Volksmund spricht man davon dass die Motion Picture Experts Group die Standards über die neuen MPEG Videogformate verabschiedet.

    Was genau darunter fällt ist mir nicht bekannt, nur die Probleme die TMPG bisher hatte.

    So darf TMPG ohne Lizenskosten MPEG1 files erzeugen (encodieren) und erst mit MPEG2 gab es ärger worauf die Shareware-Version eingeführt wurde.

    Das Multiplexen / Demultiplexen von MPEG2 Files schneint davon jedoch nicht betroffen gewesen zu sein, das diese Funktion in der Freewareversion von TMPG weiterhin ohne einschrenkungen enthalten ist.

    ich hab nämlich von dem Standard (der Dokumentation) zum MPEG2 Format gesprochen und nicht von einem Programm zum encodieren

    Auf gut deutsch gibt es neben den Lizensgebühren die man evtl. für den Encodieralgo. hergeben muss noch eine einmalige Gebühr um überhaupt die Dokumentation zu bekommen wie die Formate genau aufgebaut sind?

    MfG
    Simon S.



  • kurz weg von iso &co. und zurück zum problem...
    In ner mepg2 hat jedes Pack in dem Stream eine Header, das macht dein vorhaben also wesentlich einfacher. Du sollest dir iso-normen zulegen, wenn du dir menge Zeit un nervern sparen willst 😃 Kannst auch versuchen über google das Zeug stückenweise zusammenzusuchen, oder im notfall hier fragen.
    Hier man ein kurzer Angrifsplan, damit du überhaupt weist wonach suchen.
    Also ich vermute mal du weist wie ein mepg-stream aufgabaut ist.. sonst kannst ja fragen...
    Lies ein Pack aus der Mpeg-datei aus. Ein pack ist immer 1 setor lang (2048Byte DVD, 2324 CD - VCD/SVCD). Das Teil was für dich von interesse ist nennt sich PES-header. Headers fangen immer mit eine startcode an, welcher die Bitfolge "0000 0000 0000 0000 0000 0001" also 0x000001 Nach dieser Bitfolge folge der Indetifyer. Für dich interesannt ist der code 0xBD. Das ist der private stream 1. In deisem Stream befinden soundstreams, subtitle & co. (nicht der video-stream, der ist 0xBA). Wenn du die header hast beweg dich 0x0E Bytes weiter (vom anfang der Header, Startcoe miteinbegriffen!) und du steht auf der SubStream-ID (1Byte lang).
    Lies die aus. Wenn sie um die ~0x20 hast ein Subtitle pack for dir (wird die bei SVCD eher selten passieren, aber solltest du mal in ne DVD reinsehen..). Wenn sie um die ~0x80 ist, bist in nem Audio-Pack. Nun liegt es an dir was du damit machst. Jeder Audiostream hat seine eigene SubStream-ID.
    Scanne nun einfach das ganze File durch. Wenn du ein pack eines ungewollten Soundstreams vor dir hast, mach nichts und hol das nächste, alles andere schreib einfach wieder so wie du es ausgelesen hast in die neue Datei.

    viel glück 😉



  • @CMatt
    Vielen Dank!
    Genau so eine Beschreibung habe ich gesucht!

    Auf: http://www.mpucoder.com/dvd/packhdr.html

    Habe ich noch eine passende grafische Darstellung des Headers gefunden, zwar nicht so nett beschieben wie du das getan hasst, erleichtert jedoch schon einmal das hineinversetzen in den Stream.
    [Gefunden per Google: "MPEG ISO sequence header"]

    Werde den ganzen Stoff einmal zusammentragen und dann schauen was ich daraus bauen kann...

    Vielen Dank schon mal!

    //Edit:
    //---------
    Wenn jemand von euch interessa an dem Aufbau von PVA's hat (Fileformat das idR. zum aufnehmen von digitalen Versehprogramen zum einatz kommt), da habe ich ein gutes PDF herumliegen.

    THX
    Simon S.

    [ Dieser Beitrag wurde am 04.06.2003 um 19:16 Uhr von SSSoft editiert. ]



  • Original erstellt von SSSoft:
    **So darf TMPG ohne Lizenskosten MPEG1 files erzeugen (encodieren) und erst mit MPEG2 gab es ärger worauf die Shareware-Version eingeführt wurde.

    Das Multiplexen / Demultiplexen von MPEG2 Files schneint davon jedoch nicht betroffen gewesen zu sein, das diese Funktion in der Freewareversion von TMPG weiterhin ohne einschrenkungen enthalten ist.**

    Würd mich generell auch interessiern.
    Gibt es da Zusammenhänge zwischen einer ISO und Restrikationen bei Veröffentlichung von Softweare die auf einer ISO aufsetzt?
    Oder sind das spezielle ISOs?



  • Der Disclaimer der oben genannten Seite hört sich auch wie eine Rechtfertigung an:

    I have never seen the DVD-Video specifications.
    All information was gathered from a multitude of sources, including programs, patents, and other people's guesses, and then VERIFIED using multiple DVDs, hex dumps, and digital captures.



  • ich glaub nicht, dass das wegen der ISO so ist (sonst könnte man nachher kein C oder C++ Programm verkaufen, nur weil man nicht den ISO Standard gekauft hat :D)

    ich denke, der hat er Angst vor der Motion Picture Experts Group



  • Original erstellt von kingruedi:
    ich denke, der hat er Angst vor der Motion Picture Experts Group

    Yo, sind dann doch eher die üblichen Verdächtigen (Patente) die zusätzlich über MPEG2 wachen.



  • Original erstellt von kingruedi:
    **ich glaub nicht, dass das wegen der ISO so ist (sonst könnte man nachher kein C oder C++ Programm verkaufen, nur weil man nicht den ISO Standard gekauft hat :D)
    **

    ich denke das wäre in dem Zusammmenhang eher:
    sonst könnte man nachher kein C oder C++ Compiler verkaufen ohne Lizenzgebühren zu zahlen...


Anmelden zum Antworten