Frage an Spezialisten zu PES-Paketen w/ Tonstörungen ZDF (SDTV)

  • Ich wurde drauf aufmerksam gemacht, dass seit dem 01.05. mit dem pvr350-Plugin der mp2-Ton regelmäßge Aussetzer im Sekundetakt hat, und zwar auf SDTV-Sendern. Ich kann dies sowohl mit den Hamburger DVB-T-Sendern der ZDF-Gruppe als auch per DVB-C bei mir nachvollziehen. Am schlimmsten ist die zweite Stereo-Tonspur. Ich habe mittels PESDump die Pakete analysiert.


    ZDF vor dem 01.05.

    Code
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 9A 5D CD 66 44 66 55 ... B4 E7 08 4E 45 A9 AD 6B 94 A0
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 C9 0E CD 66 55 66 55 ... 9A 52 52 A1 04 6B 18 C6 35 B5
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 37 C0 CD 66 44 66 55 ... 69 2F 76 12 D6 6C 5C B6 B4 00
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 6D B9 BD 66 44 66 55 ... B3 5A D6 A8 C3 63 1A A5 AC 00
    PlayAudio: 030E 00 00 01 C0 03 08 85 80 05 27 D9 59 02 39 FF FC C4 04 9C 71 ... 6B A2 46 DF 51 8B 5A C6 35 C4
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 CC EA CD 66 44 66 55 ... 11 AD 63 14 A6 B4 69 6A 8C 60
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 24 50 CD 66 44 66 55 ... 4E 10 A5 06 31 92 D6 63 58 D0
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 5F C8 CD 66 44 66 55 ... 4A 5A D2 12 73 AD 6A F6 0C 00
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 B6 6B CD 66 44 66 55 ... 63 5A D5 AA D6 63 1A D8 34 00
    PlayAudio: 0309 00 00 01 C0 03 03 80 00 00 FF FC C4 04 C6 2C BD 66 44 66 55 ... DD AD 73 A2 EA D6 94 52 92 90


    ZDF per heute:

    Code
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9B CB 2D FF FF FF FC A4 00 ... 5A 42 29 53 9B 5A D6 E8 D0 BA
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9D 1F 8D FF FF FF FC A4 00 ... B6 31 73 9A E4 A6 D6 31 96 B6
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9D 73 ED FF FF FF FC A4 00 ... B5 8C 4A 6A C6 B4 AE A5 E9 4E
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9D C8 4D FF FF FF FC A4 00 ... 9A D9 CD CE AD 6B 57 38 E7 00
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9F 1C AD FF FF FF FC A4 00 ... 6B 58 C8 41 CE 83 5A D4 C9 AE
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9F 71 0D FF FF FF FC A4 00 ... 6B 58 C7 39 CE 52 9A D4 C9 8B
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D 9F C5 6D FF FF FF FC A4 00 ... 19 EF 84 1E FB 35 8F 6B 48 91
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D A1 19 CD FF FF FF FC A4 00 ... DE D6 52 86 46 B6 0D 54 A9 00
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D A1 6E 2D FF FF FF FC A4 00 ... 28 54 AB 59 CE 6B 6D 63 9E 00
    PlayAudio: 0B50 00 00 01 C0 0B 4A 87 80 07 25 4D A1 C2 8D FF FF FF FC A4 00 ... 96 A1 AD 2A 1A DB 59 AD 21 3F


    ARD per heute (sauberer Ton):

    Code
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 5B 3F A7 FF FF 2B 49 39 53 ... 68 B9 41 D3 A6 AD 4A 55 CB 8F
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 5B E8 67 FF FF 9F 05 02 67 ... 81 E7 A1 86 A8 E8 AA 3A 23 8E
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 5D A2 07 FF FF 38 E6 9A 49 ... 88 22 14 2A 14 9A 4E BA AE AD
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 5F 4A C7 FF FF 76 B2 9B C8 ... EE BB CA 7B BA EF 2E 0B 5C 16
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 5F F3 87 FF FF 56 A5 6A 9B ... 4A 25 6C 5B 23 71 B7 EF DA 6D
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 61 9C 47 FF FF 38 50 9F 3E ... 35 A3 60 58 15 E8 F4 42 50 98
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 63 45 07 FF FF 64 31 65 59 ... A5 14 45 15 58 55 87 9E 75 D7
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 63 FE A7 FF FF DF 86 68 66 ... A0 C1 52 95 2A 9B 34 48 96 20
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 65 A7 67 FF FF EC DE C4 1D ... 67 6A B5 50 68 3A EE 4C 8D 23
    PlayAudio: 1700 00 00 01 C0 16 FA 8B 80 07 23 2A 67 50 27 FF FF 50 FC 3F 26 ... DE 85 42 B7 CD F4 36 1A DE B7


    Ich kann leider die Ausgabe von PesDump nicht richtig interpretieren, aber ich vermute, dass es sich bei "FF FF FF FC A4 00" in den aktuellen ZDF-Paketen um stuffing bytes handelt. Gegenüber der ARD, die nur 2x FF enthält, ist davon auch etwas mehr drin.


    Ich vermute einen Bug im cx23415-Chip des Hardwaredekoders der PVR350. Ich hatte schon früher festgestellt, dass dieser Chip z.B. mit ancillary_data (RDS-Informationen) am Ende eines Audioframes Probleme macht.
    Da von dem Problem anscheinend auch andere DVB-Receiver für SDTV betroffen sind, wäre es aber interessant herauszufinden, ob das ZDF hier normgerecht sendet.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • Hi,


    dann dekodiere ich mal:


    ZDF alt:
    00 00 01 C0 -> Audio PES
    03 03 -> PES packet length
    80 -> Data Alignment Indicator nicht gesetzt
    00 -> keine Flags
    00 -> Header data length
    FF FC... -> Audiodaten, Syncword?


    ZDF neu:
    00 00 01 C0 -> Audio PES
    0B 4A -> PES packet length
    87 -> Data Alignment Indicator gesetzt -> Audio Syncword folgt
    80 -> PTS folgt
    07 -> Header data length
    25 4D 9B CB 2D -> PTS
    FF FF -> stuffing bytes
    FF FC... -> Audiodaten, Syncword?


    ARD
    00 00 01 C0 -> Audio PES
    16 FA -> PES packet length
    8B -> Data Alignment Indicator nicht gesetzt
    80 -> PTS folgt
    07 -> Header data length
    23 2A 5B 3F A7 -> PTS
    FF FF -> Stuffing bytes
    2B 49 39 53... -> Audiodaten


    Imho sind alle drei Streams standardkonform.


    CU
    Oliver

  • danke Oliver!


    Dann sind es wahrscheinlich die stuffing bytes, die den Dekoder irritieren.


    Das pvr350-Plugin bietet intern bereits die Möglichkeit, mp2 für Streams mit anxillary data oder joint-stereo (kann der Dekoder auch nicht sauber wiedergeben) zu recoden. Also werde ich das jetzt wohl als generelle Möglichkeit konfigurierbar machen.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • gelöscht (betrifft anderen Thread)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD


  • Dann sind es wahrscheinlich die stuffing bytes, die den Dekoder irritieren.


    Stuffing Bytes alleine können es nicht sein, denn ARD sendet diese ja auch.
    Könnte die Kombination von Stuffing mit Audio Syncword sein, oder die Größe der Audio-PES-Pakete, oder irgendeine andere Kleinigkeit.
    Sicher kann man dies erst sagen, wenn man den Fehler durch Umkodieren zum Verschwinden gebracht hat.


    CU
    Oliver

  • Zitat

    Sicher kann man dies erst sagen, wenn man den Fehler durch Umkodieren zum Verschwinden gebracht hat.


    nach dem Recoden (Decodieren mit mpg123 und Neuencodieren mit twolame) ist der Ton sauber.


    aber: wenn ich die ts-Aufnahme vom vdr mit Projekt X demuxe und die m2v/mp2 mit mplex zu einem mpg muxe, und dieses mpg dann mittels cat an /dev/video16 schicke, dann wird es auch sauber abgespielt.
    Anscheinend entfernt Projekt X da irgendwas und baut sauberere Pakete.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    data alignment indicator -- if set to 1 indicates that the PES packet header is immediately followed by the video start code or audio syncword.


    ist es dann zulässig, nach dem Header und vor dem Syncword noch stuffing bytes zu übertragen?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hi,


    die stuffing bytes sind Bestandteil des PES-Headers und auch in der Header Data Length enthalten. Wenn die PES "austütel"-Routine richtig funktioniert, dann bekommt der Audiodekoder auch nur die Audiodaten übermittelt.


    Man müsste wohl die Audioframes selber mal untersuchen, ob da sowas wie anxillary data o. ä. enthalten ist, was den Dekoder stört.


    Bye.

Jetzt mitmachen!

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