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:

udpstreamts FIX 19.07.2007

#1 Beitrag von Arno » Do 19 Jul 2007, 2:57

Nachdem ich in den letzten Tagen über das Development-VMWare Image von yjogol gestossen bin, habe ich es endlich geschafft eine tuxbox Entwicklungsumgebung aufzusetzen - Danke an yjogol für das tolle VMware-Image!!

Ich habe es genutzt um mir endlich udpstreamts genauer anzusehen und einige kleine bugs zu fixen. Im Detail hab ich folgendes gefixt:

- Abstürze bei sehr hohen Datenraten sollte nun (fast??) ganz weg sein (getestet mit einem HDTV Sender, und es sürzte nicht ab!! - natürlich ruckelte es, aber das ist normal bei HDTV. Bei ARD/ZDF konnte ich den Absturz nicht mehr beobachten (Symptom: Einfrieren des Bildes, es ging erst weiter wenn man neu auf live geklickt hat). Technisch lag es daran dass manchmal zu schnell gelesen bzw. geschrieben wurde. Abhilfe ist, es einfach bis zu 10 mal zu probieren wenn das Verhalten auftritt, bevor man engültig aufgibt.

- Wenn man udpstreaming mit neutrinoTV verwendet gab es seit der Einführung von UDP streaming in neutrinoTV eine häßliche Fehlermeldung, die behauptete, dass ein bestimmtes skript nicht ausgeführt werden konnte - die ist weg. Dies wurde erreicht indem ich udpstreamts das "daemon-dasein" beigebracht habe. Insofern man "udpstreamts -b logfile ..." startet so geht udpstreamts in den hintergrund und gibt vor allem alle file-descriptoren frei. Dadurch kehrt der aufruf vom nhttpd sofort zurück und es gibt keine Fehlermeldung.



Man kann die geänderte version hierdownloaden.


Das Archiv enthält folgendes:
  • udpstreamts: Neue binary von udpstreamts für die dbox
    udpstreamts.c: Geänderte quellen von udpstreamts
    udpstreamts.c.diff: Patch von udpstreamts.c gegen aktuelles CVS
    api.sh: Minimal geänderte api.sh - diese ist notwendig damit neutrinoTV die neue udpstreamts besser aufrufen kann
    api.sh.diff: Patch der api.sh gegen aktuelles CVS

Have fun folks..

Benutzeravatar
jmittelst
Co-Admin
Co-Admin
Beiträge: 11013
Registriert: So 16 Nov 2003, 13:42
Wohnort: Schildgen (Bergisch Gladbach)
Kontaktdaten:

#2 Beitrag von jmittelst » Do 19 Jul 2007, 4:43

Danke, auch dafür, das Du das auch im Tuxbox-Forum publik gemacht hast. Komme leider nicht vor dem Wochenende dazu mir das genauer anzusehen. Hast Du schon getestet, ob die Änderungen bei Udrec oder Direktaufnahme irgenwelche, vielleicht unerwünschten oder sogar erfreulichen Nebenwirkungen haben könnten? (Besser kann ich als "Nicht-Code-Versteher" nicht ausdrücken) Naja, ich muß mich bis zum WE gedulden. :)

cu
Jens
VU+ Ultimo 4k
VU+ Duo²
VU+ Solo²


[Zitat]Es gibt 2 Dinge, die unendlich sind. Das Weltall und die Dummheit der Menschen. Beim Weltall bin ich mir aber nicht so sicher...[/Zitat]
Vorsicht! Lesen kann zu Bildung führen! Links, Suchfunktion, Wikis und Google deshalb nur mit Bedacht nutzen!

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

#3 Beitrag von Arno » Do 19 Jul 2007, 9:20

Hi Jens,

Nein, das hab ich nicht getestet. Gehe aber davon aus, dass es rein gar keine Änderungen auf udrec bzw. Direktaufnhame hat, da dort ja andere streamingmethoden (udrec verwendet udpstreampes, und direktaufnahme verwendet direktes schreiben einer datei) eingesetzt werden. D.h. das sollte vollkommen unberührt sein. Auswirkungen sollte es nur auf Programme geben welche eben udpstreamts verwenden, und das sind nach meiner Kenntnis nur neutrinoTV und yWeb LiveTV. Da sollte es eben die angesprochenen Hänger nicht mehr geben.

udpstreamts ist nach wie vor die Möglichkeit mit dem aller-wenigsten overhead (auch gegenüber udrec*) - allerdings ist es eben ungesichert, d.h. wenn pakete verloren gehen, dann sind sie weg. Dies ist für Aufnahmen eben nicht so toll - und bisher wars m.E. für Aufnahmen gar nicht zu gebrauchen, da es bei mir immer wenns spannend wurde abrauchte.

Nebenwirkungen sind natürlich schon möglich, wenn es z.B. völlig beserk laufen würde und den speicher vollschreiben.. naja dann würde die box abstürzen .. was ich nicht denke :) - ist bei mir bis jetzt nicht vorgekommen. Streame seit gestern abend ohne absturz ZDF. Es ruckelt manchmal (aber sehr selten), aber es bleibt nicht stehen!

Grüße
Arno

EDIT: *udpstreamts streamt immer einen Transportstream, welcher von Natur aus einige wenige Prozent (einstelliger Bereich) Overhead gegenüber dem Streamen der einzelene PES Streams hat. udrec verwendet zur Fehlerkontrolle ein eigenes Protokoill, welches natürlich auch, wenn auch geringen overhead, hat. D.h. meine Aussage oben gilt nur für udpstreamts gegenüber udrec im ts mode. Wie udpstreamts sich gegenüber udrec im pes mode vom overhead verhält kann ich nicht sagen - dürfte ähnlich sein, evtl hat da udrec (also eigentlich udpstreampes) den geringeren overhead.

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

#4 Beitrag von Arno » Do 19 Jul 2007, 11:11

UPDATE 19-07-12:00: Eine kleine Änderung an der api.sh (Anpassung für den Fall dass udpstreamts in sbin liegt)

Neue Datei api.sh ist im archiv (api.sh.diff ist auch angepasst)

Bitte neu downloaden.

Malganis
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 36
Registriert: Fr 09 Jun 2006, 12:29
Wohnort: Freiburg
Kontaktdaten:

#5 Beitrag von Malganis » Do 19 Jul 2007, 12:40

Hi Arno!

Danke erstmal für das Update! Als Laie allerdings bin ich mir jetzt dennoch nicht ganz sicher, wie ich das Update installieren soll. Kannst du nochmal kurz schreiben, was wohin muss, und welche Dateien man ausführen muss? Danke schonmal :)

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

#6 Beitrag von Arno » Fr 20 Jul 2007, 0:17

Die installation hängt vom image ab .. ist eher für imagebauer gedacht.

Prinzipiell muss das binary udpstreamts nach /var/bin kopiert werden. In einem "newmake image" befindet sie sich unter /sbin/ - ich bin nicht sicher welche Version genommen wird, wenn beide existieren...

Die api.sh muss in das scripts-verzeichnis des nhttpd, welches aber meist nicht im var bereich liegt und somit nicht so einfach modifizierbar ist. Wenn bei dir das Verzeichnis /var/httpd/scripts existiert, dann muss die api.sh da rein (da liegt schon eine - einfach die überschreiben) Sofern das Verzeichnis bei dir nicht existiert solltest du lieber warten bis sie in ein neues Image eingebaut wird.

Wer nicht warten will kann sich unter /var/httpd ein kopie des httpd verzeichnis erstellen (genügend freier Speicher vorrausgesetzt) und dort die api.sh dann reinkopieren (also nach /var/httpd/scripts/). Der nhttpd sieht da zuerst nach und nimmt das Verzeichnis als www-root, falls es vorhanden ist.

