Browsed by
Category: TiVo

pyTivo – Aspect Ratio

pyTivo – Aspect Ratio

I have received a number of questions about how pyTivo handles aspect ratios.  Aspect ratios are a very convoluted subject as you will see.  I make no attempt to explain everything, at the end of this page you will see a link to a much longer page that does a better explanation than me.

This is meant to be a quick and dirty explanation of how pyTivo handles Aspect Ratios.

Quick Tutorial on Aspect Ratios By no means is any of this guaranteed to be accurate. This only represents what I believe to be true, if I am making a mistake that causes an error in pyTivo please point it out to me.

There are two types of aspect ratios:
Frame Aspect Ratio
This is simply the ratio of what the file looks like when it plays on your TV which can be determined by:
Width displayed on TV: Height displayed on TV. TiVo accepts files in 16:9 or 4:3 format.

Pixel Aspect Ratio
This is the annoying one. This refers to the shape of the pixels themselves. For example a 1:1 pixel aspect ratio means a perfect square pixel.

Most computer files are saved in 1:1 Pixel Aspect Ratio(PAR) however that is where it ends.  TV, DVD, Film is all distorted to some other PAR.  Infortunately there is no way for us to know when pyTivo opens a file what the PAR is.  For the most part since pyTivo is using computer files it assumes that most files are 1:1.  And then if the file fits an exact dimension of a known non 1:1 PAR pyTivo will use that dimension.

Oh but we are not done. . .

Read More Read More

pyTivo – End Transfer

pyTivo – End Transfer

Both pyTivo and TiVoDotNet suffer the same problem with transfers.  The result is that files which are transfered but not watched are deleted instantly as soon as they finish.  The problem is caused by how we transfer files. 

When TiVo asks for a XviD file from pyTivo TiVo asks for the file size of the file before it starts transfering.  This of course raises an issue, since pyTivo is transcoding the file realtime pyTivo has no idea how large he file will be when the transcoding is done.  I have tried numerous settings and I can’t figure out a command to force FFMpeg to an exact bit rate.  So we usually estimate the file size.

There is also an additional problem with file size estimation.  Estimating the file size too small will cause files to be clipped at the end.  Estimating the file to large may cause TiVo to unnecessarily delete other videos to make room for a file that is not that large.  Also, when a user reached the end of the video TiVo would display an error stating that the transfer had unexpectedly ended even though we have reached the end of the video.

However if pyTivo estimates the file even 1 bit too large(pyTivo never gets it exact, we always have a 2% buffer to prevent the under size issue) TiVo will continue asking for bytes that dont exist.  This really messes with TiVo.  So our temporary hack was to return a 404 error when TiVo asked for the overage of the file.  However this doesn’t appear to be perfect, most of us suffer the early deletion problem discussed above.

So I spent a weekend on this and solved the issue!!

Read More Read More

pyTivo – Play any type of video on TiVo

pyTivo – Play any type of video on TiVo

?All I can say is wow, this is one of the coolest pieces of software.? Let me explain what it is. TiVo has long since allowed you to transfer previously recorded TiVo shows back to TiVo.? They also allow you to transfer non-TiVo shows as long as they are in TiVo format.? However, TiVo format is MPEG2 and has specific size and fps requirements.? Unfortunately no one stores videos on their home computer in MPEG2, mostly because they take up 5-10 times the space of a XviD video.

While I was browsing around the TiVo Community forum?i discovered TiVo.net.? This program ingeniously takes just about any video and transcodes it to MPEG2 on the fly and serves it up to TiVo.? Now I run a linux box as my server and TiVo.net is written in C#, however they recommended a program called mono, that will enable a linux machine to run C#.? It worked, but I kinda found TiVo.net to be a little bulky and prone to crashing.? Not the type of program that I can just put on a headless linux box and forget about.

So I kept looking for a better solution.? What I found was amazing.

Read More Read More