I think I am 95% finished with a solution to the 8.3 issues. So far I have been able to craft a solution that allows browsing through as many folders as you like without any major functionailty changes. The only difference is that each folder may take an additional half second to load.

Tonight I was able to browse 7 levels deep into a folder and come back with no problems.

The only remaining issue is that if I try and play any files in a subfolder TiVo restarts . Not exactly a highly requested feature. I think this is just a small problem that can be solved tomorrow, but I am just too tired to keep dealing with the 5 minute restart of my TiVo any more tonight.

Hopefully tomorrow I will have it completed. **Fingers Crossed**

Kevin

__________________To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A much better place to receive pyTivo help and updates.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

OK, here's a theory:
The reason these files work on TDN is because it IS transcoding them. Although the specs used by pyTivo to define a TiVo compatible file are all met, there is still something about the VOB's that chokes the Tivo, so they need ffmpeg to re-encode (transcode) them.
...snip...
This will force pyTivo to transcode any file with a .vob extension. If my theory is correct, this will make your .vob's work OK with pyTiVo. (If not I'll give you a complete refund ).

Works great! Thanks dlfl.

Maybe you (or anyone else) can help me with one other thing: pyTivo isn't padding the top & bottom of transcoded video enough. My TV is a 4:3 and the vob I'm watching is 720x480. Parts of the left & right sides of the video are beyond the TV screen with just a little bit of black padding at the top & bottom of the screen. I've tried playing with the settings in transcode.py and the settings in pyTivo.conf, but without success.

In pyTivo.conf I tried changing aspect169 to true & then to false and also tried changing the width= to 640 & height= to 480, but no joy. I think I probably need to alter the transcode.py file, but can't quite figure it out (not a programmer). Specifically, the section with

I don't know how the "if endHeight % 2:" is interpreted, but I think that's the key to the problem. Any ideas on how to pad the top & bottom more for videos that are 720*480 so that I can see the entire 720 width of the video?

Glad the .vob fix worked! (It's nice to have a theory confirmed now and then!)

You have now encountered the infamous "Aspect Ratio" issue. If you search this thread for "aspect", you will see it's not a new one. First I believe there is a relatively simple solution (involving a few more lines added to transcode.py) but I won't be able to do it until a few hours from now.

Basically, there is "Display AR" (DAR) and encoding AR or frame AR (FAR). If they are the same, the pixels are said to be square (pixel AR or PAR = 1:1). In general pixels are NOT square for mpegs (or vobs). Typically a 720x480 FAR will be used in all cases but displayed as either 640x480 (4:3) or 853x480 (16:9). There is a value in the mpeg (vob) file that tells the display system what the DAR (or equivalently the PAR) is so it knows how to stretch or shrink the pixels horizontally.

Unfortunately there is no way to get DAR or PAR from ffmpeg, which pyTivo uses to get info about a video file. Thus pyTivo makes the assumption of square pixels, i.e., DAR = FAR (at least in most cases). The input video was 720x480 (FAR) and you had your config AR (actually it is the DAR) set to 4:3. pyTivo assumes square pixels so your desired DAR is 1.5:1. To get that DAR it must put in the padtop and padbottom parameters you see in the debug file ffmpeg command line. The calculation is based on a 640 display width, so a height of 2/3 of 640 or 426 pixels is needed. If you subtract your top and bottom paddings from 480 that is what you get, and what you see in the -s (size) option of the ffmpeg command line.

I think the fix is just to put an if statement near the top of function select_aspect () to detect the file extension of ".vob" (just like my previous patch) and just set the aspect to whatever you have selected (4:3 or 16:9) and set the width and height to whatever you have in your config file (or the defaults) , called TIVO_WIDTH and TIVO_HEIGHT in this function.

For TiVo compatible mpeg2's this issue doesn't arise because they are not re-encoded with ffmpeg and thus this function isn't even called.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I think I am 95% finished with a solution to the 8.3 issues. So far I have been able to craft a solution that allows browsing through as many folders as you like without any major functionailty changes. The only difference is that each folder may take an additional half second to load.

I think we can all live with that

Quote:

Originally Posted by KRKeegan

The only remaining issue is that if I try and play any files in a subfolder TiVo restarts . Not exactly a highly requested feature. I think this is just a small problem that can be solved tomorrow, but I am just too tired to keep dealing with the 5 minute restart of my TiVo any more tonight.

Heh, details, details.

Quote:

Originally Posted by KRKeegan

Hopefully tomorrow I will have it completed. **Fingers Crossed**

As ws said by someone else earlier, great news, can't thank you enough :-)

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

dlfl, thanks for taking the time to help out & for writing the detailed instructions, but your suggestion didn't quite work. After your mod, the video is taking up the full height of the TV screen (480), but the video is still coming out of pyTivo as 704 pixels in height. I think I want 720x426 (instead of 704x426) - both of which are later padded to be 7--x480.

The main thing I wanted was to get the entire 720 width, but it's still coming out as 704 pixels - actually, I think it might really be less than that on the TV screen. Debug log:

I was able to get the output to be 720 pixels, but it made no difference on the TV screen, it still didn't show the complete width of the actual DVD video. Here's the result I got with the last set of mods:

1up,
I infer that from the 704 width in the ffmpeg output stream that you had width=704 in your pyTivo.conf file, correct? If so, try the transcode.py with my mods but with width set to 544, or just delete the width= line. Using width=720 may also work but try 544 first.

Other than that, I can see no possible problem with the video and audio output streams from ffmpeg. In fact the 704 width does not cause a width problem on my S2 DT. My only thought is that I see from your tsn (540xxxx....) that this was going to your S2 and it's possible it doesn't handle the 704 width correctly. Different models will handle a different subset of the recommended widths in the distributed pyTivo.conf file comments. 544 was determined by experimentation to be most compatible with most tivo models.

When you use a width that is compatible with your TiVo model (whether it is 480, 544, 720 or whatever), the TiVo knows from the (Display) AR encoded in the file (4:3 in this case) that that width needs to be spread across the full width of your screen (corresponding to a 640x480 display in this case).

Good luck. Other than this, I can't think of anything else for the moment.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Thanks for all the help dlfl! After screwing around for about 20 hours (running back & forth between the living room & my office dozens of times) I finally got it working. It's an ugly cludge, but it works ;-) Here's what I changed in pyTivo.py (I also indented the original code.):

