udpstreamts FIX 19.07.2007

Rund um Arnos Tool

Moderator: Arno

Nachricht
Autor
Arno
NeutrinoTV Dev
Beiträge: 628
Registriert: Mo 07 Jun 2004, 14:56
Wohnort: Stuttgart, Duisburg
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#31 Beitrag von Arno » Mi 10 Mär 2010, 20:41

@Endeavour79: Welche api.sh ist mit deinem Post gemeint - die gepatchte oder die die aktuelle aus dem CVS?

(Ich erinnere mich dunkel, dass die api.sh nicht mehr verändert werden musste) - kann jmd. die aktuelle api.sh (so wie sie aktuell im CVS ist) hier posten, dann kann ich sagen ob man auch den den patch für die api.sh benötigt.

Beste Grüße
Arno

PS: Hier ist die api.sh so wie ich sie aktuell auf meinen Boxen verwende (soweit ich das sehe ist diese NICHT verändert, da neutrinoTV den zusätzlichen Paramter per http-Anfrage mitschickt:

Code: Alles auswählen

#!/bin/sh
# -----------------------------------------------------------
# API Script (yjogol)
# for yWeb independent shell calls
# $Date: 2007/11/26 20:54:55 $
# $Revision: 1.3 $
# -----------------------------------------------------------
API_VERSION_MAJOR="1"
API_VERSION_MINOR="0"
API_VERSION_TEXT="$API_VERSION_MAJOR.$API_VERSION_MINOR"
path_httpd=".."
path_scripts="$path_httpd/scripts"
path_usrbin="/var/bin"
path_sbin="/sbin"
path_config="/var/tuxbox/config"
path_tmp="/tmp"

streaming_client_status="$path_tmp/streaming_client"

# -----------------------------------------------------------
# udp control for neutrinoTV and yWeb LiveTV
do_udp_stream()
{
        up="no"
        if [ -e $path_usrbin/udpstreamts ];     then
                up="$path_usrbin/udpstreamts"
        else
                if [ -e $path_sbin/udpstreamts ]; then
                        up="$path_sbin/udpstreamts"
                fi
        fi

        case "$1" in
                installed)
                        echo "$up" ;;
                start)
                        shift 1
                        killall streamts
                        killall udpstreamts
                        echo $* > $streaming_client_status
                        trap "" 1;$up $* &
                        ;;
                stop)
                        killall udpstreamts
                        rm $streaming_client_status
                        echo "ok"
                        ;;
                kill_all_streams)
                        killall streamts
                        killall streampes
                        killall udpstreamts
                        rm $streaming_client_status
                        echo "ok"
                        ;;
        esac
}
# -----------------------------------------------------------
# Main
# -----------------------------------------------------------
case "$1" in
        version)
                echo $API_VERSION_TEXT ;;

        udp_stream)
                shift 1
                do_udp_stream $*
                ;;
        streaming_status)
                if [ -e $streaming_client_status ]; then
                        cat $streaming_client_status
                else
                        echo "Streams: "
                        ps | grep stream | grep -v grep | grep -v sh | cut -d " " -f 15
                fi
                ;;
        streaming_lock)
                shift 1
                echo $* > $streaming_client_status # first parameter should always be the ip of the client
                echo "ok"
                ;;
        streaming_unlock)
                rm $streaming_client_status
                echo "ok"
                ;;
        *)
                echo "[api.sh] Parameter wrong: $*" ;;
