ReplayTV, TiVo and the general state of DVR’s

I currently have 5 (yes 5) DVR’s for recording shows. This goes back some years, but I have 3 ReplayTV DVR’s (2 with 80 gb Drives, and one with a 200 gb drive that I hacked to get it to work after the original 40 gb drive died in it.). They were / still are great DVR’s. They were pioneers in many ways compared to TiVo. They have built in network connections long before TiVo did. They allowed streaming of shows between units, years before TiVo could. All around they are great little Standard Definition DVR units. Granted they could only record what was on the analog tuner, however they supported multiple inputs so you could hook a cable box to them or other device and record it.

Up until late last year, 2 of them were connected to a Comcast cable box so I could record any channel that I received on the cable box. The third unit was connected just to the cable, so it could only record the analog channels. Well as with the “rest of the world” Comcast decided to drop all analog channels from their cable line up, in favor of the “better” digital signals. (Which they compressed to hell and back….) Anyways, this would have made the one DVR a door stop. However, Comcast decided to give away 2 free “Digital Tuning Adapters”. So I thought this would be cool, I could just hook it up and put it in front of the DVR and be able to record the channels. Well, the DTA required me to “hack” the ReplayTV unit as it (the ReplayTV) did not have the IR codes to control the DTA. This took me a better part of a day one weekend to get working. So at least it is able to record the basic/extended cable line up.

So fast forward half a year, and I turned on the ReplayTV one night to watch a recorded episode of Top Gear [because Comcast doesn’t have BBC in HD 🙁 ] and I see a message stating that:

Important Announcement!

The ReplayTV Electronic Programming Guide (EPG) Service will be permanently discontinued on July 31, 2011. After this date, owners of ReplayTV DVR units will still be able to manually record analog TV programs, but will not have the benefit of access to the interactive program guide. Effective immediately, monthly billing for the ReplayTV service to remaining customers has been suspended.

The industry conversion to HDTV is complete and ReplayTV DVRs are unable to take advantage of the wealth of HDTV programming. Please contact your service provider for current offerings.

What pissed me off the most was the last line: “The industry conversion to HDTV is complete….” Wait just a minute, there are hundreds of SD channels on Comcast’s lineup, that aren’t available in HD. So now all of the sudden I go from having 5 DVR’s to 2. Granted ComCRAP just raised my bill by another $16 a month, so the saving in the lost of paying the ReplayTV monthly fee makes my cable cost go down a little, but this still makes me mad as the ReplayTV DVR’s are still useful and very much liked by their user’s.

Well it appears that some people are trying to get a fix to allow them to continue to work after the July 31, 2011 cut off. One of the workarounds is by using WiRNS and Schedules Direct. Since I had previously set up a WiRNS system to hack the one DVR to get the IR codes in it, I decided that it wouldn’t be too hard to set it up on the new VMware server I have at the house since it didn’t require much processor and disk space. Also the Schedules Direct method only charged $20 a year for guide data vs the $23+ a month I was paying now for the ReplayTV units. (So almost a $260 a year possible savings.)

This is all cool, however there is one thing that hasn’t been figured out yet. That is how to handle the encrypted clock connection on the ReplayTV unit. If this can’t be figured out, then the 3 ReplayTV’s, basically become the VCR’s of the 90’s.

So on now to TiVo. I have had one of my TiVo’s for a year now, the other for about 6 months. Over all it is pretty good, but there were items that the ReplayTV made so much easier that I can’t do yet with the TiVo. For example, there is a Java application called DVArchive that I run on one of my servers that “talks” to all the ReplayTV units and shows me a list of what all shows are recorded on them, what upcoming shows will be recorded, lets me transfer shows from the ReplayTV to the local server and lets me schedule recordings from one web interface to go to the ReplayTV’s instantly. This isn’t available on the TiVo. Yeah I can go to TiVo’s site, but it is some what of a kludge to see the entire ToDo list across both TiVo’s. Also the scheduling is based on the TiVo polling the Internet vs the push of the recording to the ReplayTV.

