Detailfragen zu Transport-Streams

  • WO zu ist das pointer_field gut? Findet man die pointer_field in allen TS Packete oder nur in PSI Tables. Außerdem ist es ja das erste BYte nach dem Header was ist wenn Adaptions Fileld noch folgt

    Einmal editiert, zuletzt von borhan (8. November 2009 um 03:00)

  • Da es hier in allen Fragen bisher um Details eines Transport-Streams ging, die außer Software-Entwicklern wohl kaum jemanden interessieren, habe ich die letzten vier Themen von borhan zusammengefasst und nach "Software-Entwicklung" verschoben (Details zu einem Kontainer-Format sind in einer "Encoding"-Rubrik sowieso falsch platziert).

  • Ist das Payload_start_indicator-Bit in einem PSI Paket gesetzt ist auch ein Pointer_field vorhanden == das erste Payload Byte, es zeigt das Start Byte des PSI Datagramms an. Meist ist es 0x0 weil das Datagramm sofort nach dem Pointer Field beginnt.
    Es können aber auch mehrere PSI Datagramme hintereinander in Paketen selber PID übertragen werden. Es kann also sein dass ein neues Datagramm mitten im Payload eines PSI Paketes beginnt. Das Pointer Field zeigt dann auf das erste Byte dieses Datagramms.
    Stuffing Bytes werden in PSI Paketen einfach nach dem Payload bis zum Paketende eingefügt und nicht mittels Adaption_Field vor dem Payload wie in Paketen mit PES Inhalt.

    Einmal editiert, zuletzt von bigotti5 (8. November 2009 um 11:10)

  • Kannst du vielleicht mal alle Fragen, die sich mit dem Transport-Stream beschäftigen, in den selben Beitrag schreiben?
    __

    Wie man einen CRC32 berechnet, kannst du tausendfach im Internet finden (z.B. "Adler"-Algorithmus). Die eigentliche Frage ist - wovon exakt (von wo bis wo)?

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    Einmal editiert, zuletzt von LigH (9. November 2009 um 09:07)

  • *gig* LigH war flotter,.. war gerade am schreiben und musste feststellen, dass der Thread weg ist ;)

    Zitat

    Falls es um Transportstreams geht:
    Warum hast Du die Frage nicht im von Dir bereits existierenden Thread gestellt?
    Was mir spontan dazu einfällt, auch wenn es lange her ist, dass ich mir mal die MPEG-2 Transportstream Dokumentation durchgelesen habe,...

    1. PAT = Program Association Table
    2. CRC_32 sollte einen 32bit langen CRC(cyclic redundancy check)-Wert beinhalten des aktuellen Packages beinhalten, anhand dem man prüfen kann ob das Packet kaputt ist oder nicht. (Was man macht wenn das Packet kaputt ist liegt dann am Empfänger.)
    3. TID & NID werden verwendet um den Stream zu finden. :)

    Cu Selur

    Ps.: @Mods: wäre sinnig den Thread an den anderen zu hängen, da er alleine keinen Sinn macht.

  • Hallo,

    ich habe es gelernt ich werde nicht mehr einfach neu themen erstellen und immer die gleiche benutzen.

    Meine Frage ist ich möchte Für Transport Streams PCR erstellen lassen.
    ich möchte aus einem Vob ein Ts bilden.
    nun meine Frage:
    Wo krieg ich den die Werte für PCR, die müssten doch im PES enthalten sein
    ist vielleicht PCR und PTS gleich, oder sind die im vob header drine

  • Zitat

    ich habe es gelernt ich werde nicht mehr einfach neu themen erstellen und immer die gleiche benutzen.


    Das als ersten Beitrag in einem neuen Thread,...

    Würde empfehlen mal in den SourceCode von ProjectX zu gucken, da dort u.a. vob in ts gewandelt wird und auch Routinen existieren die PCR/SCR aus generiere PTS generieren.

    Cu Selur

  • Kann mir vielleicht auch jemand sagen, wo in ProjectX also in welcher Methode oder in welcher Klasse aus PTS PCR ausgerechnet wird ich habe es leider immer noch nicht gefuden

  • Hallo,
    ich bin wieder da und habe neu fragen.
    Wie stelle ich sicher, dass in ts die PAT sich alle 100 ms wiederholt an welchem uhr muss ich das festmache.

    und eine zweite frage
    Die letzten vier bytes aus PAT, die Projectx nach konvertieren von VOB ins ts schreibt? ist das wircklich ein CRC32 wert oder macht PROjectx dort was anderes

  • Ok, die eine Frage stelle ich dann im project x forum, die andere Frage.
    welche uhr.

    genau das ist meie frage wie stelle ich sicher das jetzt genau 100 ms um sind und die PAt und PMT tabelle nochmal auftauchen müssen

  • Zu 1. helfe ich dir mal ein wenig:

    - Videostreams haben Frames, wobei jedes Frame eine bestimmte Spieldauer hat.
    - Audiostreams haben Frames, wobei jedes Frame eine bestimmte Spieldauer hat.
    - Die zeitlichen Längen von Videoframes und Audioframes unterscheiden sich je nach Video-Framerate (fps) und Audio-Kompressionsformat (MP2 anders als AC3).
    - Aufgabe eines Multiplexers ist es, abwechselnd je ein oder mehrere Frames jeder Spur so zu mischen, dass deren Inhalt rechtzeitig zu deren Abspielzeitpunkt bereitstand.

    "Genau 100 ms" wird dadurch praktisch unmöglich, dass weder Videoframes üblicher Frameraten noch Audioframes aller mir bekannten Formate mit ganzzahligen Vielfachen exakt 100 ms erreichen. Aber vielleicht ist die Angabe "100 ms" auch etwas anders gemeint - wahrscheinlich entweder "mindestens" oder "durchschnittlich".

  • danke erstmal für die Antworten,
    Ja das habe ich auch verstanden, dass mit 100ms nicht gemeint ist das es genau 100 ms also, dass in 100 ms ein mal.
    Aber ich wollte auch wissen, wenn ich ps zu ts umwandele woran ich erkennen muss wann ich meine PAT und PMT wiederholen muss.
    z.B. PCR muss ich immer dann einsetzten wenn in PES das Flag für DTS bzw. PTS gesetzt ist. Zmindest so macht es ProjectX. Nun habe ich nichts gefunden woran ich weiss ahah jetzt muss ich PAT bzw. PMT wiederholen

Jetzt mitmachen!

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