VDR

From LinuxMCE
Revision as of 23:15, 24 May 2008 by Perspectoff (Talk | contribs) (Configuration)

Jump to: navigation, search

The Video Disk Recorder

VDR is a personal video recorder system aimed at the DVB market. It supports DVB-S, DVB-C and DVB-T tuner cards. More details can be found at the VDR homepage.

It is the second PVR system integrated into LinuxMCE. The main aim is for a seamless integration into LinuxMCE. The UI should not change between VDR and the other LinuxMCE pieces. The first version of this integration is scheduled for January 2008, and is mainly sponsored by Convergent Home Technologies Ltd.

Configuration

Recently I managed to setup VDR under LinuxMCE successfully. This brief howto is a result of my personal experience. So, don't hesitate to improve it.

Installation

VDR can be chosen by two ways. The first one is initial configuration after installation. During setup the media center property you should choose VDR and not MythTV. The second way is to tick VDR and tick off MythTV on the Software modules page - Wizard --> Media Directors. In both cases VDR will be installed automatically and will start after installation.

LMCE-software-modules.jpg

To make VDR configuration and manage easier its web interface - VDRAdmin can be used. It should be installed manually:

   sudo apt-get install vdradmin-am

and then enabled to be able run by replacing ENABLED="0" by ENABLED="1" in the /etc/default/vdradmin-am. Also don't forget to add a new firewall rule for the port 8001 - Advanced -->> Network --> Firewall Rules.

Scanning for Channels

To enable scanning for channels the DVB utilities package should also installed manually:

   sudo apt-get update

then do

   sudo apt-get install dvb-utils

Scanning for DVB-T Channels

Firstly we need to stop VDR before we scan for channels;

   sudo /etc/init.d/vdr stop

Above we installed the dvb-utils package and this will have installed the scan utility and tuning files for many DVB transmitters in various regions. Look for a transmitter in your region by looking in the following directory;

 ls /usr/share/doc/dvb-utils/examples/scan/dvb-t

You should now see something like this on your console;