Finally, I kept the defaults in the pyTivo.config file. This works for my 4:3 television - for this DVD rip anyway. I'll have to see if my cludge ruins it for rips that aren't 720x480 and for TIVO compatible files. <fingers crossed>

Well, looks like you're having fun and getting control of it! I can't completely analyze what you've done without knowing for sure what width you had set in the config file (or none?). You say the "defaults". Do you mean values that were already in the file as distributed or the true default, which is 544 width (which you get if you don't have a width= line at all)? (One distributed version had width=1440 and height=720, which are definitely not defaults in any sense.)

You didn't say if you tried my last suggestion:

Quote:

... try the transcode.py with my mods but with width set to 544, or just delete the width= line.

If not, I hope you will try it -- I'm very curious to see if it works.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

OMG, I can't even begin to explain how frustrating this whole process was, nor can I estimate the number of hours wasted on this. I would say I want to strangle an engineer's neck at TiVo, but I received some good news from them(more on that later).

2 Good things to report:

1. Version 194 is stable and supports subfolders in TiVo software version 8.3 . It is available on the wiki. If after you install it you have issues, try restarting your TiVo once to clear the cache, and note that you can only have ONE server(pyTivo, or TiVo.net(*I think)) on your network.

The bad news, there are caveats to it I am afraid. Here is what I can think of so far, I am sure there are more.

MAJOR CAVEAT - YOU CAN ONLY HAVE ONE SERVER IP ON YOUR NETWORK

You can still have multiple folders listed in your configuration file. You just can't have a server at one IP and another server at another IP. ** I believe you can still have a non-subfolder server at another IP, such as desktop 2.4, but I am not positive about this.

Browsing is slower - I had to add a sleep function of 25 milliseconds. Plus there are a lot of extraneous commands and lookups.

Title Wrong - When descending from a folder the title will remain as the highest folder you entered. This is stuck this way till you reach the root folder. It is only cosmetic and is an error inside the TiVo code that I can't fix.

New Setting in Config File - hack83 is a new setting under the server settings within the config file, if it is not present it will default to TRUE. So if you don't have version 8.3 on your machine or you just want to disable this function set hack83=false. For most people you don't need to worry about this since the default is true using your old config file will enable 8.3 support by default.

That is all the problems I can think of right now.

2. The next piece of good news is that I received a response from an individual at TiVo who said he will forward the issue onto the correct department and requested contact information for me. So hopefully this means we can get this bug solved soon and go back to using pyTivo normally. **Fingers Crossed**

__________________To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A much better place to receive pyTivo help and updates.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

The transcode messages correspond to the three video files that are in that subfolder.

Hope this helps!

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

dlfl's, problem is fixed. The changes were half committed to the branch half to the trunk. So the post commit hook built a zip of the broken trunk. The branch will now build zip files as well. But my quick test with it I did have my tivo reboot, so I am going to leave it on the branch for a bit longer.

__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A python real time video transcoding server for TiVo.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

dlfl's, problem is fixed. The changes were half committed to the branch half to the trunk. So the post commit hook built a zip of the broken trunk. The branch will now build zip files as well. But my quick test with it I did have my tivo reboot, so I am going to leave it on the branch for a bit longer.