Grüße
Arno

palace
Site Sponsor
Site Sponsor
Beiträge: 293
Registriert: Mo 10 Apr 2006, 11:18
Kontaktdaten:

#7 Beitrag von palace » Fr 20 Jul 2007, 12:59

Mhhh, schade, da muss ich wohl auf das neue JtG warten...
Stehst Du mit Riker in Kontakt?
------
palace.

DBox2 Nokia Kabel 2x Intel, Avia 500, 400 GB HDD
Jeweils aktuelles JTG Snap

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

#8 Beitrag von Arno » Fr 20 Jul 2007, 13:14

Nicht direkt, aber ich denke er liest evtl hier mit. Ansosnte hab ich das ganze drüber im tuxboxforum gepostet - ich gehe davon aus, dass die Änderung ins CVS kommt. (Mein bisherigen Test sprechen nicht dagegen)

Die udpstreamts sollte vermutlich doch jeder selbst testen können indem man sie nach /var/bin kopiert (also das binary). Hab mir grade die alte api.sh angesehen, die verwendet definitv die unter /var/bin, wenn sie vorhanden ist.

Damit kommt man zumindest in den Genuss des ersten fixes (Hänger, also full stop bei Sender mit hoher Datenrate) - für den zweiten benötigt man die neue api.sh.. (FIX: Fehlermeldung in neutrinoTV und echtes loskoppeln vom nhttpd)

petgun_download
Streamsüchtling
Streamsüchtling
Beiträge: 585
Registriert: Mo 04 Jul 2005, 21:22

#9 Beitrag von petgun_download » Fr 20 Jul 2007, 14:24

hi,
sorry, aber ich denke das stimmt irgendwas nicht mit Deiner geänderten udpstreamts. Ich nutze nur Y-Live. Bisher keine Probleme ob mit oder ohne Haken bei 'udp'. Jetzt mit der neuen udpstreamts nach /var/bin kopiert, sieht es so aus als ob nach einmaligem Gebrauch (also Haken bei 'udp') ausschliesslich nur noch udp-streaming für Liveview funktioniert. Wenn ich den Haken bei 'udp' wieder entferne, ist der LiveView unbrauchbar...Artefakte ohne Ende! Mit Haken bei 'udp' ist alles wieder in Ordnung.
Ich habe Dein udpstreamts wieder gelöscht und ich bitte Dich/Euch das erst mal genauer zu untersuchen und mit Yjogol abzusprechen bevor es ins CVS wandert...Y-Live ist integraler Bestandteil von Neutrino und nicht Dein Neutrino-TV.

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

#10 Beitrag von Arno » Fr 20 Jul 2007, 14:49

Fehler reproduzierbar? Das hört sich für mich so an, als wäre udpstreamts nicht richtig beendet worden. Daher die artekfakte. Kann das Problem soweit erst mal nicht reproduzieren - zumindest nicht mit neutrinoTV.

Zu yweb kann ich nicht viel sagen - das sollte sich yjogol mal ansehen. Bzw. kann das Verhalten jmd bestätigen. Ich habs bei mir grade versucht, wobei bei mir yweb bei ersten mal ging, danach gar nciht mehr - Prozess wurden tatsächlich nicht gekillt.. allerdings ist das etwas, was bei mir schon immer so war... Ich hab den Eindruck, dass yWebLive sich darauf "verlässt", dass udpstreamts beendet wird, wenn der VLC auf stop geht - dies ist nicht in allen Systemumgebungen gegeben, daher wäre ein expliziter kill sinnvoller.

Grüße
Arno

petgun_download
Streamsüchtling
Streamsüchtling
Beiträge: 585
Registriert: Mo 04 Jul 2005, 21:22

#11 Beitrag von petgun_download » Fr 20 Jul 2007, 14:55