esac
Wenn es sich dabei um die originale (und später nicht mehr veränderte api.sh handelt ist KEINE Änderung an der api.sh notwendig. Nur die Änderungen an der udpstreamts sollten ins CVS. Vor allem weil der patch an der api.sh allgemein das Startverhalten von udpstreamts verändert - ich kann nicht sagen ob z.B. das yjogol webinterface damit gut oder schlecht umgehen würde. (Die Änderungen an der udpstreamts beeinflussen yWeb hingegen gar nicht, da ein Paramter mit übergeben werden muss, welcher von yweb einfach nicht mit übergeben wird)

rhabarber1848
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 65
Registriert: Fr 30 Mai 2008, 9:40

Re: udpstreamts FIX 19.07.2007

#32 Beitrag von rhabarber1848 » Mi 10 Mär 2010, 21:31

Arno hat geschrieben:kann jmd. die aktuelle api.sh (so wie sie aktuell im CVS ist) hier posten
http://cvs.tuxbox.org/tuxbox/apps/tuxbo ... iew=markup

Arno
NeutrinoTV Dev
Beiträge: 628
Registriert: Mo 07 Jun 2004, 14:56
Wohnort: Stuttgart, Duisburg
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#33 Beitrag von Arno » Mi 10 Mär 2010, 22:02

Die ist absolut identisch. D.h. den api.sh patch wird nicht (mehr) benötigt. Nur die neue udpstreamts.

Beste Grüße
Arno

rhabarber1848
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 65
Registriert: Fr 30 Mai 2008, 9:40

Re: udpstreamts FIX 19.07.2007

#34 Beitrag von rhabarber1848 » Do 11 Mär 2010, 21:50

Arno hat geschrieben:(Die Änderungen an der udpstreamts beeinflussen yWeb hingegen gar nicht, da ein Paramter mit übergeben werden muss, welcher von yweb einfach nicht mit übergeben wird)
D.h. yweb wird udpstreamts weiterhin nicht im daemon-Modus starten?
Wann und wodurch wird udpstreamts dann im daemon-Modus gestartet?
Entschuldige die "blöden" Fragen, aber ich habe NeutrinoTV noch nie genutzt.

Arno
NeutrinoTV Dev
Beiträge: 628
Registriert: Mo 07 Jun 2004, 14:56
Wohnort: Stuttgart, Duisburg
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#35 Beitrag von Arno » Do 11 Mär 2010, 22:05

Soweit ich weiss hat yweb den daemon mode bei sich nicht übernommen. Somit ist das einzige Programm, das mir bekannt ist, welches udpstreamts im daemon mode startet neutrinoTV (wobei neutrinoTV voher prüft ob der daemon mode unterstütz wird).

Wobei, meines Erachtens, der daemon mode auch yWeb gut tun würde. Da weiss ich aber nicht ob es reicht dafür die api.sh anzupassen. Damals verblieben wir so, dass jedes Programm über die api.sh selbst entscheiden kann ob der daemon mode verwendet wird oder nicht (d.h. wir zwingen über die api.sh niemanden den daemon mode zu verwenden - dies wäre der Fall, wenn man das -b /dev/null in die api.sh reinpackt).

Beste Grüße
Arno

rhabarber1848
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 65
Registriert: Fr 30 Mai 2008, 9:40

Re: udpstreamts FIX 19.07.2007

#36 Beitrag von rhabarber1848 » Do 11 Mär 2010, 22:32

Arno hat geschrieben:Somit ist das einzige Programm, das mir bekannt ist, welches udpstreamts im daemon mode startet neutrinoTV (wobei neutrinoTV voher prüft ob der daemon mode unterstütz wird).
Wie geschieht beides?

Arno
NeutrinoTV Dev
Beiträge: 628
Registriert: Mo 07 Jun 2004, 14:56
Wohnort: Stuttgart, Duisburg
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#37 Beitrag von Arno » Do 11 Mär 2010, 22:58

Über die api.sh kann man parameter an die udpstramts mitgeben. Um den daemon-modes einzuschalten muss man folgenden Aufruf über das webinterface (api.sh) absetzen:

Code: Alles auswählen

http://...?api+udp_stream+start+-b+/dev/null+<parameter für streams>
Letzlich muss udpstreamts mit der option -b <irgendeinfile> aufgerufen werden. Dann geht udpstreamts in den Hintergrund und schreibt ab sofort alle seine meldungen in <irgendeinfile>. Wenn man den aufrufpfad in der api.sh verfolgt sieht man, dass alles nach dem "start" als Parameter an die udpstreamts übergeben wird. Somit wenn yweb den daemon mode nutzen sollte, wäre es am sinnvollsten, dass die aufrufe in yweb anstelle von "udp_stream start" zu "udp_stream start -b /dev/null" geändert werden.

In neutrinoTV führe ich zunächst über api.sheinige Tests aus um die aktuell Situation zu erkennen:

Code: Alles auswählen

11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > Checking streaming api ... 
11.03.2010 22:48:47: 192.168.42.30 [CON] neutrinoTV -> dbox: GET /control/exec?api+version
11.03.2010 22:48:47: 192.168.42.30 [CON] Server status: OK (OK); Length: 4; Type: text/html; Encoding: ; Charset: ISO-8859-1;
11.03.2010 22:48:47: 192.168.42.30 [CON] dbox -> neutrinoTV: 1.0
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > Enhanced streaming api (api.sh) available in version 1.0
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > Checking for udpstreamts ... 
11.03.2010 22:48:47: 192.168.42.30 [CON] neutrinoTV -> dbox: GET /control/exec?api+udp_stream+installed
11.03.2010 22:48:47: 192.168.42.30 [CON] Server status: OK (OK); Length: 21; Type: text/html; Encoding: ; Charset: ISO-8859-1;
11.03.2010 22:48:47: 192.168.42.30 [CON] dbox -> neutrinoTV: /var/bin/udpstreamts
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > udpstreamts available!
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > Checking whether udpstreamts supports the backgrounding flag (-b)...
11.03.2010 22:48:47: 192.168.42.30 [CON] neutrinoTV -> dbox: GET /control/exec?api+udp_stream+start
11.03.2010 22:48:47: 192.168.42.30 [CON] Server status: OK (OK); Length: 26; Type: text/html; Encoding: ; Charset: ISO-8859-1;
11.03.2010 22:48:47: 192.168.42.30 [CON] dbox -> neutrinoTV: udpstreamts starting...
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] > udpstreamts supports the backgrounding flag (-b)! Very good!
11.03.2010 22:48:47: 192.168.42.30 [INIT-BOX] D-box initialization done!
Gestartet wird der Stream dann letzlich mit:

