So ich habe es nun mal hier getestet und so wie es aussieht braucht es beim odroid HBR. Ich habe es nun wieder aktiviert und eingecheckt.
Lustiger weise braucht es beim softhdcuvid kein HBR.
So ich habe es nun mal hier getestet und so wie es aussieht braucht es beim odroid HBR. Ich habe es nun wieder aktiviert und eingecheckt.
Lustiger weise braucht es beim softhdcuvid kein HBR.
Paulaner Das könnte am HBR liegen. Du kannst mal HBR für DD+ aktivieren indem du in der Datei codec.c in Zeile 624 den Kommentar raus nimmst.
Die Zeile muss dann so aussehen:
Gib mir Feedback falls es dann klappt. Dann müsste ich HBR konfigurierbar machen.
Nimm mal die libmali aus deiner chroot installation.
Sep 25 11:58:18 odroid vdr[3404]: [3416] [softhddev] vom VDR kommt Clear:
Da läuft das Video nicht an und deswegen schickt der VDR dauernd ein Reset. Hattest du gesehen das man beim 22.04. die libmali nachinstallieren muss ?
Du kannst auch die Desktop Version nehmen. Es kommt nur auf den Kernel an.
horchi welcher Kernel ist denn bei Ubuntu 22.04. Vermutlich ist da ein libmali Problem.
Das ganze läuft nur mit dem 4.9er Kernel mit den Odroid erweiterungen. Der ist auch bei CoreELEC dabei.
Ein Standard Ubuntu Kernel geht da eher nicht.
Edit:
Nimm einfach das 20.04 Image. Ich habe nie auf dem 22.04 getestet.
Das sieht nun so aus:
remolog:
[2023-09-24 16:08:38.154] [transcoder] [info] [ffmpeghandler.cpp:31] Start reader thread...
[2023-09-24 16:08:38.219] [transcoder] [info] [main.cpp:186] Stop streamId 192.168.1.54_50001, reason VDR request StopVideo
[2023-09-24 16:08:38.221] [transcoder] [debug] [ffmpeghandler.cpp:178] av_interleaved_write_frame(): Broken pipe
[2023-09-24 16:08:38.221] [transcoder] [debug] [ffmpeghandler.cpp:178] Error writing trailer of /tmp/ffmpegts_192.168.1.54_50001: Broken pipe
[2023-09-24 16:08:38.154] [transcoder] [info] [ffmpeghandler.cpp:31] Start reader thread...
[2023-09-24 16:08:38.219] [transcoder] [info] [main.cpp:186] Stop streamId 192.168.1.54_50001, reason VDR request StopVideo
[2023-09-24 16:08:38.221] [transcoder] [debug] [ffmpeghandler.cpp:178] av_interleaved_write_frame(): Broken pipe
[2023-09-24 16:08:38.221] [transcoder] [debug] [ffmpeghandler.cpp:178] Error writing trailer of /tmp/ffmpegts_192.168.1.54_50001: Broken pipe
und hier das syslog
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] StartVideo received
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] Create WebOSDPage, osdMode 1
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] WebOSDPage Display
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [softhddev]CreateOsd: left 0, top 0, level 5, using OpenGL OSD support
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [softhddev]cOglOsd osdLeft 0 osdTop 0 screenWidth 1920 screenHeight 1080
Sep 24 16:08:38 Odroid vdr[3751]: [3751] [vdrweb] Destruct WebOSDPage, osdMode 0
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] Area size set to 0:0 - 1920:1080
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] webospage SetOsdSize()
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] webosdpage SetOsdSize, Get new OSD size
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] webosdpage SetOsdSize, Create pixmap 1920x1080
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] webosdpage SetOsdSize, Clear Pixmap
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] Create Player...
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [softhddev]SetPlayMode: 0
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [softhddev]SetVolumeDevice: 125
Sep 24 16:08:38 Odroid vdr[3751]: [3793] [vdrweb] WebOSDPage::DrawVolume...
Sep 24 16:08:38 Odroid vdr[3751]: Set Playmode 0
Sep 24 16:08:38 Odroid vdr[3751]: amlreset
Sep 24 16:08:38 Odroid vdr[3751]: [3794] [vdrweb] Delete Player...
Sep 24 16:08:38 Odroid vdr[3751]: [softhddev]Clear: 20ms buffers 0
Display More
Da gefällt irgend etwas dem VDR nicht oder der Ablauf ist noch falsch. Ich würde hier ein Set PlayMode 1 erwarten. Das startet einen Stream.
Bei einem anderen Versuch habe ich folgendes Log:
Sep 24 16:18:49 Odroid vdr[4638]: [4681] [vdrweb] Create Player...
Sep 24 16:18:49 Odroid vdr[4638]: [4681] [softhddev]SetPlayMode: 0
Sep 24 16:18:49 Odroid vdr[4638]: [4681] [softhddev]SetVolumeDevice: 125
Sep 24 16:18:49 Odroid vdr[4638]: [4680] [vdrweb] Error playing ts, result is -1
Sep 24 16:18:49 Odroid vdr[4638]: [4681] [vdrweb] WebOSDPage::DrawVolume...
Da bricht dann das PlayPacket ab weil der PlayTS ein -1 zurück bringt. Du scheinst nach den starten des Players zu schnell Daten zu liefern. Wenn ich beim Create Player einen sleep 1 einbaue dann kommt zumindest die -1 nicht mehr, aber laufen tut es auch nicht.
Bei mir ist es in der 5.3.1 nicht drin. Wollte es auch schon ausprobieren.
Das verhalten beim starten von RTL streams hat sich nicht geändert.
[2023-09-24 11:35:15.115] [transcoder] [info] [ffmpeghandler.cpp:31] Start reader thread...
[2023-09-24 11:35:15.180] [transcoder] [info] [main.cpp:185] Stop streamId 192.168.1.54_50001
[2023-09-24 11:35:15.188] [transcoder] [debug] [ffmpeghandler.cpp:178] Error writing trailer of /tmp/ffmpegts_192.168.1.54_50001: Broken pipe
Startest du den Reader Thread nicht etwas zu spät. Nur 65ms später stoppt schon der Stream.
Edit:
Wenn ich es danach nochmal versuche bekomme ich meistens einen Segmentation Fault. Irgend etwas ist da noch faul
wie sieht Servus TV denn mit dem CUDA deinterlacer aus? Evtl. nimm doch den.
Ich bin mir mittlerweile sicher das das geändert werden muss. Ich teste das nochmal hier und werde dann git updaten.
Edit:
So ich habe es nun eingecheckt.
Wenn sich die Auflösung nicht ändert dann wird der deinterlacer nicht neu initialisiert.
Nimm mal den YADIF Block ab Zeile 2963 in video.c und schiebe ihn vor den if. Also auf Zeile 2943.
Das eigentliche Problem ist, dass yadif manchmal nicht anspringt.
Was ist denn dann im Log zu sehen. Wenn es klappt muss da
Init YADIF ok
stehen oder halt
Init of YADIF Filter failed
Zum Streamabbruch:
Du setzt in PlayPacket bei jedem "Problem" tsError = true. Das ist m.E. falsch weil ja TeilPakete richtig gehändelt werden und keinen Fehler darstellen.
Derzeit bricht der Stream dann aber ab weil du den Player dann stoppst. Das habe ich bei mir zum testen mal geändert und dann laufen auch die Streams.
Der einzige Grund tsError auf true zu setzen wäre evtl. wenn du die Daten längere Zeit (>2s) nicht los wirst. Weil dann entweder der Stream Pausiert ist oder ein anderes Problem vorliegt.
Nun zum Problem mit dem laden der Werbung bei RTL:
Da ist es tatsächlich so das er beim laden hängen bleibt und der Stream überhaupt nicht losläuft. Könnte evtl. an meinem Pi-Hole liegen, aber da ist der testvdr eigentlich freigeschaltet. Da suche ich nun mal weiter.
Edit:
Also so wie es aussieht ist es kein Problem mit dem Stream sondern wohl ein Timing Problem. Ich habe mal das Log von remotrans angehängt wo versucht wird ein Stream von RTL zu starten. Da erst immer Werbung kommt dachte ich das es daran liegt. Scheint aber generell zu sein. Manchmal klappt es ja auch .
Findest du im syslog die Meldung "WebOSDPage::DeleteVolume"?
Ja das sehe ich. Aber ich glaube das Problem liegt woanders. Wenn der Film abbricht (warum auch immer) dann kommt der Volumebalken und das normale TV Bild wird wieder angezeigt. Dann bleibt der Balken stehen. Ich denke wir sollten erstmal das Problem finden warum der Stream einfach abbricht. Mir ist RTL und Co. nicht wichtig, Hauptsache die Mediatheken gehen. Und da sieht es bis auf die Abbrüche schon super aus.
Es findet ein Wechsel der Auflösung zwischen Werbung und Film statt
Das will ich im softhdodroid plugin abfangen und dann den Decoder neu starten. Nur ist es mir bisher halt nicht gelungen das Testszenario zum laufen zu bringen
Anbei noch das Xorg.log.
Du nutzt ein Custom EDID. Ist das irgendwie modifiziert oder nur das Edid das dein Monitor/TV eh liefern würde ? Bist du sicher das dein TV auf progressiv läuft ? Das zittern bei SD scheint ein Problem von Yadif zu sein.
Das Falschfarben Problem bleibt mir ein Rätsel. Und das ist erst mit dem 535er Treiber aufgetreten ?
softhdcuvid.576i.Deinterlace = 3
Das ist sicher falsch. Es sollte 0 = cuda oder 1 = yadif sein.
Was mir gerade auffällt, das Zittern tritt nur auf, wenn der Bildinhalt sich verändert.
da sieht mir so aus als ob die Reihenfolge der Bilder nicht stimmt. Vielleicht solltest du doch mal ffmpeg updaten. Das schadet zumindest nicht.
Wie ist denn der X server eingestellt? Und welche cuda version hast du ?
Nein ohne Kanalwechsel wird er nie umschalten.
Wenn du überall yadif eingestellt hast, dann sollte es da kein Problem geben. Nur wenn du den deinterlacer wechselst musst du zwischedurch auf ein progressiven Kanal schalten. Ich initialisiere den deinterlacer nur wenn vorher progressiv war. D.h. wenn du ihn umschaltest dann wird das evtl. erst später aktiv.
Die Falschfarben treten nur mit cuda auf, mit Bob oder yadif ist alles ok.
Ich fürchte da kann ich nichts machen. Das Frame ist nach dem dekodieren durch cuda auf der GPU und wird dann dort auch deinterlaced. Entweder durch yadif_cuda oder den cuda dekoder direkt. Wenn der cuda deinterlacer da dann Falschfarben erzeugt kann das nur NVIDIA beheben. Das einzige was mir dazu noch einfällt ist evtl. Cuda nochmal zu installieren.
Ich habe oft im Video den Lautstärkebalken oben im Bild und er geht nicht weg.
Dann habe ich versucht bei RTL mal Werbung und Film anzuschauen aber beim laden der Werbung bleibt er hängen .
Im Log sehe ich zwar das wohl ein Film startet aber es kommt kein Bild, vermutlich also keine weiteren Daten.
Ich sehe leider nichts mehr im Log vom web plugin.
Edit:
Jetzt habe ich mal auf ARD einen Film gestreamt und der bricht nach wenigen Minuten ab mit folgender Meldung: