# New to pyTivo and StreamBaby



## freality (Apr 16, 2006)

Hello, TivoCommunity!

I set my parents up with both a TivoHD and Series3 a few years back, and I would like to surprise them with a media server that will hold their collection of movies (both standard-def and high-def). I've been reading up on both pyTiVo and StreamBaby, but am confused about a few things. Any help would be really appreciated.

Here's what I ultimately want to do:

-Stream and/or push movies to the TivoHD and Series3 (not as interested in pulling shows off the TiVo to save on the PC)

-Movie formats I want to use:
--standard-def = DivX (~1.5GB, with AC3)
--high-def = 720p mkv (~4.5GB, with AC3)

Questions:

1. System Requirements: I can't really find what is required for real-time encoding of the 720p mkvs for either pyTivo or StreamBaby. I've put together a budget system at Newegg...will this be good enough? Is Windows 7 ok to use?
-Athlon II X2 3GHz (dual-core)
-MicroATX mobo w/ Nvidia Geforce 7025 IGP
-4GB DDR3 RAM
-RAID5 w/ 3x 1.5TB 7200rpm drives (system will double as a file server)
-Windows 7 (is this OS ok to use?)

2. Streaming vs. Push: If my standard-def DivX movies are ~1.5GB and my high-def 720p mkv movies are ~4.5GB, will I want to push instead of stream to avoid buffer interruptions (due to TiVo's 1.1GB stream buffer limit)? Are both StreamBaby and pyTivo capable of this?

3. pyTivo vs. StreamBaby vs. Both: Can I run both pyTivo and StreamBaby at the same time (just to have the choice)?

4. 720p mkv actual resolution: Do I need to make sure all of my 720p mkvs are actually 1280x720 (including 2.35:1 movies, with the black bars included in the encode) in order for TiVo to display them correctly, either for streaming or pushing?

5. Network: The Series3 is 100Mbps wired, the TivoHD is Wireless G (can do Wireless N if need be). Waiting a few minutes to push, if need be, is fine. Are these speeds good enough? Would a Wireless N adapter for the TivoHD be necessary?

Thanks very much for your time!


----------



## lrhorer (Aug 31, 2003)

freality said:


> Hello, TivoCommunity!
> 
> I set my parents up with both a TivoHD and Series3 a few years back, and I would like to surprise them with a media server that will hold their collection of movies (both standard-def and high-def). I've been reading up on both pyTiVo and StreamBaby, but am confused about a few things. Any help would be really appreciated.


I heartily suggest vidmgr and HME for Python. I think your parents will really appreciate the superior interface. Vidmgr offers HD, cover art, easier to read and more extensive show descriptions, more comprehensive and faster extended information, faster and easier navigation, and up to 14 video titles on the screen at a time, as opposed to 8. You can also customize the backgrounds for all the menus to something they like better than the TiVo NPL.



freality said:


> Here's what I ultimately want to do:
> 
> -Stream and/or push movies to the TivoHD and Series3 (not as interested in pulling shows off the TiVo to save on the PC)
> 
> ...


I think you need to clarify a bit (both for yourself and for us) exactly how you envision this working. Do you intend to convert the programs beforehand, or on the fly? Do you want them to pull, stream, or push? All three, perhaps?

I'm not sure you really need a media server. Are you going to serve these files to anything other than TiVos?



freality said:


> 1. System Requirements: I can't really find what is required for real-time encoding of the 720p mkvs for either pyTivo or StreamBaby.


That's going to really require some horsepower. Even a 6 or 8 core system is going to have trouble recoding 720p in real time. I think you need to consider recoding beforehand. I'm doing that with a very large number of my videos using VideoRedo version 4, although I am recoding from .mpeg to h.264 in an MPEG4 container. Some of the videos are taking over 12 hours on a 3.2GHz AMD Athlon 64 x 2 for a 2 hour video.

A really important benefit of this is the HD videos will transfer at far better than real time. For SD video, I would consider .mpg, rather than DivX. If not, then convert them all into .mp4.



freality said:


> I've put together a budget system at Newegg...will this be good enough? Is Windows 7 ok to use?


Never. I recommend Linux, especially if you are going to attempt to administer this system remotely, which I suspect you might. In addition, unless at least one of your parents is computer savvy, you aren't going to want this system to misbehave or lock up at all.



freality said:


> -Athlon II X2 3GHz (dual-core)


That's more than plenty to serve videos that are only transcoded or not even transcoded at all. That means .mpg files for pulling and .mpg or .mp4 files for pushing using pyTiVo. It's not even close for real-time recoding.



freality said:


> -MicroATX mobo w/ Nvidia Geforce 7025 IGP
> -4GB DDR3 RAM
> -RAID5 w/ 3x 1.5TB 7200rpm drives (system will double as a file server)


That isn't much. The number and size of videos can grow beyond 3T in a big hurry. I would use at least 2T array members, and I definitely recommend a hot spare. Don't forget some sort of backup strategy, as well. If you grow beyond 6 drives in the array, I also recommend going to RAID6 or RAID10. 7200RPM drives are not necessary.



freality said:


> -Windows 7 (is this OS ok to use?)


'Not if you ask me. I recommend Debian "Squeeze" Linux. Ubuntu server is good for this as well. Ubuntu is stable enough for this application. Debian is mountain solid. You can set up OpenVPN for a secure remote link to the server, and ssh for management. If you really must, you could even set up one of the flavors of VNC or even Xming to work with a GUI environment, rather than CLI. If your broadband connection is good, this could be practical. Dial-up is fine for SSH.



freality said:


> 2. Streaming vs. Push: If my standard-def DivX movies are ~1.5GB and my high-def 720p mkv movies are ~4.5GB, will I want to push instead of stream to avoid buffer interruptions (due to TiVo's 1.1GB stream buffer limit)? Are both StreamBaby and pyTivo capable of this?


No. PyTivo transfers (either pull or push). Streambaby streams. Personally, I think your parents would like vidmgr, which employs pyTivo as its push engine.



freality said:


> 3. pyTivo vs. StreamBaby vs. Both: Can I run both pyTivo and StreamBaby at the same time (just to have the choice)?


Yes. You can probably even stream one program with Streambaby while pulling or pushing one with pyTiVo all to a single TiVo. I don't recommend it. Using one and then the other or one to one Tivo and the other to a second TiVo is no problem, as long as you aren't recoding.



freality said:


> 4. 720p mkv actual resolution: Do I need to make sure all of my 720p mkvs are actually 1280x720 (including 2.35:1 movies, with the black bars included in the encode) in order for TiVo to display them correctly, either for streaming or pushing?


That, I can't say. I've never tried to transfer anything other than that.



freality said:


> 5. Network: The Series3 is 100Mbps wired, the TivoHD is Wireless G (can do Wireless N if need be). Waiting a few minutes to push, if need be, is fine. Are these speeds good enough? Would a Wireless N adapter for the TivoHD be necessary?


I don't recommend wireless in any case, but you may be able to get away with Wireless-G, especially for SD and .mpg4 HD. Going with Wireless N instead of Wireless-G can't hurt.


----------



## ThAbtO (Apr 6, 2000)

Push vs. Pull:

Pull: The Tivo will encode a mp4, .mkv video file and inflate its filesize.
Push: The filesize stay approximately the same and it seems its the same quality as the original.


----------



## lrhorer (Aug 31, 2003)

ThAbtO said:


> Push vs. Pull:
> 
> Pull: The Tivo will encode a mp4, .mkv video file and inflate its filesize.
> Push: The filesize stay approximately the same and it seems its the same quality as the original.


Yep. The .mp4 push will also proceed at nearly 3X real-time for HD content. The push and the pull will be the same speed for .mpg, and 720p or very high bandwidth 1080i material may not quite transfer at real-time on an S3. Definitely not on a THD. Both should do better than real-time on a Premier.

He mentions .mkv files, though. If his files start out as .mkv, then he may have to do some searching and fiddling to find a good conversion routine to go to .mpg or .mp4. Unless I am mistaken, the TiVo can't handle .mkv files (I've never tried).


----------



## reneg (Jun 19, 2002)

I don't know how tech savvy your parents are, but if it were me, I'd start simple and only use pyTivo. I think pyTivo is the simplest to use for non-technical folks because the share(s) show up on the Now Playing List. I'd also, run a wired connection to the other Tivo. If you want more capability for push, I also recommend vidmgr with HME for Python.

Windows 7 will handle pyTivo just fine and is rock solid in my experience. I'd recommend that you stick to an OS that you are comfortable with because you will wind up being technical support. If you are comfortable with Windows 7, I suggest you take a look at Windows Home Server. While the 2011 version lost the drive extender technology, it still has a couple features that may be valuable; remote access (for you for tech support) & client backup.


----------



## lrhorer (Aug 31, 2003)

reneg said:


> I don't know how tech savvy your parents are, but if it were me, I'd start simple and only use pyTivo. I think pyTivo is the simplest to use for non-technical folks because the share(s) show up on the Now Playing List.


True, but the transfers will be much, much slower, especially for 720p. People tend to be impatient, and I suspect his parents will find the pauses and delays to be much more annoying and problematical than merely having to go to the showcases menu before going to the NPL, as opposed to going directly to the NPL. I also don't know of anyone who has not been impressed by the vidmgr list as opposed to the TiVo NPL.



reneg said:


> I'd also, run a wired connection to the other Tivo. If you want more capability for push, I also recommend vidmgr with HME for Python.


Agreed, on both counts, but I don't think he will really want to set everything up and then go back and recode all the videos again.



reneg said:


> Windows 7 will handle pyTivo just fine and is rock solid in my experience.


It is as rock solid as hot butter in my experience. One of the technicians who works for me, a pretty savvy guy, was given a Win7 laptop when his XP laptop failed about four weeks ago. Since then he has had to open 27 tickets, only 1 of which was a hardware problem. (A bad USB / Serial converter.) My sister-in-law recently bought a new PC with Win7 on it. She's had nothing but trouble with it. It's gotten so she doesn't even use it, instead opting to user her old XP and Win2000 computers, despite the fact they have smaller screens and are much, much slower.

More importantly, using Windows for *ANY* server is a poor idea, especially a version designed for a workstation. If anything, I would say go with Windows Home Server, but even that is not the greatest idea. Any server running a GUI is not a best practice. This is triply the case if the server is to be administered remotely.



reneg said:


> I'd recommend that you stick to an OS that you are comfortable with because you will wind up being technical support.


I consider that a foolish outlook. Going with a new system has benefits to the user far beyond any that may accrue for the job at hand. Intimate knowledge of more than one computer system not only looks good on a resume, it also brings greater value in extended skills to the employee which can aid him at his job. In short, learning the additional system is the best idea even if it weren't the better solution for his project at hand. The fact he might spend easily $1000 - $2000 less for a superior solution doesn't hurt, either.

Having been forced to support Windows systems remotely for the last 20+ years, and at the same time enjoying supporting *nix systems during that same time frame, my best advice is, "Don't do it!" when it comes to remotely administering a Windows system.

If the OP is truly incapable of configuring and administering a Linux server - which is vastly easier than configuring and administering a Windows workstation - then I'm not sure he should be really considering this project. OTOH, it sounds to me like the OP is up to it. He doesn't sound like a duffer.


----------



## reneg (Jun 19, 2002)

I'll pass on the OS bashing/debate.


----------



## ThAbtO (Apr 6, 2000)

I have done .mkv push straight to my THD without any conversion.


----------



## jcthorne (Jan 28, 2002)

ThAbtO said:


> I have done .mkv push straight to my THD without any conversion.


Hmmmm, No, you have not. It may look that way to you, but pyTivo converted the file either to .mp4 (very recent transcode capablilty) or to mpg2 before the transfer.

Either way, tivo cannot play .mkv files and its only a subset of mkv that can transcode on the fly. Tivo accepts mpeg2 or mp4 containers only. mp4 can contain h264 and ac3 audio if properly formatted.

For the OP, since this is a system to be used by your parents, simple is better for thier end. pytivo with vidmgr and all the video stored as correctly encoded mp4 files will result in a very smooth operating system with nearly zero hickups on the user end.

One other aspect of this proposal you need to consider is power consumption. Your proposed desktop PC based 'server' is a power hungry waste and will likely consume more $$ in power than its initial cost in the first couple years. Dedicated, low power file servers are much more efficient and reliable. I am partial to the Synology line but there are other well supported ones as well. If you want to handle only video and photos, pytivo, vidmgr etc can all run on the linux based server. I had trouble with music but if that is not in your game plan on the tivo, you are good to go with a known well working solution.


----------



## freality (Apr 16, 2006)

I was under the impression that either pyTivo or StreamBaby would do on-the-fly transcoding of either DivX or 720p mkvs so that I wouldn't have to worry about encoding to mp4. Is that not the case?

Also, this system I'm planning on setting up would double as a PC to be used for normal web surfing, etc. My parents are not tech savvy at all, which is why I wanted to go with Windows 7 (since that's what they're already used to).

I suppose I could run an Ubuntu virtual machine on the box, but would rather just use the Windows installers/services, if possible.

Any sort of PC management would have to be me remoting in via RDP or Teamviewer or something. Basically, I want my parents to just be able to select movies strictly from the TivoHD and Series3.

EDIT: In an effort to start using the correct terminology, I want my parents to be able to PULL standard-def DivX and high-def 720p mkv content from the TiVo interface.

EDIT2: Okay, now I see that the aforementioned vidmgr app will allow a PUSH request, but still using the TiVo.


----------



## lrhorer (Aug 31, 2003)

jcthorne said:


> For the OP, since this is a system to be used by your parents, simple is better for thier end. pytivo with vidmgr and all the video stored as correctly encoded mp4 files will result in a very smooth operating system with nearly zero hickups on the user end.


Absolutely, although it may (or may not) be less trouble for him initially to leave the SD content as .mpg, presuming it is .mpg in the first place. If not, then I definitely agree h.264 with ac3 audio in an MPEG4 container is the way to go, even for SD. It is definitely the way to go for HD video. VideoRedo TVSuite version 4 supports this profile right out of the box, although I don't think it can read .mkv files.



jcthorne said:


> One other aspect of this proposal you need to consider is power consumption. Your proposed desktop PC based 'server' is a power hungry waste and will likely consume more $$ in power than its initial cost in the first couple years. Dedicated, low power file servers are much more efficient and reliable.


Unless he persists in wanting to recode on the fly, and provided he does not require an extremely expandable solution (more than 5 drive spindles) you are absolutely correct.



jcthorne said:


> I had trouble with music but if that is not in your game plan on the tivo, you are good to go with a known well working solution.


Did you try Galleon? It's my preferred server for music.


----------



## lrhorer (Aug 31, 2003)

reneg said:


> I'll pass on the OS bashing/debate.


OK, then think about this: If none of us had ever tried a new system, we would still all be using Commodore 64s or DOS 1. Not wanting to learn a new system is the poorest possible excuse for choosing an inferior platform for a solution. One should always *WANT* to learn new things, and if a new solution requires something different, then getting to learn a new system is one of the best reasons to choose a new platform. Choosing a path that will ultimately provide more headaches just because it is more familiar is a fool's errand.

All that is aside from the fact working with a new system is a lot more fun than dealing with the same, tired old problems again and again.


----------



## lrhorer (Aug 31, 2003)

freality said:


> I was under the impression that either pyTivo or StreamBaby would do on-the-fly transcoding of either DivX or 720p mkvs so that I wouldn't have to worry about encoding to mp4. Is that not the case?


It's been a long while since I looked at Streambaby, so I'm not sure. PyTivo certainly does, but performance suffers if the system has to transcode or worse fully recode. Ffmpeg, the codec underlying pyTivo is certainly capable of it (as long as the build you are using has both the necessary coder and decoder compiled in), but it will inevitably slow down the transfer. The slow down will likely be fairly minor if only a small transcode is required. It will be massive if a full recode is required. On the other side of the coin, a truly puny processor by modern standards is all that is required for a simple transfer or perhaps a minor transcode. A super-racehorse of a processor is required if one wants to recode in a reasonable amount of time.



freality said:


> Also, this system I'm planning on setting up would double as a PC to be used for normal web surfing, etc. My parents are not tech savvy at all, which is why I wanted to go with Windows 7 (since that's what they're already used to).


I do not recommend this, at all. It's asking for trouble, especially under Windows. Any workstation running Windows is almost invariably going to wind up with a corrupt registry. The registry was a *HORRIBLE* idea at the outset, and the way it has been used in practice by developers is hideous. Even more basically, the workstation is going to be prone to problems as simple as the user shutting down the system. Best practice is for any server to be headless: no mouse, keyboard, or monitor attached for routine operations. It should sit in the corner untouched by users. AS far as your parents are concerned, it should be a black box.

Note this advice I am giving you is based upon many years of supporting remote applications, including TiVos and their 3rd party apps as a professional engineer. You are not required to take it, but it is I believe the avenue that will result in the least aggravation and best performance as the years pass for you and your parents. It may require more learning and more puzzlement for you at the outset. It's hard to say what the experience will be for your parents, because to some extent that may depend on how fast you become proficient at administering the system.

One additional note: if you do decide to go the Windows route, then you had better be really, really good at hand editing the registry. Regedit is the Windows app I use more than any other when administering the Windows workstations.



freality said:


> I suppose I could run an Ubuntu virtual machine on the box, but would rather just use the Windows installers/services, if possible.


Definitely not the best idea. Running, and more importantly administering a service under Linux is easy and robust. Nothing particularly special is required for an app to run as a service. Under Windows it can be a major pain, unless the app has a good service wrapper. Under Windows Server, it can be somewhat easier *IF* the application is written to be a service. Just look at all the threads on this website saying, "I am having trouble with xxx running under WHS". Given this is a TiVo website, it's not surprising that "xxx" is usually TiVoDeskTop, but the issue applies more generally.



freality said:


> Any sort of PC management would have to be me remoting in via RDP or Teamviewer or something. Basically, I want my parents to just be able to select movies strictly from the TivoHD and Series3.


I suggest SSH. It is by far the easiest, fastest, and most robust method of administration, and it will work with miniscule bandwidth. If you insist on GUI management, then I suggest TightVNC and OpenVPN. Both have Windows clients and servers. An additional advantage of Linux here is if you run OpenVPN, the Linux machine can also serve as a VPN server for all the devices on your parent's LAN, including the TiVos, and whatever workstations they have. using TightVNC, you can log in over the top of their session and watch what they are doing as you assist them with whatever problem they are having. This is halfway to being impossible on an XP server, and I suspect it is even worse on a Windows 7 server. It may be easier on a Windows Home Server machine. I'm not familiar enough with it to know.



freality said:


> EDIT: In an effort to start using the correct terminology, I want my parents to be able to PULL standard-def DivX and high-def 720p mkv content from the TiVo interface.


It can be done, but definitely requires a transcode or recode. I think the latter in both cases, but I am not certain.



freality said:


> EDIT2: Okay, now I see that the aforementioned vidmgr app will allow a PUSH request, but still using the TiVo.


Correct. The HME interface allows more interaction between the server and the TiVo, providing the ability for the server to paint screens on the TiVo and run various applications on the server in response to button presses on the remote control. The HMO interface is much more limited, only allowing the server to provide a folder structure on the NPL and to transfer a video upon request from the TiVo.

In the case of vidmgr, this means the app can provide a replacement for the NPL. The major limitation (and it's really not that bad) is that HME does not allow for starting to play the video after the transfer is initiated. Instead, the user must exit vidmgr (left arrow a few times, or hit the <TiVO> button), go to the NPL, and select the video to play. There also may be a delay of quite a few seconds (but less than a minute) before the video shows up in the NPL. There is actually a similar delay for selecting a pull, but the "Please wait" screen tends to yield an impression that less time is passing.


----------



## reneg (Jun 19, 2002)

freality said:


> Also, this system I'm planning on setting up would double as a PC to be used for normal web surfing, etc. My parents are not tech savvy at all, which is why I wanted to go with Windows 7 (since that's what they're already used to).
> 
> I suppose I could run an Ubuntu virtual machine on the box, but would rather just use the Windows installers/services, if possible.


Keep it simple for both you and your parents. Windows 7 is the best choice for what you've described.


----------



## jcthorne (Jan 28, 2002)

lrhorer said:


> Unless he persists in wanting to recode on the fly, and provided he does not require an extremely expandable solution (more than 5 drive spindles) you are absolutely correct.
> 
> Did you try Galleon? It's my preferred server for music.


Just FYI, my Synology 1511 NAS is expandable to 15 spindles (approx 42TB RAID with current approved drives and available OS).

When I fubared the NAS trying to get java running for Harmonium, I stopped development on the server and moved everything back to a low power old laptop. It has a side benefit in that the Synology NAS goes to sleep much of the day where when downloading and running the server apps, it kept the array spinning 24/7. The combo of the old laptop (a dell 610) and the NAS uses less power overall and is easier for me to maintain.


----------