Code: Alles auswählen

11.03.2010 22:48:47: 192.168.42.30 [CON] neutrinoTV -> dbox: GET /control/exec?api+udp_stream+start+-b+%2ftmp%2fudpstreamts.log+192.168.42.211+31330+0+0x4b1+0x4b2+0x4b3
11.03.2010 22:48:48: 192.168.42.30 [CON] Server status: OK (OK); Length: 98; Type: text/html; Encoding: ; Charset: ISO-8859-1;
11.03.2010 22:48:48: 192.168.42.30 [CON] dbox -> neutrinoTV: udpstreamts starting... \n\nDaemonizing /var/bin/udpstreamts and logging to /tmp/udpstreamts.log...
(wobei hier nach /tmp/udpstreamts.log geloggt wird - das leigt daran, dass ich neutrinoTV im Debug mode starten musste um die einzelnen Befehle im log zu sehen.)

Das Erkennen des background flags ist etwas tricky: Früher hat die udpstreamts gar nichts erzählt wenn sie gestartet wurde. Seit meinem patch macht sie immer als erste Ausgabe "udpstreamts starting ...". D.h. wenn der string da ist, ist es eine neue Version. Nicht wirklich schön hat aber den Zweck erfüllt ohne weiteren Änderungen notwedig zu machen.

Beste Grüße,
Arno

rhabarber1848
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 65
Registriert: Fr 30 Mai 2008, 9:40

Re: udpstreamts FIX 19.07.2007

#38 Beitrag von rhabarber1848 » Fr 12 Mär 2010, 18:23

Arno hat geschrieben:Über die api.sh kann man parameter an die udpstramts mitgeben.
Das ist eine nachvollziehbare Erklärung, danke!
Ich werde den Patch am Wochenende committen,
heute schaffe ich es nicht mehr.

Arno
NeutrinoTV Dev
Beiträge: 628
Registriert: Mo 07 Jun 2004, 14:56
Wohnort: Stuttgart, Duisburg
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#39 Beitrag von Arno » Fr 12 Mär 2010, 19:20

Vielen Dank!

Freut mich, dass es der patch nun doch noch ins CVS schafft und in Zukunft für neutrinoTV keine extra udpstreamts mehr eingespielt werden muss.

Viele Grüße
Arno

Endeavour79
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 57
Registriert: Sa 12 Mai 2007, 8:32
Kontaktdaten:

Re: udpstreamts FIX 19.07.2007

#40 Beitrag von Endeavour79 » Fr 12 Mär 2010, 20:15

Vielen Dank Euch beiden. NeutrinoTV bleibt damit weiterhin das beste, funktionierende Dbox-StreamingTV Tool auf der Welt :tanz: :D

rhabarber1848
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 65
Registriert: Fr 30 Mai 2008, 9:40

Re: udpstreamts FIX 19.07.2007

#41 Beitrag von rhabarber1848 » Fr 12 Mär 2010, 23:44


Antworten