wie man den Raspi5 als VDR Client betreibt
Ein Raspi ist zum Basteln ist OK. Als VDR Client gibt es geeignetere Boards!
wie man den Raspi5 als VDR Client betreibt
Ein Raspi ist zum Basteln ist OK. Als VDR Client gibt es geeignetere Boards!
RasPi Support ist halt besser.
Das hängt von der Sichtweise ab. Im Mainline Kernel sind Allwinner und Rockchip führend. Raspi braucht ein vom Hersteller verwaltetes Kernel + Firmware. Wenn die nicht mehr wollen / können war's das.
Aber wenn man sich das Design anschaut, ist das ein PC Layout und kein kleines leichtes Entwicklerboard mehr.
Das war das Rockpro64 vor Jahren schon. Mittlerweile ist das Standard! Bei Raspberry bin ich gespaltener Meinung. Auf der einen Seite hat das Unternehmen die ARM Boards sehr verbilligt. Auf der anderen Seite wird immer noch eine proprietäre Firmware auf der GPU gebootet unter deren Gnaden ein Linux-System auf den ARM Cores arbeiten darf.
FLIRC nutzt wohl das X11 Keyboard. X11 gibt es aber nicht. Keine Ahnung ob das an eine Konsole gebunden werden kann. FLIRC kommuniziert nur mit vdr. Softhddevice-drm macht was vdr vorgibt.
Auf einem ARM Board würde ich einen IR-Empfänger direkt an einen GPIO-Pin stöpseln und RC-Core über GPIO nutzen. Das ist einfach und preiswert.
Ich pflege softhddevice-drm für ARM Brettel. In meinem git sind die Änderungen eingepflegt.
hat zillerbaer mittlerweile eine Lösung gefunden?
Ja, das Problem waren die mixed progressive und interlaced Frames.
Wobei sich dann immer noch die Frage stellt, warum alle anderen hier mit dem Transponder Probleme haben und ich nicht.
Auf dem Transponder liegen die SD Kanäle von ProSieben Sat1. Ich sehe das Problem nicht im Empfangsbereich sondern im "unkonventionellen" Stream der gesendet wird.
Genau, ich denke mittlerweile, dass deren Encoder fehlerhaft ist.
Du meinst wir müssen den das nur mal mitteilen?
Die Simpsons und Galileo waren aber progressive.
Es wechselt im Stream immer wieder hin und her. Ein Muster habe ich bisher nicht finden können. FFmpeg untersucht nur einige Frames am Anfang der Aufnahme und gibt diese Ergebnisse aus.
Habt Ihr die auch, oder muss ich nach dem Feher in meiner SAT-Verteilung suchen gehen?
Solche Fehler findet FFmpeg hier auch. Mit Mediaplayer und über vdr wird die Aufnahme aber abgespielt. Das muss ich noch genauer untersuchen. An der SAT Anlage brauchst du wohl erst mal nix machen.
Meinen Fehler habe ich wohl gefunden. Seit gestern Abend keine Segfaults mehr. Es war dann wohl ein Threading Problem. Jetzt muss ich noch die zeitliche Reihenfolge der Bilder sicher stellen.
Zeig mal den Code
if (render->interlaced_frame != frame->interlaced_frame) {
#include <time.h>
time_t now;
time(&now);
fprintf(stderr, "VideoRenderFrame: interlaced_frame changed to %d , %s\n",
frame->interlaced_frame, ctime(&now));
render->interlaced_frame = frame->interlaced_frame;
}
Er bleibt aber nicht hängen,
Ich denke das das nur mein Plugin macht. Weiss aber noch nicht warum.
sondern dropt und dupt gelegentlich.
Das muss ich auch noch klären. Ein progessive Frame kann sofort in die Queue. Ein interlaced muss erst durch den Deinterlacer. Das braucht seine Zeit. Da kann ein progessive Frame die interlaced Fames sozusagen überholen und in falscher zeitlicher Reihenfolge in der Queue ankommen.
Welche Stelle im Code produziert denn diesen Output?
Das Log habe ich nach dem Decoder eingefügt. Bevor entschieden wird ob deinterlaced werden muss.
Auf den PTS sollte es keinen Einfluss haben. Der ist per Frame. Das beinhaltet ein Bild wenn progressive oder ist dem ersten Bild wenn interlaced zugeortnet.
Es wechselt zwischen interlaced und progressiv ständig hin und her. Hier ein Log über eine halbe Stunde von Sat1.
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:00:09 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:00:34 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:00:37 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:01:10 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:01:14 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:01:25 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:01:27 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:01:59 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:02:00 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:05:15 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:05:18 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:05:22 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:05:23 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:06:53 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:06:53 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:08:33 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:08:36 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:08:44 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:08:44 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:12:44 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:12:45 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:12:45 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:12:46 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:12:49 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:12:50 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:17:39 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:17:40 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:18:26 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:18:27 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:21:55 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:21:57 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:22:12 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:22:20 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:22:34 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:23:33 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:23:33 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:23:34 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:23:34 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:23:35 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:23:40 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:23:47 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:23:53 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:23:57 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:24:00 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:24:34 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:24:34 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:24:35 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:24:35 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:24:47 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:24:47 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:02 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:26:04 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:24 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:26:30 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:39 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:26:42 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:43 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:26:48 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:52 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:26:58 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:26:58 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:27:00 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:27:31 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:27:31 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:27:40 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:27:41 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:27:45 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:27:45 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:27:59 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:00 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:00 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:00 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:24 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:24 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:24 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:26 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:29 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:29 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:31 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:31 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:36 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:36 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:46 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:48 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:52 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:54 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:28:54 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:28:54 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:03 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:03 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:04 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:05 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:17 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:17 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:18 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:18 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:22 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:23 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:28 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:29 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:34 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:34 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:35 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:36 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:43 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:44 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:46 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:46 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:48 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:49 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:50 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:50 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:51 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:29:54 2023
VideoRenderFrame: interlaced_frame changed to 1 , Tue Aug 8 14:29:56 2023
VideoRenderFrame: interlaced_frame changed to 0 , Tue Aug 8 14:30:00 2023
Display More
Das aktuelle Problem ist das nach langer Zeit (Stunden) ein leeres Frame zum Anzeigen auftaucht und zum Segfault führt. Noch weiss ich nicht ob das vom Deinterlacer oder Decoder kommt. Hat jemand eine Idee?
Sonst hätte man ja analog speichern müssen.
Doch, das war analog. Digital kam später.
Es wurde oben links angefangen ein Pixel nach dem anderen mit dem Elektronenstrahl zeilenweise zu schreiben. Dabei wurde jede zweite Zeile ausgelassen. Diese wurde im zweiten Duchgang dargestellt. Danach wurde wieder oben angefangen. Der Elektronenstrahl hat permanent ein Pixel geschrieben. Daraus ergab sich dann durch die Trägheit der Röhre ein Bild.
Heute werden die Informationen verarbeitet und das Bild zu einem Zeitpunkt dargestellt.
Jedes Frame enthält nur ein halbes Bild.
Es kommen immer die beiden Halbbilder eines Vollbildes nacheinander, dann die beiden Halbbildes des nächsten Vollbildes.
Nein, es wird immer ein Frame übertragen das in den geraden Zeilen ein Halbbild und in den ungeraden Zeilen ein Halbbild enthält.
Edit: Diese Halbbilder werden deinterlaced im Abstand von 20ms dargestellt. Die gesendeten progressiven Frames werden im Abstand von 40ms dargestellt. Die Bildinformationsmenge ist die gleiche, nur anders auf Bilder und zeitlich verteilt.
Progressive Frame geben bessere Qualität als interlaced bei gleicher Frame Rate,
Ja, bei gleicher Framerate. Die wird aber bei progessiv auf 25 fps halbiert. Deshalb gleiche Datenmenge.
SHF , Danke für Deine Recherche! Progressive Frames sind ein Standart. Das aber interlaced und progressive Frames gemischt in einem Stream vorkommen ist neu. Keine Ahnung ob das von einen Standart gedeckt ist.
Bei der Bildqualität sehe ich eher Vor- als Nachteile
Weder noch. Werden progressive Frames übertragen wird jedes zweite Bild weggelassen. Bei interlaced ist in einem Frame die Information für 2 Bilder. Die übertragene Bildinformationsmenge ist also gleich.
Nach einem Kernel Update werden auch bei Rockchip die progessiven Frames erkannt. Die bringen die Ausgabe durcheinander. Seit gestern Abend scheint SAT1 komplett progressive zu senden. Das läuft zwar stabil, aber jedes Bild muss verdoppelt werden. Wollen die damit SD weiter verschlechtern um das Marketing für Ihre HD Karten anzutreiben?
steht die Frequenz auf 12542 Astra S19.2E Astra 1KR/1L/1M/2C
In der channels.conf die vdr mitbringt steht:
SAT.1;ProSiebenSat.1:12544:HC56M2S0:S19.2E:22000:255=2:256=deu@3;259=deu@106:32:0:17500:1:1107:0
Ich habe aber mal die vdr eigene Sendersuche (neue Kanäle hinzufügen) eingeschaltet. Mal sehen was passiert.
Im markad Log ist mir genau bei den o.g. Sendern seit ein paar Tagen aufgefallen, dass alle paar Minuten progressive Frames zwischen den interlaced Frames gesendet werden.
Progressive Frames habe ich bisher noch keine gefunden. Es sind aber unregelmäßig Frames mit utopischer Weite und Höhe im Stream.
[ 9756.296353] hantro_set_fmt_cap:596: fmt - w: 720, h: 576
[ 9757.194262] hantro_set_fmt_cap:596: fmt - w: 48, h: 48
[ 9757.194301] hantro_set_fmt_out:536: fmt - w: 0, h: 0
[ 9757.194306] hantro_set_fmt_cap:596: fmt - w: 96, h: 32
[ 9757.194311] hantro_set_fmt_out:536: fmt - w: 0, h: 0
[ 9765.632471] hantro_set_fmt_cap:596: fmt - w: 96, h: 32
[ 9765.632477] hantro_set_fmt_out:536: fmt - w: 0, h: 0
[ 9765.632715] hantro_set_fmt_cap:596: fmt - w: 48, h: 48
[ 9765.632751] hantro_set_fmt_cap:596: fmt - w: 720, h: 576
Es geht soweit, dass nur noch die alten Karten mit STV0299 ein fehlerfreies Signal liefern.
Was machen die alten Karten anders als z.B DD Cine? kfb77 , was für einen Tuner benutzt Du?
Mittlerweile weiß ich gar nicht mehr, ob es eine saubere und einfache Lösung für das Problem gibt.
Reicht es nicht das der Browser mit -z angepasst werden kann?