 |
pyTivo Discussion Forum Answers and the development of pyTivo a TiVo transcoding server
|
|
| Author |
Message |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Mon Oct 19, 2009 2:01 am Post subject: |
|
|
Another smaller issue, the video doesn't look all that great. 'Not terrible, but not as good as I thnk it should be from a quality DVD. When I look at the pyTiVo output, I get the following:
| Code: | INFO:pyTivo:192.168.0.102 [18/Oct/2009 20:39:49] "GET /DVD/The%20Butcher's%20Wife/__T00.mpg HTTP/1.1" 206 -
FFmpeg version r11872+debian_0.svn20080206-18, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-libfaad --enable-pp --enable-swscaler --enable-x11grab --prefix=/usr --enable-libgsm --enable-libtheora --enable-libvorbis --enable-pthreads --disable-strip --enable-libdc1394 --enable-shared --disable-static
libavutil version: 49.6.0
libavcodec version: 51.50.0
libavformat version: 52.7.0
libavdevice version: 52.0.0
built on Jul 2 2009 03:48:11, gcc: 4.3.2
Seems stream 0 codec frame rate differs from container frame rate: 29.97 (30000/1001) -> 59.94 (60000/1001)
Input #0, mpeg, from 'pipe:':
Duration: N/A, start: 0.194500, bitrate: 10632 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 59.94 tb(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, stereo, 192 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 192 kb/s
Output #0, vob, to 'pipe:':
Stream #0.0: Video: 0x0000, yuv420p, 720x480 [PAR 0:1 DAR 0:1], q=2-31, 9800 kb/s, 29.97 tb(c)
Stream #0.1: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1 |
Now, I am not too terribly familiar with ffmpeg, and all my other transfers are 1080i feeds from TivoToGo, so normally there is no transcoding at all. Do I interpret this correctly that the stream is being transcoded from 480p to 480i? if so, I would much prefer it left the content as 480p. Do I also interpret correctly the system is dropping the second and third audio streams?
|
|
| Back to top |
|
 |
TheBayer
Joined: 23 Aug 2009 Posts: 33
|
Posted: Mon Oct 19, 2009 10:23 pm Post subject: |
|
|
I had some problems with python crashing like this (double free, etc). It seems something I'm doing exercises a bug in the language. I moved to python 2.6.2 (from 2.4.3) and the problems all went away.
Last edited by TheBayer on Mon Oct 19, 2009 10:42 pm; edited 1 time in total |
|
| Back to top |
|
 |
TheBayer
Joined: 23 Aug 2009 Posts: 33
|
Posted: Mon Oct 19, 2009 10:29 pm Post subject: |
|
|
| lrhorer wrote: | Now, I am not too terribly familiar with ffmpeg, and all my other transfers are 1080i feeds from TivoToGo, so normally there is no transcoding at all. Do I interpret this correctly that the stream is being transcoded from 480p to 480i? if so, I would much prefer it left the content as 480p. Do I also interpret correctly the system is dropping the second and third audio streams? |
There really isn't a transcode going on at this point. It is taking the DVD video and passing it through. Due to certain features on DVDs I must tell it which audio stream to send as well as re-encapsulate it. Otherwise you can't navigate through the video properly and often it doesn't play back quite right. The ffmpeg is just passing the video/audio data right through. I believe based on the output you are still getting 480p, but it will use whatever the original video feed was.
|
|
| Back to top |
|
 |
TheBayer
Joined: 23 Aug 2009 Posts: 33
|
Posted: Mon Oct 19, 2009 10:40 pm Post subject: |
|
|
| BigBaaadBob wrote: | Thanks for the plugin.
Two questions:
1) How impossible would it be to extend this to handle ISO files directly?
2) Would it make sense to expand the Video plugin to have .iso as an extension and "do the right thing" with it.
I ask because it seems like the best way to archive a lot of DVDs would be to just copy the ISO file instead of importing the filesystem.
Also, I have a directory with both DVD .iso and other video files and I'd rather not have to sort them out, so having a type=dvdvideo seems just a little suboptimal.
Or am I missing something? |
To do this simply, you'd need to add requirements to the overall program for some program that can read ISO and handle files. With linux you could do this with a loopback filesystem and a modest amount of code. For Windows I have no clue how you'd do this. The hard but better way would be to handle it all in python. This would require decoding the ISO format directly and handling the interchange to the "file layer".
I worked very hard to avoid using any new tools from my plugin. Much of what I did I could have used linux libraries to do, but then everyone on Windows would be out of luck. I actually had to go learn about the DVD file structure, MPEG structure, VOB stream format, IFO file format and handle all these to varying degrees directly in python.
|
|
| Back to top |
|
 |
