Friday, November 20, 2009

Watch TV with the ATI TV Wonder 600 USB stick

The ATI TV Wonder 600 USB stick supports NTSC and ATSC, as well as composite input and S-video. It shows up (if you do a lsusb) with a manufacturer:device combo as 0438:b002 from Advanced Micro Devices (AMD), the company that bought ATI a while back .This guide will walk you through the steps of watching and recording ATSC TV.

1. Add the Packman repositories. You can do this in Yast2, under Software, then Software Repositories.

2. Install the dvb, vlc, and MPlayer packages. As root:

yast -i dvb vlc mplayer


3. Get the firmware file xc3028L-v36.fw from here:

http://steventoth.net/linux/hvr1400/xc3028L-v36.fw

and save it to /lib/firmware (you'll need to be root).

4. Get a channel list. Not as root, perform:

scan /usr/share/dvb/atsc/us-NTSC-center-frequencies-8VSB -o zap -a 0 | tee ~/channels.conf


If you're not in the US, then you'll need a different scanning file other than us-NTSC-center. Look at the list in /usr/share/dvb/atsc and select one that is appropriate for your location.

The "-a 0" switch indicates that it should use the first DVB adapter in your system. If you this is a second adapter, then use "-a 1".

This will take some time and will generate a number of "tuning failed!!!" messages. These are harmless.

When the process is complete, you may want to manually edit the first column of the file, which is the name of the station. Some stations include contact information and that may confuse other programs that try and use the file. For example, if the file contains a line like:

WHSD - 1-800-123-WHSD:562000000:8VSB:81:92:3


Replace it with something more readable, like:

NBC:562000000:8VSB:81:92:3



5. Watch TV

vlc ~/channels.conf


If this is the second adapter, use the switch "--dvb-adapter=0". The navigation controls in vlc change the channels.

If you right-click on the image, there is a de-interlacing option. Enable de-interlacing to improve the video quality on LCD monitors, otherwise motion will appear to "tear".

I am able to watch TV on my 900MHz Celeron netbook. It is important to note that different channels will broadcast at different quality levels. Depending on the channel, my cpu usage can be anywhere from 40% to near 100%.


6. Record TV First, copy the channels file to ~/.mplayer/. Record with:

mencoder dvb://"NBC" -o Chuck.avi -oac copy -ovc copy


If this is a second adapter, then it will be 'dvb://2@"NBC"'. This requires very low CPU usage, but an extreme amount of hard disk space (roughly 1GB every ten minutes). You can try to re-encode the file on the fly, but the CPU usage will be very high and I haven't found a combination of settings that maintains the original quality of the video. But as a starting point:

mencoder dvb://"NBC" -o Chuck.avi -oac mp3lame -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500:vhq


You can play back the recorded file using any media player, but with mplayer, it's:

mplayer Chuck.avi -vf pp=fd


Where the "-vf pp=fd" switch turns on de-interlacing.

1 comment: