Beiträge von nanohcv

    Hallo,


    hat das rpihddevice irgendwo eine Option, um ein benutzerdefiniertes Display Aspect Ratio zu setzen?


    Hintergrund ist folgender:
    Der offizielle Raspberry Pi 7" Touchscreen (welcher über die DSI Schnittstelle angeschlossen wird), hat keine quadratischen Pixel.
    Das Display hat eine Auflösung von 800x480, was bei quadratischen Pixel ein Seitenverhältnis von 15:9 (1,6667) ergeben würde.
    Tatsächlich hat das Display einen sichtbaren Bereich von 155x86mm oder genauer die Pixelabmessungen 0,19x0,175mm, was ein Seitenverhältnis von 9:5 (864:480 = 1,8 ) bzw. genauer 217:120 (868:480 = 1,80833) ergibt.
    Dementsprechend ist das Bild gestreckt, was besonders bei 4:3 Sendungen auffällt und stört.


    Nun die Frage, gibt es eine Option ein benutzerdefinierten DAR Wert anzugeben?


    Momentan helfe ich mir, indem ich das Aspect-Ratio fest in der Funktion "int cRpiDisplay::GetSize(int &width, int &height, double &aspect)" der display.c setze.


    Gruß
    Karl

    Also paar Logs wären sicherlich interessant, aber folgender Bug sorgt bei mir auch fast immer für schwarzes Bild am Client:


    https://projects.vdr-developer.org/issues/2220


    MIt dem streamdev-channelchange.diff Patch hab ich keine Probleme mehr.
    Der Clear Pids Patch ist wohl schon eine Weile im VDR integriert.


    Gruß
    Karl



    Edit: Ich suche heute abend mal den angepassten Patch raus, da Streamdev für VDR 2.3.x auch schon einige andere Patches benötigt und der Patch von projects.vdr-developer.org/issues/2220 vermutlich nicht mehr geht.

    Also ich hab so ein J4205-ITX und damit läuft meine Cine S2 V6.5 auch nicht. (I2C Timeouts, System-Abstürze und und und...)


    Wo hast du das mit dem BIOS gelesen?
    Ich finde nur das BIOS V1.20 vom Januar und damit geht die Karte nicht.


    Vorher hatte ich ich eine Cine C2T2 V7. Die konnte man zumindest halbwegs auf dem Board verwenden, aber wirklich stabil war das auch nicht.
    Wirklich stabil läuft bei mir nur die Duoflex S2 an einer Octopus Mini V2, die per Mini-PCIe Adapter am M.2 Slot hängt (der auf dem Board eigentlich nur für WLAN und Bluetooth vorgesehen ist :)


    So wie das hier aussieht, haben wohl alle Apollo Lake Boards von ASRock das Problem.

    Also :] .


    ich hab mal diverse Logs von allen Slots erstellt.


    Für unverschlüsselte Sender heißen die Slot1-3.txt
    Für Logs mit einem verschlüsselten Sender heißen die Logs e_slot1.txt und e_slot2-3.txt


    Rausgefiltert habe ich diverse softhddevice Meldungen und die "DDCI-Err: Can't write packet VDR CamSlot for CI adapter" Meldungen.


    Manchmal aber nicht immer kommen auch noch solche Meldungen (egal ob ein verschlüsselter Sender oder ein unverschlüsselter Sender eingestellt ist):


    Zitat


    ERROR: invalid MTD number (1) in PID 262 (0106)


    Selbst wenn in keinem Slot irgend ein Modul steckt, kommen solche Meldungen:




    Als Treiber verwende ich den dddvb 0.9.28-v7a .


    dmesg Output:


    Ich hoffe das hilft die weiter

    Also laut Log kann das Cam MTD:


    Zitat


    Apr 01 12:25:24 BM639 vdr[16336]: [16355] CAM 3: replies to QUERY - multi channel decryption (MCD) possible
    Apr 01 12:25:24 BM639 vdr[16336]: [16355] CAM 3: supports multi transponder decryption (MTD)
    Apr 01 12:25:24 BM639 vdr[16336]: [16355] CAM 3: activating MTD support


    Ich denke die Fehlermeldungen beziehen sich nur auf die Slots, in den kein Modul drin streckt.
    Vermutlich ist /dev/dvb/adapter1 das DuoFlex S2 Modul


    /dev/dvb/adapter2 und adapter3 das DuoFlexCi in dem keine Module drin sind
    /dev/dvb/adapter4 ist das das FlexCi in dem das AlphaCrypt drin ist.


    Hier sieht man dass das Plugin da paar Threads für adapter4 startet.

    Zitat


    DDCI adapter /dev/dvb/adapter4/ca0 thread started (pid=16438, tid=16460, prio=high)
    DDCI Recv (/dev/dvb/adapter4/ci0) thread started (pid=16438, tid=16462, prio=high)
    DDCI Recv Deliver (/dev/dvb/adapter4/ci0) thread started (pid=16438, tid=16463, prio=high)
    DDCI Send (/dev/dvb/adapter4/ci0) thread started (pid=16438, tid=16461, prio=high)


    Die Fehlermeldungen beziehen sich aber alle auf Adapter2 und 3:

    Zitat


    DDCI-Err: Can't write packet VDR CamSlot for CI adapter (/dev/dvb/adapter3/ca0)
    DDCI-Err: Can't write packet VDR CamSlot for CI adapter (/dev/dvb/adapter2/ca0)
    DDCI-Err: Can't write packet VDR CamSlot for CI adapter (/dev/dvb/adapter3/ca0)
    DDCI-Err: Can't write packet VDR CamSlot for CI adapter (/dev/dvb/adapter2/ca0)

    Hallo Jasmin,


    irgendwie schreibt das ddci2 Plugin (1.01) haufenweise Fehlermeldung ins Log.
    Ich habe eine Octopus mini V2 mit Duoflex S2 + 3 CI Slots (Duoflex CI und FlexCi)


    Funktionieren tut alles, aber diese vielen Fehlermeldungen pro Sekunde machen das Log doch recht unübersichtlich.


    Zitat

    Frage - wenn ein http server in dem VDR Plugin wäre, dann könnte man doch checken ob die Segmente noch abgeholt werden... und wenn nicht, dann automatisch den ffmpeg thread beenden und aufräumen.

    Ja so ähnlich mache ich das ja in dem Plugin. Ich prüfe allerdings nicht ob noch auf Segmente zugegriffen wird, sondern ob die M3U8 noch abgeholt wird. Auf die wird ja sekündlich oder noch öfter zugegriffen.


    Ich versuche mal die Tage im XMLApi-Plugin ffmpeg die Erzeugung der Index-Datei und der Segmente zu überlassen, statt es selbst zu machen. Vielleicht löst es ja das eine oder andere Problem, dass es da noch gibt.

    Abend,


    mir war auch noch nicht bewusst, dass ffmpeg ein Segmenter integriert hat und außerdem die passende m3u8 erstellen kann,


    Ich habe mal mit folgenden FFMpeg Command einen Stream erstellt und mit Apache ausliefern lassen.

    Code
    ffmpeg -analyzeduration 1M -i "http://127.0.0.1:3000/1.ts" -vcodec libx264 -bufsize 2000k -maxrate 1200k -crf 22 -g 50 -map 0:v -map a:0 -vf "yadif=0:-1:1, scale=640:360" -preset medium -tune film -vprofile main -level 30 -acodec aac -strict -2 -ab 64k -ar 44100 -ac 2 -async 1 -f hls -hls_time 9 -hls_list_size 10 -hls_wrap 10 stream.m3u8




    Und zusammen mit Hannemann's Lösung funktioniert der Stream tadellos unter Chrome (Android/Linux/Windows), Firefox (getestet unter Windows) und dem Microsoft Edge. Der IE11 streikt und ist somit raus :)


    Da ich mich schon eine Weile mit HLS beschäftigt habe, musste ich aber feststellen das HLS leider nicht wirklich für OnDemand-Live-Streaming geeignet ist. D.h. es muss ja erst der Sender getuned werden, dann muss ffmpeg mit dem Umwandeln beginnen und bis dann die ersten Segmente und die M3U8 eintrudeln ist schon eine gewisse Zeit vergangen und da steigen die meisten Clients schon aus. Wenn dieser ganze Vorgang schon läuft und man erst dann auf den Stream zugreift gibt es natürlich keine Probleme.


    Das nächste Problem ist, dass wenn der Client die Verbindung schließt, z.B. wenn der Browser geschlossen wird, dann läuft ffmpeg munter weiter und blockiert weiter den Tuner (und lastet die CPU nicht unerheblich aus). Man könnte natürlich manuell vom Client aus irgend ein Befehl senden, der FFMpeg abschießt, aber das ist unschön. Denn wenn mal die WLAN-Verbindung vom Client zusammenbricht kommt so ein Befehl nicht an und FFMpeg läuft weiter.


    Wenn das ganze dann noch Multi-User tauglich werden soll, wird es noch problematischer. Es muss ja für jeden unterschiedlichen Kanal ein eigener FFMpeg Prozess gestartet werden, d.h. wenn die Segmente und die M3U8 über Standard-Webserver (z.B. Apache) ausgeliefert werden, müssten die alle unterschiedliche Namen bekommen.


    Man braucht also für die Auslieferung der Dateien und der FFMpeg-Überwachung ein speziell für diese Fälle angepassten Webserver .


    Mein XMLAPI Plugin kann das zwar alles, aber zufrieden bin ich da noch lange nicht. Den Segmenter den ich da integriert habe, hab ich nicht selbst entwickelt und ist schon recht alt. Keine Ahnung ob die Segmentierung und die Index-Datei Erstellung 100% Standard-konform ist. Ich denke die FFMpeg Entwickler haben da 1000x mehr Ahnung von, als ich.


    Ich hatte HLS auch nur in das Plugin integriert, weil sich Android weigerte einen Standard-HTTP-TS-Stream (wie ihn z.B. Streamdev liefert) abzuspielen. Da ich dafür aber inzwischen eine Lösung gefunden habe, und ich somit nicht mehr auf das eher ungeeignete HLS-Protokoll angewiesen bin, fliegt zumindest die jetzige Implementierung wieder raus.


    Aber da ich das Thema sehr spannend finde und inzwischen sehr viele Player und Browser (wenn auch teilweise nur mit Hannemanns entdeckter HLS-Javascript-Lösung) mit HLS umgehen können, bin ich gerne dazu bereit etwas zu einer vernünftigen Lösung beizutragen. Frickel-Lösungen gibt es ja schon einige ;)

    Mit Apple Hardware kann ich aber nicht dienen
    :P

    VG
    Karl




    Zitat

    Wenn ich jetzt das Tablet im Playback zum Landscape rotiere, wird das Video automatisch maximiert dargestellt, was ich sehr gut finde. ich kann es dann aber nicht mehr verlassen. Mein Tablet hat keine Hardware-Tasten. Ich hab also keine Möglichkeit, die Wiedergabe im Querformat zu beenden.

    Mein Smartphone hat auch keine Hardwaretasten. Aber die Softbuttons sollten doch im Fullscreen-Mode eingeblendet werden, wenn man von der Seite (beim Tablet bestimmt von unten) "rein wischt". Somit komme ich wieder zurück zur Kanal- bzw. Aufnahmeliste. Alternativ kann man ja auch wieder in den Portrait-Mode drehen.


    Zitat

    Ggf. sollte man aber doch nochmal über eine Art Bypass-Funktion ohne Transcoding zumindest für die Desktop-App nachdenken. Die Desktops haben i.d.R. genug Dampf und hängen physisch im selben lokalen Netz.

    Für die Win10 Anwendung ist das auch in Planung. Hab da auch schon einige Tests gemacht. Da ist aber noch einiges an Forschungsarbeit zu leisten. Da die Windows-Anwendung keine Win32 sondern eine "Modern UI App" ist (damit sie auch auf Windows Smartphones läuft), ist es sehr schwierig Videos bzw. Streams abzuspielen, die andere Video-Codecs verwenden als die in Windows integrierten. Und da alle SD-Sender MPEG2 codiert sind und Windows dafür keinen Decoder hat, ist das schon mal ein Problem. Einfach ein Codec-Pack installieren funktioniert bei "Modern UI Apps" leider nicht. Mir ist es zwar gelungen die ffmpeg-Bibliotheken, zum dekodieren von MPEG2, in der Windows-Anwendung einzubinden, leider ist es mir noch nicht geglückt die MPEG2-Sender oder auch die 1080i Sender zu deinterlacen. D.h. bei bewegten Bildern gibt es hässliche Streifen und Verschiebungen.
    Wirklich stabil läuft es auch noch nicht. -> Ist also noch eine große Baustelle.

    Ja die Chancen gibt es noch ;)


    Einfach überall den Landscape-Mode zu aktivieren ist auch nicht das Problem.
    Die Frage ist halt, was macht man mit den anderen Platzverhältnissen.


    Eine Liste mit einigen Einträgen, macht im Landscape-Mode nicht so viel Sinn. Man sieht weniger Einträge und durch das andere Seitenverhältnis wird viel Platz für "nichts" verschwendet.


    Wie ich schon geschrieben habe, fehlt mir für Tablets da noch ein Konzept und da ich selbst keins habe fehlt es mir da auch Ideen und Testmöglichkeiten.
    Außerdem ist mein Kreativitäts-Gen nicht sonderlich ausgeprägt, wodurch es mir immer sehr schwer fällt etwas zu designen was dann auch halbwegs hübsch aussieht ;)


    Also wenns Vorschläge gibt, dann immer her damit.



    Wenn es ausdrücklich gewünscht ist, kann ich den Landscape-Modus auch erstmal überall aktivieren auch wenns aus meiner Sicht keine Vorteile bringt. Mal abgesehen von der Badewannen-Situation :D

    Die ist native. Ich wollte auch erst Xamarin verwenden (dann hätte ich auch viel Code aus der Windows-App übernehmen können), habe mich dann aber dagegen entschieden, weil ich immer gerne was dazu lernen will. Und da ich mit Java, außer ein "Hello World", noch nichts zustande bekommen habe, war das die Gelegenheit.


    Im nachhinein muss ich sagen, das C# doch an vielen Stellen komfortabler ist.


    Also wird es sicherlich schwierig, das zu kombinieren.

    Abend

    Zitat

    beim Abspielen von bestimmten Aufnahmen bekomme ich einen error. Vermutlich müssen Sonderzeichen im filenamen wie ")" irgendwie escaped bzw. der filename mit quotes umschlossen werden:


    Jupp da fehlten paar Quotes.
    Ist in der aktuellen GIT behoben.
    Dein Patch, damits mit ffmpeg3 compiliert, ist auch eingeflossen.
    Der Patch von Seahawk1986 auch