Wie streame ich am besten TS ?
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Wie streame ich am besten TS ?
Hallo an alle
Erstmal ein großes Danke und meinen Respekt an alle Leute die Neutrino, den MoviePlayer und auch die Streaming Tools entwickelt haben. Wirklich erstklassige Arbeit
Nun meine 1. Frage:
Ich habe hier zuhause einen etwas älteren Rechner zum Linuxserver gemacht (PII-266) und wollte diesen nun als Videorekorder für die Dbox verwenden. Da ich nur TS Streamen will (eventuelles DVD erstellen mache ich dann auf meinem Haup-PC), wollte ich nun fragen, was dafür die beste Kombination ist.
Ich denke mal das werden sserver und udrec sein.
Auf meinem Server läuft Mandrake 9.2.
Nun noch eine 2te Frage. Könnte mir jemand die entsprechend nötigen Tools irgendwie zukommen lassen ?
Mit Kompilieren habe ich bisher keine großen Erfahrungen gemacht (wenn dann schlechte weil irgendwas nicht durchlief). Das einzige was ich bisher ohne Probleme hinbekommen habe war einen Kernel zu Kompilieren...
Dafür wäre ich euch wirklich SEHR dankbar
Mit freundlichen Grüßen
Erstmal ein großes Danke und meinen Respekt an alle Leute die Neutrino, den MoviePlayer und auch die Streaming Tools entwickelt haben. Wirklich erstklassige Arbeit
Nun meine 1. Frage:
Ich habe hier zuhause einen etwas älteren Rechner zum Linuxserver gemacht (PII-266) und wollte diesen nun als Videorekorder für die Dbox verwenden. Da ich nur TS Streamen will (eventuelles DVD erstellen mache ich dann auf meinem Haup-PC), wollte ich nun fragen, was dafür die beste Kombination ist.
Ich denke mal das werden sserver und udrec sein.
Auf meinem Server läuft Mandrake 9.2.
Nun noch eine 2te Frage. Könnte mir jemand die entsprechend nötigen Tools irgendwie zukommen lassen ?
Mit Kompilieren habe ich bisher keine großen Erfahrungen gemacht (wenn dann schlechte weil irgendwas nicht durchlief). Das einzige was ich bisher ohne Probleme hinbekommen habe war einen Kernel zu Kompilieren...
Dafür wäre ich euch wirklich SEHR dankbar
Mit freundlichen Grüßen
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Ok.
Hab mich jetzt nochmal hingesetzt und den Compiler installiert.
Nun mein Problem (mit nichts anderem hatte ich gerechnet):
/usr/bin/ld: cannot find -lpthread
collect2: ld returned 1 exit status
Mit der fehlermeldung hört er auf. Ich habe schon versucht /usr/lib in den PAth zu setzen, allerdings ohne Wirkung. Hat da vielleicht jemand einen Tip ?
**update**
Bitte nicht alle auf einmal versuchen zu helfen...
P.S.: Hab Kompiliert bekommen, aber diese alte Version kann noch kein TS Streamen...
Hab mich jetzt nochmal hingesetzt und den Compiler installiert.
Nun mein Problem (mit nichts anderem hatte ich gerechnet):
/usr/bin/ld: cannot find -lpthread
collect2: ld returned 1 exit status
Mit der fehlermeldung hört er auf. Ich habe schon versucht /usr/lib in den PAth zu setzen, allerdings ohne Wirkung. Hat da vielleicht jemand einen Tip ?
**update**
Bitte nicht alle auf einmal versuchen zu helfen...
P.S.: Hab Kompiliert bekommen, aber diese alte Version kann noch kein TS Streamen...
-
- Einsteiger
- Beiträge: 131
- Registriert: Mittwoch 15. Oktober 2003, 16:33
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
-
- Erleuchteter
- Beiträge: 536
- Registriert: Freitag 21. September 2001, 00:00
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Hmm. Eigentlich hat es sich damit schon für mich erledigt, weil mono will ich eigentlich nicht installieren
Alleine schon, weil es keine Pakete für Mandrake gibt. Eventuell würden die von RedHat auch funktioneren, aber das habe ich nicht getestet.
Aber EINE Frage hätte ich dann noch. Ich konnte zwar udrec und ggrab letztendlich Kompilieren, aber dafür musste ich aus den Makefiles den Parameter -static bei den Linker Optionen rausnehmen.
Ansonsten taucht der oben genannte Fehler mit: cannot find: -lpthread auf. Weis da jemand rat, wie ich das lösen kann ?
Alleine schon, weil es keine Pakete für Mandrake gibt. Eventuell würden die von RedHat auch funktioneren, aber das habe ich nicht getestet.
Aber EINE Frage hätte ich dann noch. Ich konnte zwar udrec und ggrab letztendlich Kompilieren, aber dafür musste ich aus den Makefiles den Parameter -static bei den Linker Optionen rausnehmen.
Ansonsten taucht der oben genannte Fehler mit: cannot find: -lpthread auf. Weis da jemand rat, wie ich das lösen kann ?
-
- Erleuchteter
- Beiträge: 536
- Registriert: Freitag 21. September 2001, 00:00
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Wenn alle Stricke reissen, dann wird mir auch wohl nichts anderes übrig bleiben, als mono zu installieren / kompilieren.
Finde es schade, daß dafür keine C++ Version geproggt wurde.
Aber nur aus Eigeninteresse (man will ja immer dazu lernen):
1. Habe immernoch das problem mit dem -lpthread (Will das unbedingt noch mit -static hinbekommen, weil mich solche Probleme im Schlaf verfolgen )
2. Wäre es denn (theoretisch) auch möglich eine angepasste Version von udrec zu schreiben, die zwar 2 ES grabt, aber ein TS schreibt ?
Finde es schade, daß dafür keine C++ Version geproggt wurde.
Aber nur aus Eigeninteresse (man will ja immer dazu lernen):
1. Habe immernoch das problem mit dem -lpthread (Will das unbedingt noch mit -static hinbekommen, weil mich solche Probleme im Schlaf verfolgen )
2. Wäre es denn (theoretisch) auch möglich eine angepasste Version von udrec zu schreiben, die zwar 2 ES grabt, aber ein TS schreibt ?
-
- Einsteiger
- Beiträge: 314
- Registriert: Donnerstag 16. Januar 2003, 23:53
Einfach mit der alten udrec streamen und die ES-Streams per projectX und tcmplex in einen TS konvertieren.klez hat geschrieben: 2. Wäre es denn (theoretisch) auch möglich eine angepasste Version von udrec zu schreiben, die zwar 2 ES grabt, aber ein TS schreibt ?
Macht die udrec_suite vollautomatisch.
Die fehlt die glibc oder Du hast eine zu alte Version davon auf dem Rechner. Such' mal ob Du irgendwo auf Deinem Rechner eine Datei namens libpthread.so.* findest (meistens unter /lib oder /usr/lib).klez hat geschrieben: 1. Habe immernoch das problem mit dem -lpthread (Will das unbedingt noch mit -static hinbekommen, weil mich solche Probleme im Schlaf verfolgen )
hth
wolle
Geek by nature - Linux by choice
-
- Erleuchteter
- Beiträge: 536
- Registriert: Freitag 21. September 2001, 00:00
-
- Einsteiger
- Beiträge: 314
- Registriert: Donnerstag 16. Januar 2003, 23:53
Aber dann kommen immer noch getrennte Streams für Audio und Video bei raus, oder?tonsel hat geschrieben:Um TS zu streamen muss in udrec.cpp (0.06c) nur Zeile
sprintf(DBox.String, "VIDEO ....
in
sprintf(DBox.String, "VIDEOTS ....
geändert werden. Dann wird immer TS gestreamt.
tonsel
Ich bleib bei udrec 0.11
cu
wolle
Geek by nature - Linux by choice
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Ja die hab ich. Hatte auch schon versucht den Pfad dorthin in den PATH zu setzen, aber solange ich -static im MakeFile lasse kommt immer als Fehler vom Linker:wwershofen hat geschrieben:Die fehlt die glibc oder Du hast eine zu alte Version davon auf dem Rechner. Such' mal ob Du irgendwo auf Deinem Rechner eine Datei namens libpthread.so.* findest (meistens unter /lib oder /usr/lib).
hth
wolle
cannot find: -lpthread
@tonsel:
Wenn das so Simpel ist, dann bräuchte man ja eigentlich nur eben das ändern und dann noch die beiden Streams mit einem simplen Tool muxen. Leider ist mir keins bekannt, welches das kann ausser ProjectX und das brauch wiederrum das Java Environment...
Dann könnte man auch gleich mono installieren und udrec 0.11 verwenden.
Die udrec_suite ist ja prinzipiell nicht schlecht. Nur leider auch ein wenig "overkill" für diejenigen die lediglich den TS Stream auf der Platte brauchen / haben wollen.
Meiner Meinung nach wäre das simpelste Tool eines, welches völlig normal die beiden ES Streams (audio und video) empfängt, diese Intern muxt und den daraus enstehenden TS Stream auf die Platte schreibt. Das hätte gleichzeitig den Vorteil, daß das Image der Box nicht unbedingt den spts_mode unterstützen müsste...
-
- Einsteiger
- Beiträge: 314
- Registriert: Donnerstag 16. Januar 2003, 23:53
Die Libraries haben mit $PATH nix zu tun, die Directories, in denen nach diesen shared-object-Libraries gesucht wird, werden beim compilieren mit dem Flag -I angegeben, also z.B. "-I/usr/lib". Wo steht denn Deine libpthread.so? Eventuell hilft Dir auch ein "man ldconfig" weiter.klez hat geschrieben:Ja die hab ich. Hatte auch schon versucht den Pfad dorthin in den PATH zu setzen, aber solange ich -static im MakeFile lasse kommt immer als Fehler vom Linker:wwershofen hat geschrieben:Die fehlt die glibc oder Du hast eine zu alte Version davon auf dem Rechner. Such' mal ob Du irgendwo auf Deinem Rechner eine Datei namens libpthread.so.* findest (meistens unter /lib oder /usr/lib).
cannot find: -lpthread
Genau das macht udrec 0.11 doch, bzw. es streamt sogar den native TS-Stream, der auch schon gemuxt ist. mono ist wirklich nicht so schlimm zu installieren...klez hat geschrieben: Meiner Meinung nach wäre das simpelste Tool eines, welches völlig normal die beiden ES Streams (audio und video) empfängt, diese Intern muxt und den daraus enstehenden TS Stream auf die Platte schreibt.
Eine wirklich absolut einfache Alternative für Dich könnte aber auch das TS-Streaming über den http-Port 31339 der Box sein. Einfach
Code: Alles auswählen
wget -O my_stream.ts http://<dbox>:31339/<vpid>,<apid>
Code: Alles auswählen
#!/bin/bash
#
# Watch tv currently played on dBox
# uses: wget and xine
#
# some things, you may want to change:
#-------------------------------------
dBox=dboxII.wershofen.home
tsport=31339
player="xine"
#
# No changes after this should be neccessary
#-------------------------------------------
#
# Function for Hex Conversion
# Returns hexadecimal representation of a decimal number in variable $hex
#
dec2hex ()
{
dec=$1
hex=""
hexdigit=( 0 1 2 3 4 5 6 7 8 9 A B C D E F )
i=1
while [ $dec -ge 16 ]
do
mod16=`expr $dec % 16`
hex=${hexdigit[mod16]}$hex
dec=`expr $dec / 16`
done
hex=${hexdigit[dec]}$hex
return 0
}
#
# get current PIDs and translate to hex
#
set `wget -q -O - http://$dBox/control/zapto?getpids`
vpiddec=$1
apiddec=$2
dec2hex $vpiddec
vpidhex=$hex
echo Video: $vpiddec "($vpidhex)"
dec2hex $apiddec
apidhex=$hex
echo Audio: $apiddec "($apidhex)"
#
# Now, let's watch TV !!!
#
xine http://${dBox}:${tsport}/$vpidhex,$apidhex
exit
wolle
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
Danke für das Script wwershofen !
Sieht schonmal interessant aus.
libpthread.so befindet sich bei mir übrigens in /usr/lib
Zu meinem erstaunen hat er mit dynamischen Binden zur Laufzeit ja auch keine Probleme, sondern nur dann, wenn ich -static in dem Makefile belasse und er die Biblopthek statisch in das Kompilierte Endprodukt binden soll. (ich denke mal dafür ist der Parameter -static da)
Der Parameter -I/usr/lib war schonmal ein heisser Tip, aber gebracht hat es leider nichts. Der Fehler kommt immernoch
P.S.: Hatte meinen Beitrag oben nochmal editiert wegen TS. Der Vorteil der von mir erwähnten On-The-Fly Umwandlung in TS wäre halt, daß das Image auf der Box nicht unbedingt den spts_mode unterstützen müsste.
Sieht schonmal interessant aus.
libpthread.so befindet sich bei mir übrigens in /usr/lib
Zu meinem erstaunen hat er mit dynamischen Binden zur Laufzeit ja auch keine Probleme, sondern nur dann, wenn ich -static in dem Makefile belasse und er die Biblopthek statisch in das Kompilierte Endprodukt binden soll. (ich denke mal dafür ist der Parameter -static da)
Der Parameter -I/usr/lib war schonmal ein heisser Tip, aber gebracht hat es leider nichts. Der Fehler kommt immernoch
P.S.: Hatte meinen Beitrag oben nochmal editiert wegen TS. Der Vorteil der von mir erwähnten On-The-Fly Umwandlung in TS wäre halt, daß das Image auf der Box nicht unbedingt den spts_mode unterstützen müsste.
-
- Einsteiger
- Beiträge: 314
- Registriert: Donnerstag 16. Januar 2003, 23:53
Tja, dann mach' Dich mal an codieren, sowas gibt es nämlich noch nicht.klez hat geschrieben: P.S.: Hatte meinen Beitrag oben nochmal editiert wegen TS. Der Vorteil der von mir erwähnten On-The-Fly Umwandlung in TS wäre halt, daß das Image auf der Box nicht unbedingt den spts_mode unterstützen müsste.
IMHO macht das aber keinen Sinn, sich damit weiter zu beschäftigen, weil es sehr gut funktionierende Lösungen dafür gibt - entweder direkt per udrec0.11 per TS streamen, das http-Interface nutzen oder udrec_suite zum umwandeln der PES-Streams in TS.
Und außerdem - nicht böse gemeint - wenn Du es schon nicht schaffst, "Standard-Software" zu kompilieren, dann dürfte es Dir auch schwerfallen, eine solch komplexe Anwendung wie einen On-The-Fly-PES-in-TS-Muxer zu schreiben, falls das überhaupt technisch in einem Schritt möglich ist. Somit reduzieren sich Deine Möglichkeiten auf die verfügbaren Tools.
cu
wolle
-
- Erleuchteter
- Beiträge: 536
- Registriert: Freitag 21. September 2001, 00:00
-
- Einsteiger
- Beiträge: 112
- Registriert: Sonntag 15. Dezember 2002, 17:43
@ wwershofen:
Da magst Du sicher recht haben bzgl. Standard-Software. Allerdings hab ich schon unzählige Möglichkeiten durchprobiert wie z.b. diese hier:
http://students.cs.byu.edu/~cs345ta/lab ... _synch.htm
Aber das funktioniert alles nicht. Ich kann es ja kompilieren: Solange ich -static aus den Makefiles nehme. Soll mir recht sein. Ist zwar ein Workaround aber es geht.
Die Möglichkeit von Tonsel werde ich mal ausprobieren. Hört sich interessant an und ist eigentlich alles was ich brauche.
P.S.: Auch wenn es sich wiederspricht: Programmieren kann ich sicher besser als Compiler-Fehler zu beseitigen Ob ich ein On-the-Fly encoding hinbekomme weiss ich nicht, aber ich könnte es ja versuchen. Nur leider habe ich immo wegen Studium wenig Zeit dafür.
Da magst Du sicher recht haben bzgl. Standard-Software. Allerdings hab ich schon unzählige Möglichkeiten durchprobiert wie z.b. diese hier:
http://students.cs.byu.edu/~cs345ta/lab ... _synch.htm
Aber das funktioniert alles nicht. Ich kann es ja kompilieren: Solange ich -static aus den Makefiles nehme. Soll mir recht sein. Ist zwar ein Workaround aber es geht.
Die Möglichkeit von Tonsel werde ich mal ausprobieren. Hört sich interessant an und ist eigentlich alles was ich brauche.
P.S.: Auch wenn es sich wiederspricht: Programmieren kann ich sicher besser als Compiler-Fehler zu beseitigen Ob ich ein On-the-Fly encoding hinbekomme weiss ich nicht, aber ich könnte es ja versuchen. Nur leider habe ich immo wegen Studium wenig Zeit dafür.
-
- Einsteiger
- Beiträge: 314
- Registriert: Donnerstag 16. Januar 2003, 23:53
Mit allen Audiotracks? Und ohne spts-Mode?tonsel hat geschrieben:Es kommt EIN TS-Stream heraus der abspielbar ist. Dafür kann man dann keine PES mehr streamen.
Warum hast Du Dir dann die Mühe gemacht, die 0.11 unter .NET zu programmieren? SCNR
Naja, ist müßig, die Diskussion. udrec 0.11 läuft solid as a rock, warum sollte man dann wieder einen Schritt zurück gehen... außer vielleicht wegen der Möglichkeit, alle Audiotracks per sserver zu streamen. Aber solange gagga die Multi-Audio-Tracks im movieplayer noch nicht unterstützt, ist das auch noch nicht so wirklich zielführend.
@ gagga:
Gibt's bei dem Thema eigentlich schon was Neues?
cu
wolle
-
- Erleuchteter
- Beiträge: 536
- Registriert: Freitag 21. September 2001, 00:00
-
- Senior Member
- Beiträge: 782
- Registriert: Dienstag 25. Februar 2003, 21:35