tivostream - video streaming server for Series 3 Tivos

Discussion in 'TiVo Home Media Features & TiVoToGo' started by moyekj, Aug 22, 2008.

  1. Sep 1, 2008 #141 of 436
    Sevenfeet

    Sevenfeet Gentle Giant

    165
    0
    Jun 24, 2000
    Nashville, TN

    Advertisements

    I'm pleased to report that I've had my first success in encoding a MPEG-2 video to MPEG-4 and playing it on my Tivo through Tivostream. I managed to get Roxio's Toast 9 Titanium for Mac to do the job through a customer setting. I'm currently encoding another video now so I can't list every thing I did but here's the basics.

    The first thing I did was looked a little closer at the sample Revision 3 video that we all use for testing. According to the Apple Quicktime player, this is a 720p video that is encoded for H.264. The data rate is 2164 kbits and uses a standard 2 channel AAC soundtrack. Outside of that, nothing about it seems that remarkable.

    Test video was the Pixar short "Jack Jack Attacks" from "The Incredibles" Bonus DVD. It was originally ripped with Mac The Ripper to my central Leopard Server in my home.

    Custom setting:
    1. Use the generic H.264 player instead of the pre-made settings for Apple products, like Apple TV.

    2. I used a 2000 kbits data rate

    3. I just had it optimized for download, not streaming.

    4. Single pass encoding (I'm testing a multipass encode right now and will report if it works or not)

    5. Optimized for server (there's a special "video" button that reveals this feature"

    6. Audio. Two channel AAC, 48kbits.

    7. Resolution. At first I tried to match the native resolution of the DVD, which is a 720 x 580 setting (anamorphic widescreen). But for reasons I don't understand, that setting, while it played on the Tivo, had a weird jutter problem in playback that made watching the video difficult. So I tried upscaling to 1080p. This looked and played far better, both on my 1080i RPTV and my 480i standard def bedroom television.

    Today, I'll experiment with my more settings (whether encoding for streaming makes a difference or not, other encoding tweaks). One thing that would be nice to do is 5.1 sound (required for me to be happy with doing it for my home theater) but even though it's possible to encode AC3 audio in a H.264 video, whether the Tivo willl play it back properly is a big mystery. Handbrake has a setting for this but I'm not sure that Toast does. Also, I'm not sure the data rate is going to be optimal for a 1080p encode...I have some 1080p movie trailers which I will look at again to check what their data rate is. And I'm sure that 480p trailers of the same movie trailers have a lesser rate.
     
  2. Sep 1, 2008 #142 of 436
    Sevenfeet

    Sevenfeet Gentle Giant

    165
    0
    Jun 24, 2000
    Nashville, TN
    One minor update... 2 mbits/sec for 1080p is a pretty lousy bit rate, even for upscaled standard def. It looks ok on a standard def TV (32") but it's pretty lousy to my eyes on the 1080i RPTV I have. Compare that to 10 mbits/sec for a Wall-E trailer I have from Pixar (also 1080p). Broadcast HDTV (which is Mpeg-2) is anywhere from 12-19 mbits/sec or 1080i.

    I'll try some better rates and see what looks good to the eye.
     
  3. Sep 1, 2008 #143 of 436
    moyekj

    moyekj Well-Known Member

    12,299
    949
    Jan 23, 2006
    Mission...
    Sevenfeet, how do trick play functions like FF/REW work with your encodings?
    With ffmeg there's an option for 6 channel AAC that I've used and it worked (with TV speakers), but I don't have surround sound system to test it.
     
  4. Sep 1, 2008 #144 of 436
    Sevenfeet

    Sevenfeet Gentle Giant

    165
    0
    Jun 24, 2000
    Nashville, TN
    Fast forward and Rewind work pretty well with the Toast encodings.

    Toast doesn't seem to have a setting to do 6 channel soundtracks with H.264 encodings (at least the generic ones...still haven't looked at the Apple ones). I know Handbrake can do this in the form of attaching AC3 5.1 soundtracks (Apple starting doing this with their own encodings for Apple TV rentals). Even if you could do 6 channel AAC, I don't know many home theater receivers that could decode that and it would only work over HDMI. My Denon 3805 receiver is too old and doesn't do HDMI.
     
  5. Sep 1, 2008 #145 of 436
    RaGINaR

    RaGINaR Fly Boy

    1,141
    0
    Oct 3, 2005
    Land of the WSO

    Advertisements

    So, is there a nice wrapper that makes this work on my mac? :)
     
  6. Sep 2, 2008 #146 of 436
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    Apple is putting AC3 5.1 in their rental files? Are they using mp4 container for this or something else?
     
  7. Sep 2, 2008 #147 of 436
    moyekj

    moyekj Well-Known Member

    12,299
    949
    Jan 23, 2006
    Mission...
    I would think the run_unix.sh wrapper probably works no?
     
  8. Sep 2, 2008 #148 of 436
    cleverdevil

    cleverdevil New Member

    41
    0
    Nov 12, 2007
    Atlanta, GA
    Well, sort of...

    Currently, Apple only provides the Java 1.6 runtime as a beta, in a fairly hard to find developer-only area of their website, and only for 64-bit intel Macs.

    If the released version were compiled with the "-target 1.5" command line option, then it would work out of the box on Macs, and prevent people like me (with older, 32-bit Mac Minis) from having to compile this by hand every time a new release is out. Alternatively, a script to download dependancies, and build the project from scratch would also do the trick.

    I've been playing with this since its release, and really like the idea, but have gotten bored of having to go through the compile process each time, and will likely not bother until there is a way for me to download and install new released *quickly* and *easily* on my Mac Mini. Note, I am not complaining, and I appreciate the work thats been done on this project thus far, I am just saying that my time is very limited, and the current setup is a huge barrier for me personally :)
     
  9. Sep 2, 2008 #149 of 436
    moyekj

    moyekj Well-Known Member

    12,299
    949
    Jan 23, 2006
    Mission...
    Point taken. There's no real reason that Java 1.6 is needed instead of 1.5 but at the time I started development I had an ancient JDK installed and needed to update and 1.6 was what was available easily at the time. For next update I'll see if I can revert back to JDK 1.5 when compiling and preparing the jar file.
     
  10. Sep 3, 2008 #150 of 436
    Sevenfeet

    Sevenfeet Gentle Giant

    165
    0
    Jun 24, 2000
    Nashville, TN
    Excellent. That means I can run this off of my Leopard Server (PowerPC) where this program belongs.
     
  11. Sep 3, 2008 #151 of 436
    Sevenfeet

    Sevenfeet Gentle Giant

    165
    0
    Jun 24, 2000
    Nashville, TN
    It's an MP4 container of some kind. Handbrake will actually create a file that will do this.
     
  12. Sep 3, 2008 #152 of 436
    lrhorer

    lrhorer Active Member

    6,933
    10
    Aug 31, 2003
    San...
    Well, I'm perfectly willing to run down where the failure is in the compile for libx264, but I don't want to take the time if it's not going to gain me anything - specifically if it won't then produce mp4 files smaller than the original mp3 with little or no noticeable loss in PQ. So far everything I have tried under Super has resulted in a much larger output file, not a smaller one. I'm starting t think perhaps ffmpeg isn't capable of the level of compression available to commercial codecs, or at least not when transcoding. I wonder if one of you who have the H.264 conversion working would try to convert the test clip I've put on my website here, and see if you can get a file no larger than about 85M or so without objectionable artifacts? I would really appreciate it.
     
  13. Sep 3, 2008 #153 of 436
    Allanon

    Allanon Active Member

    996
    201
    Nov 2, 2005
    I've been thinking about this problem and realized you can use VLC much like what wmcbrine did with his HME/VLC video streamer but instead of sending streams your program would just stream video files through VLC. The benefits would be transcoding almost any video file and you can use the VLC JavaScript API, Mozilla plugin, or maybe write your own plugin to control VLC's playback of the file. You can then control the video's position and other attributes by sending commands to VLC instead of having the Tivo do the work. The one draw back might be the buffering that Tivo does, this will make all commands be delayed but if you jump to the end of Tivos buffer then it should be almost real time. You can also adjust the stream so it plays in real time by adjusting the transcoding in VLC.
     
  14. Sep 3, 2008 #154 of 436
    moyekj

    moyekj Well-Known Member

    12,299
    949
    Jan 23, 2006
    Mission...
    One problem with using VLC though (or ffmpeg) to transcode on the fly is for HD streams typically they won't be fast enough for real time transcoding. It's possible perhaps by tweaking things to get a sub-standard transcode that is real time or faster, but then that kind of defeats the purpose. Certainly things like 2-pass encoding are not feasible either. Ideally I don't like any transcoding, but if I do have to transcode I want very high quality.
     
  15. Sep 3, 2008 #155 of 436
    lrhorer

    lrhorer Active Member

    6,933
    10
    Aug 31, 2003
    San...
    I wouldn't say it is one problem, I would say it is THE problem.

    Absolutely. Assumng I can get the H.264 transcoding working, I'm expecting it will take the better part of a day or more to transcode a 2 hour movie.
     
  16. Sep 3, 2008 #156 of 436
    Allanon

    Allanon Active Member

    996
    201
    Nov 2, 2005
    I understand that, those files can be converted like you normally would and then played through VLC without transcoding to allow for video position changing without waiting for the entire movie to be buffered. But transcoding is useful for videos that you get off the web that are not super high quality and are not in the a format Tivo can use.
     
  17. Sep 3, 2008 #157 of 436
    PaulS

    PaulS Active Member

    893
    92
    Sep 16, 2002
    Southern NH
    It should be possible to transcode low quality videos to MPEG-2 on the fly in better than real-time, no ? There's no need to take the H.264 encoding performance hit if it isn't warranted.
     
  18. Sep 3, 2008 #158 of 436
    beady

    beady New Member

    60
    0
    Oct 30, 2006
    LI, NY
    Anyone figure out how to create an mp4 using Pinnacle Studio Plus? I have version 11 and I can create an Mpeg-2 file that plays just fine but cannot make an mp4 work. I did not see a "streamable" option in Pinnacle Studio. I have an SR11 camera and want to be able to take the HD video from the camera and watch it on the Tivo.
     
  19. Sep 3, 2008 #159 of 436
    Allanon

    Allanon Active Member

    996
    201
    Nov 2, 2005
    Yes, VLC can easily transcode video to low quality MPEG-2 in real time. It can even transcode to normal to high quality MPEG-2 pretty fast.

    Also, correct me if I'm wrong but doesn't transcoding to h.264 take a lot more time and CPU than transcoding to MPEG-2 due to more compression? Plus is there a visual reason to use H.264 over MPEG-2? If not then I would suggest transcoding to MPEG-2 because it would take less time to transcode and there should be enough bandwidth to support the transfers of high quality MPEG-2 from your computer to the Tivo in real time.

    But again, if you want the best looking HD video do format conversion before sending.
     
  20. Sep 4, 2008 #160 of 436
    moyekj

    moyekj Well-Known Member

    12,299
    949
    Jan 23, 2006
    Mission...
    There's definitely some merit to using VLC if nothing else as you mentioned useful for web streaming of incompatible formats. I haven't looked into it but I'm not sure if it's possible to fork off VLC from Java and then have full control over playback, trick functions, etc controlled from Tivo/HME side? How would one send messages to VLC to do those things? If that is possible then it certainly opens up interesting opportunities.
     

Share This Page

spam firewall

Advertisements