wmcbrine

Joined: 04 Jan 2008 Posts: 2008 Location: Maryland
|
Posted: Mon Oct 19, 2009 11:09 pm Post subject: |
|
|
I'd just add that the TiVo has no way to select among multiple audio tracks on recordings anyway (only on Live TV), IIRC.
_________________ My pyTivo fork . My page |
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Tue Oct 20, 2009 3:21 am Post subject: |
|
|
| TheBayer wrote: | I had some problems with python crashing like this (double free, etc). It seems something I'm doing exercises a bug in the language. I moved to python 2.6.2 (from 2.4.3) and the problems all went away. |
The highest version of python in the Debian stable distro is 2.5.2-15, which is what I am running. The version in both the testing and unstable distro is 2.5.4-2. Even the experimental distro only has 2.5.4-3. The Debian maintainers are very strict about not including software packages until they have proven their stability and reliability. This is one very big reason I prefer Debian. I looked a bit into the possibility of adding python 2.6 to my server, and the results of my reading are not encouraging. First of all, adding 2.6 requires a lot of contortions and evidently is rather likely to result in a broken system, according to a couple of people who have done it. Secondly, if I read this correctly, it looks as if IPV6 will have to be enabled, which will break Galleon, and I definitely don't want to do that.
|
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Tue Oct 20, 2009 5:04 am Post subject: |
|
|
OK, I got python 2.6 installed, and the crashes have stopped, but other odd behavior still exists. The primary oddity is the fact the zero tile folders still exist. I'm attaching the .IFO files from the "empty" DVDs. Also, when going in and out of a folder, sometimes some or all of the other folders disappear. Exiting the DVD share and going back in brings the folders back. Also, just a moment ago, with nothing going on on any of the TiVos, this message just popped up:
| Code: | Exception in thread Thread-73:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 729, in run
self.function(*self.args, **self.kwargs)
File "/usr/share/pyTivo/plugins/dvdvideo/vobstream.py", line 206, in reap_process
proc['thread'].exit()
AttributeError: 'Thread' object has no attribute 'exit' |
| Description: |
|
 Download |
| Filename: |
50 First Dates.zip |
| Filesize: |
92.03 KB |
| Downloaded: |
24 Time(s) |
| Description: |
|
 Download |
| Filename: |
The Abyss.zip |
| Filesize: |
89.05 KB |
| Downloaded: |
23 Time(s) |
|
|
| Back to top |
|
 |
TheBayer
Joined: 23 Aug 2009 Posts: 33
|
Posted: Tue Oct 20, 2009 10:35 pm Post subject: |
|
|
| lrhorer wrote: | The primary oddity is the fact the zero tile folders still exist. I'm attaching the .IFO files from the "empty" DVDs. Also, when going in and out of a folder, sometimes some or all of the other folders disappear. Exiting the DVD share and going back in brings the folders back. Also, just a moment ago, with nothing going on on any of the TiVos, this message just popped up... |
I pushed a new copy to my repository. It contains additional error checking. I had the same 50 First Dates DVD, looking at your IFO files the only chages were due to my removing protected user operations. I merged your IFO files with my VOBs and it worked a-ok here. Have you checked all the file permissions?
A note on the disappearing. I've had a few times where I thought something similar had occurred, but when watching my pyTivo's output I realized that it hadn't yet received the request. After 20-30secs there it was and I got a page on my TiVo. I'm not quite sure what causes this. If you read this William, do you happen to have any ideas on this?
As for that message, I was doing something wrong in the thread that kills off cancelled transfers after a while. It keeps it alive for a bit just in case the tivo reconnects. It should be fixed in my new version.
|
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Wed Oct 21, 2009 9:31 am Post subject: |
|
|
| TheBayer wrote: | I pushed a new copy to my repository. |
I'll download it.
| TheBayer wrote: | It contains additional error checking. I had the same 50 First Dates DVD, looking at your IFO files the only chages were due to my removing protected user operations. I merged your IFO files with my VOBs and it worked a-ok here. Have you checked all the file permissions? |
The permissions are fine, but I found the problem. For some reason, the software did not create the VIDEO_TS directory on the shares with the problem. Creating the VIDEO_TS directory and moving the content to it took care of the problem. Now there's anotehr one, but I will try your new build before going into detail.
| TheBayer wrote: | A note on the disappearing. I've had a few times where I thought something similar had occurred, but when watching my pyTivo's output I realized that it hadn't yet received the request. After 20-30secs there it was and I got a page on my TiVo. I'm not quite sure what causes this. If you read this William, do you happen to have any ideas on this? |
I believe I have seen what you describe, but this is different. With what you describe, there is a lag or 20 or 30 seconds before the screen updates. With what I am referencing, some of the content listings just disappear altogether. AFAIK, they stay gone.
|
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Wed Oct 21, 2009 10:39 pm Post subject: |
|
|
I haven't seen the beahvior with your latest release, so it looks like whatever it was has been fixed.
Any comment on a meta-file like utiliy?
I have one question, as well. I have a couple of double-sided DVDs, released before the Dual Layer spec was out (or at least commonly available). Of course with the DVD these have to be flipped to watch the second half of the movie. Is there any way to merge the IFOs for such a movie so that it will play as one long stream?
|
|
| Back to top |
|
 |
TheBayer
Joined: 23 Aug 2009 Posts: 33
|
Posted: Wed Oct 21, 2009 10:47 pm Post subject: |
|
|
The meta data can be placed in details.txt in the directory that holds the VIDEO_TS. It uses the same format that other bits of pytivo use. I have plans to come up with some way to extend this to individual titles (including hiding of titles) and preferences about audio streams etc. I've been working on a little bit of code to improve the ToGo functionality, after I'm done with that I'll probably get back to metadata.
As for merging two sides of a DVD, you'd basically need to use DVD authoring software. It's quite unlikely that there is some automated tool for it. So that'd be a heck of a lot of work. Even if you concatenated the vobs, you'd have to rewrite the title information to include it.
|
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Thu Oct 22, 2009 12:51 am Post subject: |
|
|
I created a DVD folder named "Blob, The", and I created a file named "details.txt". In the NPL, it still comes up as "Blob, The", and the videos all still have the default names. Pressing <info> under the "Main Title" brings up the text from the file, but the names all remain the same.
Last edited by lrhorer on Thu Oct 22, 2009 1:08 am; edited 2 times in total |
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Thu Oct 22, 2009 1:02 am Post subject: |
|
|
First of all I want to say this is shaping up to be a great product.
Secondly, I know this is early in the development of your code, and I don't intend to be a pest, but formerly there was a feature in the builds (originally developed by wgw, I think) which is very important to me, in part for reasons about which I cannot speak at this point. When one selects a title, in the transfer screen one can of course press <info> and obtain various information about the title. Of course, much of this info comes from the metafile, if it exists. Previously, however, pyTiVo would also obtain some info from ffmpeg concerning the audio / video coding and the proposed transcoding parameters, along with the file name. If at all possible, I really need that functionality again.
|
|
| Back to top |
|
 |
wmcbrine

Joined: 04 Jan 2008 Posts: 2008 Location: Maryland
|
Posted: Thu Oct 22, 2009 1:46 am Post subject: |
|
|
I assume you're referring to the stuff that was put in vHosts. I changed it to only do that in debug mode. Just put "debug = True" in the Server section of your pyTivo.conf.
Also, pyTivo is not a product.
_________________ My pyTivo fork . My page |
|
| Back to top |
|
 |
lrhorer
Joined: 04 Mar 2008 Posts: 153
|
Posted: Thu Oct 22, 2009 5:50 am Post subject: |
|
|
| wmcbrine wrote: | I assume you're referring to the stuff that was put in vHosts. I changed it to only do that in debug mode. Just put "debug = True" in the Server section of your pyTivo.conf. |
Ah, excellent! I'll try that. It's a terrific notion, giving it a switch.
| wmcbrine wrote: | Also, pyTivo is not a product. |
Um, OK. I was referring to the DVD plug-in, not pyTiVo, although pyTiVo taken as a whole is also a great utility. It's a fabulous collaborative effort, of which you are a principal contributor. I'm not sure why you say it isn't a product, though. It certainly is not a commercial product, of course, but a few definitions from the web:
1. An artifact that has been created by someone or some process; "they improve their product every year"; "they export most of their agricultural production"
2. The noun product (prod'kt or-ukt) is defined as a "thing produced by labor or effort" or the "result of an act or a process" , and stems from the verb produce (pr doos' or -dyoos') from the Latin prōdūce(re), (to) lead or bring forth. ...
3. Anything produced by human or mechanical effort or by a natural process.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|