.vdr Dateiformat


  • Gegenfrage: was _genau_ ist der Unterschied zwischen VDR's Format und PS?


    Klaus

  • Zitat


    für die Wiedergabe von .vdr unter Windows(ohne convertieren zu müssen) verwende ich "The Core Media Player" (tcmp) oder mytheatre.


    Ich habe "The Core Media Player" ausprobiert. Leider sagt er mir, dass er das Dateiformat nicht unterstüzt. Hast Du noch einen Codec installiert?


    Gruß Kai

  • So dem ganzen nun mal etwas auf den Zahn zu fühlen habe ich mich mal etwas bemüht den Unterschied dazustellen (und mir selber auch etwas klarer zu werden).
    Die Infos stammen aus der Diplomarbeit von Sergei Streck.


    Der MPEG-2 TS (Transport-Strom) besteht aus einer kontinuierliche Folge von gleichgroßen Paketen von 188 Bytes. Jedes Paket besteht aus einem Header mit einer Länge von 4 Byte und Nutzdaten (PES) mit einer Länge von 184 Byte.


    Im Header sind folgende Daten gespeichert.
    -Jedes TS Packet fängt mit 0x47 zur Syncronisation an.
    -Eine Folge von drei Flags wird verwendet um die Verarbeitung der Daten (Payload) zu bestimmen.
    -Packet Identifier (PID) 13 Bit. Dieser wird benutz um die Zugehörigkeit des Paketes festzulegen. Sie wird von Multiplexer erzeugt. Der DVB-Empfänger hat somit die Möglichkeit die einzelnen Pakete herauszufiltern.
    -Transport scrambling control dient zur Steuerung für die Entschlüsselung der Daten.
    (Für das CA)
    -Am Ende befindet sich ein 4 Bit grosser Continuity Counter.



    Packetized Elementary Stream (PES)
    Die Packetized Elementary Streams bestehen aus MPEG-2-Transportströmen, die in Pakete aufgesplittert und durch Multiplexbildung ineinander verschachtelt sind. Das sind Audio-, Video- und Private Streams.
    Jedes PES Paket besitzt einen 6 Byte großen Header, der neben der Paketlänge die Stream ID enthält.
    Die Video Streams enthalten aufeinander folgende MPEG Video Frames. Jedes dieser komprimierten Einzelbilder wird durch eine Reihe von Headern eingeleitet, in welchen Informationen über das Frame wie Bildformat, Auflösung, Bildrate enthalten sind, die zur Dekodierung benötigt werden. Daran anschließend folgen die eigentlichen komprimierten Bilddaten.
    Die Audio Streams enthalten aufeinander folgende MPEG Audio Frames. Jedes dieser Frames beginnt mit einem 4 Bytes großen Header, dem die komprimierten Tonsignale folgen. Der Header enthält für den Decoder benötigte Informationen wie Layer, Bitrate, Samplingrate und Größe des Frames. Die Private Streams könne theoretisch beliebige Daten erhalten z.B Zeit, Videotext, Electronical Programme Guide (EPG), Dolby Digital u.a.




    Meiner Meinung nach werden hier einige Sachen durcheinander gebracht.
    Ich hoffe ich konnte etwas Licht ins Dunkel bringen.

  • kai7
    ich habe Progdvb mit "Elecard MPEG2 Demultiplexer" installiert. Vielleich ist es auch ein codec von Mytheatre. Die Installation geht mit mpeg2_decoders.v2.02.exe am besten(denk ich).


    Vergleiche meine angegebenen codecs im Bild mit deinen(beim abspielen), welche fehlen sind wohl der Grund.


    [Blockierte Grafik: http://www.nando-hiller.de/dateien/tcmp.gif]

    TEST FOXCONN 560A "Cool`n`Quiet"
    Software: Gen2VDR V2 + vdr-1.6-ext59 + Nvram-Wakeup + KDE
    Hardware: AMD Athlon 64 X2 Dual Core 4800+, 4GB DDR2RAM, SAMSUNG SATA HD501LJ 500 GB, SAMSUNG SP2514N 250 GB, HD SV1604N 160GB, HL-DT-STDVD-RAM GSA-H58N, Cablestar2, TTDVB-C + Scart-out + ASUS-SPDIF


    Activy 300
    Software: Gen2VDR V2 + vdr-1.4.7-ext40 + STR + FreeVo (Browser, Games, ... )
    Hardware: 256MB SDRAM, HD SV1604N 160GB, DVD SD-M1612, FSDVB-C + Scart-out, Technisat Cablestar2, leise

    Einmal editiert, zuletzt von netz ()

  • Zitat

    Original von kls


    Gegenfrage: was _genau_ ist der Unterschied zwischen VDR's Format und PS?


    Klaus


    :D ... jede Menge Müll, den keiner braucht, außer er will eine DVD brennen
    und braucht sowas wie Packheader (0xBA), Paddingframes (0xBE), Program
    Stream Map (0xBC) oder gar System Header (0xBB) alles was man beim
    Abspielen wieder rausfiltern muß. Also für VDR macht IMHO nur


      Packetized Elementary Stream (PES, also ES in Paketen)


    wirklich Sinn, wogegen bei Menüführung, mehreren Blickwinkeln und anderen
    Schikanen ein


      Mpeg-2 Program Stream (PS)


    wirklich nötig ist. Bei einer DVD kommt neben ein paar Kleinigkeiten und
    Einschränkungen noch die Audio Substream in der payload von
    einem Private Stream 1 (0xBD) hinzu ;D


    Was einer allerdings mit Transport Streams will, ist mir ein Rätsel, das macht
    nur bei einer Übertragung Sinn, um Fehler ausgleichen zu können.


    Werner

  • Hallo decembersoul,


    danke erst mal für die Erleuchtung,d.h ich denke du hast damit einiges erklärt.
    Soweit so gut... nur stellen sich für mich jetzt ein paar neue Fragen.


    Soweit wie ich immer dachte ist PES ein eigener Transportcontainer, und nicht nur der Nutzdatenteil!!


    Was ist dann .vdr. Nur obiger PES Nutzdatenteil oder mehr also + die ganze Frameinformation?


    Und was ist eigentlich dann das .ts format der DBOX oder Dream??


    Hast du die Muse, deine Ausführungen nochmals ein bischen zu ergänzen??

    :alki:alki


    Mr.Pink


    ------------------------------------
    Gehäuse OrigenAE S14V mit Be Quiet Straight Power BQT E6-350W, Asus P5N7A-VM, CPU: Intel E7400; 2 x D2 1GB PC 800, 2 x Mystique CaBiX-C2 DVB-C Budget, Mystique View CI-Interface (f. 1 CAM) PCI und 3.5" Variante, Samsung 1Tbyte 5400 min^-1
    Ubuntu 8.10, VDR 1.7.0
    +
    2 Dboxen mit Neutrino

  • Zitat

    Original von Mr.Pink
    ast du die Muse


    Welche ist denn dafür zuständig? SCNR :D

    LG
    Jochen


    Rpi4 headless mit MLD 5.4 als Server via satip-Plugin hinter einem Telestar Digibit Twin, ein Rpi3 als Streamdev-Client mit MLD 5.4

    Rpi3 auch hinter Telestar Digibit Twin und mit MLD 5.4

  • Zitat

    Original von Mr.Pink
    Hast du die Muse, deine Ausführungen nochmals ein bischen zu ergänzen??


    Lust hätte ch schon. Nur das Wissen fehlt mir gerade.
    Muß mir das alles nochmal weiter anlesen.


    Leider komme ich vor Monatg leider nicht dazu.

  • Hallo decembersoul,


    Montag ist immer noch spitze .... nein nur Spass.


    Ich denke halt nur, ein bischen mehr Wissen über dieses Thema und darauf basierend die sachlich richtige Verwendung von Begriffen würden uns allen nur gut tun.


    ;D


    ... bzgl Muse, dafür brauchts halt noch ne Video-Muse ...

    :alki:alki


    Mr.Pink


    ------------------------------------
    Gehäuse OrigenAE S14V mit Be Quiet Straight Power BQT E6-350W, Asus P5N7A-VM, CPU: Intel E7400; 2 x D2 1GB PC 800, 2 x Mystique CaBiX-C2 DVB-C Budget, Mystique View CI-Interface (f. 1 CAM) PCI und 3.5" Variante, Samsung 1Tbyte 5400 min^-1
    Ubuntu 8.10, VDR 1.7.0
    +
    2 Dboxen mit Neutrino

  • Hallo,
    ich glaube, dass Problem das der Threadstarter mit mplayer beschrieben hatte. Ist kein Problem PES oder PS oder TS, sondern hat was mit damit zu tun, dass VDR keine substream id bei ac3 ton nachdem pes header gespeichert hatte, dass führte dazu, dass die abspielsoftware wie mplayer den ton in der ac3 spur nicht wieder richtig zusammensetzen konnte, da ein ac3 stream durch die Abspielsoftware wie viele ac3 streams aussah, mit mplayer classic hatte man z. B. eine unendlich lange liste an verschiedenen streams zum auswählen.
    Dieser umstand sollte in den neueren developer VDR versionen mit dem einführen der substream id für mehrere ac3 spuren behoben sein.


    gruß


    Marten

    vdr experimental, Femon, vdr live, acpi-wakeup, vompserver, undelete, epgsearch, vdr-burn, Raspberry Pi und Vompserver Windows Client (build from git)

  • Zitat

    Original von MartenR
    Hallo,
    ich glaube, dass Problem das der Threadstarter mit mplayer beschrieben hatte. Ist kein Problem PES oder PS oder TS, sondern hat was mit damit zu tun, dass VDR keine substream id bei ac3 ton nachdem pes header gespeichert hatte, dass führte dazu, dass die abspielsoftware wie mplayer den ton in der ac3 spur nicht wieder richtig zusammensetzen konnte, da ein ac3 stream durch die Abspielsoftware wie viele ac3 streams aussah, mit mplayer classic hatte man z. B. eine unendlich lange liste an verschiedenen streams zum auswählen.
    Dieser umstand sollte in den neueren developer VDR versionen mit dem einführen der substream id für mehrere ac3 spuren behoben sein.


    Mit dem derzeitigen Developer VDR 1.3.22 ist das Geschichte.


    Werner

  • Zitat

    Original von MartenR
    ... da ein ac3 stream durch die Abspielsoftware wie viele ac3 streams aussah, mit mplayer classic hatte man z. B. eine unendlich lange liste an verschiedenen streams zum auswählen.


    Moin,


    das kann mann auch mit dem VLC nachvollziehen, - lange Liste von Streams wählbar und doch kein Ton.


    Gruß Peppi

    VIA Epia ME6000 , Nexus-s Rev 2.1, Skystar 2, 256 MB RAM, 500 GB HD, homebrew IR, c'tVDR 6.2

  • So nun wollen wir dem PES Packet mal auf den Zahl fühlen.


    Diese Daten habe ich mir selber alle zusammengereimt.
    Falls Fehler vorhanden sind, bitte ich euch es mir mitzuteilen!


    Wie ein PES Packet in ein TS eingebunden ist, habe ich ja bereits weiter oben erleutert.
    Wie wir gesehen haben, werden für das abspielen nur die PES Packete gebraucht.


    Ein PES Packet kann folgende Daten enthalten.
    -Video
    -Audio
    -Daten


    Da ein PES Packet jedoch unterschiedlich lang sein kann wird es in mehreren TS aufgeteilt.


    Um das ganze nun Platzsparend auf der Platte zu speichern, werden die TS Packete analysiert und wieder in PES gewandelt (bzw der PES Anteil extrahiert)
    Dabei ist es wichtig die richtige Reihenfolge wieder zusammenzustellen.
    Wie Klaus erwähnte haben die PES Packete dabei eine Feste länge von 2048byte.


    Nun ist es noch interessant zu wissen wie ein PES Packet wirklich aufgebaut ist.
    [Blockierte Grafik: http://erg.abdn.ac.uk/research…video/images/mpeg-pes.gif]


    Die optionalen Header wollen wir mal aussen vor lassen. Sind verdammt viele.
    Wichtige Informationen im Header sind:
    PacketStartCodePrefix:
    Wenn das PES in mehrere TS aufgeteilt ist, dann ist im ersten Teil des PES dieses Flag gesetzt. Soll bedeuten das ab hier ein neues PES anfängt.


    StreamID:
    Neben den Infos ob es sich um Audio/Video/Privat Daten handelt, muss auch noch sichergestellt werden zu welchem Stream die Daten gehören. Dieses ist wichtig wenn mehrere Video oder Audio Streams gelichzeitig übertragen werden (was immer der Fall ist)
    Die StreamID bei VideoStreams fängt immer mit 1110 xxxx an und die AudioStreams immer mit 110x xxxx


    PES Packet Length
    Gibt die länge das Packetes an.


    Nun gibt es noch weitere HeaderInfosmationen. Diese sind jedoch so komplex das man sich bei Interesse die 166 Seiten der spezifikation durchlesen sollte.
    http://www.cdaniel.de/download/is138181.pdf


    Wenn man nun die VDR Aufnahme (.vdr) in ein anderes Format bringen will, muss man die PES neu verpacken. Um das ganze in eine DVD Mpeg Form zu bringen, wird werden die PES neu in PS verpackt.


    Ein konvertieren in TS macht wirklich keinen Sinn.


    Vielleicht könnte man ja im VDRWiki eine Rubrik "Hintergrundwissen" aufmachen in der wir das ganze vielleicht noch genauer ausarbeiten können.

  • Achja hier habe ich noch ein recht interessantes Diagram

  • Zitat

    Original von decembersoul
    Um das ganze nun Platzsparend auf der Platte zu speichern, werden die TS Packete analysiert und wieder in PES gewandelt (bzw der PES Anteil extrahiert)
    Dabei ist es wichtig die richtige Reihenfolge wieder zusammenzustellen.
    Wie Klaus erwähnte haben die PES Packete dabei eine Feste länge von 2048byte.


    Die können nach den DVB specs durchaus wesentlich größer sein. Der
    Remuxer des VDRs zerlegt diese übergroßen PES frames in kleinere, denn
    die firmware kann nur 2048 Bytes auf einmal einlesen.


    Zitat


    Wenn man nun die VDR Aufnahme (.vdr) in ein anderes Format bringen will, muss man die PES neu verpacken. Um das ganze in eine DVD Mpeg Form zu bringen, wird werden die PES neu in PS verpackt.


    Ein konvertieren in TS macht wirklich keinen Sinn.


    Vielleicht könnte man ja im VDRWiki eine Rubrik "Hintergrundwissen" aufmachen in der wir das ganze vielleicht noch genauer ausarbeiten können.


    Eine andere Möglichkeit ist es, den multiplexed PES stream in seine einzelne
    streams zu zerlegen und in einzelne Dateien zu schreiben. Wenn man dann
    noch die PES header davon in eine jeweilige Indexdatei abtrennt, bekommt
    man die elementaren streams (ES).



    Werner

  • Allerdings ist das *.VDR-Format dann kein PES soweit ich das verstanden habe, da das nur packetierter Elementarstrom ist. In der VDR-Datei allerdings sind sowohl Audio als auch Video vorhanden, also muss das ein MUX aus verschiedenen PES sein...


    Da frage ich mich dann doch, warum man kein PS direkt nimmt...

  • franzose
    hallo, ich bin der entwickler von vdrmediaclient:
    http://www.vdrportal.de/board/thread.php?threadid=32594&sid=&hilightuser=5629


    ich habe auch mit dem pes format gekämpft, das format scheint aber den spezifikationen entsprechend wirklich ein pes zu sein.
    es wird aber von es von sehr weingen playern unterstützt.
    anfangs habe ich einen filter für VLC programmiert welcher eigentlich auch anstandslos lief, konnte mich dann aber nicht wirklich mit VLC anfreunden (zuviel code den ich nicht brauche), und hab mein eigenes projekt gestartet.
    das größte problem, sehe ich in den timestamps des pes formats.
    da wir unsere aufnahmen schneiden, können fremdprodukte die geschnittene spieldauer nicht mehr berechnen. (kenne keine anwendung die das kann, bis auf meine)
    falls du mehr infos brauchst dann mail mir einfach (aber bitte etwas präziser wie, was ist pes)
    gruss, onur

  • Moin, als nicht_vdrler interessiere ich mich doch für das format. Grund ist die reelbox, die ja auf vdr umgepeitscht wurde.


    Ich habe behauptet, dass das PES format vom VDR für die box nichts taugt. Den thread hier habe ich natürlich gelesen, aber ich finde alles ein wenig schwammig und es steht hier auch nicht das, was ich suche.


    Für einen oder mehrere ES eines programms ist es ziemlichlich egal, wie man es verpackt. Im PES_header stehen ja auch die time stamps. Die grosse frage ist für mich aber, was passiert, wenn mehrere programme in einer datei gleichzeitg aufgenommen werden. Wo ist beim VDR so etwas wie eine PAT und eine PMT? Natürlich kann man den streams genügend IDs geben, um sie auseinander zu halten, aber wie weiss man, was zusammengehört?


    Ist es beim vdr nicht vielleicht so, dass das offensichtliche Format TS nicht genommen werden konnte, weil die premium cards gar keinen TS ausgeben können? PVA hat abgedankt und PS scheint man zu umständlich zu finden. Da gibt es aber auch die möglichkeit einer PMT ;)


    Mir ist es ziemlich egal, was der vdr verwendet. Nur glaube ich nicht, dass dieses format für festplattenreceiver, bei denen sich TS anbietet, eine gute wahl ist.

  • Hi,


    möchte meinen Senf auch dazugeben.


    Technisch gesehen mag es durchaus völlig nutzlos sein, das VDR-Format nachträglich in TS zu konvertieren.


    Fakt ist jedoch, dass die Masse der Programme nicht mit dem VDR-Format umgehen kann und umgehen wird. Das Einzige, worauf sich Hersteller und Open-Source-Entwickler anderer Projekte einlassen werden (z.B. wg. DVB-T-Boom), ist PS und TS. Ersteres ist mir nicht so geheuer - was passiert bei Aussetzern (schlechter Empfang, Fehler auf Senderseite)? Dann lieber "im Original" und als TS verpackt.
    Klar, will ich eine DVD draus bauen, kann ich es jederzeit mit ProjectX demuxen und bekomme das "Massenformat".


    Aber wie gebe ich z.B. die Files unter Win oder auf einem Streaming-Client komfortabel wieder? VLC funktioniert noch nicht (und wird es vielleicht auch nie), MPlayer geht, ist aber auch nicht unbedingt das Beste (Tastatursteuerung, Spulen etc.). Und von MediaPlayer, WinDVD und PowerDVD brauchen wir gar nicht reden. Und mit dem vdrmediaclient gibt es vielleicht (hab´s noch nicht ausprobiert) endlich eine erste Lösung. Aber auch den Aussagen von onur kann man entnehmen, dass das VDR-Format alles andere als trivial zu behandeln ist.


    Viel gravierender finde ich allerdings die Diskussionen um perfekte Streaming-Clients. Bei allen Lösungen läuft es immer auch die Frage hinaus: Wie kann ich VDR-Dateien wiedergeben - von Live-TV ist nicht einmal die Rede. Und das MediaMVP-Plugin läuft leider mehr schlecht als recht (manchmal Spul-Probleme, kein 16:9, keine Timer-Programmierung etc.) und stellt noch keine echte Alternative zu einem guten Client da.
    Zugegeben: Auch TS ist noch kein Massenformat (kann es schon ein Client?), aber in der Windows-Welt ist es die einzige Alternative zu PVA und MPG bei einigen DVB-Karten und wird damit auch breitere Unterstützung erfahren - WinDVD und PowerDVD kennen es.


    Man kann jetzt versuchen, von jeder kommerziellen Lösung die Unterstützung des VDR-Formates zu verlangen, dafür ist aber die VDR-Gemeinde (noch) zu klein. Oder man passt sich den derzeitigen Möglichkeiten an. Wenn ich an den c´t-Test von MPEG-Videoschnitt-Tools denke, bei dem sie auch die Unterstützung des VDR-Formates überprüft haben, dachte ich nur: Die Überschätzen etwas die Anzahl an VDR-Usern, also denen, die diese Unterstützung wirklich brauchen; und ich denke nicht, dass irgendeine Firma (außer vielleicht Magix, denn die nehmen den einen oder anderen Vorschlag auf) entsprechenden Support einbauen wird. Auch beim Software-Bereich gilt mehr denn je: Angebot und Nachfrage. Und die Nachfrage nach VDR-Support ist nicht so groß... - kann sich ja mit der ReelBox und anderen VDR-basierten Geräten ändern. Aber die Masse hier steht den kommerziellen Lösungen ja sowieso kritisch gegenüber...


    Klar, ich kann nach jeder Aufnahme im Hintergrund automatisch aus den VDR-Files mit ProjectX & Co TS-Files machen, aber ich brauche dann immer den doppelten Platten-Platz - und das wäre mir dann doch etwas zu schade. Und wie gesagt: Derzeit habe ich noch eine MediaMVP und kann Live-TV und Aufnahmen anschauen. Aber wirklich doll ist das nicht. Und auf Xbox oder PC in jedem Zimmer nur als VDR-Client habe ich wenig Lust.


    bodyguard: Der VDR kann nicht mehrere Programme in einer Datei aufnehmen, sondern zeichnet es in jeweils eigenen Dateien auf.


    Jörg

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

Jetzt mitmachen!

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