TV-Screenshot per Fernbedienung

  • Hi


    So, nachdem wir mal im Chat auf dieses Thema gekommen waren und es auch gelöst wurde, wird es Zeit, das auch mal hier zu Posten :D


    VDR kann über den Befehl "grab" einen Screenshot des aktuellen TV-Bildes machen. Dies haben wir jetzt in ein Script gepackt.


    /usr/local/bin/capture

    Code
    #/usr/bin/perl
    /usr/local/src/VDR/svdrpsend.pl grab "/video/capture/"$(date --iso-8601=seconds)".jpg" jpeg


    dies sorgt dafür, das VDR einen Scrennshot in


    /video/capture


    mit Datum/Zeit/Zeitzone als Dateinamen.


    2003-04-24T09:45:12+0200.jpg


    macht.


    Jetzt muß das nur noch mit der Fernbedienung verbunden werden. :D


    dazu benutzt man am besten "irexec"


    für irexec wird eine Config-Datei benötigt, diese sieht bei mir so aus


    /etc/irbefehle.conf

    Code
    begin
           button = vcr1
           prog   = irexec
           config = /usr/local/bin/capture
    end


    natürlich müßt ihr das auf eure FB anpassen!
    Bei mir heißt die Taste halt "vcr1"


    mit

    Code
    irexec -d /etc/irbefehle.conf


    wird das ganze aktiv und es kann genutzt werden


    das kann dann in die runvdr eingetragen werden


    und schon sollte es bei jedem Start gehen.


    mal sehen, wie viele ich jetzt damit verwirrt habe

    Dirk

  • Hi


    naja, viel wird das bestimmt nicht interressieren!

    Dirk

  • Hi,

    Zitat

    naja, viel wird das bestimmt nicht interressieren!


    doch, irgendwie witzig, da ich für diese Funktion vor ein paar Tagen auch'nen Script gebastelt habe, mit dem man über Terminal oder FB mehrere Bilder oder eine def. Zeit grabbt.
    FB-kompatibel mach ich's halt über OSD/Befehle - commands.conf:

    Code
    4 TV-Bilder grabben: at now -f /usr/local/vdr/grabimages


    (o.k., mit der Pronto auch nur ein Tastendruck)

  • Hi Leute!


    Hab mal an ner neuen Version gebastelt!


    Änderungen:
    - Ort der svdrpsend.pl einfacher einstellbar
    - Speicherordner einfacher einstellbar
    - Screenshots in beliebiger Anzahl nacheinander einstellbar
    - Anzahl auch über Option festlegbar
    - erstellt den Speicherordner selber, falls er nicht vorhanden ist
    - Änderung des Dateionamens "JJJJMMTT_HHMMSS_X.jpg"



    PS: Danke an Ernie, der mir bei dem Channel-Problem geholfen hat!

  • PROG="/usr/local/src/VDR/svdrpsend.pl" # - selbsterklaerend


    na so richtig nicht ....


    PPOC=$(locate vdrpsend.pl)


    bei erros "man updatedb"


    warum sollte das Dir ausführbar sein?


    [ -x $VERZ ]


    "man test"


    man schon wieder edit .... by

  • Hi


    1. das war absicht, wenn dich stört, kannste das bei dir ja ändern!


    2. gib mal "ls -l" ein und schau, welche rechte die verzeichnisse haben!


    jedes verzeichnis ist ausführbar, (meist "drwxr-xr-x")

    Dirk

  • jedes verzeichnis ist ausführbar, (meist "drwxr-xr-x")


    also entweder jedes oder meist, was nun?


    nein habe ich nicht behauptet das es mich stört, warum auch ...........


    Es ist aber definitiv so das ebend nicht alle Verzeichnisse ausführbar sind, meinst Du sonnst hätte ich dannach gefragt?


    Deshalb kannst Du Dir "!" auch irgendwie schenken :-))


    by

  • Zitat

    Original von anonymous
    Es ist aber definitiv so das ebend nicht alle Verzeichnisse ausführbar sind, meinst Du sonnst hätte ich dannach gefragt?


    Wenn ein Verzeichnis nicht ausführbar ist, dann hast du keine Browserechte auf das Ding, also speichert das Script oben dir Daten nicht ins Verzeichnis.
    Hierbei ist es dem Script egal ob das Verzeichnis nur einfach nicht existiert, oder ob ei Berechtigungsproblem vorhanden ist.


    Sicher test -e würde auch gehen, aber das oben ist doch auch ok.




    Wobei ich von PPOC=$(locate vdrpsend.pl) abraten würde.
    Warum?


    locate vdrpsend.pl
    /usr/src/vdr/vdr-1.1.24/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.25+mp3-patch/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.25/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.26/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.27/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.30+aio3/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.30/svdrpsend.pl


    ich denke das sagt genug oder? :)

  • Zitat

    Original von anonymous
    jedes verzeichnis ist ausführbar, (meist "drwxr-xr-x")


    also entweder jedes oder meist, was nun?


    jedes!


    meist mit den rechten "drwxr-xr-x"
    (deswegen steht das da oben auch in klammern!)


    d für verzeichnis
    rwx -> User -> lesen, schreiben, ausführen
    r-x -> Gruppe -> lesen, ausführen
    r-x -> alle -> lesen, ausführen

    Dirk

  • Morgen


    Dirk dann must Du Dich auch verständlicher ausdrücken!


    Zitat:


    jedes verzeichnis ist ausführbar, (meist "drwxr-xr-x")


    Also ich Lese JEDES, das meist wurde extra geschrieben heißt also soviel wie, jedes verzeichnis ist ausführbar, meist mit den Rechten bla bla bla, Denkfehler, und was heißt hier meist?


    Das bleibt doch wohl den User selbst überlassen wie er was erstellt a.s.o, also LDP (lesen, denken posten), (was ist denn das für ein toller Leergang den Du da besuchst *ggg*), wenn andem wäre, dann könnte man sich das Programm "test" ja fast schon schenken, zumindest die Optionen abspecken.


    Da nützen Dir übrigens Deine tollen Einzeiler wie:


    ls -l


    nix, wenn ein Verzeichnis nicht ausführbar ist dann ist es ebend nicht ausführbar, was ist daran nicht zu verstehen? Und was soll ich da noch ls eingeben?


    ja habe hier 3 Directorys gesichert, und?


    Trotzdem Danke für die tollen Infos in Bezug auf Unix/Linux ........... man lernt halt nie aus :hat1


    @WarEagle


    was weiß ich wieviele versionen wer drauf hat?


    $(locate svdrpsend.pl | head -n1)


    by


    Achso Dirk Du meintest dann passe es Dir an, Sorry habe aber keinen Bedarf für solch ein "Script", hatte es nur beim Boardstöbern gefunden, und finde das egal seins einen besseren macht, aber trotzdem coole Sache .....

  • Hi


    @anonymous


    Könntest du mal deine aggresive Tonart mal ein bischen runterschrauben. Wenn jemand an seinen Script bastelt und das evtl. noch nicht ganz OK ist, dann kann man das auch in einem ruhigeren Ton sagen, anstatt zu nörgeln. Ala "lesen, denken, posten" oder "was fürn toller Lehrgang" sind hier nicht angebracht, es ist schließlich nicht jeder perfekt. Das muß man aber nicht derart raushängen lassen.


    Sorry wegen dem OT


    Martini

  • Zitat


    PROG="/usr/local/src/VDR/svdrpsend.pl" # - selbsterklaerend


    na so richtig nicht ....


    Falls noch Erklärungsbedarf besteht.


    SVDRP ist Klausens Protokoll zum Fernsteuern des VDR . Dies benutzen bsw. Kvdr und vdradmind. Ein 'telnet localhost 2001' (oder vdr-name ) klinkt sich dann in die Schnittstelle ein . Dort ein help und die Befehle werden angezeigt. GRAB Test.jpg schnappt sich dann das Bild und legt es in die Root.
    svdrpsend.pl ist ein Script, um local diese Schnittstelle bedienen zu können. Dort kann man mit svdrpsend.pl CHAN + Kanäle hochschalten bzw. HITK POWER den VDR ausschalten. Oder per Script Grabben.


    @ Martini


    ist auch meine Meinung, ist blos schade, das dafür Traffic und Speicherplatz gebraucht wird.


    Gruß lola

  • @ALL


    Zitat

    jedes verzeichnis ist ausführbar, (meist "drwxr-xr-x")


    Welche rechte verzeichnisse die angelegt werden bekommen hängt vom wert umask an ( angabe der rechte die bei erzeugen von dateien/verzeichnissen entzogen werden ).
    Dieser ist ( leider ) 0022 und führt dazu das automatisch alle verzeichnise drwxr-xr-x bekommen und alle dateien -rw-r--r--


    Empfehlung : umask für alle Normalen User auf 0077 ändern. Bei technischen accounts kann man das natürlich wieder lockern aber auf keinen Fall irgendwelche rechte für other ( Weltrechte ) vergeben.


    Zitat

    PROG="/usr/local/src/VDR/svdrpsend.pl"


    Ausführbare Programme/Skripte sollten eindeutig über $PATH zu finden sein. Den kompletten pfad bekommt man dann mittels which z.B

    Code
    vdr@artemis:/tmp> which svdrpsend.pl
    /usr/bin/svdrpsend.pl


    Man sollte also dafür sorgen das $PATH richtig gesetzt ist und nicht hoffen das konstrukte wie

    Zitat

    $(locate svdrpsend.pl | head -n1)

    funktionieren werden.


    Ich trenne hier streng entwicklungs und runtime umgebung.
    D.h übersetzt wird in pfad XY und dann werden per script alle relevanten Programme/Skripte/libs/plugins ... in die Systemverzeichnisse überführt.


    Zitat

    d für verzeichnis
    rwx -> User -> lesen, schreiben, ausführen
    r-x -> Gruppe -> lesen, ausführen
    r-x -> alle -> lesen, ausführen


    Die einzelnen bits haben unteschiedliche bedeutung je nachdem ob es sich um ein Verzeichniss handelt oder Datei.


    Selbst Profis vertun sich hier oft.
    x auf ein Verzeichnis bedeutet nur das man darein wechseln kann und programme die sich darin befinden ausführbar sind. Um Programme auszuführen reichen auch r-x rechte für das Verzeichnis.
    das w im verzeichnis bedeutet das ( je nachdem welche gruppe es hat ) diese Files hinzufügen oder löschen kann. D.h es reicht ein w im Verzeichnis um darin Files zu löschen für die man eigentlich keine schreibberechtigung hat und es reicht nicht ein x flag auf programme zu setzen in einem Verzeichnis das selbst kein x für den ausführenden hat.



    Auf die unterschiedliche bedeutung des s-bits werde ich jetzt nicht eingehen da diese auch von Unix zu Unix sehr unterschiedlich sind.


    Gruss
    Dimitri

  • Martini


    wie genke schon sagte meinungen per pm :-))


    dimitri


    which wird da wohl kaum greifen, schon weil Dir niemand sagt, das svdrpsend.pl nach /bin /sbin etc muß, das bleibt wie bei allem anderen auch den User überlassen.


    Hm und deshalb funktionieren solche "konstrukte" wie:


    $(locate svdrpsend.pl | head -n1)


    seht gut und auch ohne :-))


    Zitat: hoffen


    zumindest auf meiner Printe, was solls viele wege führen nach Rom, es giebt sicher unmengen wie was wo und warum bleibt echt jeden selbst überlassen.


    Dirk ist ja immer noch der Meinung das alle Verzeichnisse ausführbar sind, zumindest stand es so in den letzten PMs von ihm?


    Jedenfalls kann es nicht weit her sein, wenn wer meint tip mal "ls" ein ......... was soll ich ihm da Antworten? Das er Recht hat? Wäre wohl das beste so hat man seine Ruhe.


    Ganz schön OT.


    by

  • Zitat

    Original von anonymous
    Hm und deshalb funktionieren solche "konstrukte" wie:


    $(locate svdrpsend.pl | head -n1)


    seht gut und auch ohne :-))


    Ich kann mich nur wiederholen, mit locate wirst du auf die Nase fliegen. Spätestens wenn sich dieses Script einmal ändert wirst du ewig suchen warum er das falsche Script aufruft.
    Bereits bei der Installation von VDR wird darauf hingewiesen Links zu verwenden, nämlich Links auf das VDR-Verzeichnis die VDR heißen.
    /usr/local/src/VDR/svdrpsend.pl
    Genau hierauf wird oben zugegriffen. Das Script zeigt also immer auf die aktuellste svdrpsend.pl-Version.

  • Zitat

    Original von WarEagle


    Ich kann mich nur wiederholen, mit locate wirst du auf die Nase fliegen. Spätestens wenn sich dieses Script einmal ändert wirst du ewig suchen warum er das falsche Script aufruft.
    Bereits bei der Installation von VDR wird darauf hingewiesen Links zu verwenden, nämlich Links auf das VDR-Verzeichnis die VDR heißen.
    /usr/local/src/VDR/svdrpsend.pl
    Genau hierauf wird oben zugegriffen. Das Script zeigt also immer auf die aktuellste svdrpsend.pl-Version.


    Ja , wenn man seine DB nicht auf dem stand hält :-)), kann das schon mal passieren, ansonnsten siehe oben, kann jeder machen wie er lustig ist ............. werde ganz sicher nicht mein sys umstellen, nur weil mal wer erzählt auf dem himmel ist Jahrmarkt, finde nähmlich die Leiter nicht.


    by

  • Zitat

    Original von anonymous


    Ja , wenn man zu seine DB nicht auf dem stand zu hält :-)), ansonnsten siehe oben, kann jeder machen wie er lustig ist .............


    by


    Bitte hör auf immer Recht haben zu wollen. Ich habe oben folgendes geschrieben:
    locate vdrpsend.pl
    /usr/src/vdr/vdr-1.1.24/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.25+mp3-patch/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.25/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.26/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.27/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.30+aio3/svdrpsend.pl
    /usr/src/vdr/vdr-1.1.30/svdrpsend.pl


    Die aktuellste ist "/usr/src/vdr/vdr-1.1.30+aio3/svdrpsend.pl" und nun sag du mir mal was dein Script gemacht hätte? Welches vdrsend hätte es aufgerufen?
    Na? genau, das falsche.
    Es ist also allemale besser das Script einmal in einer durch Links ständig auf dem laufenden gehaltenen Stelle anzugeben.

  • Man Du bist ja clever, siehe Dimitris Posting.


    Es ist volkommen gleichgültig welche von deinen "vielen" *.pls aufgerufen wird. Ob nun die von der AIO version oder die von was weiß ich.


    Die Sytnax bleibt die gleiche .......


    Lese Denken Posten :-)) Du Held.


    by


  • Zitat

    Original von WarEagle
    Spätestens wenn sich dieses Script einmal ändert wirst du ewig suchen warum er das falsche Script aufruft.



    Zitat

    Original von anonymous
    Lese Denken Posten :-)) Du Held.



    So für mich ist die Sache hier beendet, jeder der es liest wird wissen was gemeint ist. Wenn du es nicht sehen willst, dann bitte.


    @Rest: Sorry fürs Offtopic.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!