# What is the best format for transferring video from PC to TiVo



## MrJedi (Apr 13, 2011)

I have several .mkv files that I had previously converted to .mp4 using GotSent so I could watch them on my Xbox360 without having to go through the Media Center interface. I can get those to work for about 24 minutes on a TiVo Premier during a transfer then it just stops. If I try to transfer the same file through the Tivo GUI and wait until it finishes the blue light turns off after about 30 minutes, but my file does not show up. If I try to push it via the Desktop Plus interface it hangs and I have reboot my TiVo for it stop trying to transfer, long after the Desktop Plus server has been stopped.

If I do the same thing for a Xvid based .avi I have no issues. I paid for Plus so I could to do this, and it is frustrating that it isn't working. I'm trying to eliminate my need to use my 360 as a streamer so it can be moved to another room.

Also I am using a wireless "gaming adapter" via the ethernet port. This has worked fine for Netflix HD streaming so I'm not concerned about it.

I guess what I am trying to ask is what is the best way to get my original .mkv files to play on TiVo via Desktop Plus?


----------



## wmcbrine (Aug 2, 2003)

MPEG-2 program streams, and MP4 (for Series 3 or later only) are the best formats for "push"; VC-1 also works, but it's flaky. Transfers originated from the TiVo side can only be MPEG-2. All other formats have to be transcoded. I don't know why your particular MP4 transfers are failing, but it would be wrong to generalize from that to thinking that Xvid is better. It's not.

If your program disappears immediately after transfer, that's a symptom of the actual transfer size exceeding the size that was estimated beforehand. (There might be other causes, too, but that's the only one I know of.) This can only happen when the file is being transcoded.

You should probably try pyTivo.


----------



## MrJedi (Apr 13, 2011)

Sorry if you thought I was implying Xvid is better than MP4. Not at all what I was saying. I am just saying I'm not having issues with Xvid and I am having issues with MP4.

Giving up on Desktop Plus and just going to pyTiVo isn't a solution I am prepared to explore at this moment for multiple reasons. I looked in to it prior to paying for Desktop Plus and I have yet to find a good resource that explains from start to finish how you install AND use pyTivo. Lots of stuff on installing it. Very little on how to use it other than troubleshooting.

Really all I want to be able to do is dump a bunch of files on to my TiVo so I can watch them anytime without having to worry about streaming. If that means I have to use some sort of converter first then I'm okay with that. If that is the case what is the recommended template to use?

i.e.
Video: ###x### (Resolution) ####kbps (bitrate) ##fps (Frame rate)
Audio: AC3, mp2, or mp3 codec? #####Hz (Frequency) # (Channels) ###kbps (bitrate)


----------



## Dan203 (Apr 17, 2000)

If you want the most trouble free transfer then your best bet is to convert them to MPEG-2 Program Streams. (aka .mpg files) TiVo can handle these natively and, provided they are encoded correctly, will have no trouble with trick play features will playing them.

As for a template... For audio I'd recommend AC3. If the source file has AC3 leave it as-is. If the source file has some other 2ch codec then convert it to AC3 2.0 48KHz at 256Kbps. For video you want MPEG-2 but the bitrate, resolution and frame rate are going to depend on your TiVo and the source quality. If you have a S2 TiVo then you want to use 720x480 or 352x480 (depending on source resolution) and 29.97fps for everything. Bitrate should be between 2.5Mbps and 6Mbps depending on how much movement is in the file. For S3, HD or Premier units you can encode at HD resolutions as well. (i.e. 1280x720 and 1920x1080) However the options get a bit more complicated. For example 1280x720 is always progressive so it typically has a frame rate of 59.94fps. However 1920x1080 can be interlaced or progressive, so it can be either 29.97fps for interlaced or 59.94fps for progressive. The bitrate used can vary wildly depending on the movement and the resolution. You're really going to need to do a bit of trial and error to figure out what works for you.

Luckily if you have a multicore PC from the last 3 or so years encoding to MPEG-2 should be relatively quick, so it shouldn't require a huge time investment to figure out which settings work for you.

Edit: One thing I forgot to mention... for the most trouble free trick play always set the GOP length for your encodes to 15. Higher GOP lengths, or variable GOP lengths, can create better compression but will also mess with TiVo's trick play ability.

Dan


----------



## wmcbrine (Aug 2, 2003)

