externremux.sh beendet nicht

  • Nabend zusammen,


    Ich kämpfe seit ne paar Wochen das Streaming zum laufen zu bringen. Genauer gesagt das Streaming mit Streamdev-plugin und externremux.sh.


    Das einrichten/konfigurieren hat mit Hilfe von Infos aus VDR-Wiki + hier im Forum so erst mal Ohne Problemen funktioniert. Das Streamen nach win-dose VLC mit VDR-Zapper funktioniert bestens.


    Nur über externremux.sh gibt's noch Problemen.
    Installiert VDR + plugins aus tobis sein repository


    Code
    deb http://e-tobi.net/vdr-experimental lenny base backports addons vdr-multipatch


    vdr-plugin-streamdev-server = 0.5.0~pre20090706+cvs20091108.2341-2


    externremux.sh




    das Streamen selbst funktioniert prima




    auch die Connection wird wieder geschlossen. Seltsam ist die Fehlermeldung
    "ERROR: streamdev-server: couldn't send data: Ungültiger Dateideskriptor"
    womit ich nix anfangen kann. Ist das vielleicht die Ursache ?


    Was aber "hängen" bleibt sind die Prozessen


    Code
    F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
    4 S vdr      31103 31090 10  78  -2 - 38715 -      17:56 ?        00:00:39 /usr/bin/vdr -v /var/lib/video.00 -c /var/lib/vdr -L /usr/lib/vdr/plugins -r /usr/lib/vdr/vdr-recordingaction -s /usr/lib/vdr/vdr-sh
    0 S vdr      31762 31103  0  78  -2 -  1091 -      17:58 ?        00:00:00 /bin/sh /var/lib/vdr/plugins/streamdev/externremux.sh 
    1 S vdr      31766 31762  0  78  -2 -  1090 -      17:58 ?        00:00:00 /bin/sh /var/lib/vdr/plugins/streamdev/externremux.sh
    0 S vdr      31767 31766  0  78  -2 -   755 -      17:58 ?        00:00:00 cat /tmp/externremux-18087/out.avi
    0 S vdr      31768 31762  1  78  -2 - 10777 -      17:58 ?        00:00:03 mencoder -ovc xvid -xvidencopts bitrate=300 -oac mp3lame -lameopts preset=standard -vf scale=400:240 -o /tmp/externremux-18087/out.a


    wenn ich mencoder abschieße "kill -9"
    bleibt externremux.sh als defunct hängen.


    Code
    F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
    4 S vdr      31103 31090 11  78  -2 - 36666 -      17:56 ?        00:00:59 /usr/bin/vdr -v /var/lib/video.00 -c /var/lib/vdr -L /usr/lib/vdr/plugins -r /usr/lib/vdr/vdr-recordingaction -s /usr/lib/vdr/vdr-sh
    0 Z vdr      31762 31103  0  78  -2 -     0 -      17:58 ?        00:00:00 [externremux.sh] <defunct>



    nur ein vdr restart räumt alles sauber wieder weg ..... also, so als extrene Stream leider nicht wirklich zu gebrauchen.


    Gibst noch ne Möglichkeit, Bug ? noch Fehler in der Konfiguration ? oder auf vdrdevel umsteigen ? ... kein Plan mehr :) ich wäre um jeden Hinweis dankbar.



    Gruß
    Michael

  • Hallo schmirl,


    das Verhalten kann ich bestätigen auch mit einer "ordenlichen" externremux.sh :) (per drag and drop aus dem Wiki)


    Viele Grüße
    Wolfgang

    Clients
    VDR1: yaVDR 0.5 stable auf ZOTAC ION A 4Gbyte RAM / mit ATRIC - IR - Einschalter softhddevice per streamdev am Server
    VDR2 / VDR3: MLD 5.1 auf Raspberry pi3
    2 x VOMP 0.4 auf mediamvp
    Server
    Cubietruck, Lubuntu Trusty, vdr aus yaVDR - sourcen, 1 x TT S2-3600, 1 x TT S2-3650 CI, 1 x sundtek SkyTV III, 1 x sundtek SkyTV IV

  • Hi,
    ganz wichtich ist die Zeile


    (trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi)


    - insbesondere wegen der Prozess-Befehle - damit geht es bei mir immer problemlos mit dem Beenden der Prozesse, insofern ich über ein Browser Plugin gucke. Verwende ich VLC, klappt es in den meisten Fällen, aber eben auch nicht immer. Ich vermute zumeist dann nicht, wenn man das Abspielen nicht korrekt mit der STOP-Taste in VLC beendet.

  • hmm das war mein erster versuch ...


    wiki beispiel externremux


    da ist die trap Anweisung drin


    Code
    (trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &


    was auch immer das genau bewirkt, die Prozessen bleiben trotzdem hängen.


    Was ich beobachtet habe ist das VLC Player ohne/mit externremux funktioniert ohne Problemen :) so lange immer brav auf stop geklickt wird.


    Nur wenn die Verbindung mal abbricht (streamen auf mein N800 PDA über Wlan/UMTS).... oder der böse Stream kucker einfach mal den Player schließt, bricht das Chaos aus.


    Verstehe das nicht ... in beiden fälle wird der Port sauber vom Plugin ? geschlossen, zumindest wird erkannt das niemand mehr da ist zum Telefonieren.


    Gibt's ne Möglichkeit ein timeout zu definieren ? das wenigstens die hartnäckige mencoders sich beenden.


    Wäre schade wenn das so nicht Funktioniert. Was ich nochmal versuche ist VLC stat mencoder als stream Server/remuxer dazwischen zu schalten.


    Dumm ist nur das VLC in lenny nur in der ualt 0.8.6 Version vorhanden ist.
    (tja ist typisch debian :) )


    noch weitere Ideen ?

  • @Dutch
    Versuch mal die Zeile

    Bash
    #!/bin/sh


    in

    Zitat

    #!/bin/bash


    zu ändern.


    Gruß

    Gigabyte GA-M720-US3, AMD X3 400e, GT220 Pailt, 4GB RAM, Tevii S470, debian squeeze und alles selber gebaut.
    Dreambox

  • okay versuche ich heute Abend, danke Morlock.


    Was die Trap Anweisung angeht, wird laut Doku nur ? ordentlich das Temp verzeichnis wieder aufgeräumt.


    Hat mit dem Problem das alle 3
    externremux.sh + cat + mencoder
    hängen bleiben nix zu tun ?

  • erst mal ne super danke für die Tipps ... hat aber leider noch nix gebraucht.


    okay ich Poste noch mal alles was relevant ist, in der Hoffnung das geniale Streamdev-plugin doch noch zum laufen zu kriegen. Wie gesagt wäre extrem gut zumindest ne paar Heimat Sender aufm PDA zu streamen.


    externremux.sh




    mit bash als Shell und die geänderte Trap Anweisung.


    syslog



    Stream funktioniert prima :bounce2
    nur wenn ich den mplayer schließen bleiben die prozessen hängen



    Code
    ps -u vdr -f -l -w
    F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
    4 S vdr      12064 12051  6  78  -2 - 45442 -      20:24 ?        00:00:17 /usr/bin/vdr -v /var/lib/video.00 -c /var/lib/vdr -L /usr/lib/vdr/plugins -r /usr/lib/vdr/vdr-recording
    0 S vdr      13026 12064  5  78  -2 - 10882 -      20:27 ?        00:00:05 mencoder -ovc xvid -xvidencopts bitrate=300 -oac mp3lame -lameopts preset=standard -vf scale=400:240 -o
    1 S vdr      13030 13026  0  78  -2 -  1092 -      20:27 ?        00:00:00 /bin/bash /var/lib/vdr/plugins/streamdev/externremux.sh N800
    0 S vdr      13031 13030  0  78  -2 -   755 -      20:27 ?        00:00:00 cat /tmp/externremux-30942/out.avi



    und die Trap zeile wurde offensichtlich auch nicht ausgeführt


    Code
    ls -al /tmp/externremux-30942/
    insgesamt 32
    drwxr-xr-x  2 vdr  vdr   4096  1. Dez 20:27 .
    drwxrwxrwt 20 root root  4096  1. Dez 20:27 ..
    prw-r--r--  1 vdr  vdr      0  1. Dez 20:27 out.avi
    -rw-r--r--  1 vdr  vdr  22453  1. Dez 20:27 out.log



    dann mit
    kill -9 13026


    in Syslog


    Code
    Dec  1 20:31:42 vdr: [13027] streamdev-server: EOF reading from externremux



    und der Prozess bleibt mit defunct hängen


    Code
    F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
    4 S vdr      12064 12051  6  78  -2 - 45442 -      20:24 ?        00:00:32 /usr/bin/vdr -v /var/lib/video.00 -c /var/lib/vdr -L /usr/lib/vdr/plugins -r /usr/lib/vdr/vdr-recording
    0 Z vdr      13026 12064  1  78  -2 -     0 -      20:27 ?        00:00:05 [mencoder] <defunct>



    Plugins


    Searching for plugins (VDR 1.6.0-2/1.6.0) (cache hit): streamdev-server xineliboutput epgsearch quickepgsearch epgsearchonly conflictcheckonly streamdev-client.



    vdr configuration :



    Sorry für den langen Post, aber keine Ahnung was an Information gebraucht wird, deswegen habe ich versucht mal alles was relevant ist zu sammeln ... in der Hoffnung das vielleicht jemand noch ein Tipp für mich hat. wenn noch was fehlt, bitte melden.


    Gruß
    Michael

  • so heute Abend noch mal mit VLC Player getestet ... leider das gleiche in grün. Egal ob ich stoppen, oder den player einfach schließen, das 3er Gespann streamt einfach weiter. Also liegt die Ursache woanders ?

  • Hoi Dutch !


    Das oben genannte kan ich völlig bestätigen.
    Ich hab alle mögliche kombinationen von #!/bin/sh und ~bash mit und ohne trap versucht, aber die prozesse wurden nicht beendet und es gibt fhelermelduungen beim schliessen der Client.


    So hab ich mir ein skript gemacht das alle alte prozessen beendet.
    Ich weis's ist NICHT schön, aber das fuktioniert zumindest...
    Veilleicht gibt's nog etwas im skript zum überzetsen, weil einige fehlermeldungen Holländisch sein....


    Groetjes,


    Carel

  • Hallo


    Kann, das oben genannte ebenfalls bestätigen.


    Heute mal endlich Zeit gefunden, ein paar Plugins zu aktualisieren.


    Hatte eine Version von Anfang des Jahres 20090125 installiert, damit funktionierte es, gerade einen Snapshot von heute installiert, nun werden die Prozesse, nicht mehr beendet.


    Hat nichts, mit Deinem Script zu tun (das tut es hier auch mit einer älteren Version, des Plugins).


    LG Ronny

    Einmal editiert, zuletzt von ronnykornexl ()

  • Hallo,


    Ich hab keine traps drinne, nur "(cat $TMP/out.avi) &"


    Und mein /bin/sh ist ein symlink nach /bin/dash


    Aufruf im externelremux.sh mit #!/bin/bash
    mencoder wird gestartet mit exec ...


    Mit dieser setup hab ich kein <defuncts> ...


    Carel

  • Zitat

    Originally posted by ronnykornexl
    Hatte eine Version von Anfang des Jahres 20090125 installiert, damit funktionierte es, gerade einen Snapshot von heute installiert, nun werden die Prozesse, nicht mehr beendet.


    Das war der entscheidende Hinweis - Danke! Virtuellen Destruktor vergessen :whatever

  • Danke :) freue mich das du den Fehler gefunden hast, dann brauch ich nicht mehr an DurchDieBrustInsAuge scripten zu basteln die alles wieder aufräumen.


    Wie lange dauert es bis der Bug-Fix bei tobi landet ? ... ist auch egal ich warte

  • Vielen dank Schmirl...


    Ich hab die änderung in tsremux.h durchgefürt.
    Leider kommt nun das folgende:


    Code
    Dec  3 11:11:49 pdis vdr: [2601] Streamdev: Accepted new client (HTTP) 127.0.0.1:44518
    Dec  3 11:11:49 pdis vdr: [2601] ERROR (dvbdevice.c,826): Ongeldig argument
    Dec  3 11:11:49 pdis vdr: [2601] ERROR: can't set PID 27500 on device 1
     Dec  3 11:11:49 pdis kernel: [   57.795297] dvb_demux_feed_del: feed not in list (type=0 state=0 pid=ffff) 
    Dec  3 11:12:35 pdis vdr: [2601] client (HTTP) 127.0.0.1:44518 has closed connection


    Einige ideeen ?


    Gruss,


    Carel

  • Zitat

    Originally posted by carel
    Ich hab die änderung in tsremux.h durchgefürt.
    Leider kommt nun das folgende:


    Was wurde denn nach der Änderung alles neu kompiliert? Falls Du streamdev nicht komplett neu durchkompiliert hattest, bitte zur Sicherheit im streamdev-Source-Verzeichnis erst ein "make clean" ausführen, dann streamdev neu kompilieren und installieren.

Jetzt mitmachen!

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