Mplayer startet nicht

  • Hallo,


    ich habe ein Problem mit dem Mplayer.
    Ich bekomme immer folgende Fehlermeldung,
    wenn ich versuche über vdr eine Datei abzuspielen:


    Oct 21 23:35:55 video vdr[7065]: mplayer: mplayer child started (pid=7065)
    Oct 21 23:35:55 video vdr[7066]: mplayer: player thread started (pid=7066)
    Oct 21 23:35:55 video logger: *** Starting mplayer.sh Version 0.8.4
    Oct 21 23:35:55 video logger: *** DEBUG: Variable CFGFIL has value "/usr/local/vdr/mplayer.sh.conf"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable USEAC3 has value "false"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable AC3AOUT has value "-ao alsa9 -ac hwac3"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable TV_ASPECT has value "4/3"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable PAL has value "true"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable NTSC has value "true"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable USE_SPEED has value "true"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable MPLAYER has value "/usr/local/bin/mplayer"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable VOP has value "lavc=5000"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable VO has value "mpegpes"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable AO has value "mpegpes -afm 9"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable CACHE has value "4096"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable CACHESTR has value "-cache 4096"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable FRAMEDROP has value "true"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable FDSTR has value "-framedrop"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable LIRCRC has value "/video/.lircrc"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable LIRCSTR has value "-lircconf /video/.lircrc"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable SUBTITLE has value " -subpos 80 -sub-bg-color 0 -sub-bg-alpha 0"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable REMOTE has value "-slave -nolirc"
    Oct 21 23:35:55 video logger: *** Use Option USERDEF at your own risk!
    Oct 21 23:35:55 video logger: *** DEBUG: Variable USERDEF has value "-quiet"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable XResPAL has value "352 480 528 688 704 720"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable XResNTSC has value "352 480 512 640 704 720"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable XResPAL has value "352"
    Oct 21 23:35:55 video logger: *** DEBUG: Variable XResNTSC has value "352"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable SLOW_CPU has value "true"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable DVDFiles has value "/video/plugins/DVD-VCD"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable DVD has value "/dev/dvd"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable DVDLANG has value "de"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable DVDOPTIONS has value "-aop list=volume:volume=170"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable VCDOPTIONS has value ""
    Oct 21 23:35:56 video logger: *** DEBUG: Variable MPEG_DIRECT has value "true"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable SUFFIX has value ".bin"
    Oct 21 23:35:56 video logger: *** DEBUG: Variable MPLAYER_V1 has value "true"
    Oct 21 23:35:56 video logger: *** DEBUG: Calling getvidxy function to analyze source video stream ...
    Oct 21 23:35:56 video logger: *** DEBUG: OutputFromMPLAYER: ""
    Oct 21 23:35:56 video logger: *** DEBUG: MPLAYER_RETURN: "1"
    Oct 21 23:35:56 video logger: *** FATAL: something went wrong analyzing the video; mplayer reported an error!
    Oct 21 23:35:56 video logger: *** FATAL: check your mplayer installation. Exiting...
    Oct 21 23:35:57 video vdr[7066]: mplayer: player thread ended (pid=7066)



    Habe jetzt die Versionen Mplayer 0.9, 0.92, 1.0pre2 probiert, immer dasselbe.
    Als mplayer.sh hab ich 0.8.4 und 0.8.3 versucht.
    Wenn ich mplayer.sh dateiname aufrufe, spielt er, wenn ich vdr stoppe, filme ab. Dort ist die Variable OutputFromMPLAYER nicht leer. Wenn ich über das Plugin starte, ist die Variable TEMP1 im mplayer.sh leer. Die Variablen in TEMP1 werden aber gefunden, die habe sicherheitshalber mal ausgeben lassen. Auch wird der Befehl, wenn ich ihn manuell in die Konsole eingebe, ausgegeben.
    Hat jemand eine Idee? bin am verzweifeln....

  • habe das Problem nach 3 Tagen endlich gefunden, da ich das mplayer.sh examplefile aus dem mp3plugin genommen habe. Dort kam dann die Meldung bei aufrufen der Datei "Permission denied".
    und siehe da, der ordner mit filmen hatte keine execute-Rechte.


    Wäre schön wenn das im mplayer-sh-Skript auch irgendwie angezeigt werden könnte, das spart doch etwas an Zeit und Nerven! :)


    Gruss


    Duff

  • Hmm, ich versuche mal, das Problem nachzuvollziehen:


    Ich vermute, dein VDR läuft nicht als root, sondern als ein normaler Benutzer. Deine Tests hast du aber als root gemacht, deshalb funktionierte es. Der VDR-User hatte aber keine execute-Rechte für das Video-Verzeichnis.


    Soweit korrekt?


    Wenn ja, verstehe ich das nicht. Das Skript macht noch vor dem Analysieren einen Test, ob die Video-Datei existiert. Wenn ich hier ein Verzeichnis anlege und ihm die executable-Rechte nehme, bekomme ich als normaler User folgende Meldung von meinem Skript:


    *** ERROR: Make sure /tmp/test/test.avi exists - otherwise it cannot be played ;)


    Irgendwie werde ich auch aus deiner anderen Angabe bezüglich TEMP1 nicht schlau.
    Wenn ich dich richtig verstehe, enthält TEMP1 trotzdem alle benötigten Variablen. Das kann eigentlich nicht sein, wenn mplayer keine Zugriffsrechte auf die Video-Datei hat.


    Kannst du das nochmal etwas ausführlicher darlegen?


    Danke,
    Juri

  • Zitat

    Ich vermute, dein VDR läuft nicht als root, sondern als ein normaler Benutzer. Deine Tests hast du aber als root gemacht, deshalb funktionierte es. Der VDR-User hatte aber keine execute-Rechte für das Video-Verzeichnis.


    so war es.


    ich habe ein verzeichnis /filme, das hatte als owner root und die rechte rwxr--r--.
    die dateien im verzeichnis waren dementsprechend.
    wie gesagt nachdem ich den owner auf vdr:vdrdaem gewechselt hab, ging es.


    Zitat

    Das Skript macht noch vor dem Analysieren einen Test, ob die Video-Datei existiert.


    Der User vdr kann die Datei lesen, daher erhält die Variable $FILE auch einen Wert. Die Prüfung ist dementsprechend erfolgreich. Erst beim identify muss er sie aber das erste mal ausführen, für das er aber keine rechte hat.


    Zitat

    Irgendwie werde ich auch aus deiner anderen Angabe bezüglich TEMP1 nicht schlau.Wenn ich dich richtig verstehe, enthält TEMP1 trotzdem alle benötigten Variablen. Das kann eigentlich nicht sein, wenn mplayer keine Zugriffsrechte auf die Video-Datei hat.


    TEMP1 ist natürlich leer, da er ja die Datei nicht ausführen kann und dementsprechend der identify fehlschlägt. Mit benötigten Variablen meinte ich nur, dass in $MPLAYER und $FILE ein Wert enthalten ist.


    Hoffe mal dass ich es jetzt besser beschrieben habe, hattest du bei deinem test nur die execute-rechte weggenommen oder auch den owner auf root gemacht?


    Duff

  • Hi Duff,


    Zitat


    Der User vdr kann die Datei lesen, daher erhält die Variable $FILE auch einen Wert.


    nein, kann er nicht. Der VDR-User kann den Namen dieser Video-Datei lesen, und zwar im File des angegebenen Directories (ja, unter Unix sind Directories auch Files). Das Directory ist fuer den VDR-User ja lesbar (rwxr--r--).
    Die Video-Datei selbst kann er aber nicht lesen, da er mangels des x-Rechtes das Directory nicht betreten darf (x ist bei Directories nicht das Ausfuehrrecht, da Directories nicht ausgefuehrt sondern hoechsten durchsucht/betreten werden koennen; siehe "man chmod"). Wuerde er es lesen koennen, haette MPlayer keine Probleme.


    Zitat

    Erst beim identify muss er sie aber das erste mal ausführen, für das er aber keine rechte hat.


    Nicht ausfuehren, sondern oeffnen, in diesem Fall zum Lesen. Ausfuehren heisst kurz:
    - in den Arbeitsspeicher laden und
    - den Program Counter der CPU auf die Einsprungaddresse des geladenen Maschinencodes zu setzen (ausser bei Scripts natuerlich).


    Um eine Datei oeffnen zu koennen, muss der User das Verzeichnis betreten duerfen. Darf er in diesem Fall aber nicht, weshalb der MPlayer meckert.


    juri:
    Statt "test -f" vielleicht ein "test -r"?


    Gruesse
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Hmm, auch mit root:root und 744 als Verzeichnisberechtigung und root:root und 644 als Dateirechte bekomme ich vom mplayer.sh-Skript die besagte Fehlermeldung.


    Tut mir leid, ich kann es immer noch nicht nachvollziehen.


    mark2:
    "test -f" reicht bei mir völlig aus.


    Noch Ideen?


    Juri

  • so nach langen probieren hab ichs nochmal hinbekommen.


    also der ordner muss natürlich execute-rechte besitzen, sonst können die dateien nicht angezeigt werden. bei den dateien selbst darf nur der owner rechte haben, z.B. chmod 700. Die Dateien werden so im VDR-Plugin angezeigt, aber beim Versuch sie abzuspielen, scheitert er dann mit dem oben ausgegebenen log (Auszug aus /var/log/messages).

  • Ok, jetzt habe ich es reproduzieren können - da hätte ich auch von selbst drauf kommen können...


    Und mark2 hatte völlig recht, ein 'test -r' wirkt Wunder.
    Habe ich jetzt in meinem lokalen CVS drin - die nächste Release wird diese Änderung enthalten.


    Danke an euch beide.


    Grüße,
    Juri

Jetzt mitmachen!

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