MrJedi said:


> ... I have yet to find a good resource that explains from start to finish how you install AND use pyTivo. Lots of stuff on installing it. Very little on how to use it other than troubleshooting.


I'm not sure what you're looking for. Using it is trivial. From the TiVo end, it's the same as TD -- pull the videos from the bottom of the NPL. From the computer end (which you have to use if you want to push MP4s without transcoding), you just go to the web interface, http://localhost:9032/.


----------



## MrJedi (Apr 13, 2011)

Never messed with GOP before (didn't know what it was until I just looked it up). Looks like I have been using Auto in "Super" and I have no idea what the settings are in "GotSent". I will make sure to set that when I mess with it tonight.

I'll try the settings listed and see how it works on my premier. I hope well, because I have several hundred GBs of .mkvs


----------



## MrJedi (Apr 13, 2011)

wmcbrine said:


> I'm not sure what you're looking for. Using it is trivial. From the TiVo end, it's the same as TD -- pull the videos from the bottom of the NPL. From the computer end (which you have to use if you want to push MP4s without transcoding), you just go to the web interface, http://localhost:9032/.


That is a great example of my point. After spending hours looking through the wiki and the forums it was just today that I learned you get to the interface through that web address. I still haven't seen what the actual interface looks like once you get to that address.

This isn't an attack on you. It seems you are heavily invested in the project, and I appreciate very much the work put in to open-source projects and I donate to all projects I end up using regularly or have saved me considerable time or money. However, as I stated previously I have already paid for TD+ and would rather try to troubleshoot it, instead of simply deciding I wasted $25 and move to the next option.


----------



## Hyrax (Sep 1, 2007)

MrJedi-
To answer your original question, I've found MP4 to be the better format. They're smaller and transfer from your PC to the Tivo faster. I've never actually moved anything to the Tivo except shows I've moved off it, so I cannot comment on other sources (ripped blu-ray disks, for example). I have heard that ripped DVDs work nicely.

Honestly pyTivo is really an easy to use option to move a long list of files to the Tivo. I went through all the same head scratching you describe, but I just decided to go ahead and try it. When I got stuck, I asked questions and I very quickly was up and running. 

Now, I use kmttg to move stuff off the Tivo and pyTivo to push shows back. In between I have kmttg transcode the Tivo files to MP4 because of the faster transfers.

Good luck


----------



## Phantom Gremlin (Jun 20, 2002)

Dan203 said:


> As for a template...


Thanks. I've bookmarked your post. That is great information.


----------



## Stuxnet (Feb 9, 2011)

MrJedi said:


> I have already paid for TD+ and would rather try to troubleshoot it, instead of simply deciding I wasted $25 and move to the next option.


That's known as "sunk cost". Money spent. Money you won't get back. Apart from pride and emotion, how you use TD or PT boils down to which best meets your need. My approach is similar to Hyrax except I use RipBot for mp4. IMO, PT is quite nice.


----------



## speed_phreak (Apr 6, 2006)

I am with you OP. I wish I had a rock solid method of transcoding MP4s for push to my TiVo. However, I use pyTivo to get them there, and you should to. You are going to have to throw in the towel on Tivo desktop...

After you realize pyTivo is the answer, there is this site which tried to provide a bit of a template for settings for use with handbrake, but I have had limited success...

http://code.google.com/p/streambaby/wiki/video_compatibility

This script is awesome for just mkv's

http://www.tivocommunity.com/tivo-vb/showthread.php?t=448424


----------



## jcthorne (Jan 28, 2002)

If you want rock solid mp4s for transfer to tivo, head over to the home media thread where there is a how to of sorts going on for MeGUI. Been using it for years to generate mp4s for TivoHD and Premiere and it WORKS. Perfect encodes that tivo likes, plays well and permits ff/rew.

As for the OP, many have tried and given up on Tivo Desktop because Tivo just does not support it and its buggy. Lacks many features. PyTivo is a bit of a learning curve to get started but once you do, its very easy and just works.

MP4s stored on your tivo will be FAR smaller for the same video quality and will transfer much faster tot he Tivo. Mpeg2 video is really outdated technology and very inefficient for HD video sources.


----------



## jcthorne (Jan 28, 2002)

Dan203 said:


> Edit: One thing I forgot to mention... for the most trouble free trick play always set the GOP length for your encodes to 15. Higher GOP lengths, or variable GOP lengths, can create better compression but will also mess with TiVo's trick play ability.
> 
> Dan


Does this recomendation apply to h264 encodes as well? I have never played with this parameter but sounds useful.


----------



## MrJedi (Apr 13, 2011)

After trying, .mkv, .mp4, and .mpg last night I gave up on TD+. .mpg worked, to a degree but it took 3.5 hours to create a 2GB file. A smaller test file worked no problem but an hour long .mpg was taking too long to transfer and seemed destined to error out so I cancelled.



jcthorne said:


> As for the OP, many have tried and given up on Tivo Desktop because Tivo just does not support it and its buggy. Lacks many features. PyTivo is a bit of a learning curve to get started but once you do, its very easy and just works.


While the above was happening I attempted to set up pyTivo. After looking at the pyTivo Wiki, forum, google searches, and here I was able to piece enough together to install it. Intiating transfers of .mkv from the Tivo or from pyTivo resulted in a file that the audio dropped out every half second. Initiating transfers of a mp4 from the Tivo worked, but audio would eventually not work, and FF/RW would cause loss of audio as well. This occurred on the same .mp4 using three different encoding methods. I was able to initiate a transfer of .mp4 from pyTivo only once. Every time after that it would run for a few minutes and stall. No error codes in the console or TiVo. Blue Light would stay on, but no activity was occuring per the lights on the network adapter. When I went to bed a transfer was in the queue that no activity was happening on. I rebooted pyTivo and the TiVo multiple times along with changing the default directly hoping to get the transfer to error out like I had done earlier in the evening when I had an issue with no luck. The same was the case when I left for work this morning. As soon as I can get that transfer cleared I think I am done with this experiment. At the very least I am done until this weekend.

I'll just have to stick with my Xbox360 for streaming until I move it to its new location. After that I will just use the hdmi out on my laptop until I can afford to pickup a used 360 or WD TV.

I appreciate the help in the interim, especially the tools for creating .mp4s.

EDIT: I thought about this and want to make it clear that I don't blame pyTivo or TD+ for the issues surrounding playback of the .mp4. This seems more like an issue with the encoder I am using or with TiVo's ability to play these files. After having dinner I am a little less grumpy and I am trying again.


----------



## jcthorne (Jan 28, 2002)

The content requirements for sucessful mp4 files for tivo are quite specific. I'll outline the basic ones for you. The file transfer lockup you experienced is the result of a mp4 file that tivo does not like. Rename the file, reboot tivo and pytivo and they will error out the transfer for a missing file and then you can try again with the newly built mp4.

mkv and other files require on the fly transcoding to mpeg2 to transfer to the tivo, be sure you are using radian's latest ffmpeg build for pytivo.

For mp4s that are correctly built, they tranfer as is and very fast.

mp4 container with the first track h.264 video, AVC high profile level 4.1 or lower. Second track audio, ac3 5.1 at 640kbps or less. The file should be muxed into IMSA standard mp4 container optimized for streaming.

I use MeGUI for building such files. Many mkvs can simply have the streams extracted and remuxed into an mp4 container without recoding.

Thats about it for a Premiere. For a Series 3 the resolution and bitrates are a bit more constrained also.


----------



## Dan203 (Apr 17, 2000)

jcthorne said:


> Does this recomendation apply to h264 encodes as well? I have never played with this parameter but sounds useful.


It depends. There are two ways to send H.264 video to your TiVo. If you simply go to the TiVo, click on the computer icon and then select the program then you are pulling the program to your TiVo. In pull mode TiVo can only accept MPEG-2, so TiVo Desktop, or pyTiVo, reencodes the H.264 to MPEG-2 as it's being transferred so it really doesn't matter how the H.264 file is encoded. Now if you're using pyTiVo it has a web interface that you can access via your PC push programs directly to your TiVo. In push mode TiVo accepts H.264 MP4 files without any recoding. So if you plan on using push mode then using a consistent GOP length for your H.264 encodes is probably beneficial.

Although GOPs in H.264 work a little different then MPEG-2, so I'm not exactly sure how TiVo treats them. In MPEG-2 a GOP always signifies a safe entry point. Meaning that you can start decoding at the start of any GOP and the video will be decoded properly. In H.264 GOPs can be "open" which means that it's possible for frames inside one GOP to reference frames outside of that GOP meaning that if you start decoding on an arbitrary GOP there is a potential for errors and artifacts. The only way a GOP is guaranteed to be a safe entry point is if it starts with an IDR frame rather then an I frame.

Again I'm not sure how exactly TiVo handles this with their trickplay functionality. For simplicity and compatibility they probably use any GOP and accept the potential for artifacts. So if you want to guarantee smooth trickplay with no artifacts you'd need to encode your files to use IDR frames for every GOP. Although doing this will limit compression a little so you may need to use a slightly higher bitrate then you would have otherwise.

As you can probably tell from my severely oversimplified explanation H.264 video encoding can get a bit tricky. It's even harder when you start to consider device compatibility and the ability to properly seek or trickplay the content. This is probably one of the reason TiVo has not added native H.264 support to the normal pull mode. There is a lot of potential for errors with H.264 and they probably don't want to deal with trying to support it.

Dan


----------



## orangeboy (Apr 19, 2004)

Through trial-&-error, I found that the Premiere adheres pretty strictly to the H.264 level 4.1 spec regarding ref-frames in 1080p content (I haven't tried 1080i). Thou shalt not have more than 4 ref-frames. 1080p content encoded with 5 ref-frames sadly will not play at all. There's some technical information that explains why in Wikipedia. From what I understand, more than 4 ref-frames exceeds the decoding buffer.


----------



## MrJedi (Apr 13, 2011)

Okay, I had to clear a bunch of failed jobs from the pyTivo queue, but after doing so it seems like I have it working.

I am using the mkv2tivomp4 conversion tool now for my files. I tested this with one file by initiating from the TiVo. It worked no problem. Then I queued up several files from the TiVo and they all transfered and worked. Next I initiated a transfer of a single file from the pyTivo web interface and that worked no problem.

Next, I wanted to test the Tivo Metadata generator so that I could have my transfers in a folder specific to what I am transferring. I tested that with a couple of smalle shows and it that worked. Since then, I have transfered 2 full seasons of 2 different tv shows with no issues.

My only issue (but not really) is I have no option to pull recordings off of my TiVo in the pyTiVo interface. I say not really because except for Network shows Time Warner has the flag on for everything that isn't Network or Cable in the Classroom which means no movies from Turner Classic Movies (unedited and uncut). Network shows can be found on Torrents, Hulu, and Netflix so I have no need to save those. While I was typing this I figured there was an issue with my config file. Sure enough, the Tivo2Go wasn't set up.

So.. Now I can move my Xbox 360 and have all my shows on one box. Thanks everyone for the feedback on different tools.


----------



## lrhorer (Aug 31, 2003)

wmcbrine said:


> If your program disappears immediately after transfer, that's a symptom of the actual transfer size exceeding the size that was estimated beforehand. (There might be other causes, too, but that's the only one I know of.) This can only happen when the file is being transcoded.


Well, not quite - sort of. I frequently run into situations where the file has an error that does not allow the stream to transfer fully. When this happens, unless the user is watching the file as it transfers, the file disappears after the transfer stops.


----------



## lrhorer (Aug 31, 2003)

MrJedi said:


> My only issue (but not really) is I have no option to pull recordings off of my TiVo in the pyTiVo interface. I say not really because except for Network shows Time Warner has the flag on for everything that isn't Network or Cable in the Classroom which means no movies from Turner Classic Movies (unedited and uncut).


If you have a Premier, there's currently no help for this. If you have an S3 class TiVo and want to work around this, go to the "other" TiVo forum and look up my tagline.


----------



## wmcbrine (Aug 2, 2003)

MrJedi said:


> My only issue (but not really) is I have no option to pull recordings off of my TiVo in the pyTiVo interface.


It's there. First you have to fill in your MAK, and the togo_path. Then you should see a list of TiVos in the opening screen, from which you can pull.


----------



## MrJedi (Apr 13, 2011)

wmcbrine said:


> It's there. First you have to fill in your MAK, and the togo_path. Then you should see a list of TiVos in the opening screen, from which you can pull.





MrJedi said:


> *While I was typing this I figured there was an issue with my config file. Sure enough, the Tivo2Go wasn't set up.*


Yeah I figured that out  Thanks. My config file didn't have those options so I had to copy them from the config template.


----------

