1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

pyTivo - Transcoding server

Discussion in 'TiVo Home Media Features & TiVoToGo' started by armooo, Nov 25, 2006.

  1. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    A windows installer isn't too hard to create although instructions for installing from a .zip or Tar.gz are pretty simple :

    Double-click the zip file to open it (or open the Tar.gz download using 7-Zip, see post #1541). Select everything in the pyTivo folder (use Ctrl-A) and drag it to whatever folder location you choose. The location and name of the installation folder are not important as long as the ffmpeg path in your pyTivo.conf file is correct.

    The hard part is the configuration file (pyTivo.conf) which must be created and customized to your hardware/software setup. (pyTivo.conf.dist is a rather poor example of such a file).

    If you supply the info below I or an OP will put together a config file for you:

    What model is your TiVo? Are you widescreen or normal?
    What is the path where you will install to (e.g., c:\Program Files\PyTivo\)?
    What path(s) for your video share folder(s) (where you will keep the video files)?
    What path(s) for photos and music (all optional - don't have to have them)?

    Configuration gets a little more complicated for a Tivo HD or S3 model, in which case there may be a few more questions.
     
  2. wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    No, it's just with my changes. I haven't really looked into the other tickets (yet?), although I can say that at least your ticket #62 issue is fixed.
     
  3. jaj2276

    jaj2276 New Member

    101
    0
    Dec 25, 2007
    I'll take you up on that offer.

    I have a TivoHD with a 16:9 tv.

    Please let me know the other questions and I'll be happy to answer (because of course your advice is free!). Take your time, everything is working fine (I'm xfering some xvid videos to the tivo now and they're playing correctly (and nicely). I'm just looking for some optimal settings.
     
  4. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    Good!

    Since you are doing so well already and I don't have a HD Tivo, I'm going to let OP fill you in on the optimal settings. Also, if you search this thread over the last two months you will find a lot about optimizing for HD tivos. If you go for very high video bitrates and sizes you may have slow transfer times and TiVo video decoder artifacts. But lower values may not give you the quality you want. See this post for one person's preferences -- but that was for an S3 and he wanted 5.1 Dolby audio.

    I'm curious, what version of pyTivo are you running?
     
  5. jaj2276

    jaj2276 New Member

    101
    0
    Dec 25, 2007
    I am running 2.08. I'm assuming the versions with dates are experimental, which is why I didn't download those.

    I'll definitely try those HD settings. It will be interesting to see if the quality improves and how much the xfers slow.
     
  6. KRKeegan

    KRKeegan Im lost and confused

    215
    0
    Jul 20, 2004
    Los Angeles, CA
    I am glad to see pyTivo still running strong. It is also nice to see that other developers have started contributing to the program as well.

    Sorry I left you all, but my time has been taken up by other projects. After a few months away I no longer had any desire to work on pyTivo because it had reached a functionality that I was satisfied with.

    However, I recently got a new TiVoHD and noticed a few errors with pyTivo in the subfolders hack.

    First, let me just say I have read many upset posts from users about the poor functionality of subfolders and the 8.3Hack. I am sorry, but this is nothing I can control. TiVo Corp. broke the subfolders functionality in Version 8.3 of the firmware and it has not been fixed yet. I have even contacted TiVo developers directly and have still not received any resolution. The subfolders hack is just that, a hack. TiVo sends extraneous requests and I have done my best to interpret what it wants based on those requests.

    Personally I run the subfolders hack and I have very little issues with it. I have more than 80 seperate folders and subfolders, thus the auto_share option would be unusable for me.

    However, recently I noticed that pyTivo would cause a TiVo reboot under certain circumstances on my TiVoHD. So I investigated the problem a little, and I came up with a solution. But I need to know if this solution should be applied to TiVoHD units only or all TiVo units.

    Here is what I need:
    1. A TiVo Series 2 user, (Maybe even a series 3 user too?)
    2. Running the subfolders hack of pytivo

    Can you run the following test for me, beware it caused my TiVo to reboot(this is what I am trying to fix).

    Open a pyTivo share -> open a subfolder -> select a file and view its details -> use the left arrow to exit the file details

    At this point my TiVoHD would crash. Can you tell me what happens with you tivo? Did it reboot? Are you taken back to the correct folder listing? If your TiVo doesn't reboot can you try this a few times on different subfolders. And possibly even deep subfolders(pytivo share->folder->subfolder->subfolder->file)

    Thank you for your help.


    On another note, I was able to completely remove the width and height info in my ffmpeg command on my TiVoHD. It seems the TiVoHD can accept any dimension of video. Now ffmpeg passes the video to the TiVo in the same dimension as the source file. It makes a few videos much clearer.

    Kevin
     
  7. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    Does the subfolders version handle metadata? Where does it stand in regard to tickets 56-58 and 62?
     
  8. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    If you could incorporate the Ticket 56-58 fixes into your Git version we should have a solid non-subfolders version that can be recommended for new users.
     
  9. wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    I've added 57. I reject 58 for my fork, at least for now -- see my comments on the tracker. I'll accept it if armooo does (though I don't think he will). And I'm not quite happy with 56, but I'll consider it some more.
     
  10. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    Thanks, but ...

    Ticket 58 addresses this problem:
    I read your tracker comment and see your point but this bug causes two or more files to show up on the NPL listed separately all named with the shared folder name. This is bothersome enough behavior that I wouldn't want to recommend it to a new user who might not be using metadata at least initially. There is no way to ID the file based on what's in the NPL.


    Regarding 56, this was based on the experience of one user that his TiVo did not accept the ts as compatible even though theoretically it is a form of mpeg2. All the fix does is force transcoding to mpeg2.
     
  11. lrhorer

    lrhorer Active Member

    6,924
    0
    Aug 31, 2003
    San...
    OK, I've tried pyTiVo and Galleon under several different platforms and I've tried TiVo Desktop. I've also read through this thread, and now I've got to admit I'm a little confused. I hope someone here can set the record straight.

    Before I begin, let me say that I do not intend for this to devolve into a pissing match over which software is better. I only want to clarify what is available and what is not, and perhaps pinpoint the source of a couple of bugs. To that end, I am going to lay out my understanding - incorrect as it may be - of the state of folder support, and ask anyone who really knows to correct any errors which are in those statements. If this for some reason incites anyone to flames, please take it elsewhere.

    TiVo Desktop, of course, just doesn't support folders. Both Galleon and pyTiVo support folders in roughly the same way, and the result is roughly the same for both on the TiVo NPL. To wit, the user may configure one or more source folders to be used as fields in the NPL. Each folder so configured shows up as a separate entry in the NPL. Selecting the folder in question opens it for browsing, including any sub-folders within. All the sub-folders persistently show (0) as the number of contained items irrespective of the actual number of items in the sub-folder. Selecting one of the sub-folders opens it for viewing, but any attempt to go back to the parent folder and open a different sub-folder only results in the listing from the first sub-folder being displayed. The only way I have found to clear this is to go back to the root of the NPL, select one of the native TiVo folders, and enter it. The user may then select another of the 3rd party sub-folders at which point its contents become the only ones displayed for sub-folders.

    Reading through this thread, it seemed to me as if there might be a software work-around for this bug in pyTiVo. Am I mistaken? Speaking with one of the Galleon developers, he believed the bug was actually in the HME protocol, in which case, he could not think of any resolution on his part. My own investigations sniffing the packets being transferred back and forth suggest he might be correct. If there is a software work-around for pyTiVo, what is it, and how does it work? Or is it perhaps that the Galleon developer and I are incorrect, and either the bug is in both Galleon and the release of pyTiVo I have, or else there is another way of handling sub-folders?
     
  12. wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    There are two workarounds. One is the "subfolders" version of pyTivo; the other is the "auto_subshares" option (under a share in pyTivo.conf), which automatically creates top-level shares for every subdirectory. And yes, AFAICT, the bug is on Tivo's side -- it makes a bogus request for the contents of the old folder as well as the new one, for no apparent reason. (You can watch the requests as they come in.)

    BTW, it's not HME, it's HMO. HMO is the older, web-server-based system for transferring music, photos, and video, using a GUI that's built-in to the Tivo. HME is the new thing that acts more like an X server. pyTivo is an HMO server, as are Tivo Desktop and JavaHMO. Galleon is basically HME, but not for the video transfers -- that can only be handled by HMO (specifically, by TivoToComeBack, which is the undocumented arm of HMO).
     
  13. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    The pyTivo download has not been updated since 9 Dec 07 and a number of bug fixes and enhancements have occurred since then.

    I've put together a zip download on mediafire.com (non sub-folders version) that I recommend, described as follows:

    The starting point was wmcbrine's Git fork (see post #1540, this thread) and thus it includes his major reworks of plugin.py and the music and photo plugins.

    I made two additional changes:
    1. Included the mod described in ticket #58 of the pyTivo wiki.
    2. Substituted a much later version (11051) of ffmpeg which I have tested and which handles some files not handled by the normally distributed version.

    My hope is that if new users start with this code package, many posts caused by bugs in the current wiki downloads can be avoided.

    This download (like the wiki downloads) does NOT include the configuration file (pyTivo.conf) and that will continue to be a source of posts -- unavoidable due to the wide variety of software/network/hardware configurations that exist.

    New users are advised to read the installation and configuration portions of the wiki which are somewhat incomplete and out of date but still worth reading -- then scan the posts in this thread -- then post their questions about configuration.
     
  14. etsolow

    etsolow Don't Try

    1,554
    0
    Feb 8, 2001
    Wisconsin
    Using your package, I can't seem to get past the first page of listings on any pyTivo share. Any idea why not?
     
  15. philhu

    philhu User Since Day ONE!

    831
    0
    Apr 11, 2001
    Funcity, MA
    Yes, this would be great!

    The multiply and divde scenario you all posted is how I handled it in parsexmlguide.vb

    Does metagenerator or pyTivo support episode numbers? If they would, then the data is also available right up on imdb
     
  16. TreborPugly

    TreborPugly Unreal!

    4,542
    0
    May 2, 2002
    Eastern TN
    Kevin,

    I've got a series 2, and I've found this crash behavior to be consistent, since I got a version 9.x of the Tivo software. If I follow your procedure, I always get a reboot now. It doesn't matter how deep I am in a subfolder.
    When I back out with the left arrow, I briefly see a partial listing of the folder I came from (I think -- I can check this if you need me to), and then the Tivo reboots. I always know it is going to happen because it always looks wrong as soon as I back out of the details. The crash will also occur if you start a transfer, and then try to go back to the folder rather than play the file, and also if you play the file through to the end, and finish, without jumping out at some time using the TiVo button. (ie, finish recording, delete it or choose to keep it - then it tries to go back to the folder, just like if you back out of the file details view)

    The very clunky work-around for me is to always go right to the file I want to transfer, start the transfer, and then use the TiVo button to go back to the main menu before watching the show.

    I'm very excited to see you back on the case!
     
  17. philhu

    philhu User Since Day ONE!

    831
    0
    Apr 11, 2001
    Funcity, MA
    Ok I grabbed your 0.9 music plugin.

    It still doesnt work, but I turned on debug, it really looks like it thinks it is some kind of video. It happens in any directory in my music library. Tivo
    Desktop 2.5.1 plays it all fine. It seems to also get mad at non sound files in the directories

    Here is my config:

    =================================
    [Server]
    port=9032

    ffmpeg=c:\Program Files\TiVo\pyTivo-master\plugins\video\ffmpeg_mp2.exe
    #ffmpeg=/usr/bin/ffmpeg
    debug=true

    #Beacon broadcast address(es)
    #Typically use 255.255.255.255 but on some multihomed machines you may
    #need to specify the subnet broadcast address(es) of your Tivo boxes
    beacon=192.168.1.255

    #Output Pixel Width: if you have an HDTV you might want to try 720 or 704
    #Valid: 720, 704, 544, 480, 352
    #width=1440
    #height=720
    #ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ac 2 -ab %(audio_br)s -ar 44100 -f vob -
    aspect169=true
    width=1440
    height=720
    audio_br=320K
    video_br=12Mi
    #ffmpeg_prams=-i %(in_file)s -vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ac 2 -ab %(audio_br)s -ar 44100 -f vob -
    ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ac 2 -ab %(audio_br)s -ar 44100 -f vob -


    ##Per tivo options
    # section named _tivo_TSN with the tsn in all caps
    [_tivo_00000DEADBEEF]


    [MySvr]
    #Type can be either 'video' or 'music'
    type=video

    #Path is the full path to your files (No trailing slash needed)
    path=I:\TV_Underground
    #Make all subfolders in to top level shares
    auto_subshares= True

    ##You can have more than one share
    [MySvr-Music]
    type=music
    path=E:\MP3s

    [MySvr-Photos]
    type=photo
    path=E:\Kodak Pictures


    ==============================

    Here is the debug output:
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    E:\MP3s\atrontc.err: Unknown format


    video_info: failed at codec
    supported_format: E:\MP3s\atrontc.err is not supported
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    E:\MP3s\atrontc.stats: Unknown format


    video_info: failed at codec
    supported_format: E:\MP3s\atrontc.stats is not supported
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    E:\MP3s\atrontc.vtc: Unknown format


    video_info: failed at codec
    supported_format: E:\MP3s\atrontc.vtc is not supported
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    E:\MP3s\readme_3_2_25.txt: Unknown format


    video_info: failed at codec
    supported_format: E:\MP3s\readme_3_2_25.txt is not supported
    video_info: E:\MP3s\atrontc.err cache hit!
    supported_format: E:\MP3s\atrontc.err is not supported
    video_info: E:\MP3s\atrontc.stats cache hit!
    supported_format: E:\MP3s\atrontc.stats is not supported
    video_info: E:\MP3s\atrontc.vtc cache hit!
    supported_format: E:\MP3s\atrontc.vtc is not supported
    video_info: E:\MP3s\readme_3_2_25.txt cache hit!
    supported_format: E:\MP3s\readme_3_2_25.txt is not supported
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    Input #0, image2, from 'E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg':

    Duration: 00:00:00.0, start: 0.000000, bitrate: N/A

    Stream #0.0: Video: mjpeg, yuvj420p, 297x300, 25.00 fps(r)

    Must supply at least one output file


    video_info: Codec= mjpeg width= 297 height= 300 fps= 25.00 millisecs= 0
    video_info: ffmpeg output= FFmpeg version SVN-r8047, Copyright (c) 2000-2007 Fabrice Bellard, et al.

    configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libdts --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libogg --enable-libtheora --enable-libvorbis --enable-x264 --enable-xvid --enable-amr_nb --enable-amr_wb --cpu=i686 --enable-memalign-hack --extra-ldflags=-static

    libavutil version: 49.3.0

    libavcodec version: 51.34.0

    libavformat version: 51.10.0

    built on Feb 21 2007 23:20:24, gcc: 4.3.0 20070126 (experimental)

    E:\MP3s\Tagged\Music Place\101 Strings\JpgPlaylist.sls: Unknown format


    video_info: failed at codec
    supported_format: E:\MP3s\Tagged\Music Place\101 Strings\JpgPlaylist.sls is not supported
    video_info: E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg cache hit!
    video_info: E:\MP3s\Tagged\Music Place\101 Strings\JpgPlaylist.sls cache hit!
    supported_format: E:\MP3s\Tagged\Music Place\101 Strings\JpgPlaylist.sls is not supported
    video_info: E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg cache hit!
    video_info: E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg cache hit!
    tivo_compatible: E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg is not mpeg2video it is mjpeg
    video_info: E:\MP3s\Tagged\Music Place\101 Strings\folder.jpg cache hit!
     
  18. dlfl

    dlfl Cranky old novice

    6,998
    18
    Jul 6, 2006
    Near...
    I don't see this problem on my Series 2 DT TiVo. I have several shares with more than 3 pages of videos in them. I tried it with and without the auto_subshares too.

    Have you previously used a version that did not have this problem?

    I wonder if this is specific to certain TiVo models. Does it happen on all your TiVos?

    This seems to match Ticket #53 and it doesn't look like anyone has addressed that problem.

    Another user reported a similar problem in post #1506 of this thread but don't know what TiVo model they were using.

    Anyone else seeing this problem? (Please give your TiVo model and pyTivo software version and operating system.)
     
  19. lrhorer

    lrhorer Active Member

    6,924
    0
    Aug 31, 2003
    San...
    OK, I read this, but don't quite know the difference. Are they different builds, or just different ways of configuring pyTivo. Unless I am missing something, top level folders don't work very well. Every episode of a series shows up with the same name, where as with subfolders, the series name is stripped away and the episode name is used.

    Yeah, I noticed that when I looked at the data packets streaming across the LAN. I take it you haven't had any more luck than any other developer with getting TiVo to address the issue?

    OH, OK. I hadn't seen a reference to HMO in quite some time, but I did read a bit about HME, and I just assumed HME was the foundation upon which HMO applications were built.
     
  20. wgw

    wgw New Member

    217
    0
    May 16, 2007
    It appears that ffmpeg r11306 introduces a new error not seen in previous versions. Avoid this version with pyTivo. "Can not resample 6 channels @ 48000 Hz to 2 channels @ 44100 Hz"
    Code:
    FFmpeg version Sherpya-r11306, Copyright (c) 2000-2007 Fabrice Bellard, et al.
      libavutil version: 49.6.0
      libavcodec version: 51.49.0
      libavformat version: 52.3.0
      built on Dec 23 2007 08:25:50, gcc: 4.2.2 [Sherpya]
    Input #0, mpegts, from 'i:\_tivo/_TVAP/QSF/Samantha Who - test.ts':
      Duration: 00:03:55.8, start: 0.343867, bitrate: 15046 kb/s
      Program 1
        Stream #0.0[0x1000]: Video: mpeg2video, yuv420p, 1280x720 [PAR 1:1 DAR 16:9]
    , 19000 kb/s, 59.94 tb(r)
        Stream #0.1[0x1001]: Audio: liba52, 48000 Hz, 5:1, 384 kb/s
    Output #0, vob, to 'pipe:':
        Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-3
    1, 8000 kb/s, 29.97 tb(c)
        Stream #0.1: Audio: mp2, 44100 Hz, stereo, 384 kb/s
    Stream mapping:
      Stream #0.0 -> #0.0
      Stream #0.1 -> #0.1
    No accelerated IMDCT transform found
    Press [q] to stop encoding
    Resampling with input channels greater than 2 unsupported.
    Can not resample 6 channels @ 48000 Hz to 2 channels @ 44100 Hz
     

Share This Page