Arno hat geschrieben:Fehler reproduzierbar?
ja
Das hört sich für mich so an, als wäre udpstreamts nicht richtig beendet worden
.
das wird es wahrscheinlich sein.
..allerdings ist das etwas, was bei mir schon immer so war...
bei mir ist das reproduzierbar nicht der Fall.

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

#12 Beitrag von Arno » Sa 21 Jul 2007, 16:28

Hab die Stelle die sich theoretisch mit yWebLive beissen könnte per #ifdef abgeschaltet - das scheint sowieso nie aufzutreten und beinflusst somit den eigentlich Fix nicht.

Bitte neu downloaden und testen.

petgun_download
Streamsüchtling
Streamsüchtling
Beiträge: 585
Registriert: Mo 04 Jul 2005, 21:22

#13 Beitrag von petgun_download » Sa 21 Jul 2007, 17:02

funktioniert jetzt ohne Y-Live zu beeinträchtigen...getestet mit Notebook über WLAN.
Den Vorteil den UDP bringen müsste habe ich nicht: Y-Live mit UDP bricht irgendwann (nach vielen Artefakten) ab und der Stream 'erholt' sich auch nicht mehr. Das gleiche Experiment (mit Notebook im Hinterhof spazieren) mit Y-Live und TCP wiederholt, bringt weder Artefakte noch Abbruch...läuft also wesentlich besser.

Benutzeravatar
ThulsaDoom
Site Sponsor
Site Sponsor
Beiträge: 120
Registriert: So 16 Jul 2006, 11:38

#14 Beitrag von ThulsaDoom » Sa 21 Jul 2007, 20:10

petgun_download hat geschrieben:funktioniert jetzt ohne Y-Live zu beeinträchtigen...getestet mit Notebook über WLAN.
Den Vorteil den UDP bringen müsste habe ich nicht: Y-Live mit UDP bricht irgendwann (nach vielen Artefakten) ab und der Stream 'erholt' sich auch nicht mehr. Das gleiche Experiment (mit Notebook im Hinterhof spazieren) mit Y-Live und TCP wiederholt, bringt weder Artefakte noch Abbruch...läuft also wesentlich besser.
Hi!

Ich habe das heute auch mal getestet und solche Probleme wie Du! Auch mit Neutrino-TV ging das irgendwie nicht sauber! Vielleicht hätte ich die Box aber erstmal neu starten sollen, denn sie lief schon ein paar Tage durch und war etwas träge :)

Also udp brauche ich schon mit meinem Notebook in Verbindung mit Premiere (Sport), SAT1, ARD u. ZDF, denn sonst habe ich heftige Aussetzer auf der Terasse! Und bevor jemand sagt, mein Netzwerk sei dass Problem: Nein, das flutscht wie geölt, denn ich kann sogar von der internen HDD alles aufgenommene aufs Notebook streamen ohne irgendwelche Ruckler (also auch ZDF mit AC3).

Mal sehen wie es läuft, wenn das udpstreamts-update im nächsten Snap von Riker drin sein sollte!!! Ich bin gespannt!

Gruß
ThulsaDoom

petgun_download
Streamsüchtling
Streamsüchtling
Beiträge: 585
Registriert: Mo 04 Jul 2005, 21:22

#15 Beitrag von petgun_download » Sa 21 Jul 2007, 20:46

ThulsaDoom hat geschrieben:Ich habe das heute auch mal getestet und solche Probleme wie Du!
ich habe und hatte keine Probleme mit WLAN-Streaming (TCP) auch nicht bei niedriger Signalstärke.
Also udp brauche ich schon mit meinem Notebook in Verbindung mit Premiere (Sport), SAT1, ARD u. ZDF, denn sonst habe ich heftige Aussetzer auf der Terasse!
sehr merkwürdig..die Aussetzer/Abbrüche habe und hatte ich nur mit WLAN-Streaming (UDP) bei _niedriger_ Signalstärke.

Antworten