au-Adelaide            fi-Ahtari          fi-Taivalkoski       se-Borlange                  se-Uddevalla
au-Brisbane            fi-Ala-Vuokki      fi-Tammela           se-Emmaboda                  se-Uppsala
au-canberra            fi-Ammansaari      fi-Tampere           se-Falun                     se-Vannas
au-Darwin              fi-Anjalankoski    fi-Tervola           se-Gallivare                 se-Varberg
au-GoldCoast           fi-Espoo           fi-Turku             se-Gavle                     se-Vasteras
au-Hobart              fi-Eurajoki        fi-Utsjoki           se-Goteborg_Brudaremossen    se-Vastervik
au-Mackay              fi-Fiskars         fi-Vaasa             se-Goteborg_Slattadamm       se-Visby
au-Melbourne           fi-Haapavesi       fi-Vuokatti          se-Halmstad                  se-Vislanda
au-Melbourne-Upwey     fi-Hetta           fi-Vuotso            se-Harnosand                 se-Ystad
au-Perth               fi-Iisalmi         fi-Yllas             se-Helsingborg               tw-Taipei
au-Sydney_Kings_Cross  fi-Inari           fr-Bordeaux          se-Horby                     uk-Angus
au-sydney_north_shore  fi-Joutseno        fr-Brest             se-Hudiksvall                uk-Bilsdale
au-Townsville          fi-Juntusranta     fr-LeMans            se-Jonkoping                 uk-BlackHill
au-unknown             fi-Jyvaskyla       fr-Lyon-Fourviere    se-Kalix                     uk-BluebellHill
cz-Praha               fi-Kaihuanvaara    fr-Lyon-Pilat        se-Karlshamn                 uk-Caradon
de-Berlin              fi-Karigasniemi    fr-Marseille         se-Karlskrona                uk-CaradonHill
de-Braunschweig        fi-Kaunispaa       fr-Nantes            se-Karlstad                  uk-Craigkelly
de-Bremen              fi-Kerimaki        fr-Niort             se-Kiruna                    uk-CrystalPalace
de-Erfurt-Weimar       fi-Kiihtelysvaara  fr-Orleans           se-Kisa                      uk-Dover
de-Frankfurt           fi-Kilpisjarvi     fr-Paris             se-Kramfors                  uk-DoverB
de-Hamburg             fi-Koli            fr-Rennes            se-Linkoping_Vattentorn      uk-Durris
de-Hannover            fi-Kruunupyy       fr-Rouen             se-Malmo                     uk-EmleyMoor
de-Kiel                fi-Kuopio          fr-Toulouse          se-Malmo_Kronprinsen         uk-Hannington
de-Koeln-Bonn          fi-Kuttanen        fr-Vannes            se-Molndal_Vasterberget      uk-Heathfield
de-Leipzig             fi-Lahti           hr-Zagreb            se-Mora                      uk-Llanddona
de-Luebeck             fi-Lapua           is-Reykjavik         se-Motala                    uk-Mendip
de-Muenchen            fi-Mikkeli         it-Bologna           se-Nassjo                    uk-Oxford
de-Nuernberg           fi-Oulu            it-Bolzano           se-Norrkoping                uk-PontopPike
de-Rostock             fi-Pello           it-Catania           se-Norrtalje_Sodra_Bergen    uk-Redruth
de-Ruhrgebiet          fi-Pernaja         it-Conero            se-Orebro                    uk-Reigate
de-Schwerin            fi-Pihtipudas      it-Genova            se-Ornskoldsvik              uk-Rowridge
dk-Copenhagen          fi-Posio           it-Milano            se-Ostersund                 uk-SandyHeath
es-Alfabia             fi-Pudasjarvi      it-Torino            se-Osthammar                 uk-Storeton
es-Alpicat             fi-Puolanka        it-Varese            se-Skelleftea                uk-SudburyB
es-Collserola          fi-Pyhatunturi     nl-AlphenaandenRijn  se-Skovde                    uk-SuttonColdfield
es-Lugo                fi-Pyhavuori       nl-Randstad          se-Sodertalje_Ragnhildsborg  uk-TheWrekin
es-Madrid              fi-Ranua           se-Alvsbyn           se-Stockholm_Marieberg       uk-TheWrekinB
es-Mussara             fi-Rovaniemi       se-Angelholm         se-Stockholm_Nacka           uk-Waltham
es-Rocacorba           fi-Ruka            se-Bollnas           se-Sundsvall                 uk-WhitehawkHill
es-Sevilla             fi-Salla           se-Boras             se-Trollhattan               uk-WinterHill

Once you have found the DVB-T transmitter for your region then use the line below to generate the VDR compatible channels.conf for that specific transmitter using the line below substituting 'uk-CrystalPalace' with the name of your closest transmitter;

cd /home
sudo scan -o vdr -p -u /usr/share/doc/dvb-utils/examples/scan/dvb-t/uk-CrystalPalace > channels.conf

This will write the channels.conf file and also output data on all the found and tuned channels to the console. The scan process usually takes less than a minute but can take longer if you have a low quality signal in your area. Below is an example of the output for 'uk-CrystalPalace' my local transmitter here in the UK showing the channels broadcast on all 6 MUX's;