One of the big things that was missing on the TiVo side was the ability to “stream” between the two TiVo units. This was one of the reasons why I went the ReplayTV route instead of the “mainstream” TiVo route. Yeah you could “transfer” recordings between the TiVo’s, but this could only be done IF the cable company did not set the Copy Protection flag, which nearly every HD and SD digital channel has this set except for the local OTA channels. In the long run, this meant that if I recorded a program on one TiVo I had to watch it on that TiVo, instead of “where I wanted to” like with the ReplayTV’s. Well as of yesterday, this seems to have changed. It appears that TiVo with their latest software update has enabled “Streaming” between the TiVo’s (like the ReplayTV’s had probably a good 7+ years ago). Now you don’t have to “copy” the entire program to the other TiVo to watch it, in addition the Copy Protection flag does not apply to the “streaming” of the video between the 2 TiVo units.

This is excellent news as now I can record a movie on one and then watch it on the other and vice verse with my weekly shows that get recorded.

So you are probably thinking if you are even reading this far, what the hell does this have to do with the “General state of DVR’s”? Well it just shows how some DVR’s are pioneers, some are the “popular” ones and then some are ones that people are just “stuck with”. What I mean by “just stuck with” is those people who are unlucky enough not to realize how good ReplayTV was, or how much functionality the TiVo Premiere’s have VS a “Cable company” DVR. Seeing how I have had all three now for a while, (although I did get rid of the ComCRAP DVR) I would still rate the ReplayTV as the best DVR that I have had. Granted it doesn’t do HD picture, but then again not everything on Comcast’s lineup is in HD. I still use them to record all my SD content and use the TiVo’s only for HD content.

Comcast’s DVR is just plain the worse thing I have ever seen. They only have a 160 gig HD in their HD-DVR which means that after a week of shows, it is usually out of space. Not to mention, there was NO way to schedule anything on it except scrolling through the on screen guide. There was no “searching” for items to tape. No way to save programs. No way to stream it to other units.. Think of it as the VCR of the 90’s with the VCR+ module added in.

Overall I think that DNNA made a bad move by discontinuing the ReplayTV EPG, but I guess in this day and age every one has to way the good vs the bad at some point.

WiRNS (the Windows Replay Network Server) URL: http://wirns.com/
DVarchive URL: http://dvarchive.org/
Schedules Direct URL: http://www.schedulesdirect.org/
ReplayTV announcement: http://www.digitalnetworksna.com/replaytv/

Comcast TV Funhouse

Since we last met, here is what is happening in the world of Comcast…

  1. They have started the compression of HD channels even more.. Now instead of having 2 HD’s per 6MHz, they are bunching 4 HD’s in the same 6MHz. Which makes watching anything with fast motion on it look horrible.
  2. The problem with the cable card flashing, has appeared to be fixed. Funny that the Corporate Escalation people don’t know it is fixed yet, or maybe the magic gremlin just hopped in the TiVo and did it.
  3. I decided to get rid of the Comcast SA 8300 HD/DVR box. The reason behind this one is that about 3 weeks or so ago, Comcast decided to move all of the HD channels from the 700’s to the 800’s (to be “grouped together better”, yeah what ever.) Well when this happened, my TiVo and ReplayTV DVR’s auto updated the scheduled recordings with the new channels numbers. However the crappy SA8300 box didn’t. So to my surprise when I got home and found it hadn’t recorded anything in a week or so I was pissed. See when you pay over $2600 a year to COMCAST for a service you should expect it to work as they say it should. So I decided to quit paying them the $15.95 a month for the DVR service and just switch to the TiVo. Well today was the day for the tech to come out and do the box/cable card swap. As usual Comcast has the wrong address on my account so the tech called me because they wanted to come early, well they were 3 miles away from my house on the other side of town. So after we got that straighten out they showed up. It was a contractor and a new employee he was training.

    So in goes the first cable card, and it comes up needing a firmware upgrade. So we let it go, it kept flashing saying it was going to take an hour, but ended up only taking about 20 minutes. After the update, he called the Comcast number, where we hear that the card that we just spent 20+ minutes updating, is “not in their inventory” and therefore can’t be used. F’ing great. So luckly they had brought 3 cards with them. That is where the luck ended, as the other 2 cards “were not in inventory” either. So basically some one dropped the ball at the warehouse and was watching tv when they should have been doing work. So they left saying that they were going to try to find some more cable cards so they could come back.

  4. After they left, I bitched and it got escalated to Corporate again. Well the tech called back around 4 and said that since I called corporate that there was nothing he could do. I told him it wasn’t his fault that some one else screwed up, and I can’t tell if his phone died, or he just hung up.. Anyways, Comcast Corporate called me about an hour after that and wanted to talk. So I talked to her and they said they were going to try to get some one out on Tuesday. I told them that I had already scheduled it for Saturday as I wasn’t going to waste my time again and take off work to sit around while they play “lets try this one”.
  5. So as it sits now my adventure with TiVo has in total been 6 techs since June, and 9 cable cards… Out of the 9 cable cards, only 2 of them have ever worked.
  6. Hopefully after all of this is done, I will save over $200 a year on my Comcast bill. Or I may save more if I just drop them and go with Dish network.