Huh?

I got my new files by downloading the plain text full files from the appropriate changesets (193 and 194, trunk or branch per the changeset).

Is there a fix to my empty subfolder problem? If so how do I get it? Is the distribution ver. 199 zip on the download page my fix? Is this the one that rebooted your TiVo?

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Well, looks like you're having fun and getting control of it! I can't completely analyze what you've done without knowing for sure what width you had set in the config file (or none?). You say the "defaults". Do you mean values that were already in the file as distributed or the true default, which is 544 width (which you get if you don't have a width= line at all)? (One distributed version had width=1440 and height=720, which are definitely not defaults in any sense.)

dlfl, after your pevious post , I checked my pyTivo.config and you were right, it was set to 640x480 when I first tried inserting your code into transcode.py

I also tried some of the above with the height at 426 and then at 360. And I also tried some of the above with the width at 544. Still no joy. Only after playing around with the padding in the select_aspect(inFile, tsn = '') function did I start seeing some results. I then tried all those permutations again with different changes to select_aspect function, but found that I could only get the results I wanted by using what I finally came up with. (I tried combining all of my custom code lines into one line, but I don't know enough about python coding and it kept breaking, so I left it as is.)

I tried it today with another 720x480 DVD and it works great, but I haven't tried it with a vob file that isn't 720x480 yet. Hopefully this solution can be incorporated in some fashion into pyTivo by the developer(s). (Like write some code that detects 720x480 videos and pads according to my coding?)

I'm confused.
As I understand it, when you tried it "my way" you observed:

Quote:

.....the result was the same - the picture was filling the TV screen with no padding.

Isn't that the desired result if your source is a 4:3 VOB and your TV is 4:3 ? (Why would you want black bands at sides or top/bottom in that case?)

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Always getting an empty folder seems to be a result of having or recently having had a other server serving subfolders running.

johnkfisher:
Any file named pyTivo-xxx.zip is from the trunk and is the "stable" version, which at this point has no extra support for subfolders on 8.3

Any file named pyTivo-subfolders-8.3-xxx.zip is from the subfolders-8.3 branch and has experimental support for subfolders on 8.3, but being experimental may cause tivo crashes , burn your house down and eat your dog (Not that I am saying the trunk will not, it is just much less likely).

__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A python real time video transcoding server for TiVo.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

And don't forget: steal your pickup truck. You guys are getting loopy from all the hacking on the 8.3 problem, I think!

I get the same subfolder result with 191, 194, 198 and 199: Nothing shows in the NPL for subfolders. Maybe a reboot before each test would make a difference (?) (But not tonight.)

I suppose TiVo won't change anything until their next scheduled update.

Thanks for your efforts. Even if I had to live with the 191 functionality indefinitely it's a great app!

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I just put the subfolders-8.3-198.zip up, replacing everything in my pyTivo folder with the stuff in this zip, and then editing the config file to look at the right ffmpeg location, to look at the right folders for my videos, and to use 1024K as the video bitrate.

Subfolders appear to be working fine, without rebooting my Tivo or my computer. I started a transfer of a video in a subfolder, and that started transferring fine too.

So thanks a bunch!

one question:
In the pyTivo,conf file, why is the video bitrate setting, which is commented out by default, "3Mi"? What does that mean? Am I correct that I can edit this to be something like 1024K or 2048K?

I just put the subfolders-8.3-198.zip up, replacing everything in my pyTivo folder with the stuff in this zip, and then editing the config file to look at the right ffmpeg location, to look at the right folders for my videos, and to use 1024K as the video bitrate.

Subfolders appear to be working fine, without rebooting my Tivo or my computer. I started a transfer of a video in a subfolder, and that started transferring fine too.

So thanks a bunch!

one question:
In the pyTivo,conf file, why is the video bitrate setting, which is commented out by default, "3Mi"? What does that mean? Am I correct that I can edit this to be something like 1024K or 2048K?

You are correct about the bitrate setting. It is defaulting to 4096k if commented out. The 3Mi means 3 mega-bits per second .

Question: What model is your TiVo? As you see above my model 649 can't even see anything in subfolders with the 198 version (or any other version).

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

This might be slightly faster in scrolling. I had an epiphany this morning and I went back and simplified the code.

I also fixed some logic errors that were present in the code. I dont think it will change anything, but now the path to each step makes more sense.

Finally, I also added some more debug points to try and help solve some issues.

dlfl I am not giving up on you. I am still willing to try and solve your issue if you are willing to tinker some more with me. If you could install Subfolder 8.3 and repost your debug file that would help. It was lacking some information for me before. Hopefully this will help me figure out what is happening.

__________________To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A much better place to receive pyTivo help and updates.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.