ds.jar ohne X11 workaround

  • Hi,


    da mittlerweile ds.jar sehr oft benutzt wird ( vdr2divx, vdr2dvd, ... )
    hier ein workaround für alle die keinen X - Server am laufen haben bzw. alles im Batch erledigen wollen ohne sich um Zugrifsrechte zum X Server kümmern zu wollen.


    Die Lösung heist Xvfb und befindet sich bei Suse im xextra Paket welches vorher installiert werden muss.


    Danach muss lediglich vor einem Programm wie ds.jar der Virtuelle Server gestartet werden.


    Für vdr2divx muss dann aus

    Code
    $ENCODE "$CMDLIN"                   # und encoding starten ...


    Code
    Xvfb :1 > /dev/null 2>&1 &
          export DISPLAY=:1.0
          $ENCODE "$CMDLIN"                   # und encoding starten ...
          killall -9 Xfvb


    werden.


    Für vdr2dvd entsprechend im Perl script :

    Code
    my $dsjar = '/usr/local/bin/ds.jar';    # Path to ds.jar


    ändern in

    Code
    my $xserver = "Xvfb";                   # Use Virtual Server
    my $dsjar = '/usr/local/bin/ds.jar';    # Path to ds.jar


    und

    Code
    system "java -jar $dsjar -c $dsjartemplate -o $tempdir $bigvdr";


    ändern in

    Code
    system "$xserver :1 >/dev/null 2>&1 &";
        system "DISPLAY=:1.0;java -jar $dsjar -c $dsjartemplate -o $tempdir $bigvdr";
        system "killall -9 $xserver";


    Bei allerersten mal muss ds.jar händisch gestartet werden.
    # Xvfb :1 &
    # export DISPLAY=:1.0
    # java -jar ds.jar


    ein paar sekunden warten und mit Ctrl-c abbrechen.
    # killall -9 Xvfb


    Viel spass mit dem Virtuellen X Server.


    Gruss
    Dimitri

  • Hi,


    das hab ich gleich mal ausprobiert. Leider bekomme ich dann beim ersten "händischen Start":


    --------------------------------------------------------------------
    vdrbox:/usr/local/src/ds_jar # /usr/java/j2re1.4.1_01/bin/java -jar ds.jar
    ds.jar: Javatool for demux & sync (testversion)
    V0.61k; 02.02.2003; (c) Matthias Mueller; http://home.arcor.de/matt2/dvb.matt/


    quick CL usage: (Note: CL also loads the GUI components, without displaying)
    [path]java -jar [path]ds.jar ...to start the GUI
    [path]java -jar [path]ds.jar [options] [sourcefile1..x]


    options: -dvx1, -dvx2, -dvx3, -dvx4, -o, -l, -c
    -c [path]inifile ...use that specified iniFile instead of the standard
    -dvx1 ...create a .d2v ProjectFile on demux
    -dvx2 ...create a .d2v ProjectFile + .ac3.wav (RIFF WAVE Header)
    -dvx3 ...create a .d2v ProjectFile + .mpa.wav (RIFF WAVE Header)
    -dvx4 ...create a .d2v ProjectFile + .ac3.wav + mpa.wav (RIFF WAVE Header)
    -o [path] ...use that specified directory for output
    -l ...write the normal logfile
    use -c OR -dvx & -o/-l or no options (for std)


    java.version 1.4.1_01
    java.vendor Sun Microsystems Inc.
    java.home /usr/java/j2re1.4.1_01
    java.vm.version 1.4.1_01-b01
    java.vm.vendor Sun Microsystems Inc.
    java.vm.name Java HotSpot(TM) Client VM
    java.class.vers 48.0
    java.class.path ds.jar
    Exception in thread "main" java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
    at java.awt.Window.init(Window.java:223)
    at java.awt.Window.<init>(Window.java:267)
    at java.awt.Frame.<init>(Frame.java:398)
    at java.awt.Frame.<init>(Frame.java:363)
    at javax.swing.JFrame.<init>(JFrame.java:154)
    at ds$CollectionSpecials.<init>(ds.java:1851)
    at ds.<init>(ds.java:84)
    at ds.main(ds.java:2825)


    [1]+ Stopped Xvfb :1


    --------------------------------------------------------------------


    Alles, was ich finden konnte, war ein Hinweis auf einen falschen "CLASSPATH". Das hilft mir aber auch nicht wirklich weiter...


    Kann mir jemand einen Tipp geben?



    Grüße


    Bernd

  • Hallo!
    Mit Classpath wird angegeben, wo sich die Klassen für das "Programm" ds.jar befinden (also der Pfad), da es sich um Java handelt. Ich kann dir aber nicht genau sagen, wo du den Classpath ändern kannst, habe nur Erfahrung mit dem JBuilder unter Windows, wo man in einem Menu das Ganze ändern kann...
    Bis dahin scheint noch alles zu funktionieren:


    use -c OR -dvx & -o/-l or no options (for std)


    Die Meldungen danach scheinen nur vom Programm selbst zu kommen wegen diesem falschen Classpath.
    Vielleicht kann ein anderer mehr helfen...

  • Ich suche weiter...


    In der man zu java steht:


    The java utility launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class's main method.
    ...


    If the -jar option is speci­fied, the first non-option argument is the name of a JAR archive containing class and resource files for the appli­cation, with the startup class indicated by the Main-Class manifest header.


    Nach der Fehlermeldung zu urteilen, findet java also diese zu ds.jar gehörende Klasse nicht.


    Muss ich noch irgendetwas anderes als das ds.jar zip-file und Java Runtime installieren?



    Grüße


    Bernd

  • Zitat

    Original von Bernd
    Nach der Fehlermeldung zu urteilen, findet java also diese zu ds.jar gehörende Klasse nicht.


    richtig.


    Zitat


    Muss ich noch irgendetwas anderes als das ds.jar zip-file und Java Runtime installieren?


    Ich glaube nicht. Wenn die JRE richtig installiert ist, sollten alle Java- Programme laufen, also auch ds.jar .

  • hallo,


    führe einfach mal

    Code
    /usr/java/j2re1.4.1_01/bin/java


    aus. dann siehst du, welche optionen java hat. mit

    Code
    /usr/java/j2re1.4.1_01/bin/java -classpath /mein/pfad/wohin/auch/immer ds.jar

    kannst du den classpath einstellen.


    aber das wird dir nichts bringen. denn erstens, worauf solltest du ihn einstellen? (er findet bei dir das ds.jar und die native java klassen - also java vermisst nichts - nur eine laufende X umgebung, auf die es zugriffsrechte hat :D )


    probier mal aus, auf einer konsole, die KEINEN X zugriff hat, ds.jar zu starten. dann solltest du genau die gleiche fehlermeldung bekommen.


    also was kann man dagegen tun?
    überprüfen ob Xvfb richtig installiert ist. (ich kenne das packet nicht und weiß nicht wie man das macht)
    oder der X umgebung sagen, daß ds.jar darauf zugreifen darf.


    wie gesagt.
    das problem ist NICHT der classpath.
    das problem ist NICHT ds.jar (naja ;) eigentlich schon, da ds.jar unbedingt eine grafische umgebung haben will)
    das problem ist, daß ds.jar auf keine grafische umgebung zugreifen kann.


    lg,
    gisi

  • Hi,


    X11 Runtimeumgebung? Ähem, ich habe mit X11 noch nix am Hut, daher hatte ich nur den Xvfb installiert. Wußte leider nicht, dass die auch nötig ist.


    Wird gleich nachgeholt.


    Vielen Dank!



    Bernd

  • Hi


    Also auf meinen VDR Rechner läuft das ganze ohne Probleme, wollte das ganze aber noch bei einen anderen Rechner ausprobieren und da bekomm ich beim Start mit Xvfb :1 & folgende Fehlermeldung.


    vdr:/usr/local/bin # Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
    Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
    Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!


    Das ganze unter SuSE 8.2 pro.
    Hatt jemand ne Vermutung was da fehlen könnte?
    Hab auch schon verschiedene Pakete nachinstalliert, bei den ich gedacht habe das die damit was zu tun haben könnten, aber leider ohne Erfolg.


    MfG

    vdr-2.2.0 + Kernel DVB + dvb-ttpci-01.fw-fb2624 -- Debian 8.2 / linux-3.16.0 - Celeron 2,0 GHz - 1024 MB DDR Ram - 500 GB Western Digital HDD - NEC ND-1300A - 1x DVB-S Rev. 1.6 (4 MB Mod) - 2x TT Budget S-1500 - TBE Extension Board - TechniSat TechniRouter 9/1x8 K (Unicable)
    # nvram-wakeup-1.1 # vdradmind-am-3.6.10 # vdr-fritzbox-1.5.3 # vdr-iptv-2.2.1 # vdr-2.2.0-hide-first-recording-level-v5


    Debian | How To Ask Questions The Smart Way

  • Moin,



    genau das habe ich getan, nur das sich ds.jar mit der bekannten Meldung beendet. xlogo hingegen funktioniert (wenn auch nichts zu sehen ist ;) ). Ich bin mit dem Rechner per ssh [-x] verbunden. Any hints?

  • Hi,


    wenn xlogo geht kann es eigentlich nur an der JRE umgebung liegen.


    Vieleicht schreibst du doch wieder mal was du da für einen fehler bekommst. Nach 2 Monaten und zig änderungen/korrekturen bei den scripten würde mir das helfen.


    PS. Was ist das für ein rechner mit dem du dich da über ssh anmeldest und was ist das für ein rechner auf dem du dich per ssh anmeldest ???


    Gruss
    Dimitri

  • Moin,


    Zitat

    Original von dimitri
    wenn xlogo geht kann es eigentlich nur an der JRE umgebung liegen.


    |[stefanh@zaphod stefanh]$ rpm -q j2re
    |j2re-1.4.1_02-fcs


    |[stefanh@zaphod stefanh]$ rpm -ql j2re | wc -l
    | 616


    Sollte komplett sein (direkt von SUN). Das ganze liegt unter /usr/java/j2re1.4.1_02/


    Zitat

    Original von dimitri
    Vieleicht schreibst du doch wieder mal was du da für einen fehler bekommst. Nach 2 Monaten und zig änderungen/korrekturen bei den scripten würde mir das helfen.


    Hier die Ausgabe von ds.jar:




    Zitat

    Original von dimitri
    PS. Was ist das für ein rechner mit dem du dich da über ssh anmeldest und was ist das für ein rechner auf dem du dich per ssh anmeldest ???


    Der ssh client läuft auf einem Mandrake 9.0 System. Der vdr Rechner, auf dem ds.jar laufen soll, ist ein Mandrake 9.1 System ohne Grafikkarte. Alles i386er. Getestet habe ich es mit und ohne X-Forwarding (von ssh). Ansonsten läuft das X-Forwarding problemlos. ds.jar mit dem gleichen j2re rpm startet auf dem MD9.0 Rechner unter X ohne Fehler.

  • Hallo Grieche! :)



    Muss man das einmal machen und dann war's das für immer, oder muss man das jeweils nach einem Reboot machen?


    Ach ja, wie lange dauert es denn so in etwa, wenn man so einen Spielfilm in Kinolänge "umrechnen lässt"?


    Kalinichta! :D


    BC


    :evil: Nichts ist wahr, alles ist erlaubt! :evil:


    VDR-Server: ASUS A7V8X, Duron 1.300, 256 MB, 3x 120 GB Maxtor HD, PIONEER DVR-106, Design Tower AIR Black, 40x4 LCD,
    1x TT-DVB-S V1.6, 3x DVB-S Nova, URC-7562, CentOS 5.5, VDR: 1.6.0


    TecVDR: AOPEN MK73LE-N, Duron 1.300, 256 MB, 1x 120 GB Samsung HD, Pioneer DVR-A04, Gehäusesonderbau, 1x TT-DVB-S V1.6 4MB, 1x DVB-S Nova, 1x AV-Board, SuSE 9.0, VDR: 1.3.11

  • Zitat


    Ach ja, wie lange dauert es denn so in etwa, wenn man so einen Spielfilm in Kinolänge "umrechnen lässt"?


    Hi,


    hängt von der Hardware ab :D bei einem Celeron 400 inkl. schreiben eines Images etwa 30-40 Minuten. Bei schnellerer Hardware entsprechend hurtiger natürlich ;)


    bye


    Sven


    Link: Richtig fragen

  • Zitat

    Original von kilroy
    Der ssh client läuft auf einem Mandrake 9.0 System. Der vdr Rechner, auf dem ds.jar laufen soll, ist ein Mandrake 9.1 System ohne Grafikkarte. Alles i386er. Getestet habe ich es mit und ohne X-Forwarding (von ssh). Ansonsten läuft das X-Forwarding problemlos. ds.jar mit dem gleichen j2re rpm startet auf dem MD9.0 Rechner unter X ohne Fehler.


    Setz doch einfach deine DISPLAY Variable auf den Rechner auf dem X läuft ( xhost + nicht vergessen auf den X Server ).
    Warum es aber auch so nicht bei dir funktioniert verstehe ich immer noch nicht.


    Django


    Der start von Hand muss nur 1 mal ausgeführt werden und danach nie wieder.



    Gruss
    Dimitri

  • Zitat

    Original von dimitri
    Setz doch einfach deine DISPLAY Variable auf den Rechner auf dem X läuft ( xhost + nicht vergessen auf den X Server ).


    Das habe ich alles schon versucht; erfolg für ds.jar hat es nicht gebracht. Und wie gesagt: andere X Applicationen funktionieren ja...


    vdrsync ist inzwischen ja schon recht weit gediehen, so daß ich ds.jar eh nicht mehr anwenden werde.


    Danke für die Unterstützung.

Jetzt mitmachen!

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