Konvertierung von PES-Aufnahmen nach TS

  • Wie hier diskutiert, möchte ich die Sonderbehandlungen für die Wiedergabe von Aufnahmen im alten PES-Format möglichst eliminieren. Hierzu habe ich die neue Kommandozeile-Option --pes2ts eingebaut. Damit kann eine PES-Aufnahme nach TS konvertiert werden (ffmpeg und andere Tools können all die Sonderfälle, die für PES nötig waren, nicht detektieren).

    Beiliegende ZIP-Datei enthält:

    • pes2ts Script zum automatischen Konvertieren aller PES-Aufnahmen im angegebenen Verzeichnis.
    • pes2ts.[ch] Neue Source-Dateien, die die PES-TS-Konvertierung impementieren.
    • pes2ts.diff Diff gegen VDR Version 2.8.2.

    Am besten Version 2.8.2 frisch aus dem GIT holen, die ZIP-Datei in das Source-Verzeichnis entpacken, den Diff anwenden und compilieren.
    Für das Testen der Konvertierung brauchen keine Plugins neu übersetzt zu werden, da es sich komplett auf Kommandozeilen-Ebene abspielt.

    Vorgehensweise:

    • pes2ts -h
      um die Hilfe anzeigen zu lassen.
    • pes2ts -v -n /video
      listet alle PES-Aufnahmen unter /video auf, ohne sie zu konvertieren.
    • pes2ts -i -f -v -l 3 -p /path/to/vdr /video/Serien/Star_Trek
      konvertiert alle PES-Aufnahmen unter /video/Serien/Star_Trek, ignoriert fehlerhafte VDR-Aufrufe, überschreibt bereits existierende TS-Aufnahmen (von vorhergehenden pes2ts-Aufrufen) und schreibt das vollständige Log auch nach stdout. Der Pfad zum VDR-Executable muss nur angegeben werden, wenn es nicht über $PATH gefunden wird.
    • pes2ts -i -f -v -l 3 -p /path/to/vdr /video/Serien/Star_Trek/Ep1/2008-04-24.11.15.50.99.rec
      macht die Konvertierung für eine ganz bestimmte Aufnahme.

    Anmerkungen:

    • Bestehende PES-Aufnahmen werden nur lesend geöffnet und bleiben unverändert
    • Die erzeugte TS-Aufnahme hat den gleichen Namen wie die PES-Aufnahme, lediglich das Format des *.rec-Teils wird entsprechend verändert (aus "*.pp.ll.rec" wird "*.0-0.rec", pp=Priority, ll=Lifetime).
    • Die Dateien summary.vdr, info.vdr, marks.vdr und werden entsprechend kopiert bzw. konvertiert.
    • Der Index wird während der Konvertierung neu erzeugt.
    • Ein Protokoll der Konvertierung wird nach pes2ts.log im Verzeichnis der TS-Aufnahme geschrieben.
    • Die Wiedergabe der TS-Aufnahme ist bei laufender Konvertierung sofort möglich.
    • Die Fortschrittsanzeige zeigt eventuelle Schnittmarken, die ausserhalb des bereits konvertierten Bereichs liegen, u.U. nicht richtig an. Das ist ein bekanntes Problem und tritt auch beim Neu-Erzeugen des Index mit --genindex immer schon auf. Werde ich gesondert fixen.
    • In cPatPmtGenerator::MakeAC3Descriptor() ist anscheinend die Zeile Target[i++] = 0x01; falsch. VDR kann die Untertitel aber sowohl mit als auch ohne sie abspielen.
    • Das "USE"-Macro in pes2ts.c hatte ich Anfangs eingebaut um sicherzustellen, dass der Return-Wert auch wirklich ausgewertet wird. Hat sich als ganz praktisch erwiesen, drum hab ich es erstmal dringelassen.

    Ich konnte auf diese Weise alle bei mir vorhandenen PES-Aufnahmen erfolgreich konvertieren, mit allen Audio- und Subtitle-Tracks.

    Bitte probiert es mal aus, sofern ihr noch PES-Aufnahmen habt, und lasst mich eure Ergebnisse hier wissen.

    Wichtig: Bitte die PES-Aufnahmen noch nicht löschen, es könnten sich durch den Test ja noch Änderungen ergeben!

  • Das, was cTsChecker prüft, fällt schon mal weg, weil die TS-Pakete ja neu erzeugt werden und daher fehlerfrei sind (oder zumindest sein sollten ;)).

    Für cPtsChecker sieht es nicht gut aus, denn bei den PES-Aufnahmen haben, soweit ich gesehen habe, nur die I-Frames PTS, alle dazwischen liegenden nicht. Du kannst ja mal versuchsweise den Index einer so erzeugten TS-Datei neu generieren lassen. Er wird funktionieren, hat aber jede Menge Fehler. Da könnte man vielleicht in cPtsChecker was machen, aber ob sich der Aufwand lohnt, weiß ich nicht.

  • Du kannst ja mal versuchsweise den Index einer so erzeugten TS-Datei neu generieren lassen. Er wird funktionieren, hat aber jede Menge Fehler.

    Da habe ich eine gute und eine schlechte Nachricht: Die Gute: Die konvertierte Aufnahme ist fehlerfrei, auch wenn im Log etliche Warnungen sind:

    Code
    [8033] MPEG2: 720 x 576i 25,00 fps 16:9
    [8033] WARNING: required 7 video TS packets to determine frame type
    message repeated 1376 times: [ [8033] WARNING: required 7 video TS packets to determine frame type]

    Die Schlechte: die Index-Datei ist größer :(

    Code
    #> ll */index*
    -rw-r--r-- 1 vdr video 727656 24. Jun 11:17 2011-11-25.00.03.0-0.rec/index           <== mit dem gepatchten VDR 2.8.2 mit --genindex erzeugt
    -rw-r--r-- 1 vdr video 716640 23. Jun 15:26 2011-11-25.00.03.0-0.rec/index.pes2ts    <== von pes2ts erzeugt
    -rw-r--r-- 1 vdr video 716640 19. Dez 2011  2011-11-25.00.03.99.99.rec/index.vdr     <== Original PES

    Das wird wohl nicht daran liegen, dass das eine schwarz/weiß Aufnahme ist !?!? :D

  • Möglicherweise hat sich da seit damals etwas an der Frame-Erkennung geändert. Ich kann den Effekt hier auch nachvollziehen. Die Laufzeit der Aufnahme wird auch entsprechend länger angezeigt (eine Sekunde in meinem kleinen Testbeispiel). Damit die übernommenen Schnittmarken weiterhin passen würde ich den Index so belassen, wir er von pes2ts erzeugt wird. Neugenerieren bringt keinen Vorteil.

  • Aber wenn die erneute Generierung des Indexes solche Effekte hervorruft, was bedeutet das dann, wenn man ihn später – aus welchen Gründen auch immer – doch noch einmal (re-)generieren muss? :/

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T @ 2.30 GHz, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.8.2 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, femon, live, markad, mlist, osdteletext, recsearch, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Mit diesem Patch erzeugt --genindex jetzt den gleichen Index wie --pes2ts:

    Wenn bei --genindex Frame-Fehler gemeldet werden, dann kann das daran liegen, dass in der Aufnahme nur die I-Frames eine PTS haben und die dazwischen liegenden nicht. Das werde ich noch gesondert untersuchen.

  • Danke , funktioniert wie erwartet :)

    Hat der Patch Auswirkungen auf normale (nicht-konvertierte) TS-Aufnahmen? Evtl. nur wenn der Index größer geworden ist?

    Ich frage, weil ich ich vor kurzem bei allen TS-Aufnahmen mit VDR 2.8.2 den Index neu erzeugt und dabei festgestellt habe, dass etliche Aufnahmen (19,5%), die beim Re-Index im Nov 2024 zig Fehler hatten dann fehlerfrei waren. Im Gegenzug sind auch einige Aufnahmen (1,2%), die fehlerfrei waren jetzt fehlerhaft ....

    Auffällig ist dabei, dass Aufnahmen von 2011/12 meistens nur am Anfang Fehler aufweisen und Aufnahmen von 2024/25 nur am Ende. Da ich immer einige "GOPs" Vor- und Nachlauf habe konnte ich das durch Schneiden korrigieren.

  • Ich habe bei einer Aufnahme nen Test gemacht, lief gut. Dann bin ich eine Ebene höher gegangen und wollte den Rest verarbeiten, dann zeigte er mir die schon bearbeitete Aufzeichnung an und das wars. Es wäre schön gewesen, wenn er den Rest bearbeitet hätte.

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • pes2ts .

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • jsffm Ich denke mal, das hier hat gefehlt:

  • jsffm Poste bitte die Ausgabe von ls -lR und von pes2ts . an dieser Stelle.

    Die Konvertierung wurde von Hand fortgesetzt.

    Files

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • jsffm Ich denke mal, das hier hat gefehlt:

    Das bringts leider noch nicht.

    2010-01-25.21.01.0-0.rec: directory exists at /usr/local/bin/pes2ts line 75.

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!