Video Treiber für Odroid-N2+ (softhdodroid)

  • Wie ich schon erwartet habe tritt das Problem hier nicht auf.


    Aber evtl. kannst du mal in der Konfig schauen. Setze mal die Audio Puffer size auf 0 und das Audio/Video Delay auch mal auf 0.

    Tritt dann das Problem noch auf ? Und tritt es auch beim abspielen einer Aufnahme auf ?


    Hast du da ein TV mit 50Hz dran ?


    Welche ffmpeg Version nutzt du. Das Audio ist da ja AAC und evtl. kommt da der decoder nicht mit. Da war doch vor kurzem etwas mit AAC und ffmpeg.

  • Bei Live-TV tritt es nicht immer auf. Ich hatte zuerst den Verdacht, dass sich der senderseitige Encoder aufgehängt hat. Aber nachdem das immer wieder und über lange Zeiträume (i.d.R. dann mindestens während der Dauer der laufenden Sendung) auftrat, habe ich dann eine Aufnahme gemacht. Die spielt mit den gleichen Problem ab, siehe Musteraufnahme, die ich verlinkt hatte. Wenn ich die ts-Datei auf meinem Desktop-Rechner mit vlc abspiele, läuft sie normal.

    Ich habe eben nochmal frisch aus dem git ausgecheckt - Problem besteht weiterhin. Dies sind meine Audio-Einstellungen:

    Kernel ist der von Zabrimus modifizierte CE-Kernel 4.9.269. Kodi spielt die ts-Datei flüssig ab, aber die haben ja auch eine komplette eigene A/V-Synchronisation.


    Du hattest mal geschrieben, dass Du jetzt den 5er-Kernel von CE new order mit Ubuntu nutzt. Geht damit auch Kodi? Vielleicht kannst Du ja mal ein HowTo dazu schreiben.


    Nachtrag: Der TV läuft auf 1080p50

    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

  • Ich habe mir den Stream nochmal genauer angeschaut. Das einzige was mir aufgefallen ist, ist das das Video nur einen relativ kurzen Vorlauf von ca. 250ms gegenüber dem Audio hat. Wenn da ffmpeg etwas länger beim Audio decodieren braucht dann klappt es nicht mehr. Ist aber nur ein wilde Vermutung. Nutzt du den 5.1 Audio Stream oder den Stereo Stream und tritt es bei beiden auf ?


    Den Kodi Kernel unter Ubuntu zu nutzen ist nicht so einfach. Da musst du dann auch eine eigene ramdisk dazu bauen. Ausserdem braucht der Kernel noch die common_drivers. Da habe ich viel aus Zabrimus VDR*Elec rüber kopiert bevor das lief.

  • Wenn ich die Audiospur misc oder qks (beides wohl mp2) auswähle, wird es normal abgespielt. Nur der ac3-Ton macht Probleme. Deine Vermutung ist also wahrscheinlich gar nicht so wild.

    Unter welchem Kernel hast Du denn getestet?


    Eine Verdopplung der Audio Buffer Size auf 672 oder Deaktivieren von Passthrough ändert übrigens nichts.

    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

  • Unter welchem Kernel hast Du denn getestet?


    Eine Verdopplung der Audio Buffer Size auf 672 oder Deaktivieren von Passthrough ändert übrigens nichts.

    Ich teste mit dem 4.9.269 Kernel von Zabrimus unter chroot.

    Die Audio Puffer Size ist hier leider nicht wichtig. Wenn das Audio zu spät kommt dann wird das Video immer wieder angehalten weil das Audio ja die Referenz ist. Passthrough wird leider auch durch den ffmpeg decoder geführt (obwohl nicht nötig) und bringt deswegen auch nix. Das könnte ich mal umbauen, war bisher halt nicht nötig und ist noch vom Original von Johns :)

  • Ich verstehe bloß nicht, weshalb es bei Dir läuft und bei mir nicht. Wir nutzen beide den gleichen CE-Kernel in chroot. Welches Ubuntu image hast Du denn? Bei mir zeigt cat /etc/lsb-release

    Code
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=20.04
    DISTRIB_CODENAME=focal
    DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"

    ffmpeg:

    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

  • Ich kann die Beobachtung von Dr. Seltsam bestätigen. Bei mir tritt das Problem mit dem stockenden Bild nur bei verschl* Sendern auf. Extrem ist es bei derzeit Discovery HD. Der sendet auch in DD AC3. Komischerweise ist das aber nur bei 4-Kernel der Fall, nicht mehr beim 5-Kernel.

    Fairerweise muss ich aber auch sagen, dass ich dieselben Aussetzer auch unter CE habe, wenn ich das vnsi-Plugin benutze (auch nur unter Kernel 4, nicht unter Kernel 5). Ich dachte schon, dass es ein interlaced/progressive Problem ist, aber soweit ich weiß, ist DVB-T2 progressive?

  • Ich kann die Beobachtung von Dr. Seltsam bestätigen. Bei mir tritt das Problem mit dem stockenden Bild nur bei verschl* Sendern auf. Extrem ist es bei derzeit Discovery HD. Der sendet auch in DD AC3. Komischerweise ist das aber nur bei 4-Kernel der Fall, nicht mehr beim 5-Kernel.

    Fairerweise muss ich aber auch sagen, dass ich dieselben Aussetzer auch unter CE habe, wenn ich das vnsi-Plugin benutze (auch nur unter Kernel 4, nicht unter Kernel 5). Ich dachte schon, dass es ein interlaced/progressive Problem ist, aber soweit ich weiß, ist DVB-T2 progressive?

    Da es mit mpeg-Ton keine Probleme gibt, dürfte es an interlaced/progressive nicht liegen, und ja, nach meiner Kenntnis ist DVB-T2 progressive. Läuft denn die Testaufnahme (Link in #960) bei Dir?

    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

  • Welche Audio-Konfiguration verwendest Du denn? Passthrough? An welche alsa devices? Hier läuft es Passthrough und

    Code
    -a hw:CARD=AMLAUGESOUND,DEV=0 -p hw:CARD=AMLAUGESOUND,DEV=0

    Das ist von Anfang an meine Konfiguration. Demnach ist das offenbar spdif_b?

    Den Patch https://github.com/jojo61/vdr-…61efa8539fa68bdfa38fd8635 verstehe ich nicht. Die Beschreibung "New Parameter for using Spdif instead of Spdif_b" impliziert, dass spdif_b Standard sein soll. Aber

    Code
    snd_mixer_selem_set_enum_item(elem, (snd_mixer_selem_channel_id_t)0, UseAudioSpdif ? 0 : 1 ); // 0 = spdif 1= spdif_b

    bedeutet doch, dass ohne Übergabe eines Parameters UseAudioSpdif 0 ist und dann nicht spdif_b sondern spdif genommen wird. Ist das dann bei mir DEV=2?

    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

  • bedeutet doch, dass ohne Übergabe eines Parameters UseAudioSpdif 0 ist und dann nicht spdif_b sondern spdif genommen wird. Ist das dann bei mir DEV=2?

    Erstmal wenn UseAudioSpdif gleich 0 ist dann wird eine 1 ausgegeben und damit Spdif_b genutzt. Ob das dann etwas mit den devices DEV=0 oder DEV=2 zutun hat kann ich nicht sagen. In der config nutze ich DEV=0 und UseAudioSpdif ist bei mir auch 0.


    Ich habe mit und ohne Passthrough getestet und beides funktioniert bei mir.

  • Habe die Aufzeichnung jetzt auf den N2+ kopiert - dort tritt das gleiche Problem auf.

    Kann es am LATM-Codec liegen? Mir fällt bei Live-TV auf, dass die von Femon in der Streaminformation angezeigten Werte während einer laufenden Sendung ständig wechseln. Mal wird LATM angezeigt, dann wieder MPEG. Auch Kanalmodus, Bitrate und Abtastrate wechseln ständig.


    Hast Du vielleicht eine neuere ffmpeg-Version als ich?

    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

  • Die Kernel-Meldungen, die ich beim Bildhänger habe, sind (jetzt auch beim 5-Kernel):


    Jul 25 22:50:35 CoreELEC kernel: 0: vh264_set_params active_buf_spec_num 11 dec_dpb_size 5 collocate_buf_num 8

    Jul 25 22:50:35 CoreELEC kernel: 0: num_ref_frames change from 0 to 4

    Jul 25 22:57:35 CoreELEC kernel: 0: bufmgr_h264_remove_unused_frame, unmark error frame

    Jul 25 22:57:35 CoreELEC kernel: 0: bufmgr_h264_remove_unused_frame, unmark error frame

    Jul 25 22:57:35 CoreELEC kernel: 0: error 50 B frame, reset dpb buffer

    Jul 25 22:57:35 CoreELEC kernel: 0: config_decode_buf fail (-1)

    Jul 25 22:57:35 CoreELEC kernel: 0: h264_reset_bufmgr frame count 16009 to skip 0

    Jul 25 22:57:35 CoreELEC kernel: H264 sysinfo: 0x0 duration=3840, pts_outside=0

    Jul 25 22:57:35 CoreELEC kernel: sync_outside=1, use_idr_framerate=0, is_used_v4l: 0

    Jul 25 22:57:35 CoreELEC kernel: 0: AV_SCRATCH_1 = 41fe078, AV_SCRATCH_2 12053, AV_SCRATCH_B: = 428

    Jul 25 22:57:35 CoreELEC kernel: 0: chroma_format_idc = 1 frame_mbs_only_flag 0, crop_bottom 8, frame_height 1080,

    Jul 25 22:57:35 CoreELEC kernel: 0: mb_height 68,crop_right 0, frame_width 1920, mb_width 120

    Jul 25 22:57:35 CoreELEC kernel: 0: mb height/widht/total: 44/78/1fe0 level_idc 28 max_ref_num 4

    Jul 25 22:57:35 CoreELEC kernel: 0: restriction_flag=0, max_dec_frame_buffering=0, dec_dpb_size=5 num_reorder_frames 0 used_reorder_dpb_size_margin 6

  • Jul 25 22:57:35 CoreELEC kernel: 0: bufmgr_h264_remove_unused_frame, unmark error frame

    Jul 25 22:57:35 CoreELEC kernel: 0: bufmgr_h264_remove_unused_frame, unmark error frame

    Jul 25 22:57:35 CoreELEC kernel: 0: error 50 B frame, reset dpb buffer

    Jul 25 22:57:35 CoreELEC kernel: 0: config_decode_buf fail (-1)

    Das sieht mir aber eher nach einem Empfangsproblem aus. Da scheint etwas im Videostream defekt zu sein.

    Hast Du vielleicht eine neuere ffmpeg-Version als ich?

    Nein ich habe auch die 4.2.7

  • Ein paar Anmerkungen zum Audio:

    In den letzten Tagen habe ich mich mit dem Problem vom 5.1 Audio auf DVB-T beschäftigt. Dort wird kein AC3 Audio sondern ein 6 Kanal (5.1) AAC-LATM Audio gesendet. Dieses Audio kann nicht per Passthrough ausgegeben werden. Stattdessen wird es per ffmpeg decodiert und dann als 6 Kanal PCM oder 2 Kanal PCM ausgegeben. Ob 6 oder 2 Kanal entscheidet das Setting "(E)-AC3 Downmix".


    Dabei ist mir aufgefallen das das Device "hw:CARD=AMLAUGESOUND,DEV=0" kein 6 Kanal PCM kann. Leider wird dieses Setting von vielen hier genutzt.

    Das führt dann manchmal zum Stottern des Bildes oder Verlust des Tons und nur ein reboot oder ein umschalten auf Kodi hilft. Besser wäre es in der Konfig keine Eintrage für -a und -p zu machen. Dann wird als default "-a hw:CARD=AMLAUGESOUND,DEV=3" genommen und da klappt dann auch 6 Kanal PCM Audio.


    Da bei vielen Passthrough aktiv gesetzt wird, ist die Einstellung für den Downmix nicht zu sehen (kommt nur wenn Passthrough aus ist). Dennoch ist dieses Setting wichtig für alle 5.1 Audio Streams die nicht per Passthrough ausgegeben werden.


    Und zum Schluss noch etwas zum Setting "PCM passthrough". Dies sollte immer auf aus gestellt sein. Nur dann werden die 6 PCM Kanäle (siehe oben) in die richtige Reihenfolge für die alsa Ausgabe gebracht. Bei "PCM passthrough" auf "ein" wird die Kanalreihenfolge nicht umsortiert und dann stimmt die Lautsprecherzuordnung nicht mehr. Ich denke dieses Setting kann wohl raus weil es m.E. keinen Sinn macht.

  • Ich habe mal etwas mit dem iptv plugin gespielt und dabei ist mir aufgefallen das es auch Audio Spuren mit kleinen Samplingfrequenzen gibt.

    Da ich eh das Audio resample habe ich nun dafür einen Support eingebaut. Mal sehen was noch so nötig wird fürs Audio :)

  • Sehr gut :) Das Plugin kompiliert auch für CoreELEC-20. Aber....


    CoreELEC-21 und CoreELEC-22 machen Probleme:


    FFmpeg liegt hier noch bei

    Code
    PKG_NAME="ffmpeg"
    PKG_VERSION="6.0.1"


    Ob es was hilft?

    Code
    #define AV_CHANNEL_LAYOUT_STEREO_DOWNMIX    AV_CHANNEL_LAYOUT_MASK(2,  AV_CH_LAYOUT_STEREO_DOWNMIX)
    #define AV_CHANNEL_LAYOUT_MASK(nb, m) \
        { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = (nb), .u = { .mask = (m) }}

Participate now!

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