View Full Version : NEW PROJECT: TyStreamer 0.3 Released!
stealthdave
12-10-2003, 08:21 PM
TYSTREAMER 0.3 IS RELEASED!!!
The "I Feel Pretty" edition!
Visit the web site at http://www.wiskars.com/tystreamer/ for details and downloads! Download the new version directly here (http://www.wiskars.com/tystreamer/source/tystreamer-0.3.tar.gz).
Project Description:
tystreamer is a proxy server which pulls programs from your TiVo and re-streams them to the client (your browser) at a lower bit-rate so that it can be viewed in real-time over bandwidth-challenged network connections, such as 802.11b or the internet. It does this by using M2VRequantizer from Metakine (http://www.metakine.com) to resize the mpeg stream without completely re-encoding, allowing tystreamer to be run on minimal hardware resources. tystreamer was developed and tested primarily on a G3 700Mhz iBook.
Changes in version 0.3:
- added program information page - Instead of immediately launching the program, the user is taken to a splash page with information about the program to be viewed.
- added flag to toggle automatic launching of program to watch - Useful for debugging modes.
- new sample_xml_1.txt file for debugging - Previous file contained conflicting program information.
- debugging info now looks prettier - Hence the release tag. :)
Comments and suggestions are welcome!
- Stealth Dave
TheAvatar
12-10-2003, 09:42 PM
I'd love to try this, but I left the Apple fold many years ago for the evil of Windows :(
stealthdave
12-10-2003, 09:52 PM
You could always throw linux on that spare Pentium-III 500 you've got lying around! ;) The project is designed to run on very minimal hardware, despite re-encoding the video on the fly.
The only reason that Windows is not supported is that, AFAIK, Windows does not support fifos. If it does and I just don't know about it, then I'm relatively sure that the various support programs could be re-compiled to run on Windows.
- Stealth Dave
mpauley
12-10-2003, 10:06 PM
I dont normally have a *nix box @ home, but good thing I have GentooX on my Xbox... I'll give this a shot tonite or tomorrow...
cojonesdetoro
12-10-2003, 11:25 PM
Originally posted by stealthdave
AFAIK, Windows does not support fifos. If it does and I just don't know about it, then I'm relatively sure that the various support programs could be re-compiled to run on Windows.
I think windows does support FIFOs but they call it a 'named pipe'. I'd bet it could be ported to cygwin. Cygwin makes windows into a downright civilized OS.
TheAvatar
12-10-2003, 11:33 PM
Anyone case to toss up a sample stream for us Windows loosers :)
rc3105
12-11-2003, 03:16 AM
very cool
ronnythunder
12-11-2003, 12:38 PM
Originally posted by stealthdave
You could always throw linux on that spare Pentium-III 500 you've got lying around! ;) The project is designed to run on very minimal hardware boy, we obviously have different definitions of "very minimal hardware"... my nat/gateway machine is a pentium p120 running red hat 8. until last year, it was a 386/40 running red hat 4!
my wife's box is a pii/350, and the most hefty box in the house is my winblows machine that's a athlon 1700+.
very minimal hardware indeed... ;)
ronny
cojonesdetoro
12-11-2003, 12:50 PM
Can anyone get lvemux compiled? I got a RH7.2 system and get the following output:
gcc -O3 -mcpu=pentium3 -msse -mfpmath=sse -I./ -o lvemux lvemux.c mux_out.c -lpthread
cc1: Invalid option `fpmath=sse'
cc1: bad value (pentium3) for -mcpu= switch
cc1: Invalid option `fpmath=sse'
cc1: bad value (pentium3) for -mcpu= switch
mux_out.c: In function `mux_flush_packs':
mux_out.c:535: parse error before `int'
make: *** [lvemux] Error 1
cojonesdetoro
12-11-2003, 01:02 PM
Looks like the whole sh'bang needs glibc 2.3+ I've been meaning to upgrade so I guess now's the time.
stealthdave
12-11-2003, 01:24 PM
Originally posted by ronnythunder
boy, we obviously have different definitions of "very minimal hardware"... my nat/gateway machine is a pentium p120 running red hat 8. until last year, it was a 386/40 running red hat 4!
my wife's box is a pii/350, and the most hefty box in the house is my winblows machine that's a athlon 1700+.
very minimal hardware indeed... ;)
ronny
Well, it is re-compressing mpeg2 video in real-time! You could probably run it on your wife's PII-350 box if you stripped it down to just Linux+Apache+PHP, but that might be a little slow. And I imagine that your wife might have some issues with that. ;)
MPauley mentioned using an X-Box with GentooX. That should work quite nicely. Also, one can purchase a P-III 533 for $90 at CompGeeks (http://www.compgeeks.com/details.asp?invtid=CQDPPIII533-1B), so, yes, I consider that "minimal hardware" these days. :)
- Stealth Dave
tryingtogetby
12-13-2003, 12:13 AM
Guys,
Where to begin? I have a Series 1 Hughes Dtivo running 2.5.2. I have a turbo-net card installed and I can get to the dtivo and transfer files off of it. I did this pretty much by following some of the wonderful guides on this forum and using the software images provided.
Here is where it gets tricky. I would like to be able to access my dtivo over the internet to EITHER transfer or Stream media to my notebook when I am traveling. The problem is that I usually travel to Asia. Most ISPs will not let you transfer GB files over their network. As for streaming the data, I have a couple of questions. Will tyshow work with the same bandwidth limitations?
I have allowed http access to the dtivo so i can use tivoweb. I would like to keep the password protection and have yet to open ports 21 or 25 for telnet and ftp.
More questions. What is the easiest way accomplish what I want to do? I can setup up a ftp server, but isn't that what we are running now on the dtivos with mfs_ftp? I guess I could file transfer my ty files to a website and download them from there, but GB files would take quite a while and probably cost a lot of money in storage rental on a website. I could transfer the files to my home computer, but then I run in to the same bandwidth issues from ISPs.
Any thougths or help would be greatly appreciated. I hope everyone has a Happy Holiday season.
rc3105
12-13-2003, 01:39 AM
NEW PROJECT: TyStreamer 0.1 Released! (http://www.dealdatabase.com/forum/showthread.php?s=&threadid=30285)
Delta
12-13-2003, 02:16 PM
OK, I give up. What is supposed to happen? I have have the software installed on my redhat 9 box (P3-650Mhz) with php4.3.4 and apache2. mfsftp 1.2.9 is running on the tivo. TyStreamer pulls up a list of shows but when I click on one of them nothing seems to happen. The little ie windows logo in the browser wiggles but no video ever displays.
Is it supposed to play the video in the same window, a new window, a seperate application? Do I need to associate a file type for the video? Any ideas?
nsysblh
12-13-2003, 02:24 PM
looks to be some weirdness with curl on redhat 9 (curl-7.9.8-5)and the "{" and "}" characters.
Even though they are escaped in the string, curl seems to be ignoring them altogether. This causes the ftp to fail.
I'm looking at it, but I haven't figured out how to get {} to work with curl. [] works fine with curl, but I think the php code would have trouble if the seperators were changed.
I think the seperator characters should be something else in mfs_ftp, but they have to clear a lot of filesystem restrictions, so there aren't many to choose from.
update: It looks like curl -g will disable the thing that is messing with the {} characters. I'll try it and report back.
update2: That does get it past the first problem. However, it still isn't working. More work.
rc3105
12-13-2003, 04:18 PM
Originally posted by nsysblh
I think the seperator characters should be something else in mfs_ftp, but they have to clear a lot of filesystem restrictions, so there aren't many to choose from.
in the mfs_ftp dir edit settings.tcl & change "set info(name_detail) 5" to 0, 1 or 2. the first 3 name format options don't use braces
nsysblh
12-13-2003, 06:05 PM
The braces and level 5 are more or less required for this php program to parse it's data. I did get it to work with [], but {} works ok with curl -g. I don't have a better suggestion to replace the {} in general. I still can't get it to work, as the stream starts and then I don't get anything back. It could be something in my browser. I need to move to the test tivo, as mfs_ftp once locked into steaming one session that died, won't clean up for a while. And kill is essentially the same as reboot once it is transferring.
tryingtogetby
12-13-2003, 06:29 PM
Thank you RC. I saw that post. However, my notebook is company issued and we don't run *nix. Any other suggestions?
rc3105
12-13-2003, 06:55 PM
that configuration would require a dedicated pc in the house with the tivo to run *nix & act as a proxy.
there's really not any good way to put the tivo directly on the net (VERY bad idea for several reasons anyway)
this (http://www.dealdatabase.com/forum/showthread.php?s=&goto=lastpost&threadid=27399) might be be usable with the right router/firewall config
or using mfs_ftp to generate asx links, mediaplayer + d70's direcshow filter for playback & vserver to do the actuall streaming
cojonesdetoro
12-13-2003, 06:58 PM
[FONT=courier new]
Don't know if this'll help but I used curl to transfer stuff between tivos before I got fxp working under mfsftp. Here's the bit of code that worked for me. I had the curly brace problem too.
curl --limit-rate 1100K --no-buffer --speed-time 300 \
--speed-limit 5 --globoff \
"ftp://${FROM}:3105/tmf/${NAME}" 2> curlget.log |
curl -T - --limit-rate 1100K --no-buffer --speed-time 300 \
--speed-limit 5 --verbose --globoff \
"ftp://${TO}:3105/tmf/incoming.tmf"
nsysblh
12-13-2003, 07:45 PM
--globoff is the long name for -g. That was what fixed the {} problems.
Juppers
12-14-2003, 01:57 PM
Anyone got this thing working yet? I'm having no luck.
Delta
12-14-2003, 04:27 PM
I haven't got any video yet, but when I click on a link it acts like it is trying to send a video. It asks my if I want to open or save some file then it seems to lock up mfs_ftp.
cojonesdetoro
12-14-2003, 06:48 PM
Originally posted by Delta
I haven't got any video yet, but when I click on a link it acts like it is trying to send a video. It asks my if I want to open or save some file then it seems to lock up mfs_ftp.
One of the executables requires glibc 2.3. Mkae sure all the executables will run at the command line. The PHP script may not show you the error if a binary is not doing its job.
Juppers
12-15-2003, 01:50 AM
Originally posted by cojonesdetoro
One of the executables requires glibc 2.3. Mkae sure all the executables will run at the command line. The PHP script may not show you the error if a binary is not doing its job.
All the binaries run from the command line here except for mplex, which doesn't appear to be used. Looks like lvemux is used instead.
tryingtogetby
12-15-2003, 02:20 AM
RC,
Thanks again for the suggestions. I thought as much. I can get to the dtivo via tivoweb and I can serve video up locally. There are just badwidth limitations when trying to use mfs_ftp over such a long distance. I guess my only chance is to upload the file to a third party web site and then download it. If you have any other thoughts, please let me know.
ttgb
tryingtogetby
12-15-2003, 02:24 AM
By the way, do you know of any utils that automatically download files via ftp? I would like to find someway to automate a video server. Thanks.
ttgb
rc3105
12-15-2003, 04:04 AM
auto-ftp, curl, or fairly simple roll-your-own scripts could be used to automate extraction
the beauty of tystreamer as it relates to your situation is that it can downsample the mpeg to support lower bandwidth connections. it could also be tweaked to transcode into divx to produce MUCH smaller files
by using a pc server such as apache or a good ftp proxy you can avoid the tivo networking bugs that preclude putting it directly on the net
by modifying tystreamer to produce divx you can avoid the bandwidth limitations
at the moment that's pretty much the closest thing to what you're looking for
apologies folks, this concludes a block of posts collapsed in from Steaming video/FTP server question (http://www.dealdatabase.com/forum/showthread.php?s=&threadid=30354) which will evaporate in a bit
tryingtogetby
12-15-2003, 11:35 AM
Thanks RC.
Where can I find auto-ftp? As I understand, curl is a *nix util. Again, not applicable to what I want to do.
StealthDave,
Can I request a Windows version and a mod with the option to convert the file to divx? Thanks.
ttgb
cojonesdetoro
12-15-2003, 12:19 PM
Originally posted by tryingtogetby
Thanks RC.
Where can I find auto-ftp? As I understand, curl is a *nix util. Again, not applicable to what I want to do.
StealthDave,
Can I request a Windows version and a mod with the option to convert the file to divx? Thanks.
ttgb
You should look into cygwin. It's like a linux environment under Windows. It may not be applicable to what you do but system automation is a lot harder under Windows.
As for getting a Windows version. I would bet that it's no small task . You're best bet would probably be to set up a cygwin environment with all the development tools as well as Apache and MySQL. Then you can get the source code to all the binaries, compile them and hopefully not encounter any conflicts where code modification in needed.
I would try it if I had the time. I have Linux box but can't get it working. I'm in the process of upgrading to Debian to see if it's better there.
stealthdave
12-15-2003, 12:59 PM
Originally posted by Delta
OK, I give up. What is supposed to happen? I have have the software installed on my redhat 9 box (P3-650Mhz) with php4.3.4 and apache2. mfsftp 1.2.9 is running on the tivo. TyStreamer pulls up a list of shows but when I click on one of them nothing seems to happen. The little ie windows logo in the browser wiggles but no video ever displays.
Is it supposed to play the video in the same window, a new window, a seperate application? Do I need to associate a file type for the video? Any ideas?
The stream should be sent straight to your browser. If you have a plugin installed that is set up to view MPEG2 streams, it will launch it in your browser. Otherwise, it will ask you to save it.
As for why nothing is happening, there is probably a breakdown in the command that processes the stream. Most likely, it can't find the fifo for the audio. There's a couple of things you can try for troubleshooting.
First, manually create the fifo for the audio and set "make_afifo = 0" in the ini file. Make sure that the "afifo = " line in your ini file matches the fifo that you've created, then try it again. Also, make sure that your web server has read/write permissions to the afifo and the folder that it's in. This was the most common problem that I came across when developing the app.
If that doesn't work, then it's time to go into serious debugging mode! Set "testmode = 2" in the ini file, and click on any of the links. Rather than a stream, it will give you a whole bunch of test data. Pay particular attention to the command-line that it displays. Try running the commandline, watch for error messages, see where it breaks. (You'll probably want to add " > test.mpg" to the end, otherwise you'll get a lot of unreadable text spilling out onto your screen.)
If none of that works, report back and we'll see about getting it working.
- Stealth Dave
jg123
12-15-2003, 01:06 PM
I can't get it to work on Debian unstable. This is the log entry from error.log when I first access the page:
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
^M 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0^M 0 0 0 0 0 0 0
0 --:--:-- 0:00:02 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0^M 0
0 0 0 0 0 0 0 --:--:-- 0:00:04 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:-
-:-- 0:00:05 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0^M 0 0 0
0 0 0 0 0 --:--:-- 0:00:07 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:--:-- 0:
00:08 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0^M 0 0 0 0
0 0 0 0 --:--:-- 0:00:10 --:--:-- 0^M 0 0 0 0 0 0 0 0 --:--:-- 0:00:11 --
:--:-- 0^M100 15085 0 15085 0 0 1285 0 --:--:-- 0:00:11 --:--:-- 3590
This is the log entry after I click on the Stream link and nothing happens:
[1/2]: ftp://tivo:3105/ty/Alias2003-11-02The Nemesis09.00 PM Sun Nov 02WCVB.ty --> <stdout>
video stream reader is starting ...
audio stream reader is starting ...
curl: (19) error, can't find "Alias2003-11-02The Nemesis09.00 PM Sun Nov 02WCVB.ty"
[2/2]: ftp://tivo:3105/ty/Alias2003-11-02The Nemesis 2003WCVB.ty --> <stdout>
curl: (19) error, can't find "Alias2003-11-02The Nemesis 2003WCVB.ty"
demux:tydemux.c:478: Probe failed
Is it the curly bracket thing?
stealthdave
12-15-2003, 01:32 PM
Originally posted by tryingtogetby
Where can I find auto-ftp? As I understand, curl is a *nix util. Again, not applicable to what I want to do.
Not sure where you can find auto-ftp, but I'm pretty sure that there are numerous windows binaries for Curl. Check their home page at http://curl.sourceforge.net. If you can't find anything there, wget (http://www.interlog.com/~tcharron/wgetwin.html) can do pretty much the same thing.
StealthDave,
Can I request a Windows version and a mod with the option to convert the file to divx? Thanks.
ttgb
I would love to be able to offer a Windows version so that more people could enjoy the app. The problem is that the current implementation is heavily dependent on fifos and pipes, and windows doesn't do external fifos. The way to fix this is to do internally within the application, which is how typrocess works. Unfortunately, I am not a C/C++ programmer, and don't have the skills needed to build it. Having looked at the structure of typrocess in source, I think that all of the functionality that I created by stringing apps together with pipes could probably be done within typrocess. Unfortunately, I never found any volunteers. :( Also, typrocess has some serious bugs with the mplex code that would need fixing, and as far as I know, TyStudio development is dead.
What that all boils down to, unfortunately, is no windows version to stream mpeg2 video. Sorry.
HOWEVER, if you've got cpu cycles to burn, I may have a solution for you! Stay tuned!
- Stealth Dave
Juppers
12-15-2003, 01:41 PM
This ine is confusing me a bit. The command will work if I dump it to a file, but will die if I dump to the screen. The one being dumped to a file, will hang at 25 megs. Any clues on this weirdness? Almost sounds like a binary issue.
[/www/tystreamer]: /usr/bin/curl -g ftp://s2dtivo:3105/ty/\{South\ Park\}\{2003-12-10\}\{Raisins\}\{09.00\ PM\ Wed\ Dec\ 10,\ 2003\}\{COM\}.ty | \
> /bin/typrocess -ipipe -oa /tmp/afifo -ov /dev/stdout | \
> /bin/requant 7302.00493827 | \
> /bin/lvemux -p -a /tmp/afifo -v /dev/stdin -o -
M2VRequantiser by Makira.
Using 900.000000 as factor.
video stream reader is starting ...
audio stream reader is starting ...
curl: (56) Connection aborted
demux:tydemux.c:478: Probe failed
[/www/tystreamer]: /usr/bin/curl -g ftp://s2dtivo:3105/ty/\{South\ Park\}\{2003-12-10\}\{Raisins\}\{09.00\ PM\ Wed\ Dec\ 10,\ 2003\}\{COM\}.ty | /bin/typrocess -ipipe -oa /tmp/afifo -ov /dev/stdout | /bin/requant 7302.00493827 | /bin/lvemux -p -a /tmp/afifo -v /dev/stdin -o - > raisins.mpg
M2VRequantiser by Makira.
Using 900.000000 as factor.
video stream reader is starting ...
audio stream reader is starting ...
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 25.0M 0 25.0M 0 0 722k 0 --:--:-- 0:00:35 --:--:-- 749k
stealthdave
12-15-2003, 01:58 PM
Okay, for all of you having problems with the curly bracket filenames (juppers, jg123 et al), try this. Open tystreamer.php in any text editor, and change line 30 from this:
$tystreambase = str_replace(" ","\ ",escapeshellcmd($_REQUEST["streamfile"]));
to this:
$tystreambase = urlencode($_REQUEST["streamfile"]);
If that works (which it should), I'll make a bug-fix release with that change. That should fix all issues with the curly brackets and any other wacky filename issues.
- Stealth Dave
Juppers
12-15-2003, 02:16 PM
No good. Now it changes spaces to + and still can't find the file.
[/www/tystreamer]: /usr/bin/curl ftp://s2dtivo:3105/ty/%7BSouth+Park%7D%7B2003-12-10%7D%7BRaisins%7D%7B09.00+PM+Wed+Dec+10%2C+2003%7D%7BCOM%7D.ty | /bin/typrocess -ipipe -oa /tmp/afifo -ov /dev/stdout | /bin/requant 7302.00493827 | /bin/lvemux -p -a /tmp/afifo -v /dev/stdin -o - > test.mpg
M2VRequantiser by Makira.
Using 900.000000 as factor.
video stream reader is starting ...
audio stream reader is starting ...
curl: (19) error, can't find "{South+Park}{2003-12-10}{Raisins}{09.00+PM+Wed+Dec+10,+2003}{COM}.ty"
demux:tydemux.c:478: Probe failed
jg123
12-15-2003, 03:27 PM
Looks better, but still not working. Curly brackets look ok.
curl: (19) error, can't find "{Alias}{2003-09-28}{The+Two}{08.00+PM+Sun+Sep+28,+
2003}{WCVB}.txt"
video stream reader is starting ...
audio stream reader is starting ...
curl: (19) error, can't find "{Alias}{2003-09-28}{The+Two}{08.00+PM+Sun+Sep+28,+
2003}{WCVB}.ty"
demux:tydemux.c:478: Probe failed
I think it doesn't like the plus signs...
sych0
12-15-2003, 03:56 PM
erm, excuse my ignorance, but how do i patch typrocess? Ive downloaded the .patch but now what? I'm in osx...
Btw, the lvemux site appears dead :/
stealthdave
12-15-2003, 04:44 PM
Originally posted by sych0
erm, excuse my ignorance, but how do i patch typrocess? Ive downloaded the .patch but now what? I'm in osx...
The source at http://www.wiskars.com/tystreamer/ is pre-patched and ready for compiling. However, compiling tystudio can be a real bitch (and I don't use that term lightly), so you may want to try my pre-compiled Mac OS X binaries (http://www.wiskars.com/tystreamer/bin/tystreamer-osx-bin-0.1.tar.gz).
Btw, the lvemux site appears dead :/
They just moved their site over the weekend to http://lvempeg.sourceforge.net. I haven't updated my links yet.
- Stealth Dave
sych0
12-15-2003, 04:58 PM
Great, cant wait to try this. Thanks bud
Oh wait....it says the precompiled binaries cant be found on the server
Delta
12-15-2003, 11:05 PM
Originally posted by stealthdave
... If you have a plugin installed that is set up to view MPEG2 streams, it will launch it in your browser.
What plugin are you using to play the video? I tried using WMP through IE but it tries to cache the entire video before it plays.
stealthdave
12-16-2003, 01:09 PM
Originally posted by sych0
....it says the precompiled binaries cant be found on the server
Sorry, my bad. Link fixed. Also, the link to the lve (http://lvempeg.sourceforge.net) has been updated.
- Stealth Dave
sych0
12-16-2003, 07:57 PM
Hm alright. I got the page showing and the list of shows, but im having the same problem as delta. When i click stream, safari just waits, the gives up after 60 secs, and ie just hangs. Like delta said, it seems like its caching the whole file. I dont get any open or save as dialog. I tried the options above, with creating the afifo. If it helps, heres my ini
;; User Editable Settings
testmode = 2 ;; should be set to "0" for reading from the TiVo
tivo = "192.168.1.101"
mfs_ftp_port = 3105
;stylesheet = "css/technophobe.css"
;stylesheet = "css/adams.css"
stylesheet = "css/daynight.css"
;stylesheet = "css/sortof.css"
;stylesheet = "css/technophobe2.css"
;; Support Program Paths
curl = "/sw/bin/curl"
typrocess = "/users/zack/sites/typrocess"
requant = "/users/zack/sites/requant"
mplex = "/users/zack/sites/lvemux"
;;mplex = "mplex"
afifo = "/users/zack/sites/tmp/afifo" ;; .mpa extension is necessary for lvemux
make_afifo = 1 ;; make/delete afifo on the fly using posix_mkfifo
;; Control Settings -- DO NOT EDIT (unless you *really* know what you're doing)
mplex_usage = " -p -a [afifo] -v /dev/stdin -o - " ;; lvemux usage
;;mplex_usage = " -f 3 -o /dev/stdout /dev/stdin [afifo] " ;; mplex from mjpegtools usage
typrocess_usage = " -ipipe -oa [afifo] -ov /dev/stdout "
Anything wrong? If there is, forgive me for being a noob. At least im learning ;)
I tried test mode too....Heres the output:
Program Size: 1514143744
Program Duration (in seconds): 3600
Command Line:
/sw/bin/curl ftp://192.168.1.101:3105/ty/\{Scooby-Doo,\ Where\ Are\ You!\}\{1969-10-04\}\{Mine\ Your\ Own\ Business\}\{05.00\ PM\ Wed\ Dec\ 03,\ 2003\}\{BOOM\}.ty | \
/users/zack/sites/typrocess -ipipe -oa /users/zack/sites/tmp/afifo -ov /dev/stdout | \
/users/zack/sites/requant 1.8693132641975 | \
/users/zack/sites/lvemux -p -a /users/zack/sites/tmp/afifo -v /dev/stdin -o -
$tyini = Array
(
[testmode] => 2
[tivo] => 192.168.1.101
[mfs_ftp_port] => 3105
[stylesheet] => css/daynight.css
[curl] => /sw/bin/curl
[typrocess] => /users/zack/sites/typrocess
[requant] => /users/zack/sites/requant
[mplex] => /users/zack/sites/lvemux
[afifo] => /users/zack/sites/tmp/afifo
[make_afifo] => 1
[mplex_usage] => -p -a [afifo] -v /dev/stdin -o -
[typrocess_usage] => -ipipe -oa [afifo] -ov /dev/stdout
)
Nothing more...
Any ideas? Im excited to have gotten this far, and im sure its not much to get it working fully :)
Delta
12-16-2003, 09:10 PM
sych0 - try changing your curl line to: curl = "/sw/bin/curl -g" and see what happens.
Also, I had more success when the pipes were " | " instead of " | \" like the php code does but default.
stealthdave
12-16-2003, 09:15 PM
sych0
Two things for you to try. First, apply the patch that I posted earlier in this thread (just scroll up a bit). If that doesn't work, manually create the fifo for audio and set "make_afifo = 0". Make sure you have permissions set correctly and that your script has read permissions to that folder. I recommend placing it in the "/tmp" folder; everyone has permission to read/write there.
If that doesn't work, let me know.
- Stealth Dave
Originally posted by stealthdave
sych0
Two things for you to try. First, apply the patch that I posted earlier in this thread (just scroll up a bit). If that doesn't work, manually create the fifo for audio and set "make_afifo = 0". Make sure you have permissions set correctly and that your script has read permissions to that folder. I recommend placing it in the "/tmp" folder; everyone has permission to read/write there.
If that doesn't work, let me know.
- Stealth Dave
Are you sure this works :)
It's not asking mfs_ftp for the right file name, did some research on php with apache, and got past the "+" issue with..
$tystreambase = str_replace("+","\ ",urlencode($_REQUEST["streamfile"]));
But still hangs useing wmp.. whats a good mpeg2 linux player..?
Nice job tho it will be sweet when it works ;)
-emu
sych0
12-16-2003, 10:55 PM
StealthDave: Ok, did all you suggested (edit the line, manually create an fifo, and changed it to /tmp). Now when it loads in ie, it loads the media bar media player and attempts to connect. It eventually times out though. In safari, it just times out after 60 secs. I also noticed that aparently mfs_ftp doesnt like more than 1 connection. If i load it on my pc (while it hangs), i cant connect on my ibook, or in an ftp client. Just hangs. Most cases, i have to reboot my tivo. Seems like, if i try it on my pc and it fails, i have to reboot tivo before i can try it on the mac. Annoying to say the least. But anyway I tried selecting different bitrates, but that didnt change anything. So bottom line, i got further (loads the player), but still not all the way.
I noticed in testmode=2, that it loads a preset list of shows which i didnt notice the first time. Hopefully the results when i clicked stream were relevant.
Delta: Tried -g, didnt help. The | \ you are referring to are from the output when you click stream using testmode=2. So i cant change those.
-- One thing i forgot to ask... Any suggestions for a mpeg2 streamer? Is it a specific app to stream mpeg2 or just mpeg2 codecs? If its just codecs, ive got them installed on my pc and can play mpeg2 with windows media player and powerdvd. On the mac side, im using VLC to play mpeg2.
kevinplew
12-17-2003, 06:21 AM
I'm getting the following error:
Warning: fclose(): supplied resource is not a valid File-Handle resource in /var/www/html/tivo/tystreamer.php on line 211
Ideas?
sych0
12-18-2003, 09:36 PM
heh...what happened here? The thread suddenly dried up :/
has ANYone gotten this to work?
cojonesdetoro
12-18-2003, 10:21 PM
mplayer + vserver allows streaming but does nothing to 'shrink' the stream for lower bandwidth. Maybe vserver is a better deamon to run on the Tivo than mfsftp. I believe that vserver just streams a raw ty stream and has no 'squiggle bracket' problem.
sych0
12-18-2003, 11:10 PM
Ya, id like to get streaming running on my ibook via wifi which is why i hope this project takes off :)
rc3105
12-18-2003, 11:38 PM
Originally posted by cojonesdetoro
mplayer + vserver allows streaming but does nothing to 'shrink' the stream for lower bandwidth. Maybe vserver is a better deamon to run on the Tivo than mfsftp. I believe that vserver just streams a raw ty stream and has no 'squiggle bracket' problem.
if you want to go that route, ideally you would want vserver running in the tivo & an all-in-one binary that combines tydemux-mplex-MV2requant
the groovy thing about the current method is that you could also requant-stream ty (or any old mpg with a bit more logic) from ANY ftp server ;)
if you can't handle a few brackets in filenames... :eek: well then you REALLY don't want to try & tackle accessing mfs via vserver ;)
Juppers
12-18-2003, 11:58 PM
I've been spending way more time trying to get this to work than I'd like to admit. I'm interested in hearing if anyone has been successful and what platform/binaries are you using server side.
stealthdave
12-19-2003, 01:50 PM
This project is rather tricky to get working right. In fact, I was somewhat reluctant to release it for that reason. There are a couple of sticking points that seem to be the major stumbling blocks to getting tystreamer working:
1. Curly brackets, spaces, and other special characters in the filenames
curl doesn't always like funky filenames in its URLs, and mfs_ftp deals out some funky filenames! Luckily, there is a solution with the latest version of mfs_ftp which will be incorporated very shortly into version 0.2!
2. Lots of possible points of breakage
One of the benefits of a UNIX-like set of tools is that you can string simple tools together to perform more complex tasks. This can also be a curse, as it creates many possible points of failure in the process. In this case we're piping output from curl to typrocess, and two outputs from typrocess to lvemux with a quick stop into M2VRequantizer. That's a lot of programs to fail and a lot of potential points of failure.
1. is easy to fix, and once I have some spare time I should be able to whip up a quick fix. 2. is a little more problematic. I can probably add some more logging for debugging purposes (I'll try to work this into 0.2), but the best solution would be a single binary that does the work that 3-4 binaries do now. This could even enable Windows users to run the server. Unfortunately, I don't know C/C++ programming, so I'm not one who can create this program. In theory, one could add the requant step to typrocess, but typrocess is already extremely buggy when it comes to remultiplexing streams. If anyone wants to volunteer some programming muscle, please, let me know! :)
I do appreciate all the time and effort people have put into trying to make the tystreamer project work. Hopefully the next release will make it easier to get it running properly by making it easier to find where the process breaks down. I'm going to try and get version 0.2 completed before Christmas. You may want to upgrade to the latest version of mfs_ftp in the meantime, and set it to file mode 6!
- Stealth Dave
FredThompson
12-21-2003, 04:49 PM
Here's a thread discussing the Windoze port of the requantizer: http://forum.doom9.org/showthread.php?s=&threadid=62849
Have at it.
stealthdave
12-26-2003, 03:29 PM
tystreamer 0.2 released!
This is a minor feature update aimed at addressing some of the more common issues that people are having with getting tystreamer up and running. See the first post in this thread for details, or visit the web site here (http://www.wiskars.com/tystreamer).
- Stealth Dave
kevinplew
12-26-2003, 04:13 PM
Getting the following errors:
How do I set mfs_ftp to file mode 6? I maybe missing this.
Thanks for a great project.
Warning: fclose(): supplied resource is not a valid File-Handle resource in /var/www/html/tivo/tystreamer.php on line 45
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/tivo/tystreamer.php:45) in /var/www/html/tivo/tystreamer.php on line 98
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/tivo/tystreamer.php:45) in /var/www/html/tivo/tystreamer.php on line 99
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/tivo/tystreamer.php:45) in /var/www/html/tivo/tystreamer.php on line 100
stealthdave
12-26-2003, 04:28 PM
Getting the following errors:
How do I set mfs_ftp to file mode 6? I maybe missing this.
Edit the settings.tcl file in mfs_ftp. Change the "set info(name_detail) 5" to "set info(name_detail) 6" and you're good to go. tystreamer detects which file mode to use automatically.
Warning: fclose(): supplied resource is not a valid File-Handle resource in /var/www/html/tivo/tystreamer.php on line 45
Oops! Minor bugfix! I thought I had included this fix in this release, but it must have slipped by. Just change "fclose(" to "pclose(" on line 45 of tystreamer.php, or re-download version 0.2 from the web site. I added this fix.
The header errors occur when php sends its errors to your browser with its own headers. Those should disappear when all the other errors are fixed.
- Stealth Dave
kevinplew
12-26-2003, 05:38 PM
Making progress.......
When I attempt to start mfs_ftp in filemode 6 I get the following errors:
can't read "info(1431386,rec_filename)": no such element in array
while executing
"set temp($item) $info($fsid,$item)"
(procedure "calc_tertiary_info" line 39)
invoked from within
"calc_tertiary_info $fsid"
(procedure "rec_info_from_db" line 23)
invoked from within
"rec_info_from_db $fsid"
(procedure "update_rec_fsids" line 17)
invoked from within
"update_rec_fsids 1"
(procedure "init_procs" line 11)
invoked from within
"init_procs"
(file "./mfs_ftp.tcl" line 1533)
Thanks
stealthdave
12-26-2003, 05:55 PM
Make sure you install the latest version of mfs_ftp. 1.2.9p at least!
- Stealth Dave
kevinplew
12-26-2003, 09:00 PM
I'm getting a list of shows-- So far so good.
When I hover over the "Stream!" hyperlink the status bar shows: javascript:tystream("1462621")
When I click on the link I get a prompt to open/save the file. The file name is "Auto_Racing-British_Formula_3_Series" with no extension. If I save the file-- they are all 129 bytes-
Contents:
<br />
<b>Warning</b>: unlink() failed (Permission denied) in <b>/var/www/html/tivo/tystreamer.php</b> on line <b>110</b><br />
Where can I find the log files? I have use_logging set to 1.
Thanks
stealthdave
12-26-2003, 09:41 PM
When I click on the link I get a prompt to open/save the file. The file name is "Auto_Racing-British_Formula_3_Series" with no extension. If I save the file-- they are all 129 bytes-
Contents:
<br />
<b>Warning</b>: unlink() failed (Permission denied) in <b>/var/www/html/tivo/tystreamer.php</b> on line <b>110</b><br />
Ooh! Ooh! I know this one! :)
tystreamer is trying to delete your fifo and it doesn't have permission to do so. My guess is that you created it manually. You can either set "make_afifo = 0" and it will use the existing fifo (recommended) or manually delete your existing fifo so that tystreamer can create and delete it itself.
Where can I find the log files? I have use_logging set to 1.
Log files are in the same directory as tystreamer unless you define a different path in the ini file. Your webserver will need write permissions to whatever folder you decide to put them in.
- Stealth Dave
sych0
12-26-2003, 10:31 PM
:(
Well, id love to try the new version. Sounds like you guys are getting close. However, i dont know WHAT i did, but my web server wont start up. When i enable it, it says "web sharing starting up...." then nothing. I tried rebooting and reinstalling php, but no luck. Now when i goto a .php page, safari just downloads it and shows a quicktime 404.
What do i do! :confused:
I didnt change anything that i can think of. I'd really just been waiting for the new release
--update--
Ok, it was quicktime streaming server preventing it from loading. I trashed it and all is well. Now onto trying out version 2 :P
sych0
12-27-2003, 12:07 AM
Hmm... ok I'm getting the same thing kevinplew was getting...the error when using mfs_ftp in mode 6. I swear im running the current vesion though.... how/where do i find the current version i'm running?
--update--
Hah, ok. im using 1.2.9o
Guess ill be upgrading mfs_ftp tomorrow :)
Cant wait to get this working!
kevinplew
12-27-2003, 10:26 AM
I get the Program list, but when I click on the link the file I get the save or open dialog. If I open the file it d/l- no file extension. If I save the file it comes in as an mpeg. Still waiting to see if the saved file plays.
Another note- I can only do 1 test w/o rebooting the Tivo- the stream seems to hang the mfs_ftp process.
None of the logs show any kind of problems.
BTW I'm running XP Sp1 to view the files. Redhat 9 to run the webserver and video processes.
Thanks
Update :confused: -- Well, I spoke to soon. The file never finishes d/l. I also have the following running on the tivo- MFS Stream, Tivoweb, elseed, tivoftp, autoscramble- Any conflicts?
YAU- Checking my linux box I found several of the instances of curl, etc. still running- killed all those and started over. The file now d/l and is playable- cool!! ;) This also fixed my msf_ftp problem. 1 other problem though- the file will not finish d/l unless I kill the processes on the server- just hangs at the end. I still cannot get it to spawn a mpeg viewer when clicking on the stream. I'm going to try changing the mime type and see what happens.
sych0
12-27-2003, 02:37 PM
Alright so heres my status. Ive upgraded mfs_ftp to 1.2.9p. Now when I load up the server I get my list of shows. When I click stream in osx, it just loads a window with a quicktime logo on it. No downloading or anything. In xp, I'm prompted to open or save. When I open with windows media player, I get an error about the file being incomplete or corrupt. When I click open, it also lacks an extension. So i have to choose what app to open with. When I save it, i get the title of the show and an .mpeg extension. However, the resulting file is 0kb and when I open it in notepad, its blank. No information whatsoever.
Now what? :)
Dunno if it helps, but im really only running tivoftpd along with mfs_ftp. I have tivoweb and tytool, but neither of those are running at the time.
--Update--
Ok....dunno if this was an issue, but I had logging set to 1 but hadnt changed the location. I set them to all write to /tmp and now in osx, I just clicked stream on a show and its downloading. It currently says "completed 93.6mb of ?" in the status bar. Hasnt played anything yet...
Be back in a few
MyKroFt
12-27-2003, 10:36 PM
Ok, using .2 with logging turned on and typrocess.log always has the following error no matter what stream I try to grab
any clues?
demux:chunk_read.c:339: Read Chunk: chunk 0 - over flow in records - skipping
Thanks
Myk
stealthdave
12-29-2003, 02:36 PM
Okay, it's looking like people are starting to get this project working for themselves (which is a good thing!), but some are still having issues getting the programs to play in the browser. The problem is, how do you know if it's the browser or tystreamer? I give you... the mplayer test!
If you get to the point in your testing where something starts to load in the browser and nothing's happening, the mplayer test should tell you whether the problem is in your browser or with tystreamer.
Mplayer has the wonderful ability to play streaming media from a URL. Using mplayer 1.0pre1 or later (tivo-mplayer (http://tivo-mplayer.sourceforge.net) works just fine), run the following command-line:
bash# mplayer -cache 8192 http://tivo/tystreamer.php\?action=sendstream\&streamsize=150000\&streamfile=12345
Change 12345 with any appropriate fsid. If tystreamer is set up correctly, mplayer should recognize the mpeg stream automatically and start playing the program for you. If not, then start checking the logs to see what's not working.
If it passes the mplayer test and you're still having problems with your browser, chances are that you need to set up your helper applications and/or plugins view mpeg2 video. Do a google search for your specific browser for more information on how to do this.
- Stealth Dave
P.S. - If you just can't get an mpeg2 plugin working for your browser, you can always create a batch file/shell script that calls the above command-line with a given fsid:
#!/bin/bash
# Linux/Mac OS X/*BSD Shell Script
mplayer -cache 8192 http://tivo/tystreamer.php\?action=sendstream\&streamsize=150000\&streamfile=$1
REM Microsoft Batch File
mplayer -cache 8192 http://tivo/tystreamer.php\?action=sendstream\&streamsize=150000\&streamfile=$1
phrend
12-29-2003, 07:24 PM
I'm really excited about this project but need a little help - I have a FreeBSD 5.x box that I'm trying to install this on, but I'm no UNIX expert!
I downloaded the pre-compiled archive (tystreamer-i586-bin-0.1.tar.gz) and extracted it. When I tried to run lvemux, I got the following error (as expected from what I read in this thread):
# ./lvemux
./lvemux: /lib/libpthread.so.0: version `GLIBC_2.3.2' not found (required by ./lvemux)
#
I tried to download the source for lvemux, but when I tried to make it, I got the following:
# make
gcc -O3 -mcpu=pentium3 -msse -mfpmath=sse -I./ -o lvemux lvemux.c mux_out.c -lpthread
/usr/bin/ld: cannot find -lpthread
*** Error code 1
Stop in /usr/home/phrend/downloads/tivo/tystreamer/lvemux.
#
Any suggestions?
cojonesdetoro
12-29-2003, 07:52 PM
snip I have a FreeBSD 5.x box
snip
./lvemux: /lib/libpthread.so.0: version `GLIBC_2.3.2' not found (required by ./lvemux)
snip
Any suggestions?
It reads like you need glib_2.3.2 or higher. ;^P
I know that BSD uses a an emulation layer to run linux binaries so it must have some libary support as well. Try using 'cvsupit' to see if there's an upgrade.
The best way to solve this problem is to have someone compile lvemux so that it's statically linked. It will make the executable very large but at least you can run it on older linux boxen. I have been toying with an upgrade to the latest Debian dist but it's no small task. My server does a whole lot of stuff (web, dns, mail, SMB, caller-ID, etc) and it will be a pain in the neck to recreate everything.
This is a common problem with programs that use clib calls. I'm using RH 7.2 which is not all that old, yet, there is no clib 2.3.2+ version available for it.
mdm180
01-01-2004, 06:00 PM
I also have an older distro - RedHat 7.3 - and would like to try this streamer out. But, my GLIBC is older than 2.3.2 and I don't know any simple way to upgrade it. Like cojonesdetoro, it would be no simple task to rebuild the server on a newer distro (server is doing mail, web, dns, voicemail, smb, etc.).
If anyone has a workaround for this, I would really appreciate it. If what cojonesdetoro mentioned isn't easy or possible, maybe the script can be switched (switched back?) to use mplex instead of lvemux?
This app looks like exactly what I am looking for and I want to try it!
Mark
stealthdave
01-01-2004, 08:42 PM
For those of you having trouble compiling lvemux or using older GLIBC libraries, you can substitute mplex for lvemux. A sample configuration setting is included in the ini file for this purpose. Just comment out the lines for lvemux and uncomment the lines for mplex. The reason that lvemux is used instead of mplex by default is that mplex is sometimes not as friendly with pipes and may cause the string of command lines to break. I've tried it myself and it does work, but YMMV.
- Stealth Dave
mdm180
01-02-2004, 12:10 PM
Cool - so I am giving it a shot with mplex but I am having trouble
Here is what the curl log says:
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 4288 0 4288 0 0 4727 0 --:--:-- 0:00:00 --:--:-- 9522
curl: (23) Failed writing body
mplex log says:
INFO: [mplex] mplex version 2.2.2 ($Date: 2003/06/02 01:24:17 $)
**ERROR: [mplex] Unable to read from file /dev/stdin.
Any suggestions? Is there way to get the completed command that is being run so I can test it manually?
BTW: I changed line 4130 of tystreamer.php to read :
header("Content-Disposition: attachment; filename=".$program_name."-".$episode_name.".mpg");
So that IE/Windows would realize it was an mpeg file.
stealthdave
01-02-2004, 12:53 PM
Is there way to get the completed command that is being run so I can test it manually?
Yes! Set "testmode = 2" in the ini file. Instead of trying to stream the video, it will display the command line and a bunch of debugging data.
BTW: I changed line 4130 of tystreamer.php to read :
header("Content-Disposition: attachment; filename=".$program_name."-".$episode_name.".mpg");
So that IE/Windows would realize it was an mpeg file.
Funny. Netscape (Mozilla) adds an extension automatically, which is why I didn't put one in. I'll put that down as a change for 0.3.
- Stealth Dave
mdm180
01-02-2004, 12:56 PM
EDIT: I mentioned that the typrocess was failing which I don't think is correct. I need to do more troubleshooting before posting! :)
phrend
01-04-2004, 05:33 AM
For those of you having trouble compiling lvemux or using older GLIBC libraries, you can substitute mplex for lvemux...
- Stealth Dave
So, I edited the ini file and commented out the lvemux line and un-commented the mplex line and also added the full paths to all the support files. When I open tystreamer.php in IE or Mozilla, I get a full listing of all the programs on my TiVo, but when I try to stream them (any of them), Windows Media Player gives the following error:
Windows Media Player cannot play the file. The file is either corrupt or the Player does not support the format you are trying to play.
I tried to turn the logging to 1, but don't know where the log files are generated - or if setting it to 1 even tells tystreamer to create log files. :)
Thanks in advance!
EDIT
-----
I tried running typrocess with no arguments and got the following:
error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
mplex with no arguments gave:
error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
requant seems to be happy
So, it seems that there are still some library issues on FreeBSD 5.x to contend with -- any suggestions?
stealthdave
01-04-2004, 02:07 PM
So, it seems that there are still some library issues on FreeBSD 5.x to contend with -- any suggestions?
I strongly recommend compiling the component programs locally on your machine. The binaries available on my web site were compiled on an AMD 1800+ XP processor and a G3 700MHz processor using Mandrake 9.2 and Mac OS X 10.3, respectively. The Mac binaries should work on any Jaguar and above OS, but the Linux binaries will need glibc 2.3.2. If you compile TyStudio from scratch (which is not an easy task, but doable), you will get something that should work on your machine.
Good luck.
- Stealth Dave
mdm180
01-04-2004, 03:48 PM
I strongly recommend compiling the component programs locally on your machine. The binaries available on my web site were compiled on an AMD 1800+ XP processor and a G3 700MHz processor using Mandrake 9.2 and Mac OS X 10.3, respectively. The Mac binaries should work on any Jaguar and above OS, but the Linux binaries will need glibc 2.3.2. If you compile TyStudio from scratch (which is not an easy task, but doable), you will get something that should work on your machine.
Good luck.
- Stealth Dave
I compiled ty_process (patched) and mplex so they would work on my machine without glibc 2.3.2. I also tried lvemux but I couldn't get it to work (don't remember the errors). I tried again and troubleshot for a while (didn't get much real work done at work :) ). I now understand how everything works better but I never got it to work. I believe the problem was getting mplex to play properly with the fifo (see the error messages in my previous post). If I just delete the fifo (afifo) and tell the script not to auto create it, the command line completes (when manually run) because it is just dumping the audio to a file (non-fifo). If I switch it to autocreate the fifo or make it myself with mkfifo -m 0666 /tmp/afifo, mplex complains. Any suggestions other than try and get lvemux compiled? Anyone have a compiled version of lvemux that doesn't require glibc 2.3.2? I am using RH 7.3 on i686.
Mark
mdm180
01-05-2004, 02:16 AM
I was able to compile lvemux so it did not require glibc 2.3.2 and my fifo problems went away. I will attach my compiled versions of typrocess and lvemux that do not require glibc 2.3.2 in case someone else can use them.
From the logs, it now appears everything is working but I still can't view the stream with Windows Media Player. When I click the Stream link, it takes some time to return the open/save dialog box (while the initial downloading and processing is done I assume). The only way I could actually get it to try and open in MP instead of downloading first was to change the header in the php file to inline instead of attachment . MP then open automatically when I click stream but it just says "connecting ..." and never opened the video. BTW, I didn't need the .mpg extention on the file like I previous recommended.
I am so close now! I think some php tweaking needs to be done to make it work with Windows/Media Player.
Stealthdave, have you actually streamed via tystreamer with Windows Media Player? Any suggestions? I don't have mplayer installed on my linux box to test with right now.
stealthdave
01-05-2004, 12:17 PM
mdm180:
I've been Windows-free for 3 years now, and I'm loving it. :) So unfortunately, I have no experience getting this to work with WMP. Try playing with the mime-type in the ini file. Do you have curl? Try the mplayer test but replace mplayer with curl and then play the resulting file in WMP. If you get a file at all, then chances are it's a problem with WMP and not tystreamer. You can also download mplayer for windows from the mplayer web site (http://mplayerhq.hu).
- Stealth Dave
mdm180
01-07-2004, 12:31 AM
mdm180:
I've been Windows-free for 3 years now, and I'm loving it. :) So unfortunately, I have no experience getting this to work with WMP. Try playing with the mime-type in the ini file. Do you have curl? Try the mplayer test but replace mplayer with curl and then play the resulting file in WMP. If you get a file at all, then chances are it's a problem with WMP and not tystreamer. You can also download mplayer for windows from the mplayer web site (http://mplayerhq.hu).
- Stealth Dave
I used Linux for my server but us XP as my desktop OS. Anyway, I did finally fix a windows version of mplayer on their FTP server. I was able to get the streaming to work using this syntax:
mplayer -cache 8192 "http://server/path/tystreamer.php?action=sendstream&streamsize=150000&streamfile=12345"
Unfortuntely, it only played for a minute or so then freezes with no errors in mplayer or in the logs on the server. This repeatable with multiple files. The only warnings in mplayer are framerate changes.
I tried using curl directly on my server to similate this and it also stopped streaming at 28 MB for some reason. Maybe a fifo issue?
stealthdave
01-07-2004, 03:00 PM
...It only played for a minute or so then freezes with no errors in mplayer or in the logs on the server. This repeatable with multiple files. The only warnings in mplayer are framerate changes.
I tried using curl directly on my server to similate this and it also stopped streaming at 28 MB for some reason. Maybe a fifo issue?
I'm almost positive that the problem lies with typrocess. It's a temperamental little app, and every once in a while it just stops. Try increasing the detail level of the typrocess log to 9 (change 'typrocess_lusage = " -d9 -l [logfile] "'). That will make for a huge log file, but should give you more information to debug from. Also, make sure that you can pull the entire stream from mfs_ftp using curl. Test that using "curl ftp://tivo:3105/ty/12345 > program.ty" gives you a complete program. If you can't get a complete stream, then your problem is with mfs_ftp or curl, most likely mfs_ftp.
- Stealth Dave
stealthdave
01-07-2004, 04:09 PM
New release time! No real bug fixes to speak of, but golly, it shore does look purty! :D
See the first post in this thread for details and download, or visit the web site at http://www.wiskars.com/tystreamer.
- Stealth Dave
jroos
01-09-2004, 02:52 AM
I had some problems even getting the php working initially. The problems stem from Redhat 8 having PHP set to strict PHP tags.
First I changed all the instances of <?= to <?php echo
Then I changed all the <? to <?php
I also found I had problems with the ob_get_clean() function. I imagine my version of php isn't current enough. All I had to do was replace $something = ob_get_clean();
with
$something = ob_get_contents();
ob_clean();
I've also had to recompile typrocess for my system since I was getting an error about GLIBCPP_3.2.2. That was a messy proposition. The patched typrocess source didn't come with anything from the mjpeg_play package and the Makefile for tymplex points to the wrong directory for mjpeg_play.
That's where my success ends. Everything runs, I don't receive any errors anymore in any log, but I don't receive the stream. The Tivo and the web server churn away but my client never receives a byte.
didjit
01-11-2004, 07:20 PM
Hey mdm180 did you get this working?
I'm having the same issues you are. I get the mfs listings ok and get the mpg prompt in my bowser. When manual running Mplayer with the mfs link I get "LMLM4 Stream Format not found". Would be really cool to get this working....
Didjit
mdm180
01-12-2004, 12:11 AM
Nope, I have it on hold for now. I agree it looks really cool though.
Are you using a SA or DTiVo?
didjit
01-12-2004, 06:30 AM
Are you using a SA or DTiVo?
DTV, specificaly an HDVR2. Hmm, light bulb went off. Tystudio does not support series II ty files. I didn't see in the docs that it was specific for S1. Am I correct?
Didjit
mdm180
01-12-2004, 11:24 AM
DTV, specificaly an HDVR2. Hmm, light bulb went off. Tystudio does not support series II ty files. I didn't see in the docs that it was specific for S1. Am I correct?
Didjit
Well, I have a T60 (series 1 DTiVo). I ran some tests that discouraged me from pursuing this further. Basically, I stepped through the process manually in 2 pieces to exclude the need for fifo. I ran the following command first from my RH 7.3 server (all apps that didn't work were compiled for my machine - paths are ok):
# curl ftp://tivo:3105/ty/3462943.ty | /usr/local/bin/typrocess -ipipe -oa /tmp/temp.m2a -ov /tmp/temp.m2v -d 3
This seemed to work fine but in the end, it did produce a "segmenation fault". I check though, and it entire recording is there and split properly.
This is a 30 minute recording. The file on the TiVo is 412 MB. Output - temp.m2v = 372.5 MB - temp.m2a = 35 MB.
So, then I ran this command (trying to get a 128 Kb stream):
# cat /tmp/temp.m2v | /usr/local/tystreamer/bin/requant 39.24069135802 |/usr/local/tystreamer/bin/lvemux -p -a /tmp/temp.m2a -v /dev/stdin -o /tmp/temp.mpg
This output results:
M2VRequantiser by Makira.
Using 39.240692 as factor.
video stream reader is starting ...
audio stream reader is starting ...
video stream type mpeg detected
- size (480x480)
- aspect ratio (4:3)
- framerate (29.970 Hz)
- bitrate (15000000 bps)
- picture structure (frames)
audio stream type (MP2) detected
- sample rate (48000 Hz)
- bitrate (160000 bps)
- frame size (480 bytes)
but, it gets to about a 3 MB output file and hangs with no errors. So, I tried mplex instead using this command :
# cat temp.m2v | /usr/local/tystreamer/bin/requant 39.24069135802 |mplex -f 3 -V -o /tmp/temp.mpg /tmp/temp.m2a /dev/stdin
It does finish and I get an output that is 211 MB. I can play it ok in WMP (codec error but it plays). So, then I started calculating - 21,000Kbytes/(30 mins * 60 secs/min)= 112 Kbytes/sec * 8 bits/bytes = 897 kbits/secs or about 900kbps. So, even at the most downcoverted built in choice, I would still need a 900 kbps upload on my DSL to stream (without buffering) over the internet. I have 325 kbps upload so I figured this wasn't worth my trouble in trying to get this to work anyway.
Please let me know if my logic is flawed or I am missing something obvious. I still think I am going to revisit this later because it is a simple way to get mpgs to my server with just a click of a button.
stealthdave
01-14-2004, 09:09 PM
I'm looking for some beta testers for the next revision of TyStreamer. Please PM me with your e-mail address if you are willing to test and have the following pre-requisites on your server:
- At least a 2 GHz x86 processor or equivalent (i.e., fast G4 or G5)
- Linux, *BSD (including Mac OS X) or Windows server with cygwin build environment, and are not afraid to compile hacked software :)
If this is you, especially if you've been having problems getting tystreamer to work in the past, please PM me with your e-mail address and I will send you instructions.
Thanks,
- Stealth Dave
jg123
01-16-2004, 09:25 PM
- At least a 2 GHz x86 processor or equivalent (i.e., fast G4 or G5)
- Linux, *BSD (including Mac OS X) or Windows server with cygwin build environment, and are not afraid to compile hacked software :)
I guess my 500 mhz linux laptop doesn't cut it anymore :(
stealthdave
01-17-2004, 04:28 PM
I guess my 500 mhz linux laptop doesn't cut it anymore :(
Fear not! I'm not abandoning the original concept of a low-resources server for tystreamer (relatively speaking). The beta is testing an alternative method for re-encoding/streaming, not a replacement method.
- Stealth Dave
sirfergy
01-17-2004, 04:52 PM
I've got an odd problem. I'm trying to use TyStreamer, but whenever I get a link, I get the option to Open or Save the file. How do I get the computer to stream it instead?
eobiont
01-24-2004, 12:09 AM
I messed around for hours and the file permission gods finally smiled upon me. I am able to pass the mplayer test on my computer which is running OS X 10.3.2.
I have a couple of questions though. Could you give some hints on how to get the web page to play the video back? I have Apple's MPEG2 codec loaded in QT, but how do I get Safari to pass the video into QT player? I know how to specify a helper, but what do I enter for the protocol? I tried x-mpeg2 but that is not it.
Once the video starts, is there any way to stop it? I can close the window, sure, but if I watch the curl.log file it continues to download from the Tivo. Is there a way to make mfs_ftp restart and prepare to stream a different show?
Is there any control over skipping ahead or pause or anything like that.
This program is VERY exciting.
gmead
02-04-2004, 01:15 AM
If I click a link on the page to stream, I get a time-out or sometimes I'll get the open/save-as option, but it never works. Here is the typrocess.log:
demux:chunk_read.c:548: WARNING: Chunk 1 is out of alignment with 168 bytes
demux:probe.c:136: Big ERROR - CAN'T DETECT FRAME RATE
demux:tydemux.c:69: Failed in probe.demux:tydemux.c:478: Probe failed
Any suggestions?
TheWickedPriest
02-04-2004, 07:10 PM
I'm not using tystreamer, but I just wanted to say thanks for the pointer to requant. I've used it twice so far, to shave just enough off a group of extracted Tivo clips to fit them onto a single DVD+R, with no visible quality loss. R0x0r.
lonaman
02-05-2004, 03:56 AM
Here is the typrocess.log:
demux:chunk_read.c:548: WARNING: Chunk 1 is out of alignment with 168 bytes
demux:probe.c:136: Big ERROR - CAN'T DETECT FRAME RATE
demux:tydemux.c:69: Failed in probe.demux:tydemux.c:478: Probe failed
I get a very similar error in my typrocess.log...
demux:tydemux.c:48: TyStream to small was not able to read 200 chunks
demux:tydemux.c:49: We will now try to read a smaller amount
demux:probe.c:123: Big ERROR - NO CHUNKS
demux:tydemux.c:69: Failed in probe.
demux:tydemux.c:478: Probe failed
Any ideas?
Also, is there a way to change the default bit rate instead of defaulting to 2.5 everytime the page loads?
richc5141
02-07-2004, 12:35 PM
I can run all commands from the command line. However it looks like it never gets to requant. Curl completely downloads the file but it never gets past that. I can see /tmp/afifo picking up data (size goes to 480. Here are the logs.
[root@gateway log]# cat typrocess.log
demux:chunk_read.c:339: Read Chunk: chunk 0 - over flow in records - skipping
[root@gateway log]# cat mplex.log
video stream reader is starting ...
audio stream reader is starting ...
video stream type mpeg detected
- size (480x480)
- aspect ratio (4:3)
- framerate (29.970 Hz)
- bitrate (15000000 bps)
[root@gateway log]# cat curl.log
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 448M 0 448M 0 0 1197k 0 --:--:-- 0:06:23 --:--:-- 1137k
[root@gateway log]#
If anyone has any suggestions I would appreciate them.
richc5141
02-08-2004, 03:06 PM
I think that it may have something to do with the php.ini file. As soon as the typrocess requant and lvemux end the browser asks me what to do with the file. If I save it it is a 0 byte file. Almost looks like the lvemux stream to the stdout is just not making it across the network. Does anyone have this streaming to the browser? If the do could they post their php.ini file?
lonaman
02-09-2004, 03:31 AM
What's the "slowest" server anyone has gotten this to work with?
stealthdave
02-09-2004, 01:18 PM
I can run all commands from the command line. However it looks like it never gets to requant. Curl completely downloads the file but it never gets past that. I can see /tmp/afifo picking up data (size goes to 480. Here are the logs.
Actually, I think I know what your problem is, or at least a problem.
If afifo is increasing in size, than tystreamer is overwriting your fifo! If you're creating an fifo manually rather than allowing tystreamer to create it, make sure that you set permissions so that your web server can read and write to it. You can do this a number of ways, but the easiest way (though not the most secure, but it doesn't need to be terribly secure for an fifo) is to run "chmod a+rw /tmp/afifo" from a shell.
If that still doesn't work, run each step of the command manually one at a time and see where it breaks. Run the curl command and save it to a file. Run typrocess and save the a/v streams separately to files, etc. That's the best way I've found to debug tystreamer.
- Stealth Dave
I am very interesting in this project and trying to get it to work. It's a much cheaper alternative to upgrading to 802.11g and using tyshow. I do have 1 question. I only have one machine to use. So if I do this, my server will also be my client. Can I do that? Also, since it's a laptop, it's wireless, so I'll be streaming it to my "server" wirelessly, and I try to view it on the same machine. My gut and reading the posts tell me this probably isn't a good idea, but I wanted to get some other opinions or to see if anyone has tried a server/client configuration in a single box.
stealthdave
02-09-2004, 04:40 PM
I am very interesting in this project and trying to get it to work. It's a much cheaper alternative to upgrading to 802.11g and using tyshow. I do have 1 question. I only have one machine to use. So if I do this, my server will also be my client. Can I do that? Also, since it's a laptop, it's wireless, so I'll be streaming it to my "server" wirelessly, and I try to view it on the same machine. My gut and reading the posts tell me this probably isn't a good idea, but I wanted to get some other opinions or to see if anyone has tried a server/client configuration in a single box.
Nope, that won't work.
The problem is that streams coming directly from your TiVo are too large to view in real-time over an 802.11b wireless connection. Tystreamer solves this by using a server connected through a faster connection (such as direct ethernet), which then shrinks the stream down to a size that can be streamed over the wireless connection. If you're only using the wireless connection, you're just not going to get the data fast enough. If you're connected through the wire, then you don't need to resample because you're already getting the data fast enough and all you'll end up doing is reducing the quality of the video.
Hope that helps.
- Stealth Dave
richc5141
02-10-2004, 07:03 AM
Thanks, I will give that a try . already verified the curl thing. Guess next is typrocess. The afifo mode is correct. rw-rw-rw .
gmead
02-10-2004, 11:30 PM
Well, I managed to fix whatever was causing my problems before by just reinstalling everything. Now everything works... but when I click a link, IE/Mozilla tries to save the file instead of streaming it. This happens in Media Player, too. Any suggestions?
sirfergy
02-11-2004, 01:36 AM
That's the same issue I had.
Well, I managed to fix whatever was causing my problems before by just reinstalling everything. Now everything works... but when I click a link, IE/Mozilla tries to save the file instead of streaming it. This happens in Media Player, too. Any suggestions?
enesch
02-11-2004, 02:50 PM
Program looks great but I am a touch lost installing M2VRequantizer there is no make file no config. what do I do with these files? I am running Gentoo Linux. Thanks for the help
stealthdave
02-11-2004, 04:09 PM
Program looks great but I am a touch lost installing M2VRequantizer there is no make file no config. what do I do with these files? I am running Gentoo Linux. Thanks for the help
There are a couple ways to get M2VRequantizer for a system, including Gentoo. One would be to install lve (http://lvempeg.sourceforge.net), which includes M2VRequantizer (binary name is lverequant). There might even be a Gentoo package already available. Try 'emerge lve' and see what happens. :)
The second way is to compile using gcc. As you noted, it doesn't have a make file, but you can compile it using the following command-line:
$ gcc main.c -o requant -lm
The "-lm" tells gcc to include the math library, which is necessary to compile requant.
Or you can try the binary package available at my web site compiled on Mandrake 9.2.
Hope that helps.
- Stealth Dave
enesch
02-11-2004, 04:38 PM
That worked man thanks.. now one more thing and I think I am cool I am having trouble getting the info and the setup that is throwing me is this line on your site is this
In a folder that the webserver has read/write permissions to, create an fifo and record its location in tystreamer.ini
- or -
set make_fifo = 1 in tystreamer.ini to let tystreamer create the fifo as needed. Be sure to give it a location that it has read/write permissions (such as /tmp)
not really sure what an fifo is. or how to do this.. Can you clear this up for me too man.? Thanks.
stealthdave
02-11-2004, 04:51 PM
not really sure what an fifo is. or how to do this.. Can you clear this up for me too man.? Thanks.
File In/File Out (I think; not really sure). It allows programs to pipe data directly to one another without creating files in the process, the same way that stdin/stdout work. Creating an fifo in linux/unix is really easy:
mkfifo -m a+rw /tmp/afifo
The "-m a+rw" is optional and tells the os to make the file read/writable by all users, same as "chmod a+rw" or "chmod 666".
- Stealth Dave
malfunct
02-11-2004, 04:57 PM
File In/File Out (I think; not really sure). It allows programs to pipe data directly to one another without creating files in the process, the same way that stdin/stdout work. Creating an fifo in linux/unix is really easy:
mkfifo -m a+rw /tmp/afifo
The "-m a+rw" is optional and tells the os to make the file read/writable by all users, same as "chmod a+rw" or "chmod 666".
- Stealth Dave
Stands for First in First out, in other words a queue.
TheWickedPriest
02-11-2004, 09:52 PM
The problem is that streams coming directly from your TiVo are too large to view in real-time over an 802.11b wireless connection.I disagree. I've done it. The connection from the Tivo to the router was wired, though -- it was only wireless from the router to the laptop (using TyShow). This was with an HDVR2.
stealthdave
02-12-2004, 12:38 AM
I disagree. I've done it. The connection from the Tivo to the router was wired, though -- it was only wireless from the router to the laptop (using TyShow). This was with an HDVR2.
It all depends on the bitrate of the program that you're trying to watch. Some streams have a smaller bitrate than others (usually due to different quality settings) and require less bandwidth. In fact, tystreamer will sometimes not recompress the stream if it detects that the stream size is already lower than the target bandwidth. If that's the case, though, you're probably better off just using tivo-mplayer rather than trying to get tystreamer to work. ;)
But for programs with a higher bitrate than your connection, you need something to bring down the bitrate. That's why I made tystreamer. :)
Just out of curiosity, is your wireless connection 802.11b or 802.11g? 802.11g would definitely be more than fast enough for most streams, where 802.11b is significantly slower.
- Stealth Dave
enesch
02-12-2004, 12:08 PM
ok here lies my problem maybe curl or mfs_ftp. I am just doing some command line testing.. Here is what happens
jasonskala root # curl ftp://tivo:3105/ty/1819528.ty | /usr/local/bin/typrocess -ipipe -oa /var/www/localhost/htdocs/afifo.mpa -ov /var/www/localhost/htdocs/temp.m2v -d 3
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 24.7M 0 24.7M 0 0 975k 0 --:--:-- 0:00:25 --:--:-- 1039kdemux:chunk_read.c:339: Read Chunk: chunk 0 - over flow in records - skipping
demux transcode mplex
100 25.0M 0 25.0M 0 0 940k 0 --:--:-- 0:00:27 --:--:-- 846k
curl: (23) Failed writing body
Not sure why this is doing this.. Does anyone have any suggestions? I am alot closer then I was,, if I configured mfs_ftp wrong please tell me how I need to config it since for tystreamer it was the first tiem I used mfs_ftp..
Dave you have been most helpfule thus far thanks again.
TheWickedPriest
02-13-2004, 09:42 PM
Just out of curiosity, is your wireless connection 802.11b or 802.11g?My connection is only b. I get about 300 KBps on FTP transfers to my laptop over wireless.
Edit: This is nearly twice the average rate of the DirecTV streams, so with a decent cache (which TyShow seems to be using, given the delay at startup), there's plenty of headroom. An SA recording at one of the higher quality settings might be more of a problem.
TheAvatar
02-14-2004, 04:10 AM
Sorry, but is anyone working of a windows version of this technology for use Linux impaired dufuses? :) Seems like as there is a windows port of requant all of the needed parts are there, they just need to be cobbled together. I'd due it myself If I had the "mad Sk1llz" Anyone taking up the challange?
richc5141
02-14-2004, 07:20 AM
Got this thing pretty much nailed down to typrocess segfaulting. I've recompiled everthing on my hardware. When I run typrocess it segfaults around 70 percent of the time. Anyone else experience this?
TheAvatar
02-15-2004, 11:24 AM
Okay,obviously I'd like to try this project but I am Linux and programing deficent. Anyone who has it working care to create a Knoppix-like bootable CD with the required apps installed :)
ddives
02-25-2004, 05:27 PM
I get:
Fatal error: Call to undefined function: ob_get_clean() in /var/www/html/tystreamer.php on line 167
When I pull up the tstreamer.php file in my web browser. I am running Pedhat 9.2, and have edited the tystreamer.ini to show the locations of the installed files, all of which are in /var/www/html.
I admit I am not a Linux professional! Any help to get the DTiVo to stream would be awesome!
richc5141
02-26-2004, 05:33 AM
The version of PHP shipped with RedHat needs to be modified (php.ini) and the function obj_get_clean needs to be replaced. The information is in this thread one of the earlier posts.
ddives
02-26-2004, 09:45 PM
I get Now Showing, but when I click a stream it will pop-up open or save dialog which refernces to a 100k mpg file (if saved). On my Mac it will just show the Quicktime "Q" in the middle of the screen (no dialogs).
When running test mode there are no errors!? There are "%" in the first display of the title but down lower on the test display all the "%" are corrected.
I have no idea what to do with the Typrocess update file, what to do with it?
Finally, all I did was put the lvemux and M@VRequantizer in the /var/www/html directory, Do I actually run anything to get them installed?
At least I got a page up that has no explicit error messages.
eobiont
03-13-2004, 12:22 AM
I figured out why I (and maybe others) are having trouble with the video playing for a minute and then freezing.
MFS_FTP or curl seems to be pausing for just about a minute when playing. If I look in the curl.log, I find
100 22.1M 0 22.1M 0 0 1332k 0 --:--:-- 0:00:17 --:--:-- 1407k
100 23.5M 0 23.5M 0 0 1336k 0 --:--:-- 0:00:18 --:--:-- 1410k
100 24.9M 0 24.9M 0 0 1340k 0 --:--:-- 0:00:19 --:--:-- 1393k
100 25.0M 0 25.0M 0 0 253k 0 --:--:-- 0:01:41 --:--:-- 68337
100 26.1M 0 26.1M 0 0 262k 0 --:--:-- 0:01:41 --:--:-- 65336
100 27.3M 0 27.3M 0 0 271k 0 --:--:-- 0:01:42 --:--:-- 62765
100 28.6M 0 28.6M 0 0 281k 0 --:--:-- 0:01:44 --:--:-- 62491
Notice that the log pauses after 19 seconds and doesn't start up again for 1:22. This is probably why the playback in mplayer freezes, because the stream processing stops for a short time. Once curl gets going again, the log shows the ftp comes across smoothly for the rest of the file. No idea what is causing this pause though. Anyone have ideas?
Running on Mac OS X 10.3.2 (Panther)
OK it's not curl or MSF_FTP cause if I run curl alone, there's no pause. Probably something get's hung up and the pipe ony buffers so much. Maybe curl supplies data faster than the rest can process?
I have traced my problem down to lvemux - it just hangs after 20 seconds or so of video. mplex works fine.
richc5141
03-20-2004, 08:55 AM
I found my segfaulting issue in typrocess using gdb. It occurs due to main.cpp trying to free memory setup by -mplex arguments.
if( params.mplex_params.argv ) {
for( j = 0; j < params.mplex_params.argc; ++j ) {
free ( params.mplex_params.argv[j] );
}
free ( params.mplex_params.argv );
}
This is cause when the program sets up default command lin arguments and is not given an argument to -mplex. Down and dirty fix was commenting out the default setup.
/* Set up default command line parameters */
// params.mplex_params.argc = sizeof( default_mplex_args ) / sizeof( char *);
// params.mplex_params.argv = (char **) default_mplex_args;
I also needed to remove the mplex in the pipe patch. We are not relying on typrocess to remultiplex the stream. We only want to demux it and use lvemux or mplex for the multiplexing.
} else if( strcmp( argv[i], "-pipe" ) == 0 ) {
params.use_pipes = 1;
// params.mplex = 1;
params.demux = 1;
If you look at the typrocess command parameters in tystreamer.ini you will note that it is using -ipipe. That is wrong for the typrocess since as shown in the above lines it is just looking for -pipe not the -i.
Using the stated hacks the thing is working fairly well except for an issue with an unimplemented part of tydemux. This probably explains why so many people are only getting partial plays then hangs.
When loggin is set to -d 9 for typrocess the stream stops when it encounters this error. Field count fix not yet implemented.
demux:buffer.c:96: Found extension 08
demux:sync_drift.c:206: Time field error was 0
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:591: drift not okay
demux:pes_holder_video_check.c:211: Field - chunk 132
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:798: Fix of field count yet not implemented
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:763: gop frame not okay
demux:pes_holder_video_check.c:764: SEQ nr of p frame is 51
Slee MR2
03-21-2004, 03:15 PM
The correct term for something this cool is, "wh00t!."
Thanks for all of your work on this project guys. I am the envy of all of my friends.
:cool:
Mr novice
03-21-2004, 03:42 PM
Let me start be saying I'm very new to linux. I loaded redhat 9 just for this project. I have almost everything working. When I browse to the tystreamer.php page in a browser` I get the following error:
"Fatal error: Call to undefined function: ob_get_clean() in /var/www/html/tystreamer/tystreamer.php on line 167"
Any thoughts would be greatly appreicated.
[Edit] I had php 4.2.2 once I upgraded to 4.3.4 that error went away
Slee MR2
03-24-2004, 03:32 AM
The tystreamer.php file will populate the program list from the TiVo (which is a SA1 Phillips).
Everything seems to be working except, the stream starts and promps me with a dialog box to open/save the stream name_name.mpg (name_name.mpg being the name of the show). I click open, it launches windows media player, then the error of death occurs.
Windows Media Player cannot find the specified file. Be sure the path is typed correctly. If it is, the file does not exist in the specific location, or the computer where the file is stored is offline.
I repeated the process and opened the .mpg file with notepad and it is blank.
The client is a Windows XP Professional SP1 with the default Windows Media Player and the K.Lite.Codec mega pack installed.
The server is an IBM running FreeBSD 4.9, Apache 1.3.29, and PHP 4.3.4.
I decompressed the tystreamer linux binaries and the tystreamer.ini file points to the decompressed location.
I suspect that the issue might be with Curl (the version from the tystreamer website) getting the file from the tivo. I can manually make Curl get the file list, but I cannot make it manually download. I can successfully download files from the mfs_ftp server from WS_FTP LE on the Windows client so I know that the mfs_ftp server (version q) is running.
When I try to manually make Curl download the file from the TiVo I get from the prompt "Missing }".
I believe that I have extracted installed and tested every possible thing, and the only thing I can come up with is Curl.
PLEASE HELP ME!! I am tired of late nights untill 4:00 am trying to make this work.
- Matt :confused:
matt.slee@m3ltd.com
Slee MR2
03-24-2004, 03:34 AM
The tystreamer.php file will populate the program list from the TiVo (which is a SA1 Phillips).
Everything seems to be working except, the stream starts and promps me with a dialog box to open/save the stream name_name.mpg (name_name.mpg being the name of the show). I click open, it launches windows media player, then the error of death occurs.
Windows Media Player cannot find the specified file. Be sure the path is typed correctly. If it is, the file does not exist in the specific location, or the computer where the file is stored is offline.
I repeated the process and opened the .mpg file with notepad and it is blank.
The client is a Windows XP Professional SP1 with the default Windows Media Player and the K.Lite.Codec mega pack installed.
The server is an IBM running FreeBSD 4.9, Apache 1.3.29, and PHP 4.3.4.
I have decompressed the tystreamer pre-packaged linux binaries and the tystreamer.ini file points to the decompressed location.
I have tried the other numerous fixes, up to but not necessarily including the curl -g and variants the editing of line 30, which I noticed was bugfixed in the v0.3 that I am using and several other ideas.
I suspect that the issue might be with Curl (the version from the tystreamer website) getting the file from the tivo. I can manually make Curl get the file list, but I cannot make it manually download. I can successfully download files from the mfs_ftp server from WS_FTP LE on the Windows client so I know that the mfs_ftp server (version q) is running.
When I try to manually make Curl download the file from the TiVo I get from the prompt "Missing }".
I believe that I have extracted installed and tested every possible thing, and the only thing I can come up with is Curl.
PLEASE HELP ME!! I am tired of late nights untill 4:00 am trying to make this work.
Perhaps this can't be done on the FreeBSD platform?
- Matt :confused:
matt.slee@m3ltd.com
stealthdave
03-24-2004, 01:56 PM
The tystreamer.php file will populate the program list from the TiVo (which is a SA1 Phillips).
<snip>
The server is an IBM running FreeBSD 4.9, Apache 1.3.29, and PHP 4.3.4.
I have decompressed the tystreamer pre-packaged linux binaries and the tystreamer.ini file points to the decompressed location.
<snip>
Perhaps this can't be done on the FreeBSD platform?
- Matt :confused:
matt.slee@m3ltd.com
You should have no problem running this on FreeBSD. I developed it on Mac OS X. :) However, I don't know that the linux binaries will work on FreeBSD. Try downloading the source and compiling it on your system. If that doesn't work, you'll need to go through each step of the command line that TyStreamer generates and see where the process breaks down. TyProcess can be particularly touchy and, in my experience, crashes fairly easily. How to do this is a well-covered topic in this thread, so look back to find details.
Good luck!
- Stealth Dave
Mr novice
03-25-2004, 06:39 PM
I'm having the same problem juppers was having on page 3 of this topic. I click on stream and nothing happens. When I execute the command locally curl hangs after 25MB. Any help would be greatly appreicated. Here is command line and server info.
Command Line:
curl ftp://192.168.1.200:3105/ty/238753.ty | /usr/local/bin/typrocess -ipipe -oa /tmp/afifo -ov /dev/stdout | /usr/local/bin/requant 7302.00493827 | /usr/local/bin/lvemux -p -a /tmp/afifo -v /dev/stdin -o -
video stream reader is starting ...
audio stream reader is starting ...
M2VRequantiser by Makira.
Using 900.000000 as factor.
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 25.0M 025.0M 0 0 1651k 0 --:--:-- 0:00:14 --:--:-- 1754k
demux:tydemux.c:478: Probe failed
Server info:
redhat 9 w/ apache 2.0.49 and php 4.3.4
Tivo Info:
hdvr2 monte'd w/ mfs_ftp 1.2.9q
If it will help I can post the mfs_ftp log file
Thanks in advance.
stealthdave
03-25-2004, 07:52 PM
<snip>
demux:tydemux.c:478: Probe failed
Unfortunately, this is a bug in typrocess that was never addressed by the authors, who have since left the TiVo hacking scene completely. The good news is that they left behind their source code, so if you or someone you know is a C programmer, this code might be fixed someday!
But more to your immediate issue, try using a different stream. Sometimes that works. Also, if you downloaded a pre-compiled binary, you can try compiling your own. I wouldn't get my hopes up, though. :(
- Stealth Dave
Slee MR2
03-26-2004, 04:13 AM
So we have changed platforms. We are now running Fedora. I am all up and good to go, except.....
How do I compile tystudio on my system?
I have the file tystudio-0.5.0a.tar.gz. Is this the right source file to start compiling with? Do I need to download something else? If so, what file(s)? I need to compile everything from scratch. If I do that, I know this will all start to work.
Please include step by step commands as to ensure that I am entering the right things.
I have all of the proper glibs and whatnots.
Please Help.
Compiling the tystudio so that the typrocess works is my final hurdle.
- Matt
matt.slee@m3ltd.com
Mr novice
03-27-2004, 02:26 AM
So is the typrocess bug "demux:tydemux.c:478: Probe failed" due to the fact that I have a series 2 tivo? Is there another tool that we could use instead of typrocess. Like part of tytools. Just wondering.
stryugy
04-13-2004, 11:18 AM
Stealth, Your demo version doesn't seem to be working anymore. Seeing that this thread is quite aged I'm curious if this still works. I'm willing to go out and buy the hardware needed to do it but I just want to make sure it works first. I have a 2.2mb DSL connection (up and down) just begging to be used for this. :)
stealthdave
04-13-2004, 04:43 PM
Stealth, Your demo version doesn't seem to be working anymore. Seeing that this thread is quite aged I'm curious if this still works. I'm willing to go out and buy the hardware needed to do it but I just want to make sure it works first. I have a 2.2mb DSL connection (up and down) just begging to be used for this. :)
Actually, the demo mode works exactly as it's supposed to. Demo mode does not allow for downloading tystreams. That would eat up my available bandwidth before you can say "Slashdot Effect". :) In fact, the demo server isn't even connecting to a live tivo. It's pulling the data from a text file to simulate what it gets from mfs_ftp. It does show you how the interface works, as intended.
As for the aging thread, I'm hoping to have time to release version 0.4 soon. No huge changes, just minor improvements and a new output mode for those with cpu cycles to burn: complete stream re-encoding!
- Stealth Dave
stealthdave
04-13-2004, 05:35 PM
I found my segfaulting issue in typrocess using gdb. It occurs due to main.cpp trying to free memory setup by -mplex arguments.
if( params.mplex_params.argv ) {
for( j = 0; j < params.mplex_params.argc; ++j ) {
free ( params.mplex_params.argv[j] );
}
free ( params.mplex_params.argv );
}
This is cause when the program sets up default command lin arguments and is not given an argument to -mplex. Down and dirty fix was commenting out the default setup.
/* Set up default command line parameters */
// params.mplex_params.argc = sizeof( default_mplex_args ) / sizeof( char *);
// params.mplex_params.argv = (char **) default_mplex_args;
Does this remove mplex functionality completely from typrocess, or just remove the bug?
I also needed to remove the mplex in the pipe patch. We are not relying on typrocess to remultiplex the stream. We only want to demux it and use lvemux or mplex for the multiplexing.
} else if( strcmp( argv[i], "-pipe" ) == 0 ) {
params.use_pipes = 1;
// params.mplex = 1;
params.demux = 1;
If you look at the typrocess command parameters in tystreamer.ini you will note that it is using -ipipe. That is wrong for the typrocess since as shown in the above lines it is just looking for -pipe not the -i.
Actually, the -ipipe parameter was added by myself to bypass the mplex function, doing exactly what you show above. Simalarly, -opipe reads demuxed streams and only multiplexes out. Are you working with the patched version of typrocess, or straight from cvs?
Using the stated hacks the thing is working fairly well except for an issue with an unimplemented part of tydemux. This probably explains why so many people are only getting partial plays then hangs.
When loggin is set to -d 9 for typrocess the stream stops when it encounters this error. Field count fix not yet implemented.
demux:buffer.c:96: Found extension 08
demux:sync_drift.c:206: Time field error was 0
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:591: drift not okay
demux:pes_holder_video_check.c:211: Field - chunk 132
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:798: Fix of field count yet not implemented
demux:pes_holder_video_check_help.c:46: I 1 B 0 P 0 SEQ 1 GOP 1
demux:pes_holder_video_check.c:763: gop frame not okay
demux:pes_holder_video_check.c:764: SEQ nr of p frame is 51
If this fixes the crashing, I would love to add this to my patch! Can you post a patch file?
- Stealth Dave
rpongett
04-13-2004, 11:50 PM
I can probably add some more logging for debugging purposes (I'll try to work this into 0.2), but the best solution would be a single binary that does the work that 3-4 binaries do now. This could even enable Windows users to run the server. Unfortunately, I don't know C/C++ programming, so I'm not one who can create this program. In theory, one could add the requant step to typrocess, but typrocess is already extremely buggy when it comes to remultiplexing streams. If anyone wants to volunteer some programming muscle, please, let me know! :)
This is exactly the sort of tool I'm looking for. I have a windows box at home sitting there (use it for work sometimes, but usually just bring home my work laptop) that I could use as a permanent Tivo-video server for me along with a higher-speed DSL line I'm about to get.
If someone out there that knows C/C+ could help throw together a windows binary, I have a feeling this great app would be used by a lot of people.
dogah
04-16-2004, 10:02 PM
hey guys
i can't for the life of me get tystreamer to list anything? it runs the php fine, shows the interface and everything but never lists any shows, doesn't list anything when i run the 'testmode' either
any ideas?
citivolus
04-21-2004, 08:23 AM
I'm using tystreamer 0.3, Redhat 9 with PHP 4.3.6 and mfs_ftp 1.2.9p on an HDVR2. I can succesfully get video to play on my WinXP client, but tystreamer seems to ignore whatever bitrate setting I choose in the webpage. It always streams it at what appears to be the original bitrate. I have the logfiles going to /tmp, and I only see the curl, mplex, and typrocess logfiles being generated. Not even a zero-byte length requant.log file is created. However, when I set it to test mode '2', I see the command line generated with a call to requant. I can successfully run requant manually. Any idea what's going on?
Also, is tystreamer supposed to download the entire file before playing, or is it supposed to do true streaming? When I try a long clip, Internet Explorer just appears to continue downloading forever, so I tried recording a short 10-second clip for testing and that works, although I imagine it's still just downloading the shorter full file.
My ultimate goal is to stream to my PocketPC using PocketTV.
stealthdave
04-21-2004, 02:37 PM
hey guys
i can't for the life of me get tystreamer to list anything? it runs the php fine, shows the interface and everything but never lists any shows, doesn't list anything when i run the 'testmode' either
any ideas?
If testmode was working, then I'd say check your filemode setting on mfs_ftp. It needs to be in mode 5 or 6, preferably the latter. But it testmode doesn't work, I'm not sure what it could be. Try running the curl portion of the command line and see if you get any show listings from your tivo.
- Stealth Dave
stealthdave
04-21-2004, 02:56 PM
I'm using tystreamer 0.3, Redhat 9 with PHP 4.3.6 and mfs_ftp 1.2.9p on an HDVR2. I can succesfully get video to play on my WinXP client, but tystreamer seems to ignore whatever bitrate setting I choose in the webpage. It always streams it at what appears to be the original bitrate. I have the logfiles going to /tmp, and I only see the curl, mplex, and typrocess logfiles being generated. Not even a zero-byte length requant.log file is created. However, when I set it to test mode '2', I see the command line generated with a call to requant. I can successfully run requant manually. Any idea what's going on?
If the bitrate you've selected is larger than the bitrate of the source video, then tystreamer will simply stream the source without requantizing. If you're selecting a lower bitrate and it's still not requantizing, then tystreamer may be reading the program size incorrectly from mfs_ftp.
Also, is tystreamer supposed to download the entire file before playing, or is it supposed to do true streaming? When I try a long clip, Internet Explorer just appears to continue downloading forever, so I tried recording a short 10-second clip for testing and that works, although I imagine it's still just downloading the shorter full file.
My ultimate goal is to stream to my PocketPC using PocketTV.
Woah! Streaming to a PocketPC? That's aggressive! Requant can only downsize a stream so much, and it can't change the screen resolution, so you're stuck at whatever native resolution that Tivo recorded the program at. But to answer your question, tystreamer does stream the video, but I don't think that I'm properly telling the browser or media player to stream the video as it arrives. That's something I need to work on for the next revision.
- Stealth Dave
citivolus
04-21-2004, 06:28 PM
If the bitrate you've selected is larger than the bitrate of the source video, then tystreamer will simply stream the source without requantizing. If you're selecting a lower bitrate and it's still not requantizing, then tystreamer may be reading the program size incorrectly from mfs_ftp.
I tried selecting a bitrate of 300k and 128k in tystreamer, much smaller than the original bitrate (oddly reported at 15000bps in the logfile of tystreamer or mplex (can check tonight). How can I verify if mfs_ftp or tystreamer is at fault?
Woah! Streaming to a PocketPC? That's aggressive! Requant can only downsize a stream so much, and it can't change the screen resolution, so you're stuck at whatever native resolution that Tivo recorded the program at. But to answer your question, tystreamer does stream the video, but I don't think that I'm properly telling the browser or media player to stream the video as it arrives. That's something I need to work on for the next revision.
- Stealth Dave
not sure if I'm being aggressive or stupid or both! is there any other program similar to requant that can change the screen resolution (say from 480x480 to 320x240)?
dogah
04-21-2004, 11:05 PM
had more of a play around after above post ^^
definately a curl problem i think, d/led newest curl and now i can list the folders on the mfs ftp but i cant d/l them manually or otherwise, i don't think it likes the { brackets on all the files.. anyway i can get around this?
thanks
citivolus
04-22-2004, 08:13 AM
I tried selecting a bitrate of 300k and 128k in tystreamer, much smaller than the original bitrate (oddly reported at 15000bps in the logfile of tystreamer or mplex (can check tonight). How can I verify if mfs_ftp or tystreamer is at fault?
just checked, and mplex is reporting the stream details as:
video stream reader is starting ...
audio stream reader is starting ...
video stream type mpeg detected
- size (480x480)
- aspect ratio (4:3)
- framerate (29.970 Hz)
- bitrate (15000000 bps)
- picture structure (frames)
audio stream type (MP2) detected
- sample rate (48000 Hz)
- bitrate (192000 bps)
- frame size (576 bytes)
audio stream reader ended !
video stream reader ended !
(736) frames processed - done !
why is requant not being called when processing this stream? I'm specifying a bitrate of 300k in tystreamer. no logfile for requant is generated, and the stream plays at what appears to be its original bitrate.
thanks.
citivolus
04-22-2004, 08:15 AM
<duplicate deleted>
Abone9
04-24-2004, 02:33 AM
I tried your mplayer test you posted earlier in the thread and this is what I get
mplayer -cache 8192 http://192.168.1.100:8080/~aaronstovall/tystreamer.php\?action=sendstream\&streamsize=150000\&streamfile=2959936
MPlayer dev-CVS-031215-21:54-3.3 (C) 2000-2003 MPlayer Teamile=2959936stovall/ty
AltiVec foundphp\?action=sendstream\&streamsize=150000\&streamfile=2959936stoval
Reading config file /usr/local/etc/mplayer/mplayer.conf: No such file or directory
Reading config file /Users/aaronstovall/.mplayer/config&streamfile=2959936stoval
Reading /Users/aaronstovall/.mplayer/codecs.conf: Can't open '/Users/aaronstovall/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open '/usr/local/etc/mplayer/codecs.conf': No such file or directory
Using built-in default codecs.conf.
font: can't open file: /Users/aaronstovall/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing
Can't open input config file /Users/aaronstovall/.mplayer/input.conf: No such file or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file or directory
Falling back on default (hardcoded) input config
Playing http://192.168.1.100:8080/~aaronstovall/tystreamer.php?action=sendstream&streamsize=150000&streamfile=2959936.
Resolving 192.168.1.100 for AF_INET6...
Couldn't resolve name for AF_INET6: 192.168.1.100
Connecting to server 192.168.1.100[192.168.1.100]:8080 ...
Cache size set to 8192 KBytes
Connected to server: 192.168.1.100
Cache fill: 0.00% (0 bytes)
Exiting... (End of file)
I know I am overlooking something simple as I am somewhat new to *nix I am running a G4 with Mac OS 10.3 panther. tystreamer.php loads fine and shows all the shows but I am getting the same error many others were getting, I can see all the shows but when I click on stream it brings up a QT icon and does nothing and on my windoze machine it asks to save the file and nothing plays. Any help would be greatly appreciated
Just for Giggles here is my tystreamer.ini file
;; TyStreamer -- Copyright (c) 2004 Still Designing, LLC
;; Author: David E. Still <stealthdave@stilldesigning.com>
;; Licenced under the GNU General Public License, version 2
;; Name: tystreamer.ini
;; Description: Streams TiVo programs from the TiVo to a
;; web browser or other web-enabled device
;; or program through an intermediary server
;; which reduces the size of the program
;; stream, which enables the program to be
;; viewed over slower network connections in
;; real-time.
;; Version: 0.3
;; Created: 12/02/2003
;; Last Updated: 01/07/2004
;; User Editable Settings
testmode = 0 ;; should be set to "0" for reading from the TiVo
autolaunch = 1 ;; automatically launches a program for viewing when selected
tivo = "192.168.1.103"
mfs_ftp_port = 3105
stylesheet = "css/technophobe.css"
;stylesheet = "css/adams.css"
;stylesheet = "css/daynight.css"
;stylesheet = "css/sortof.css"
;stylesheet = "css/technophobe2.css"
mimecode = "video/mpeg"
extension = "mpg"
;; Support Program Paths
curl = "curl"
typrocess = "/Users/aaronstovall/tivo"
requant = "/Users/aaronstovall/tivo"
mplex = "/Users/aaronstovall/tivo"
;;mplex = "mplex"
afifo = "/tmp/afifo" ;; .mpa extension is necessary for lvemux
make_afifo = 0 ;; make/delete afifo on the fly using posix_mkfifo
;; Log Files
use_logging = 0
curl_log = "curl.log"
requant_log = "requant.log"
mplex_log = "mplex.log"
typrocess_log = "typrocess.log"
;; Control Settings -- DO NOT EDIT (unless you *really* know what you're doing)
mplex_usage = " -p -a [afifo] -v /dev/stdin -o - " ;; lvemux usage
;;mplex_usage = " -f 3 -o /dev/stdout /dev/stdin [afifo] " ;; mplex from mjpegtools usage
typrocess_usage = " -ipipe -oa [afifo] -ov /dev/stdout "
typrocess_lusage = "-d 3 -l [logfile] "
Thanks,
Aaron
Abone9
04-28-2004, 10:44 PM
Okay I was able to get the codecs installed but I am still having issues on getting the mplayer test working. I hope this thread isn't going to dry up. this is a great little app and i would like to see it continue.
Aaron
stealthdave
04-30-2004, 03:19 PM
Okay I was able to get the codecs installed but I am still having issues on getting the mplayer test working. I hope this thread isn't going to dry up. this is a great little app and i would like to see it continue.
Aaron
Have you tried the curl test? Okay, I just made that one up. :) This will tell you what is being sent by TyStreamer. Type this into a console:
curl http://tystreamer/link > test.mpg
Then examine the contents of test.mpg and check your logs. Is test.mpg an html file? A text file? A partial program? Test that, and report back.
- Stealth Dave
Abone9
05-01-2004, 01:02 AM
Okay I did the curl test and the test.mpg turned out to be the tystreamer display page with all my shows. I am probably messing up something here. You said http://tystreamer/link > test.mpg so is the /link supposed to be the name of a tivo recording? When I put in the whole program name in such as {Late Night With Conan O'Brien}{2004-04-29}{}{11.37 PM Thu Apr 29, 2004}{WOWT} it returns with an error tcsh: Unmatched or sometimes Missing }. depending on the show I try. I tried to add a .mpg extension to it as well. I also tried changing mfs_ftp to mode 6 but when I do that tystreamer stops showing a list of shows until I switch it back to mode 5 so I am unable to have it display the fsid number. I appreciate all of your help! I know I am just doing something stupid here.
Aaron
stryugy
05-21-2004, 06:18 PM
Will a P3 550 be enough horsepower to run this? I don't plan on running anything else really on the server.
How much ram is suggested? Will 256mb cut it?
TheAvatar
06-05-2004, 12:37 PM
i have been playing arround with the windows version of requant, seeing inf a windows version of tystreamer is possible, but the most i am able to compress files is to about 1/3 thier orignal size. if i start out with a 500mb or so 30 min program the smallest i can get it is about 170mb which is still to big to stream over my cable modem. what sort of compression ratios arte you guys seeing w/ tystreamer and what is the quality like/ anyone have a sample stream i can look at/ i have been using etivo to convert files to wmv for streaming and i can get a 30 min file down to 60 or 70mb with reasonably veiwable quality, they problem is full re-encoding take a long time.
CySurflex
12-07-2004, 11:52 PM
My ultimate goal is to stream to my PocketPC using PocketTV.
I'm here reading this thread today with the ultimate goal of streaming to my Treo 650 :) It's also a 320x320 screen.
I think it should be able to play a video stream of a larger resolution, as long as the bitrate is ok.
With that, here are some questions:
Whats the lowest bitrate that Tystreamer will run at?
If I or someone else were to venture into adding code for actually resizing the video as well, which component/what part of the code would that be most appropriate for?
What Linux distro is best? I'm going to build a linux box just for this - downloading Mandrake 10.1 right now. But I did notice a lot of Redhat talk here - has any specific Linux distro proven better for running this?
I've thought of another option, for Windows: Windows Media Encoder (free) can stream out at any bitrate, it just needs a video source. If I or someone else were to develop a windows video driver that actually in turn picks up a vserver stream does that sound like it could actually work?
DonovansBrain
01-07-2005, 05:03 AM
It looks like I'm reviving a dead thread, but here goes anyway...
I've been attempting to get tystreamer 0.3 working on pretty much the same system it was developed on - a 700MHz iBook running OS X (10.3.7). I wouldn't have expected any problems, but I've had a few.
My current problem is that curl reports an error trying to write to stdout in the curl.log file:
curl: (23) Failed writing body -> (stdout)
This is just after it has written the first progress indicator line.
If I run the whole piped command (or just the curl part )in Terminal, I don't get the error, though I don't seem to get a valid .mpg even attempting to write if I do 'curl ftp://tivo/stream > test.mpg'. Odd. It's certainly downloading something according to MenuMeters, but I don't know where it's going because it's not creating a test.mpg file :-)
One other thing - in order for curl to be happy with the .ty filename to even attempt to get the file, I had to alter the way tystreamer.php converts the filename. I replaced:
$tystreambase = str_replace("+","\ ",urlencode($_REQUEST["streamfile"]));
with
$tystreambase = str_replace("+","%20",urlencode($_REQUEST["streamfile"]));
On the plus side, I have managed to cat an already downloaded .ty file into typrocess and the other commands and write the final output to another named pipe which I then read with mplayer. So that bit works at least.
Hopefully someone else got it working on OS X and can shed some light on my problems.
stealthdave
01-07-2005, 02:31 PM
It looks like I'm reviving a dead thread, but here goes anyway...
I've been attempting to get tystreamer 0.3 working on pretty much the same system it was developed on - a 700MHz iBook running OS X (10.3.7). I wouldn't have expected any problems, but I've had a few.
Actually, I'm not surprised. This has turned out to be one of the most difficult projects to get working properly.
<snip>
If I run the whole piped command (or just the curl part )in Terminal, I don't get the error, though I don't seem to get a valid .mpg even attempting to write if I do 'curl ftp://tivo/stream > test.mpg'. Odd. It's certainly downloading something according to MenuMeters, but I don't know where it's going because it's not creating a test.mpg file :-)
Is that the actual stream url or just a representation? It should look more like ftp://tivo:3105/stream if you're using mfs_ftp defaults, where 3105 is the port number that mfs_ftp is running on.
One other thing - in order for curl to be happy with the .ty filename to even attempt to get the file, I had to alter the way tystreamer.php converts the filename. I replaced:
$tystreambase = str_replace("+","\ ",urlencode($_REQUEST["streamfile"]));
with
$tystreambase = str_replace("+","%20",urlencode($_REQUEST["streamfile"]));
I'll take a look at that. Despite all evidence to the contrary, this project is not completely dead. :) I'm currently working on version 0.4 which will use mencoder rather than requant et al. The downside to this approach (and the reason I didn't do it before) is much heftier system requirements, but the upsides are considerable: single binary for stream conversion, fewer elements in the pipeline to crash, greater control over output size and bitrate, and the possiblity for Windows support. You'll still be able to use requant, though. If anyone can point me to a good tutorial on using mencoder to create mpeg1 files, I'd greatly appreciate it. :)
On the plus side, I have managed to cat an already downloaded .ty file into typrocess and the other commands and write the final output to another named pipe which I then read with mplayer. So that bit works at least.
Hopefully someone else got it working on OS X and can shed some light on my problems.
Like I said, try checking your port number. That may help. Btw, while the server should be able to run on an iBook 700MHz, I've found that my iBook just isn't powerful enough to view the streams in real-time, especially not using MPlayer, which seems to have fairly hefty system requirements. Let me know if you find otherwise.
- Stealth Dave
DonovansBrain
01-07-2005, 04:45 PM
Hi Dave - it's good to hear you're still around and working on the project :-)
Is that the actual stream url or just a representation? It should look more like ftp://tivo:3105/stream if you're using mfs_ftp defaults, where 3105 is the port number that mfs_ftp is running on.
Yeah, that was just a representation of the url - I posted that form work today, going from memory.
I'm currently trying this in Terminal:
Pauls-iBook:~ pauld$ curl ftp://192.168.1.200:3105/ty/%7BThe%20Office%7D%7B2004
-01-04%7D%7B%7D%7B11.15%20PM%20Sun%20Dec%2026%2C%202004%7D%7BBBC3%7D.ty | /usr/local/bin/typrocess -ipipe -oa /tmp/afifo -ov /dev/stdout | /usr/local/bin/requant 8.0 | /usr/local/bin/lvemux -p -a /tmp/afifo -v /dev/stdin -o ~/test.mpg
M2VRequantiser by Makira.
Using 8.000000 as factor.
video stream reader is starting ...
audio stream reader is starting ...
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 6509k 0 6509k 0 0 383k 0 --:--:-- 0:00:16 --:--:-- 420k
but I still don't see a file being written out.
curl is /usr/bin/curl, and I'm running from a non-admin account (if that makes any difference).
The exact error in curl.log when attempting to stream in Safari is:
Pauls-iBook:~ pauld$ tail -f /tmp/curl.log
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
100 8760 0 8760 0 0 2669 0 --:--:-- 0:00:03 --:--:-- 4657
curl: (23) Failed writing body
Over Christmas I set up an Xcode project to build most of TyStudio. I wanted to build typrocess myself so I could debug the the duplicate frees that occur when it gets inputs it doesn't expect. I solved some, but there's still one that's bugging me.
Paul
I already have Mac OS X (Panther) running as a full time server on my home network, so I'm excited to try to get this working so I can view video from work or other places. I have other PHP apps running on Apache, so I followed the standard process to install this one too. The setup is clear and went well. I'm using Windows XP/Internet Explorer as my client. I connect to tystreamer.php and it is able to successfully grab a list of all of the shows on my TiVo and display the list. That's as far as I seem to get though. When I choose a speed (I've tried 128 and 300) and click a show, I get the message, "Your program should begin downloading automatically. Click here if the program doesn't start loading within 20 seconds." The little globe in the top right of the IE window spins and spins but nothing happens (I've waited 10 minutes). If I click on the "here" link the globe continues spinning but nothing more happens.
This looks to be REALLY cool, and I'd love to get it working. Does anyone have any hints for me? Is there a next step I could try in order to troubleshoot? Could it be a firewall issue? There is no firewall between my TiVo and the server, but there is between my client and my server. What ports other than 80 do I need between the client and server?
stealthdave
01-11-2005, 05:33 PM
I already have Mac OS X (Panther) running as a full time server on my home network, so I'm excited to try to get this working so I can view video from work or other places. I have other PHP apps running on Apache, so I followed the standard process to install this one too. The setup is clear and went well. I'm using Windows XP/Internet Explorer as my client. I connect to tystreamer.php and it is able to successfully grab a list of all of the shows on my TiVo and display the list. That's as far as I seem to get though. When I choose a speed (I've tried 128 and 300) and click a show, I get the message, "Your program should begin downloading automatically. Click here if the program doesn't start loading within 20 seconds." The little globe in the top right of the IE window spins and spins but nothing happens (I've waited 10 minutes). If I click on the "here" link the globe continues spinning but nothing more happens.
This looks to be REALLY cool, and I'd love to get it working. Does anyone have any hints for me? Is there a next step I could try in order to troubleshoot? Could it be a firewall issue? There is no firewall between my TiVo and the server, but there is between my client and my server. What ports other than 80 do I need between the client and server?
I've recently discovered a problem with TyStreamer which I believe has been present since its inception. For some reason, the browser will wait until it recieves the entire stream. I'm currently working on this issue now, and once it's been resolved, I'll release version 0.4 which, if things go as planned, will also include Windows support.
In the mean time, if anyone has any insights as to how one might entice a browser plugin to start playing a stream before it completes, either through the object or embed tag or with HTTP headers, I'd really appreciate it!
- Stealth Dave
Thanks Dave! This seems like a great project, and I'm looking forward to your next release.
I wish I knew something about video streaming, but that's not my area of expertise.
mshook
01-12-2005, 10:39 PM
In the mean time, if anyone has any insights as to how one might entice a browser plugin to start playing a stream before it completes, either through the object or embed tag or with HTTP headers, I'd really appreciate it!
You want to use the <object> tag.
You'll find plenty of example on the next (either by looking for people who use it, like apple with their quicktime trailers) or by googling for "object html".
IE:
http://www.htmlhelp.com/reference/html40/special/object.html (search for video)
markman07
10-04-2006, 09:59 AM
Howdy! Not sure if this thread gets enough attention where I can get any help but I came across it and am having trouble getting it to work.
Windows XP PRO
IIS 5.1
VLC 8.2
VLC DLL from (vlc-082-win-r45.zip)
TIVO Directivo Series 2 - Hughes running 6.2
Everything seems fine and I can connect to the PHP file in my browser but after entering in the defined password and clicking GO it always errors out with
"Notice: Undefined variable: vlc_open in c:\inetpub\wwwroot\tystreamer\tystreamer.php on line 268
Warning: shell_exec() [function.shell-exec]: Unable to execute '"c:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy -V dummy --intf=telnet tivo://192.168.1.151/llist vlc:quit 2>&1 ' in c:\inetpub\wwwroot\tystreamer\tystreamer.php on line 268"
Not sure where else or what else to try. Line 268 looks fine to me. :-)
stealthdave
10-04-2006, 01:33 PM
Howdy! Not sure if this thread gets enough attention where I can get any help but I came across it and am having trouble getting it to work.
Windows XP PRO
IIS 5.1
VLC 8.2
VLC DLL from (vlc-082-win-r45.zip)
TIVO Directivo Series 2 - Hughes running 6.2
Everything seems fine and I can connect to the PHP file in my browser but after entering in the defined password and clicking GO it always errors out with
"Notice: Undefined variable: vlc_open in c:\inetpub\wwwroot\tystreamer\tystreamer.php on line 268
Warning: shell_exec() [function.shell-exec]: Unable to execute '"c:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy -V dummy --intf=telnet tivo://192.168.1.151/llist vlc:quit 2>&1 ' in c:\inetpub\wwwroot\tystreamer\tystreamer.php on line 268"
Not sure where else or what else to try. Line 268 looks fine to me. :-)
First off, make sure you are using the latest version of TyStreamer. You can find the support thread for TyStreamer 2.0 here (http://www.dealdatabase.com/forum/showthread.php?t=43317).
As for the "Unable to execute" error, if you're still getting it with 2.0, search through that thread for Windows specific issues. I believe that this issue has come up before.
markman07
10-04-2006, 02:10 PM
Crap another thread! SWEET. Thank You. I will go there now.
vBulletin® v3.8.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.