Mediatomb and Solaris 10

Now that I rebuilt the server, it was time to put media tomb on it to share media with the PS3. To get it to compile on Solaris (fresh 05/09 Update 7 install patched with the latest security and recommended patches), there are a couple of things you have to do (most of this is from http://blogs.sun.com/constantin/entry/mediatomb_on_solaris with some additional stuff I had to do:

1. Download the latest version of the “file” program from ftp://ftp.astron.com/pub/file/ (my case the current is 5.03)
2. Unzip/untar the file
3. Configure and run make:

gzip -d file-5.03.tar.gz
tar -xvf file-5.03.tar
cd file-5.03
./configure --prefix=/usr/local/file
gmake
su - root -c "gmake install"

3. There are a bunch of other requirements for mediatomb, the easiest way to get them is to use www.blastwave.org. The packages that I installed are:
CSWbdb4
CSWbzip2
CSWcurl
CSWcurlrt
CSWexpat
CSWfaac
CSWfaad2
CSWfconfig
CSWffmpeg
CSWffmpeglib
CSWftype2
CSWgcc3corert
CSWgcc3g++rt
CSWgcrypt
CSWggettext
CSWgpgerr
CSWiconv
CSWid3lib
CSWimlib2
CSWisaexec
CSWlame
CSWliba52
CSWlibid3tag
CSWlibidn
CSWlibnet
CSWlibogg
CSWlibsdl
CSWlibssh2
CSWlibtool
CSWlibtoolrt
CSWlibx11
CSWlibxau
CSWlibxcb
CSWlibxdmcp
CSWncurses
CSWoldaprt
CSWossl
CSWossldevel
CSWosslrt
CSWosslutils
CSWpixman
CSWpng
CSWsasl
CSWsdlmixer
CSWsqlite3
CSWsqlite3dev
CSWstl4
CSWsunmath
CSWtaglibgcc
CSWtheora
CSWtiff
CSWungif
CSWvorbis
CSWxvid
CSWzlib

4. Once these are installed, you can download mediatomb and compile it. http://mediatomb.cc/pages/download

gzip -d mediatomb-0.11.0.tar.gz
tar -xvf mediatomb-0.11.0.tar
cd mediatomb-0.11.0
./configure --prefix=/mediatomb --enable-iconv-lib --with-iconv-h=/opt/csw/include --with-iconv-libs=/opt/csw/lib --enable-libmagic --with-magic-h=/usr/local/file/include --with-magic-libs=/usr/local/file/lib --with-taglib-cfg=/opt/csw/bin/taglib-config --with-curl-cfg=/opt/csw/bin/curl-config --with-sqlite3-libs=/opt/csw/lib --with-sqlite3-h=/opt/csw/include --with-search=/opt/csw --with-id3lib-h=/opt/csw/include --with-id3-libs=/opt/csw/lib
gmake

However before you can run gmake, you need to edit a couple of files. One is the src/main.cc, you need to comment out lines 128 through 141. This is not needed for Solaris. The second file to edit is a result of this:

During the compile I got an error that looked like this:

../src/url.cc:78:53: macro "curl_easy_setopt" requires 3 arguments, but only 2 given
../src/url.cc: In member function `zmm::Ref<zmm ::StringBuffer> URL::download(zmm::String, long int*, CURL*, bool, bool, bool)':
../src/url.cc:78: warning: statement is a reference, not call, to function `curl_easy_setopt'

To fix it edit the src/url.cc file and on line 78 change it from this:

curl_easy_setopt(curl_handle, CURLOPT_NOBODY);

to this :

curl_easy_setopt(curl_handle, CURLOPT_NOBODY, 1);

Then rerun gmake . Once the compile is finished, su to root and do a gmake install, it will place all the media tomb stuff in /mediatomb. (I am using a Zone on a Solaris 10 machine so / has plenty of space).

I then created a user for mediatomb to be run under, so a user and group called mediatmb were created, and all the /mediatomb directories and files were changed to be owned by mediatmb

Once that was done, login as the mediatmb user and create a script in /mediatmb/bin with the following in it:

LD_LIBRARY_PATH=/opt/csw/lib:/usr/local/file/lib:/usr/sfw/lib
export LD_LIBRARY_PATH
./mediatomb --ip x.x.x.x --port 49194 --daemon --pidfile /tmp/mediatomb.pid --logfile=/tmp/mediatomb.log

where x.x.x.x is the IP address of the machine you are running it on. In Constantin’s blog, he mentioned also using the interface, but I found that it had problems since this was a zone. So instead of using the interface, I used the IP address of the zone.

The changes I made to the config.xml in the ~/.mediatomb directory are as follows:

-bash-3.00$ diff orig-config.xml config.xml 
6a7
&gt;       &lt;account user="unixwiz" password="video"/&gt;
23c24
&lt; &lt;protocolInfo extend="no"/&gt;&lt;!-- For PS3 support change to "yes" --&gt;
---
&gt;     &lt;protocolinfo extend="yes"/&gt;&lt;!-- For PS3 support change to "yes" --&gt;
44a46
&gt;     &lt;magic -file&gt;/usr/local/file/share/misc/magic.mgc&lt;/magic&gt;
46a49,50
&gt;       &lt;map from="mpg" to="video/mpeg"/&gt;
&gt;       &lt;map from="JPG" to="image/jpeg"/&gt;
61c65
&lt; &lt;!-- &lt;map from="avi" to="video/divx"/&gt; --&gt;
---
&gt;         &lt;map from="avi" to="video/divx"/&gt;

Now all you have to do is login to the web interface and add the media, following mediatomb’s documentation.

Some interesting things I have found with it:

1. If your PS3 is on wireless it may have problems streaming mp4, but not mpeg2. Weird I know as the mpeg2 was solid streaming at 370kb/s, but it couldn’t handle the mp4. Switching to a hardwired connection fixed that problem.

2. If you happen to be a ReplayTV user [cause TiVO is a wanna be replay 😉 ] you can use MediaTomb in conjunction with DVArchive, which also runs nicely in my Solaris zone. Just point a media directory at the Local_Guide directory and mediatomb will stream every MPEG2 file in that directory to your PS3. Which is pretty damn cool.

3. The PS3 is very pickly about it’s mp4 type files. Some that I made with handbrake don’t work, but ones I did with ffmpegx worked once I put the hardwired connection in.

4. I have not tried any of the transcoding stuff. I would rather do that before and not bog down my server doing that.

5. I need to do a lot of reading on how to make folders and the such so that my collection is organized and not just all under one directory.

For those interested:
My compile environment is setup like this:

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/ccs/bin:/usr/local/bin:/opt/csw/bin
SHELL=/bin/tcsh