Beiträge von Londo

    @ zwick


    Ich vermute mal, es beendet sich bei dir wieder von alleine, da
    [ `pgrep -c insertdvdcomman` != 1 ] bei dir "true" ergibt, wahrscheinlich weil das Ergebnis von "pgrep -c" bei dir 0 ist. Das könnte z.B. daran liegen, dass das Skript bei dir anders heißt (könnte man während es läuft mittels "ps -A" ermitteln).


    Aber solange es läuft, ist es ja auch so ok :)


    Warum das Ganze aber ohne das dd funktioniert ist mir noch nicht ganz klar - weitere Rückmeldungen erwünscht, falls das hier noch jemand ausprobiert.

    Ersteres ist eigenlich dazu da, ein eventuell noch laufendes insertdvdcommand.sh Skript zu beenden. Das könnte man evtl. auch noch schöner lösen. Solange man jede DVD die man einlegt auch abspielt, braucht man das aber nicht.


    Dass man allerdings das Zweite auskommentieren kann, wundert mich. Eigentlich müsste sich das Skript dann sofort nach Einlegen der DVD wieder beenden, da ja der VDR in dem Moment noch nicht auf die Pipe zugreift.


    Allerdings hatte ich auch nach jedem Neustart des VDR-Systems das Problem, das sich die Pipe nicht schließen tat wenn nichts mehr daraus ausgelesen wurde. Deshalb lege ich die Pipe jetzt bei jedem Skriptstart neu an.
    Allerdings ist es vielleicht auch nur eine Eigenart meines VDR, dass er die Pipe bei Beginn des Abspielvorgangs nochmal schließt - sonst würde das Skrip bei dem dd festhängen. Welche VDR-Version hast du denn?
    Und kannst du die DVD nach Drücken auf "Stop" wieder entnehmen oder ist die da noch gelockt?

    Hier die automatische Variante mit ivman.


    Achtung, wenn man bei dieser Variante den Abspielvorgang abbricht (nicht beim Drücken von Pause), z.B. weil "Stop" oder "Menü" gedrückt wird, kann man die DVD nur noch entnehmen und nach erneutem Einlegen wieder von vorne Abspielen.


    Folgende Anleitung bezieht sich auf eine Debian-basierte VDR-Installation und wurde von mir unter Etch durchgeführt


    Schritt 1
    vlc und ivman installieren

    Code
    apt-get install vlc
    apt-get install ivman


    Schritt 2:
    Ordnerstruktur anlegen

    Code
    mkdir /video/DVD
    mkdir /video/2008-01-01.00.00.00.00.rec


    Schritt 3:
    Folgendes Skript als Datei unter /etc/ivman/insertdvdcommand.sh anlegen


    Nicht vergessen, das Skript mittels "chmod +x /etc/ivman/insertdvdcommand.sh" ausführbar zu machen.


    Schritt 4:
    ivman als root starten lassen
    In der Datei /etc/ivman/IvmBase.xml die Zeile

    Code
    <ivm:Option name="user" value="ivman" />


    durch folgende Zeile ersetzen

    Code
    <ivm:Option name="user" value="root" />


    Schritt 5:
    ivman beim Einlegen einer Video-DVD das Skript insertdvdcommand.sh ausführen lassen.
    Dazu die Datei /etc/ivman/IvmConfigActions.xml um folgende Zeilen ergänzen

    Code
    <!-- tanscode video DVDs -->
    	<ivm:Match name="hal.volume.disc.is_videodvd" value="true">
    		<ivm:Option name="exec" value="pumount '$hal.block.device$' &amp;&amp;  /etc/ivman/insertdvdcommand.sh &amp;" />
    	</ivm:Match>


    Das ganze aber nicht am Ende anhängen, sondern vor der Zeile </ivm:ActionsConfig>


    Fertig. Legt man nun eine DVD ein, so kann man diese als VDR-Aufnahme "DVD" ansehen. Allerdings ohne DVD-Menüs und ohne die Möglichkeit des Vor- oder Zurückspulens.


    Ich hoffe, ich habe hier nichts vergessen aufzuführen.

    Ivman kann im Prinzip genau das, was wir brauchen: Ein Skript beim Einlegen einer Video-DVD starten. Soweit ist das auch kein Problem, ich arbeite aber momentan noch an einer Lösung, mit der ich nach drücken von Stop die DVD auch wieder herausnehmen kann (geht nicht wegen Lock durch VLC), ohne mir dabei die Möglichkeit zu nehmen, durch drücken von Pause das Abspielen nur mal kurz anzhalten.

    Danke für den Link. Allerdings bin ich mittlerweile der Meinung, udev ist nicht das Richtige für den Zweck (erkennt ja nur neue Geräte - aber neu eingelegte Medien???)
    Habe mich jetzt für ivman entschieden und bastel da gerade eine Lösung zusammen.


    Wird demnächst gepostet.

    Von Haus aus kann das Vomp-Plugin in der momentan aktuellen Version 0.2.7 keine DVDs abspielen. Deshalb schiebe ich dem VDR die DVDs als Fernsehaufnahme unter.
    Der Pfad zum Videoverzeichnis muss natürlich entsprechend der eigenen Installation angepasst werden, bei mir ist das "/video".
    Zum Transcodieren muss VLC installiert sein. (unter Debian "apt-get install vlc")


    Code
    mkdir /video/DVD                          # Die Aufnahme soll DVD heißen
    mkdir /video/2008-01-01.00.00.00.00.rec   # und ist am 1.1.2008 um 0:00 Uhr erstellt worden


    Ich persönlich möchte das ganze über eine Pipe transkodieren, deshalbe erstelle ich eine Pipe-Datei. Das hat natürlich den Nachteil, dass man dann später in der Pipe nicht spulen kann. Wer will, kann deshalb die folgende Zeile auch auslassen. Allerdings müsste man, um wirklich spulen zu können, imho auch noch mittels genindex eine Indexdatei erzeugen, was aber erst mögich ist, nachdem die komplette DVD transkodiert wurde. Ich möchte aber die DVD einlegen und sofort abspielen können :)


    Code
    mkfifo /video/2008-01-01.00.00.00.00.rec/001.vdr


    Nachdem man eine DVD eingelegt hat, startet man nun VLC mittels:


    Code
    vlc -I dummy -vvv dvdsimple:///dev/dvd --sout "#transcode{vcodec=mp2v,acodec=mp2a,ab=192,channels=2}:standard{mux=ps,dst=\"/video/2008-01-01.00.00.00.00.rec/001.vdr\",access=file}" vlc:quit


    Wer will, kann auch noch durch ein nach vcodec=mp2v eingefügtes ",vb=4096" die Bitrate für den Videocodec einstellen (evtl. interessant für schlechte WLAN-Verbindungen)



    Jetzt kann man an seiner MediaMVP die Aufnahme DVD anwählen und die DVD wird abgespielt - allerdings ohne Menüs etc.


    Nachteil an dieser Lösung ist natürlich, dass man immer erst nach dem Einlegen der DVD den VLC starten muss. Hier werde ich demnächst mal forschen, ob man das per udev automatisieren kann.


    Mit dieser Lösung kann man übrigens auch beliebige andere Videodateien per Vomp-Plugin abspielen. Dazu ist es aber evtl erforderlich, die Größe des Videos anzupassen.


    Beispiel:


    Code
    vlc -I dummy -vvv file:///filme/Sandmann.wmv --sout "#transcode{vcodec=mp2v,acodec=mp2a,ab=192,channels=2,width=704,hight=576}:standard{mux=ps,dst=\"/video/2008-01-01.00.00.00.00.rec/001.vdr\",access=file}" vlc:quit