scanning /usr/share/doc/dvb-utils/examples/scan/dvb-t/uk-CrystalPalace
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 505833333 0 3 9 1 0 0 0
>>> tune to: 505833:I999B8C34D999M16T2G32Y0:T:27500:
0x0000 0x1044: pmt_pid 0x1044 BBC -- BBC ONE (running)
0x0000 0x1084: pmt_pid 0x1084 BBC -- BBC TWO (running)
0x0000 0x10ff: pmt_pid 0x10ff BBC -- BBC THREE (running)
0x0000 0x113f: pmt_pid 0x113f BBC -- BBC NEWS 24 (running)
0x0000 0x117f: pmt_pid 0x117f BBC -- BBCi (running)
0x0000 0x123f: pmt_pid 0x123f BBC -- CBBC Channel (running)
Network Name 'Crystal Palace'
>>> tune to: 481833:I999B8C23D12M64T2G32Y0:T:27500:
Network Name 'Crystal Palace'
0x2005 0x2045: pmt_pid 0x0100 ITV -- ITV1 (running)
0x2005 0x2066: pmt_pid 0x0104 ITV -- ITV3 (running)
0x2005 0x2085: pmt_pid 0x0102 ITV -- ITV2 (running)
0x2005 0x20a1: pmt_pid 0x0116 ITV -- ITV4 (running)
0x2005 0x20c0: pmt_pid 0x0108 Channel 4 TV -- Channel 4 (running)
0x2005 0x20fa: pmt_pid 0x010e Channel 4 TV -- More 4 (running)
0x2005 0x2100: pmt_pid 0x010b Channel 4 TV -- E4 (running)
0x2005 0x2104: pmt_pid 0x010c Channel 4 TV -- Channel 4+1 (running)
0x2005 0x2145: pmt_pid 0x0110 Teletext Limited -- Teletext (running)
0x2005 0x21c3: pmt_pid 0x0112 Teletext Limited -- Teletext Cars (running)
0x2005 0x2240: pmt_pid 0x0114 Channel 4 TV -- Teletext on 4 (running)
0x2005 0x2244: pmt_pid 0x011c Global Radio -- Heart (running)
>>> tune to: 561833:I999B8C23D12M64T2G32Y0:T:27500:
0x3002 0x3242: pmt_pid 0x0101 five -- Five (running)
0x3002 0x3280: pmt_pid 0x0113 five -- Five Life (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 / RED HOT (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 -- Teletext Games (running)
0x3002 0x3f20: pmt_pid 0x0125 The Jewellery Channel -- Jewellery Chan (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)
WARNING: filter timeout pid 0x0010
>>> tune to: 529833:I999B8C34D34M16T2G32Y0:T:27500:
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 'Crystal Palace'
>>> tune to: 578166:I999B8C34D34M16T2G32Y0:T:27500:
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 'Crystal Palace'
>>> tune to: 537833:I999B8C34D34M16T2G32Y0:T:27500:
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 'Crystal Palace'
dumping lists (90 services)
Done.

Below is an example of the first few lines of the 'channels.conf' that was produced by the example above. Notice that the channels are grouped by MUX and not by their UK LCN (Logical Channel Number) which are the numbers with the '@' in front on alternate lines. VDR will load the channels into the EPG in the order that they are listed in the 'channels.conf'. So for example in the UK you would want to 'sort' the lines in the 'channels.conf' based on their LCN before loading them into VDR... although the 'channels.conf' will work fine without this. (a simple script could be written to do this... post it here if you hack one together ;-) );

:@1
BBC - BBC ONE:505833:I999B8C34D34M16T2G32Y0:T:27500:600:601,602:0:0:4164:0:0:0
:@2
BBC - BBC TWO:505833:I999B8C34D34M16T2G32Y0:T:27500:610:611,612:0:0:4228:0:0:0
:@80
BBC - BBC NEWS 24:505833:I999B8C34D34M16T2G32Y0:T:27500:640:641:0:0:4415:0:0:0
:@70
BBC - CBBC Channel:505833:I999B8C34D34M16T2G32Y0:T:27500:620:621,622:0:0:4671:0:0:0
:@3
ITV - ITV1:481833:I999B8C23D12M64T2G32Y0:T:27500:520:521,522:0:0:8261:0:0:0
:@6
ITV - ITV2:481833:I999B8C23D12M64T2G32Y0:T:27500:530:531,532:0:0:8325:0:0:0
:@10
ITV - ITV3:481833:I999B8C23D12M64T2G32Y0:T:27500:540:541,542:0:0:8294:0:0:0
:@102
Teletext Limited - Teletext Cars:481833:I999B8C23D12M64T2G32Y0:T:27500:0:789:0:0:8643:0:0:0
:@4
Channel 4 TV - Channel 4:481833:I999B8C23D12M64T2G32Y0:T:27500:560+8190:561,562:0:0:8384:0:0:0
:@13
Channel 4 TV - Channel 4+1:481833:I999B8C23D12M64T2G32Y0:T:27500:580+8190:581,582:0:0:8452:0:0:0
:@29
Channel 4 TV - E4:481833:I999B8C23D12M64T2G32Y0:T:27500:570+8190:571,572:0:0:8448:0:0:0
:@14
Channel 4 TV - More 4:481833:I999B8C23D12M64T2G32Y0:T:27500:590+8190:591,592:0:0:8442:0:0:0
:@28
ITV - ITV4:481833:I999B8C23D12M64T2G32Y0:T:27500:600:601:0:0:8353:0:0:0
(null) - [2243]:481833:I999B8C23D12M64T2G32Y0:T:27500:0:621:0:0:8771:0:0:0
:@728
Global Radio - Heart:481833:I999B8C23D12M64T2G32Y0:T:27500:0:631:0:0:8772:0:0:0

Now that you have a good 'channels.conf' for your local DVB-T transmitter you need to load it into VDR. So just upload the new 'channels.conf' file using LinuxMCE's Web Admin site - go to Advanced –> Configuration –> VDR and use the 'Browse' button next to 'Upload custom file' to find where you created your 'channels.conf' file and click 'Upload'. Now restart vdr from the console;

sudo /etc/init.d/vdr restart

Now use the following command to check that vdr is running;

sudo ps aux | grep vdr

You should see the line below;

linuxmce 30551  0.0  0.0   5120   828 pts/22   S+   13:39   0:00 grep vdr

Now the acid test...go to your LinuxMCE Orbiter and select 'TV' from the 'Media' menu to see a live picture and your all done.

Scanning for DVB-S Channels

Configuration

To configure VDR we should get the list of all available channels for desire satellite. You can find it somewhere or create using DVB utility scan. To do that we need the list of transponders stored as INI file. Get it from the JoshyFun's site. Store it somewhere on your LinuxMCE core. In my case I use the INI file for Hotbird.

Before scanning stop VDR:

   sudo /etc/init.d/vdr stop

and start scanning procedure:

   scan -o vdr -p -x 0 0130.ini > channels.conf

It might take about 10-20 minutes depends on the number of available channels on your satellite. When scanning is finished just upload the created channels.conf file via Admin site - Advanced --> Configuration --> VDR. And then pickup your satellite from the list (see picture above).

LMCE-VDR-config.jpg

Quick reload router (most probably is not needed) and press button TV on the on-screen Orbiter. You should be able to watch live TV. To navigate on that screen use F6, F7 and F8 buttons on your keyboard, Gyration mouse or Fiire remote. Additionally you can switch channels, see EPG and schedule recording from VDRAdmin web interface.

Troubleshooting

If VDR works not as you expect you can do following:

  1. Check VDR log - /var/log/pluto/<ID_VDR_IN_YOUR_SYSTEM>_VDR.log
  2. Check if everything ok with your DVB card:
    • lspci - you should see your card in the list of PCI devices
    • dmesg|grep -i dvb - if driver if your DVB card is loaded correctly you will see it here. Note that in some cases you should place a firmware for your card into /lib/firmware!

Adding your own plugins to vdr

Installing vdr-dev

If you want to build and add plugins to vdr you need to install the vdr-dev package. Open a console session at your core or ssh in from another machine and do;

apt-get install vdr-dev <return>

Now follow the instructions for building the plugin you are interested in.


See also