ExtractStream + new SVR2000 FIXED!
jeremyjgordonhome
jgordon at s...
Sun, 06 Jan 2002 20:01:31 -0000
Hi,
AFAIK the conversion from tyStream to MPEG2 is pretty lightweight;
tyStream fundamentally has the same MPEG2 audio and video streams,
they are just glued together in a non-standard way. I'm not
attempting to re-encode, or even transcode the MPEG2 of the Tivo,
just DeMux/Mux it. It's my current belief (and I'm in the middle of
finding out how right or wrong I am) that the TiVo does have enough
spare cycles to perform the manipulation of PES timestamps and basic
tyStream format into as proper an MPEG2 System stream (at least as
standard as I can figure out how to create).
As far as the green bar, and the 480x480 go; these are definitely
limitations of the setup. Regarding the 480x480, I'm pretty sure
that both Quicktime 5 and Windows Media Player embedded in an HTML
page can be told (by OBJECT tag properties) to display the source
video in any X,Y size, essentially scaling the video. So imagine an
HTML page served up by a modified TivoWeb that specifies to display
a 480x480 video in 640x480 resolution with the source being an MPEG
at the URL served up by this "StreamServer" application.
Regarding the green bar, I think I can live with that. In my
dreams, I can imagine finding the right macroblocks in the stream to
replace with all black macroblocks, but this may be too involved for
my skill/patience level, or the search too intensive for the Tivo.
As far as the direct to SVCD someone already posted that they
modified their Tivo bitrates in the MFS for one of the settings
(basic or medium, I can't remember which) to make sure that Tivo's
MPEG2 streams had SVCD compliant bitrates from the start; no re-
encoding necessary.
I guess the biggest issues right now for me are:
1) Can I put in enough sleep()'s, access the media devices nicely
enough (small reads), or change my process priority low enough that
my drive access does not choke out other processes drive accesses
2) I'm assuming (without having gotten enough coded yet) that the
processing performed by tyConvert.exe (the Delphi application) or
tivoApp.exe (the MFC application) to convert tyStream to semi-
standard MPEG2 System streams is similar to a DeMux / Mux operation
with non-standard MPEG2 DeMux code and standard MPEG2 Mux code.
>From my experience writing this kind of MPEG2 code, it's around 5-
10% of a 33MHZ R3000, or pretty nominal (of course the I/O time to
read/write this to a hard-disk is very noticeable, even on a 1gig
athalon!).
I hope to have some answers shortly!
Regards,
Jeremy
--- In ExtractStream@y..., "Edmond E. Shwayri" <eshwayri@n...> wrote:
> I have the same exact problem as you with the same exact hardware
as you.
>
> If you want to stream up an MPEG-2 stream to Media Player, the
TiVo would
> have to do the conversion, but as I understand it the TiVo does
not have
> all that many spare CPU cycles. Also portions of the picture need
to be
> blanked and/or chopped off (left and top contain extra information
which is
> not picture related). Also, the picture is in 480x480 which is a
nasty
> size to look at. Way way too square. The picture should be
> resized. Those are too may thing for the TiVo to do.
>
> A better choice in my opinion would be to go with a 2 stage
process. One
> program runs on the TiVo. Its sole job would be to extract the
TyStream
> and return it via TCP/IP. Another program would run as a daemon
on a
> PC. This program would have the job of accepting incoming
connections from
> Media Player or whatever streaming media player. It would connect
to the
> first program on the TiVo and obtain the TyStream, modify it as
needed and
> then serve it up to the media player. PC CPU cycles these days
are
> abundant. This method would be cool because if written correctly,
the PC
> program could be very configurable in what filters it applies. As
times
> goes on further smarts could be added to the PC program such as
automatic
> extraction and conversion, etc....
>
> At 07:39 AM 1/6/02, you wrote:
> >Hi All,
> >
> >Well, I think I've figured out the issues with the SVR2000 and
> >ExtractStream (and variants). The issue is that the two media
> >partitions (/dev/hda10 and /dev/hda11) which normally exist from
the
> >factory are actually four on the SVR2000 (additionally /dev/hda12
> >and /dev/hda13).
> >
> >I've written a new C++ program "StreamServer", which can handle
this
> >configuration, and can currently serve up the raw tyStream's over
> >HTTP (instead of all the telnet window stuff) without totally
> >choking the Tivo.
> >
> >Basically, /dev/hda10 on my system (and Tivo's since the dawn of
> >time) is small (256 megs) and AFAIK used to store the general MFS
> >database stuff. /dev/hda11 is much larger (on my system 16gig,
> >smaller than previous SVR2000's) and used to store the actual
> >video/audio tyStream data.
> >
> >As mentioned above, /dev/hda12 and /dev/hda13 mirror this
> >configuration (another 256 meg partition, and 16gig partition).
I'm
> >not yet sure why some FSID's should use the normal ExtractStream
> >calculation to map FSID to physical sector on the MFS database
> >partition A (/dev/hda10), and sometimes use my calculation to map
> >FSID to physical sector on the MFS database partition B
> >(/dev/hda12), but right now I coded it so that if it fails to get
a
> >valid signature with the FSID on MFS partition A, it will go look
on
> >partition B. I look at the first sector of /dev/hda10 to
determine
> >the partition configurations, so I'm not sure it will work for all
> >configs, but I think it will work for both pre-December and post-
> >December SVR2000's automagically.
> >
> >I'm still cleaning stuff up; should be able to post the source and
> >binary tomorrow evening. The goal of this "StreamServer" program
is
> >do all the tyConvert type work on the TiVo. Basically, I want to
be
> >able to point Internet Explorer at my TiVo and watch MPEG2 streams
> >in the browser (with the ever lovely Windows Media Player), and/or
> >be able to "download" SVCD bitrate ready MPEG2 streams in ~15min
to
> >archive my shows.
> >
> >I still plan on using the TCL application TivoWeb on port 80, but
> >modified so that the "Now Showing" of a recorded show has a new
> >hyperlink that specifies a URL's to the nicepri'd native
> >application "StreamServer" running on port 81.
> >
> >Regards,
> >
> >Jeremy
> >
> >
> >
> >Yahoo! Groups Sponsor
> >ADVERTISEMENT
> >
> >To unsubscribe from this group, send an email to:
> >ExtractStream-unsubscribe@y...
> >
> >
> >
> >Your use of Yahoo! Groups is subject to the
> ><http://docs.yahoo.com/info/terms/>Yahoo! Terms of Service.