
Recently I built my own Linux RAID1 NAS II Shuttle to store all my data. But not only does it store all my data, but this headless server handles all my BitTorrent downloads, and streams media to my PS3 frontend.

I thought it would be cool to try to add Digital Video Recording capabilities to the NAS. I picked up a Hauppauge WinTV Nova-T SE Digital Video Broadcast Terrestrial (DVB-T) USB Stick for 25 squids at PC world.
The reason the devices are so cheap now, is that they only contain tuners, and rely on software on the PC to decode the MPEG2 Transport Stream. The plan here is to use the Linux NAS to dump the MPEG2 Transport Stream to disk and then use mencoder to convert to DivX. Then wrap a PHP web front end around the Linux commands and stream via DLNA to my PS3. Similar to my BitTorrent downloads. DVR all for 25squids and a bit of hard work...
Hauppauge do not supply any Linux drivers for their kit so I had to rely on OpenSource and the work being done over at www.linuxtv.org. Once again its an OpenSource project with outdated confusing documentation and folk working on cutting edge kernels.
Unfortunately there is no binary package for the DVB-T drivers. First I had to install some of the development environment.
[root@vader ~]# yum install gcc kernel-devel kernel-headers |
After this I installed the Mercurial software packages, which is a cross-platform, distributed source management tool for software developers:
[root@vader ~]# yum install mercurial |
Once I had Mercurial installed I could download the latest v4l-dvb source code from LinuxTV:
[root@vader ~]# hg clone http://linuxtv.org/hg/v4l-dvb |
Next up was to try to compile the software:
[root@vader ~]# cd v4l-dvb [root@vader ~]# make |
As usual for OpenSource software the compile crashed and burned:
CC [M] /tmp/f/v4l-dvb/v4l/videodev.o /tmp/f/v4l-dvb/v4l/videodev.c:499: error: unknown field 'dev_attrs' specified in initializer /tmp/f/v4l-dvb/v4l/videodev.c:499: warning: initialization from incompatible pointer type /tmp/f/v4l-dvb/v4l/videodev.c:500: error: unknown field 'dev_release' specified in initializer /tmp/f/v4l-dvb/v4l/videodev.c:500: warning: missing braces around initializer /tmp/f/v4l-dvb/v4l/videodev.c:500: warning: (near initialization for 'video_class.subsys') /tmp/f/v4l-dvb/v4l/videodev.c:500: warning: initialization from incompatible pointer type make[3]: *** [/tmp/f/v4l-dvb/v4l/videodev.o] Error 1 make[2]: *** [_module_/tmp/f/v4l-dvb/v4l] Error 2 make[2]: Leaving directory `/usr/src/kernels/2.6.18-53.1.21.el5-i686' make[1]: *** [default] Error 2 make[1]: Leaving directory `/tmp/f/v4l-dvb/v4l' make: *** [all] Error 2 |
After a bit of Googling I found that the software does not compile properly on 2.6.18 kernels, which is what I have. Luckily there was a patch available:
diff -r b9523a14ccea linux/drivers/media/video/v4l1-compat.c
--- a/linux/drivers/media/video/v4l1-compat.c Sun Nov 04 14:34:05 2007
-0200
+++ b/linux/drivers/media/video/v4l1-compat.c Wed Nov 07 00:00:45 2007
-0600
@@ -145,7 +145,7 @@ const static unsigned int palette2pixelf
[VIDEO_PALETTE_YUV422P] = V4L2_PIX_FMT_YUV422P,
};
-static unsigned int __pure
+static unsigned int /* __pure */
palette_to_pixelformat(unsigned int palette)
{
if (palette < ARRAY_SIZE(palette2pixelformat))
diff -r b9523a14ccea linux/drivers/media/video/videodev.c
--- a/linux/drivers/media/video/videodev.c Sun Nov 04 14:34:05 2007
-0200
+++ b/linux/drivers/media/video/videodev.c Tue Nov 06 19:31:57 2007
-0600
@@ -111,7 +111,7 @@ static void video_release(struct device
vfd->release(vfd);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
static struct device_attribute video_device_attrs[] = {
__ATTR(name, S_IRUGO, show_name, NULL),
__ATTR_NULL
@@ -120,7 +120,7 @@ static struct device_attribute video_dev
static struct class video_class = {
.name = VIDEO_NAME,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
.release = video_release,
#else
.dev_attrs = video_device_attrs,
|
Unfortunately this patch completely failed to work using the patch command:
[root@vader ~]# patch -p1 < patch.txt patch: **** malformed patch at line 7: [VIDEO_PALETTE_YUV422P] = V4L2_PIX_FMT_YUV422P, |
Bugger. Anyway its such a small patch that I applied the differences by hand to the two files.
The manual edits fixed this issue and the compile made it a little further but then failed:
CC [M] /tmp/f/v4l-dvb/v4l/drx397xD.o /tmp/f/v4l-dvb/v4l/drx397xD.c: In function 'drx_tune': /tmp/f/v4l-dvb/v4l/drx397xD.c:1066: error: implicit declaration of function 'div64_64' make[3]: *** [/tmp/f/v4l-dvb/v4l/drx397xD.o] Error 1 make[2]: *** [_module_/tmp/f/v4l-dvb/v4l] Error 2 make[2]: Leaving directory `/usr/src/kernels/2.6.18-53.1.21.el5-i686' make[1]: *** [default] Error 2 make[1]: Leaving directory `/tmp/f/v4l-dvb/v4l' make: *** [all] Error 2 |
This time there was no help on Google. So I edited drx397xD.c and commented out the lines.
/* Configure bandwidth specific factor */
/*
ebx = div64_u64(((u64) (s->f_osc) << 21) + (ebx >> 1),
(u64)ebx) - 0x800000;
EXIT_RC(WR16(s, 0x0c50010, ebx & 0xffff));
EXIT_RC(WR16(s, 0x0c50011, ebx >> 16));
*/
/* drx397xD oscillator calibration */
/*
ebx = div64_u64(((u64) (s->config.f_if + df_tuner) << 28) +
(s->f_osc >> 1), (u64)s->f_osc);
*/
|
After this the compile completed successfully. I just hope this function is not used :-)
[root@vader ~]# make install |
I rebooted the computer, but no USB WinTV stick detected on startup.
To get the drivers to load I had to use make load:
[root@vader ~]# make load /sbin/modprobe video-buf /sbin/modprobe snd /sbin/modprobe i2c-algo-bit /sbin/modprobe snd-page-alloc /sbin/modprobe i2c-core /sbin/modprobe parport /sbin/modprobe snd-pcm /sbin/insmod ./itd1000.ko /sbin/insmod ./s5h1411.ko /sbin/insmod ./nxt6000.ko /sbin/insmod ./ttusbdecfe.ko /sbin/insmod ./tuner-xc2028.ko /sbin/insmod ./dib0070.ko /sbin/insmod ./tda826x.ko /sbin/insmod ./tda10048.ko /sbin/insmod ./ttpci-eeprom.ko /sbin/insmod ./cx24123.ko /sbin/insmod ./saa7146.ko /sbin/insmod ./tea6420.ko /sbin/insmod ./dabusb.ko /sbin/insmod ./bt866.ko /sbin/insmod ./saa7191.ko /sbin/insmod ./saa7111.ko /sbin/insmod ./tda827x.ko /sbin/insmod ./cx24110.ko /sbin/insmod ./ir-common.ko /sbin/insmod ./tveeprom.ko /sbin/insmod ./l64781.ko /sbin/insmod ./ovcamchip.ko /sbin/insmod ./videobuf-core.ko insmod: error inserting './videobuf-core.ko': -1 Invalid module format /sbin/insmod ./saa7110.ko /sbin/insmod ./bt819.ko /sbin/insmod ./mt2131.ko /sbin/insmod ./tda9840.ko /sbin/insmod ./tda8290.ko /sbin/insmod ./sp8870.ko /sbin/insmod ./drx397xD.ko /sbin/insmod ./v4l2-int-device.ko /sbin/insmod ./au8522.ko /sbin/insmod ./dvb-pll.ko /sbin/insmod ./saa6588.ko /sbin/insmod ./v4l2-common.ko /sbin/insmod ./vpx3220.ko /sbin/insmod ./bcm3510.ko /sbin/insmod ./ves1820.ko /sbin/insmod ./nxt200x.ko /sbin/insmod ./mxl5005s.ko /sbin/insmod ./tda9875.ko /sbin/insmod ./tea5761.ko /sbin/insmod ./tda1004x.ko /sbin/insmod ./cx88-vp3054-i2c.ko /sbin/insmod ./xc5000.ko /sbin/insmod ./qt1010.ko /sbin/insmod ./isl6405.ko /sbin/insmod ./dvb-core.ko /sbin/insmod ./v4l1-compat.ko /sbin/insmod ./saa6752hs.ko /sbin/insmod ./mt312.ko /sbin/insmod ./tea5767.ko /sbin/insmod ./mt352.ko /sbin/insmod ./tda10086.ko /sbin/insmod ./s5h1420.ko /sbin/insmod ./videocodec.ko /sbin/insmod ./cx22700.ko /sbin/insmod ./cx22702.ko /sbin/insmod ./dvb-usb-af9005-remote.ko /sbin/insmod ./tda10021.ko /sbin/insmod ./tda18271.ko /sbin/insmod ./zl10353.ko /sbin/insmod ./btcx-risc.ko /sbin/insmod ./mt2060.ko /sbin/insmod ./tuner-3036.ko /sbin/insmod ./isl6421.ko /sbin/insmod ./mt20xx.ko /sbin/insmod ./tda9887.ko /sbin/insmod ./saa7114.ko /sbin/insmod ./tua6100.ko /sbin/insmod ./tda10023.ko /sbin/insmod ./tuner-types.ko /sbin/insmod ./snd-bt87x.ko /sbin/insmod ./tea6415c.ko /sbin/insmod ./dibx000_common.ko insmod: error inserting './dibx000_common.ko': -1 File exists /sbin/insmod ./ks0127.ko /sbin/insmod ./lnbp21.ko /sbin/insmod ./mt2266.ko /sbin/insmod ./s5h1409.ko /sbin/insmod ./saa7185.ko /sbin/insmod ./tda8083.ko /sbin/insmod ./dib3000mb.ko /sbin/insmod ./adv7170.ko /sbin/insmod ./compat_ioctl32.ko /sbin/insmod ./bt856.ko /sbin/insmod ./stv0297.ko /sbin/insmod ./sp887x.ko /sbin/insmod ./ves1x93.ko /sbin/insmod ./adv7175.ko /sbin/insmod ./videobuf-vmalloc.ko insmod: error inserting './videobuf-vmalloc.ko': -1 Unknown symbol in module /sbin/insmod ./tda7432.ko insmod: error inserting './tda7432.ko': -1 Unknown symbol in module /sbin/insmod ./m52790.ko /sbin/insmod ./zr36016.ko /sbin/insmod ./lgdt330x.ko /sbin/insmod ./msp3400.ko insmod: error inserting './msp3400.ko': -1 Unknown symbol in module /sbin/insmod ./cx2341x.ko /sbin/insmod ./videobuf-dvb.ko insmod: error inserting './videobuf-dvb.ko': -1 Unknown symbol in module /sbin/insmod ./saa7127.ko /sbin/insmod ./tvp5150.ko /sbin/insmod ./cs53l32a.ko /sbin/insmod ./zr36050.ko /sbin/insmod ./b2c2-flexcop.ko /sbin/insmod ./saa717x.ko /sbin/insmod ./or51211.ko /sbin/insmod ./tlv320aic23b.ko /sbin/insmod ./ir-kbd-i2c.ko /sbin/insmod ./dib7000p.ko /sbin/insmod ./dvb-ttusb-budget.ko /sbin/insmod ./videobuf-dma-sg.ko insmod: error inserting './videobuf-dma-sg.ko': -1 Unknown symbol in module /sbin/insmod ./tvaudio.ko /sbin/insmod ./upd64031a.ko /sbin/insmod ./dvb-usb.ko /sbin/insmod ./wm8775.ko /sbin/insmod ./dib7000m.ko /sbin/insmod ./tuner-simple.ko /sbin/insmod ./vp27smpx.ko /sbin/insmod ./saa7115.ko /sbin/insmod ./dib3000mc.ko insmod: error inserting './dib3000mc.ko': -1 File exists /sbin/insmod ./au0828.ko /sbin/insmod ./pluto2.ko /sbin/insmod ./upd64083.ko /sbin/insmod ./tuner.ko insmod: error inserting './tuner.ko': -1 Unknown symbol in module /sbin/insmod ./stv0299.ko /sbin/insmod ./cs5345.ko /sbin/insmod ./cinergyT2.ko /sbin/insmod ./ov7670.ko /sbin/insmod ./zr36060.ko /sbin/insmod ./ttusb_dec.ko /sbin/insmod ./budget-core.ko /sbin/insmod ./videodev.ko /sbin/insmod ./cx25840.ko /sbin/insmod ./or51132.ko /sbin/insmod ./wm8739.ko /sbin/insmod ./w9966.ko /sbin/insmod ./dvb-usb-dibusb-common.ko /sbin/insmod ./saa5246a.ko /sbin/insmod ./dvb-usb-ttusb2.ko /sbin/insmod ./dvb-usb-vp7045.ko /sbin/insmod ./saa7146_vv.ko insmod: error inserting './saa7146_vv.ko': -1 Unknown symbol in module /sbin/insmod ./zr364xx.ko /sbin/insmod ./ivtv.ko /sbin/insmod ./sn9c102.ko /sbin/insmod ./usbvision.ko /sbin/insmod ./cx88xx.ko insmod: error inserting './cx88xx.ko': -1 Unknown symbol in module /sbin/insmod ./em28xx.ko insmod: error inserting './em28xx.ko': -1 Unknown symbol in module /sbin/insmod ./pvrusb2.ko /sbin/insmod ./dvb-usb-af9005.ko /sbin/insmod ./cpia.ko /sbin/insmod ./c-qcam.ko /sbin/insmod ./b2c2-flexcop-pci.ko /sbin/insmod ./bttv.ko insmod: error inserting './bttv.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-usb-opera.ko /sbin/insmod ./dvb-usb-cxusb.ko /sbin/insmod ./dvb-usb-gp8psk.ko /sbin/insmod ./budget-ci.ko /sbin/insmod ./zc0301.ko /sbin/insmod ./saa7134.ko insmod: error inserting './saa7134.ko': -1 Unknown symbol in module /sbin/insmod ./dsbr100.ko /sbin/insmod ./radio-gemtek-pci.ko /sbin/insmod ./radio-maxiradio.ko /sbin/insmod ./et61x251.ko /sbin/insmod ./dvb-usb-vp702x.ko /sbin/insmod ./dvb-usb-dib0700.ko /sbin/insmod ./dvb-usb-m920x.ko /sbin/insmod ./cx18.ko /sbin/insmod ./dvb-usb-au6610.ko /sbin/insmod ./saa5249.ko /sbin/insmod ./usbvideo.ko /sbin/insmod ./radio-maestro.ko /sbin/insmod ./b2c2-flexcop-usb.ko /sbin/insmod ./vivi.ko insmod: error inserting './vivi.ko': -1 Unknown symbol in module /sbin/insmod ./budget.ko /sbin/insmod ./stv680.ko /sbin/insmod ./dvb-usb-digitv.ko /sbin/insmod ./bw-qcam.ko /sbin/insmod ./pwc.ko /sbin/insmod ./dvb-usb-anysee.ko /sbin/insmod ./se401.ko /sbin/insmod ./zr36067.ko insmod: error inserting './zr36067.ko': -1 No such device /sbin/insmod ./cpia2.ko /sbin/insmod ./snd-tea575x-tuner.ko /sbin/insmod ./cx23885.ko insmod: error inserting './cx23885.ko': -1 Unknown symbol in module /sbin/insmod ./stradis.ko /sbin/insmod ./dvb-usb-dtt200u.ko /sbin/insmod ./ov511.ko /sbin/insmod ./w9968cf.ko /sbin/insmod ./dvb-usb-gl861.ko /sbin/insmod ./vicam.ko /sbin/insmod ./budget-patch.ko /sbin/insmod ./saa7134-empress.ko insmod: error inserting './saa7134-empress.ko': -1 Unknown symbol in module /sbin/insmod ./em28xx-dvb.ko insmod: error inserting './em28xx-dvb.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-usb-dibusb-mc.ko /sbin/insmod ./quickcam_messenger.ko /sbin/insmod ./ibmcam.ko /sbin/insmod ./hexium_gemini.ko insmod: error inserting './hexium_gemini.ko': -1 Unknown symbol in module /sbin/insmod ./em28xx-alsa.ko insmod: error inserting './em28xx-alsa.ko': -1 Unknown symbol in module /sbin/insmod ./saa7134-alsa.ko insmod: error inserting './saa7134-alsa.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-usb-a800.ko /sbin/insmod ./cpia_pp.ko /sbin/insmod ./konicawc.ko /sbin/insmod ./cpia_usb.ko /sbin/insmod ./dvb-usb-nova-t-usb2.ko /sbin/insmod ./ivtvfb.ko insmod: error inserting './ivtvfb.ko': -1 No such device /sbin/insmod ./ultracam.ko /sbin/insmod ./dvb-usb-umt-010.ko /sbin/insmod ./dpc7146.ko insmod: error inserting './dpc7146.ko': -1 Unknown symbol in module /sbin/insmod ./bt878.ko insmod: error inserting './bt878.ko': -1 Unknown symbol in module /sbin/insmod ./cx8800.ko insmod: error inserting './cx8800.ko': -1 Unknown symbol in module /sbin/insmod ./budget-av.ko insmod: error inserting './budget-av.ko': -1 Unknown symbol in module /sbin/insmod ./cx8802.ko insmod: error inserting './cx8802.ko': -1 Unknown symbol in module /sbin/insmod ./hexium_orion.ko insmod: error inserting './hexium_orion.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-usb-dibusb-mb.ko /sbin/insmod ./mxb.ko insmod: error inserting './mxb.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-ttpci.ko insmod: error inserting './dvb-ttpci.ko': -1 Unknown symbol in module /sbin/insmod ./saa7134-dvb.ko insmod: error inserting './saa7134-dvb.ko': -1 Unknown symbol in module /sbin/insmod ./cx88-alsa.ko insmod: error inserting './cx88-alsa.ko': -1 Unknown symbol in module /sbin/insmod ./cx88-dvb.ko insmod: error inserting './cx88-dvb.ko': -1 Unknown symbol in module /sbin/insmod ./dst.ko insmod: error inserting './dst.ko': -1 Unknown symbol in module /sbin/insmod ./dvb-bt8xx.ko insmod: error inserting './dvb-bt8xx.ko': -1 Unknown symbol in module /sbin/insmod ./cx88-blackbird.ko insmod: error inserting './cx88-blackbird.ko': -1 Unknown symbol in module /sbin/insmod ./dst_ca.ko insmod: error inserting './dst_ca.ko': -1 Unknown symbol in module make[1]: Leaving directory `/tmp/m/v4l-dvb/v4l' |
However this loads tons of stuff I don't need, and a lot fail to load. What I need is the exact modules I need.
/sbin/modprobe video-buf /sbin/modprobe snd /sbin/modprobe i2c-algo-bit /sbin/modprobe snd-page-alloc /sbin/modprobe i2c-core /sbin/modprobe parport /sbin/modprobe snd-pcm /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/dabusb.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dib0070.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/v4l2-int-device.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/v4l2-common.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/videodev.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/dvb-core/dvb-core.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/v4l1-compat.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/video/videocodec.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dibx000_common.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/dvb-usb/dvb-usb.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dib3000mc.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dib3000mb.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/common/tuners/tuner-types.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/common/tuners/tuner-simple.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dib7000p.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/frontends/dib7000m.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dib0700.ko /sbin/insmod /lib/modules/2.6.18-53.el5/kernel/drivers/media/dvb/dvb-usb/dvb-usb-nova-t-usb2.ko chmod o+rw /dev/dvb/adapter0/frontend0 chmod o+rw /dev/dvb/adapter0/demux0 chmod o+rw /dev/dvb/adapter0/dvr0 |
A quick check of dmesg confirms all the modules and drivers loaded ok:
[root@vader ~]# make install Linux video codec intermediate layer: v0.2 dib0700: loaded with support for 7 different device-types dvb-usb: found a 'Hauppauge Nova-T Stick' in warm state. dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. DVB: registering new adapter (Hauppauge Nova-T Stick) DVB: registering frontend 0 (DiBcom 7000PC)... DiB0070: successfully identified input: IR-receiver inside an USB DVB receiver as /class/input/input1 dvb-usb: schedule remote query interval to 150 msecs. dvb-usb: Hauppauge Nova-T Stick successfully initialized and connected. usbcore: registered new driver dvb_usb_dib0700 usbcore: registered new driver dvb_usb_nova_t_usb2 |
To allow non root users to record it is necessary to change the permissions on the devices:
[root@vader s]# chmod o+rw /dev/dvb/adapter0/frontend0 [root@vader s]# chmod o+rw /dev/dvb/adapter0/demux0 [root@vader s]# chmod o+rw /dev/dvb/adapter0/dvr0 |
Since the modules will not be reloaded on reboot, and the device permissions will be reset, it is necessary to add a startup script to /etc/rc3.d:
-rwxr-xr-x 1 root root 1935 Jun 22 19:08 S99usbtv |
I now have a working DVR-T so now lets get recording!
The drivers cannot auto-tune so you need to supply the info about your Digital Transmitter. Fortunately the drivers come with a list of all the UK Transmitters. To find out the Transmitter for your area check www.freeview.co.uk
[root@vader s]# scan /usr/share/dvb/dvb-t/uk-Hannington scanning /usr/share/dvb/dvb-t/uk-Hannington using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 706000000 0 3 9 1 0 0 0 >>> tune to: 706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE Network Name 'Hannington' 0x0000 0x113f: pmt_pid 0x113f BBC -- BBC NEWS (running) 0x0000 0x117f: pmt_pid 0x117f BBC -- BBCi (running) 0x0000 0x123f: pmt_pid 0x123f BBC -- CBBC Channel (running) 0x0000 0x1043: pmt_pid 0x1043 BBC -- BBC ONE (running) 0x0000 0x10ff: pmt_pid 0x10ff BBC -- BBC THREE (running) 0x0000 0x1083: pmt_pid 0x1083 BBC -- BBC TWO (running) >>> tune to: 650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE 0x200f 0x204f: pmt_pid 0x0100 ITV -- ITV1 (running) 0x200f 0x20c0: pmt_pid 0x012c Channel 4 TV -- Channel 4 (running) 0x200f 0x2100: pmt_pid 0x0130 Channel 4 TV -- E4 (running) 0x200f 0x2178: pmt_pid 0x0110 Teletext Limited -- Teletext (running) 0x200f 0x2240: pmt_pid 0x0114 Channel 4 TV -- Teletext on 4 (running) 0x200f 0x21ba: pmt_pid 0x0112 Teletext Limited -- Rabbit (running) 0x200f 0x20a1: pmt_pid 0x0116 ITV -- ITV4 (running) 0x200f 0x20fa: pmt_pid 0x010e Channel 4 TV -- More 4 (running) 0x200f 0x2104: pmt_pid 0x0131 Channel 4 TV -- Channel 4+1 (running) 0x200f 0x2085: pmt_pid 0x0102 ITV -- ITV2 (running) 0x200f 0x2066: pmt_pid 0x0104 ITV -- ITV3 (running) 0x200f 0x2244: pmt_pid 0x011c Global Radio -- Heart (running) Network Name 'Hannington' >>> tune to: 626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE Network Name 'Hannington' 0x3002 0x3242: pmt_pid 0x0101 five -- Five (running) 0x3002 0x3280: pmt_pid 0x0113 five -- FIVER (running) 0x3002 0x32c0: pmt_pid 0x0117 five -- Five US (running) 0x3002 0x3340: pmt_pid 0x0103 QVC -- QVC (running) 0x3002 0x37c0: pmt_pid 0x0105 Sit-Up Ltd -- bid tv (running) 0x3002 0x3900: pmt_pid 0x010a EMAP -- Smash Hits! (running) 0x3002 0x3940: pmt_pid 0x010b EMAP -- MOJO (running) 0x3002 0x39c0: pmt_pid 0x010c Teletext Limited -- Ttext Holidays (running) 0x3002 0x3a80: pmt_pid 0x010e five -- UKTV STYLE (running, scrambled) 0x3002 0x3b80: pmt_pid 0x0112 five -- TVX / REDHOT (running) 0x3002 0x3cc0: pmt_pid 0x0114 five -- UKTV GOLD (running, scrambled) 0x3002 0x3d00: pmt_pid 0x0115 Sit-Up Ltd -- price-drop tv (running) 0x3002 0x3dc0: pmt_pid 0x0118 five -- Teachers TV (running) 0x3002 0x3e20: pmt_pid 0x0124 Turner Broadcasting System Europe Limited -- Nuts TV (running) 0x3002 0x3e80: pmt_pid 0x011d five -- eurosport uk (running, scrambled) 0x3002 0x3ea0: pmt_pid 0x0104 ITV -- CITV (running) 0x3002 0x3ee0: pmt_pid 0x011c ITV -- SETANTA SPORTS (running) 0x3002 0x3f00: pmt_pid 0x011b Teletext Limited -- TeletextCasino (running) 0x3002 0x3f60: pmt_pid 0x0120 TopUp TV Ltd -- TOPUP Anytime1 (running, scrambled) 0x3002 0x3f80: pmt_pid 0x0121 TopUp TV Ltd -- TOPUP Anytime2 (running, scrambled) 0x3002 0x3fa0: pmt_pid 0x0122 TopUp TV Ltd -- TOPUP Anytime3 (running, scrambled) >>> tune to: 674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE 0x4000 0x4280: pmt_pid 0x02ca BBC -- BBC Parliament (running) 0x4000 0x41c0: pmt_pid 0x02be BBC -- BBC FOUR (running) 0x4000 0x4240: pmt_pid 0x02bf BBC -- CBeebies (running) 0x4000 0x4600: pmt_pid 0x02c0 BBC -- BBC R5 Live (running) 0x4000 0x4640: pmt_pid 0x02c1 BBC -- BBC 5L SportsX (running) 0x4000 0x4680: pmt_pid 0x02c2 BBC -- BBC 6 Music (running) 0x4000 0x46c0: pmt_pid 0x02c3 BBC -- BBC 7 (running) 0x4000 0x4700: pmt_pid 0x02c4 BBC -- 1Xtra BBC (running) 0x4000 0x4740: pmt_pid 0x02c5 BBC -- BBC Asian Net. (running) 0x4000 0x4c00: pmt_pid 0x02c6 BBC -- 301 (running) 0x4000 0x4c40: pmt_pid 0x02c7 BBC -- 302 (running) 0x4000 0x4c80: pmt_pid 0x02c8 BBC -- 303 (running) 0x4000 0x4180: pmt_pid 0x02bd BBC -- 305 (running) 0x4000 0x4e00: pmt_pid 0x02c9 BBC -- Community (running) 0x4000 0x4840: pmt_pid 0x02cb BBC -- BBC Radio 1 (running) 0x4000 0x4880: pmt_pid 0x02cc BBC -- BBC Radio 2 (running) 0x4000 0x48c0: pmt_pid 0x02cd BBC -- BBC Radio 3 (running) 0x4000 0x4900: pmt_pid 0x02ce BBC -- BBC Radio 4 (running) Network Name 'Hannington' >>> tune to: 658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE 0x5000 0x5740: pmt_pid 0x02c1 Channel 4 TV -- E4+1 (running) 0x5000 0x5640: pmt_pid 0x02bd Sky -- Sky News (running) 0x5000 0x5680: pmt_pid 0x02be Sky -- Sky Spts News (running) 0x5000 0x56c0: pmt_pid 0x02bf Sky -- SKY THREE (running) 0x5000 0x5840: pmt_pid 0x02c2 talkSPORT -- talkSPORT (running) 0x5000 0x5c80: pmt_pid 0x02cd Sky -- Sky Text (running) 0x5000 0x5a40: pmt_pid 0x02ca Virgin Radio -- Virgin Radio (running) 0x5000 0x5cc0: pmt_pid 0x02cf yoomedia -- tvtv DIGITAL (running) 0x5000 0x5700: pmt_pid 0x02c0 UKTV -- Dave (running) 0x5000 0x5780: pmt_pid 0x02cc Square1 Management Ltd -- smileTV (running) 0x5000 0x59c0: pmt_pid 0x02c8 London Christian Radio Ltd -- Premier Radio (running) 0x5000 0x5a00: pmt_pid 0x02c9 Score Digital -- Clyde 1 (running) Network Name 'Hannington' >>> tune to: 634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE 0x6000 0x6440: pmt_pid 0x03e9 EMAP -- The HITS (running) 0x6000 0x6480: pmt_pid 0x03ea MTV Europe -- TMF (running) 0x6000 0x64c0: pmt_pid 0x03eb UKTV -- UKTV History (running) 0x6000 0x6500: pmt_pid 0x03ec Flextech -- Virgin1 (running) 0x6000 0x6540: pmt_pid 0x03ed CCI -- Ideal World (running) 0x6000 0x6640: pmt_pid 0x03fd EMAP -- Kiss (running) 0x6000 0x66c0: pmt_pid 0x03ff EMAP -- Kerrang! (running) 0x6000 0x6700: pmt_pid 0x0400 GMG -- SMOOTH RADIO (running) 0x6000 0x67c0: pmt_pid 0x0403 EMAP -- The Hits Radio (running) 0x6000 0x6800: pmt_pid 0x0404 EMAP -- Magic (running) 0x6000 0x6840: pmt_pid 0x0405 EMAP -- Q (running) 0x6000 0x6980: pmt_pid 0x0407 4TV Ltd -- 4TVinteractive (running) 0x6000 0x69c0: pmt_pid 0x03ee ITV -- ITV2 +1 (running) 0x6000 0x6a00: pmt_pid 0x03f0 Channel 4 TV -- Film4 (running) 0x6000 0x6780: pmt_pid 0x0402 BBC -- BBC World Sv. (running) 0x6000 0x6680: pmt_pid 0x03fe EMAP -- heat (running) 0x6000 0x6a40: pmt_pid 0x03f1 Channel 4 -- Gems TV (running) 0x6000 0x6a80: pmt_pid 0x03f2 Camelot Group plc -- Lottery Xtra (running) Network Name 'Hannington' dumping lists (88 services) BBC THREE:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4351 BBC NEWS:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:640:641:4415 BBCi:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4479 CBBC Channel:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:620:621:4671 BBC TWO:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:610:611:4227 BBC ONE:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:4163 ITV1:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:520:521:8271 Teletext:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:8568 Rabbit:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:789:8634 Teletext on 4:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:8768 Channel 4:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:560:561:8384 E4:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:570:571:8448 More 4:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:590:591:8442 Channel 4+1:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:580:581:8452 ITV4:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:8353 [2243]:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:621:8771 Heart:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:631:8772 ITV2:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:530:531:8325 ITV3:650166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:540:541:8294 Five:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6017:6018:12866 FIVER:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6673:6674:12928 Five US:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6689:6690:12992 QVC:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6049:6050:13120 bid tv:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6273:6274:14272 Smash Hits!:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6306:14592 MOJO:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6322:14656 Ttext Holidays:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6354:14784 UKTV STYLE:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:14976 TVX / REDHOT:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:15232 UKTV GOLD:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:15552 price-drop tv:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6513:6514:15616 Teachers TV:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:15808 Nuts TV:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:15904 eurosport uk:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:16000 CITV:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6833:6834:16032 SETANTA SPORTS:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:16096 TeletextCasino:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6754:16128 TOPUP Anytime1:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6705:6706:16224 TOPUP Anytime2:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:16256 TOPUP Anytime3:626166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6737:6738:16288 302:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:19520 301:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:203:407:19456 BBC Radio 4:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:439:18688 BBC Radio 3:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:438:18624 BBC Radio 2:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:437:18560 BBC Radio 1:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:436:18496 BBC Asian Net.:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:435:18240 1Xtra BBC:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:434:18176 BBC 7:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:433:18112 BBC 6 Music:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:432:18048 BBC 5L SportsX:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:431:17984 BBC R5 Live:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:430:17920 BBC Parliament:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:205:421:17024 CBeebies:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:401:16960 BBC FOUR:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:16832 305:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:403:16768 Community:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:204:411:19968 303:674166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:19584 tvtv DIGITAL:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:23744 Sky Text:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:23680 Virgin Radio:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1901:23104 Clyde 1:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1801:23040 Premier Radio:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1701:22976 talkSPORT:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1101:22592 smileTV:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:401:402:22400 E4+1:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:501:502:22336 Dave:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:22272 SKY THREE:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:301:302:22208 Sky Spts News:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:202:22144 Sky News:658166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:101:102:22080 Film4:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:701:702:27136 ITV2 +1:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:601:602:27072 4TVinteractive:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:27008 Q:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1901:26688 Magic:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1801:26624 The Hits Radio:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1701:26560 BBC World Sv.:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1601:26496 SMOOTH RADIO:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1401:26368 Kerrang!:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1301:26304 heat:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1201:26240 Kiss:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1101:26176 Ideal World:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:501:502:25920 Virgin1:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:25856 UKTV History:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:301:302:25792 TMF:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:202:25728 The HITS:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:101:102:25664 Lottery Xtra:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:27264 Gems TV:634166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:27200 Done. |
Note this places a file in the .mplayer users home directory:
[root@vader video]# ls -l /root/.mplayer/ -rw-r--r-- 1 root root 12484 Jun 20 01:27 channels.conf |
If you want to record as another user you need to copy this file, or generate another one and place in that users home directory.
All digital broadcasts are transmitted in MPEG-2 transport streams. To record you simply need to dump the MPEG-2 Transport Stream to disk:
mplayer -noconsolecontrols -dumpstream -dumpfile ts-stream dvb://"BBC ONE" & |
To record for a set period of time needs a little shell script. mplayers --end-pos argument does not work as expected.
mplayer -noconsolecontrols -dumpstream -dumpfile ts-stream dvb://"BBC ONE" & PID=$! sleep 60 kill $PID sleep 5 kill -9 $PID |
The TS MPEG-2 file can be played by a number of media players, but I prefer to convert it to DivX:
mencoder -forceidx -vf scale=640:-2 -ovc xvid -xvidencopts "quant_type=mpeg:bitrate=1000:nopacked" -oac mp3lame -lameopts cbr:br=192 ts-stream -o output.avi |
I have just used a single pass encode with a bit rate of above, but I could use a two pass encode for slightly better quality. Also rather than dumping the MPEG2 Transport Stream to disk it is possible to encode to DivX on the fly. But this needs a fast CPU and the quality would not be as good:
mencoder dvb://ITV1 -forceidx -vf scale=640:-2 -ovc xvid -xvidencopts "quant_type=mpeg:bitrate=1000:nopacked" -oac mp3lame -lameopts cbr:br=192 -o output.avi |
Now I can record, I wrote a simple web PHP front end to schedule and kick off recording:

Looking in the TV guide and manually entering the times into the web GUI feels a bit primitive! I downloaded a TV listings downloader program from xmltv.org. This downloads the listings in XMLTV format. I wrote a perl script to convert the XMLTV to HTML and laid it out with style sheets, so when you click on a program it calls the PHP scripts and adds it to my download cron jobs.

It now works like any DVR like Sky+. Also because its a web front end on my headless NASII Linux Shuttle I can connect to it from anywhere on the Internet and schedule programs to record. The content is the wirelessly streamed to my PS3 in the lounge to watch.