Beiträge von Okul

    Den Backtace nach vermute ich das etwas nicht konsistent übersetzt ist

    Kann ich da irgendwas machen? Beim kompilieren sehe ich keine Fehler/Warnungen. Kann es an den verwendeten libs liegen?



    [edit]

    Ich habe versucht jungfräulich anzufangen und alles neu aufzusetzen. Beim ersten Start stolpert er über die Datenbank, die neu angelegt wurde

    Ja, das hat Probleme gemacht beim Zurückspielen, weil ich auch das ältere epg2vdr wieder installieren musste. Sollte ja aber unabhängig davon gehen und auf jeden Fall keinen segfault geben.


    So ganz funktioniert es auch noch nicht. Es werden zwar Kanäle geladen, aber im Webinterface wird nichts angezeigt ("Für diese Anfrage konnten keine Daten ermittelt werden!"). Aber da kann ich mich wohl erst heute Abend/morgen drum kümmern. Vielleicht, weil die Datenbank schon auf V7 geupdated wurde zwischendrin, die Programme aber mit V6 rechnen..

    Wäre vielleicht hilfreich wenn du die Versionen hoch gehst, solange nicht viel konfiguriert ist, um festzustellen wo es hakt

    Tatsache.

    Die letzte funktionierende Version ist "69218e79181c863a92e51d0d0b8f8a31b31c66c2"

    Mit "cc0ddd47a78d451b445cfa7667757400c619cd5b" kommt der Segfault.


    Hoffe das hilft. Beste Grüße,

    Johannes

    Also ich habe jetzt die Datenbank geleert, das GIT in einen neuen Ordner geladen und ohne Plugins etc kompiliert -> Segfault an gleicher Stelle.

    Dann habe ich die channelmap.conf geleert -> Segfault an gleicher Stelle


    So wie ich das sehe(?) bleiben noch die verwendeten Libraries:


    Sonst bin ich mit meinem Latein am Ende o_O


    [Edit]

    Das Problem wurde "gelöst" durch:

    # git checkout 595d7b091bc5ef08a1ddb49c71fca81f3df4f217


    Ich bleibe also vorerst auf dieser Version. Wenn es bei allen anderen ohne Probleme läuft ... ;)

    Hätte ich natürlich früher drauf kommen müssen, wo ich ja selbst festgestellt hatte, dass es durch eines der letzten updates kaputt ging :/

    Puh, irgendwelche Ideen? Ich habe jetzt die Datenbank gelöscht. Er legt die Tabellen wieder an, aber dann wieder segfault an der gleichen Stelle.



    Könnte höchstens noch die gesamte Datenbank resetten?

    Hatte ich hier auch. Ich konnte das bei mir dadurch behehben, daß ich die epgd-plugins auch neu kompiliert habe. Das hatte ich vergessen und das war bei den meisten Updates zuvor auch nicht nötig.


    Christian

    Habe ich eben probiert, hat leider nicht geholfen. Kann es ein Problem mit TVSP sein? Prinzipiell könnte ich ja auch auf TVM/EPGDATA wechseln, wäre nur halt etwas arbeit. Aber wenns funktioniert ;)

    Weil keine EPG updates mehr kamen ist mir auch aufgefallen, dass mein EPGD mittlerweile segfaulted. Vermutlich seit dem letzten GIT update(?)


    Code
    # epgd -v
    epgd version 1.1.138-GITcc0ddd4 from 11.03.2018



    Kann das an der Datenbank liegen? Ich wollte die Datenbank eigentlich erst resetten, wenn ich weiß, dass sie wieder gefüllt wird ;)


    Beste Grüße,

    Johannes

    Ich verstehe nur nicht warum es mit einigen Plugins immer funktioniert, mit anderen aber nie.

    Da kann ich dir auch nicht weiterhelfen. Da bräuchte man vermutlich Logs vom Server. Die Vermutung mit GSO, das hätte sein können, wenn es an einer bestimmten Dateigröße liegt. Wenn du dem Problem wirklich auf den Grund gehen willst, solltest du dich vielleicht an die cURL/GnuTLS Experten wenden ;)

    Gibt andere Leute mit dem Problem (https://github.com/curl/curl/issues/1707), aber keine wirkliche Lösung. Liegt wohl an GnuTLS. Man kann GIT/cURL mit OpenSSL kompilieren, und sehen obs dann geht. Aber so die befriedigende Lösung finde ich das auch nicht..


    https://stackoverflow.com/ques…gnutls-without-rebuilding


    Alternativ kannst du einfach mal Git und Curl bzw. libcurl updaten und sehen ob die aktuelle Version tut.

    GDO sagt mir nichts


    Ich meinte GSO, sorry.

    https://wiki.linuxfoundation.org/networking/gso


    Ist eigentlich eine Optimierung, kann in machen Konfigurationen zu timeouts führen.

    Geht bei dir ein

    Code
    curl https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git/objects/e1/9b7657e4c783e857525559ec228edae0e63299 > test

    Hast du sonst Netzwerk Probleme? Hast du einen Proxyserver?


    Kannst du mal schauen ob GDO aktiviert ist und wenn ja, deaktiviert probieren?


    Status: ethtool -k eth0 | grep generic-segmentation-offload

    Deaktivieren: ethtool -K eth0 gso off

    Wieder Aktivieren: ethtool -K eth0 gso on

    Hallo,


    wo soll man eigentlich Bugs/Feature requests melden? In einem der zahlreichen GIT repos, hier im Thread oder einen neuen Thread aufmachen?


    Aktuell hätte ich zwei Fragen;



    1) Wie kann ich festlegen, dass ein Suchtimer 'nicht' zur Primetime aufnimmt. Bei epgsearch hatte ich da eingetragen, dass der Start zwischen 22:00 und 20:00 liegen soll. Das geht jetzt nicht mehr. Also zumindest habe ich es nicht hinbekommen.

    Beispiel: Bei Big Bang Theory kommt nächste Woche die Wiederholung um 23:55. Das wird aufgenommen. Die Woche drauf stehts aber bei 00:15. Das wird nicht erkannt.

    Workaround sind jetzt zwei Serientimer, einer nach 22:00 einer vor 20:00. Aber irgendwie sollte das ja einfacher lösbar sein ;)


    2) Wie ist das gewollte Vorgehen zur Lösung von Timerkonflikten?

    Eigentlich sage ich mit der Priorität, welcher aufgenommen werden soll. Allerdings bekomme ich dann alle Stunde eine Mail. Gewünscht hätte ich mir, dass wenn ich einen Timer lösche, dass dann die Wiederholung (falls vorhanden) aufgenommen wird. Das passiert aber irgendwie nicht richtig. Wenn ich mich umentscheide, und einen gelöschten Timer nochmal aufnehmen will, muss ich den Eintrag händisch in der Datenbank löschen (oder?). Oder einen von Hand erstellen, und in den Serienordner schieben.


    Beste Grüße,

    Johannes

    Ein einzelnes *.jpg, das als Standbild ausgegeben wird? Oder kommen da mehrere Bilder?


    Code
    ffmpeg -i $in  -vf "$rotate scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2"  -c:v libx264 -pix_fmt yuv420p -f mpegts -y $out


    Die Ausgabe von einem Frame kann mein VLC allerdings nicht wiedergeben, ich weiß nicht ob der VDR das macht (habe hier nur headless). Workaround: Bild wiederholen für eine Sekunde (geht vermutlich auch weniger, encodieren dauert sonst etwas?):


    Code
    ffmpeg -loop 1 -i $in -vf "$rotate scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2"  -c:v libx264 -pix_fmt yuv420p -t 1 -f mpegts -y $out


    Das mit dem drehen ist etwas unschön gelöst:

    rotate = "" #nicht drehen

    rotate = "transpose=clock," # 90° nach rechts

    rotate = "transpose=cclock," # 90° nach links

    rotate = "hflip,vflip," # horizontal und vertikal flippen = 180°


    Die "neue" Methode ist, die Drehung als Metadaten mitzugeben. Das Video wird also nicht "physisch" gedreht, sondern der Player muss das umsetzen. kA ob das auch eine Lösung wäre (ginge mit: -metadata:s:v rotate="90")


    Zum Füllen mit einer anderen Farbe, einfach hinter das Pad Kommando schreiben:

    Code
    pad=1920:1080:(ow-iw)/2:(oh-ih)/2:#FFFFFF@1"

    ffmpeg erkennt das Format nicht, das du übergibst. "-probesize 10M" bedeutet, dass er die ersten 10MB einliest um zu versuchen da das Format draus zu bestimmen. Bringt dir in dem Fall also eher nichts. Funktioniert es denn, wenn du es einzeln, also ohne Pipe machst? Eigentlich sagt ihm "-f image2pipe" ja, dass ein Bild kommt. Man kann ihm den codec evtl mitgeben:


    ffmpeg -f image2pipe -c:v ppm -i - -c:v libx264 -preset baseline -vf scale=1920x1080 -q:v 2 -pix_fmt yuv420p -f mpegts -y x.mpg


    [edit]

    Ich sehe gerade, dass in deinem Ursprünglichen command das dabei war. Hatte ich wohl vergessen zu übernehmen ...


    Benutzt du ppm aus einem bestimmten Grund, oder kannst du es auch einfach mal mit jpeg, png o.ä. probieren?


    Das -vf scale=1920x1080 brauchst du eigentlich nicht, wenn du vorher schon per convert die richtige Größe erstellst. Eigentlich brauchst du das convert nicht, wenn ich so drüber nachdenke. Ich glaube das geht auch alles direkt in ffmpeg.

    Wenn ich das richtig sehe ist der Aufruf:


    Code
    ffmpeg -f image2pipe -vcodec ppm -i pipe:0 -an -vcodec libx264 -vpre baseline -s $Size -qscale 2 -f mpegts -y $Mpeg

    Das neue ffmpeg mag davon einiges nicht mehr:

    -vcodec ist jetzt -c:v

    -qscale ist -qscale:v


    -vpre baseline lädt das custom preset "baseline" ist das so gewollt?

    Für das "Standard x264" baseline preset wählen:

    -preset baseline


    Ob das -s so noch funktioniert kann ich nicht sagen. Vermutlich willst du resizing benutzen?

    => https://trac.ffmpeg.org/wiki/S…resizing)%20with%20ffmpeg

    -vf scale=$size

    Aber ich vermute, dann müsste $size=1920:1080 sein statt 1920x1080


    => Was gibt das aus?:

    Code
    ffmpeg -f image2pipe -i - -c:v libx264 -preset baseline -vf scale=$Size -q:v 2 -pix_fmt yuv420p -f mpegts -y $Mpeg


    LG,

    Johannes

    Dein EPGD ist nicht "busy", der hat sich verabschided:


    Code
    Sep 22 13:07:16 myVDR kernel: [  673.088926] epgd[1940]: segfault at 10 ip 00007fc688d35404 sp 00007ffeaaf4fbd0 error 4 in libpthread-2.19.so[7fc688d2b000+19000]
    Sep 22 13:07:16 myVDR kernel: [  673.383753] init: epgd main process (1940) killed by SEGV signal

    Das Problem tritt gerade öfters auf.

    epgd mit segfault beendet

    epgd - segfault beim Start


    Lösung:

    Der Patch in: epgd: Crash nach "Ignoring unexpected season line"

    Hallo Andreas,


    man kann den Amok-Timer direkt in der Datenbank löschen. Müsste in der "timers" Tabelle sein. Gelöschte timer kannst du dir z.B. anzeigen lassen mit

    SQL
    SELECT * FROM `timers` WHERE `state` LIKE 'D';


    Mit der ID im ersten Feld kannst du ihn löschen:

    SQL
    DELETE FROM `epg2vdr`.`timers` WHERE `timers`.`id` = 'xxxx' 


    Einfacher gehts über einen mysql-client ;)