Sidux VDR DVB-S2

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Xine ffpmeg

We will use latest snapshoot for xine-lib xine-ui, and as we are building xine-lib with external ffmpeg we will use latest ffmpeg to:

x264

ffmpeg depent on x264 > 65 version, so we will install x264 from source

cd /usr/local/src
apt-get install yasm git-core
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared
make
make install

ffmpeg

cd /usr/local/src/
apt-get update
apt-get remove libxine1 libxine1-bin libxine1-dbg
<--above command will remove xinelib installed with distribution-->
The following packages will be REMOVED:
gxine gxineplugin libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins libxine1-plugins
libxine1-x libxine1-xvdr

This will remove old xine1 library.

apt-get install autoconf libtool automake autoconf pkg-config gettext subversion
apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libasound2-dev libogg-dev
apt-get install libxvidcore4-dev libtheora-dev libgsm1-dev libfaac-dev libfaad-dev

Before doing build-dep ffmpeg you need to edit sidux.list and debian.list in /etc/apt/sources.list.d/ and uncomment (remove #) in front of deb-src, and also for multimedia.list where you need to insert line:

deb-src http://www.debian-multimedia.org/ unstable main

1)

apt-get update
apt-get build-dep ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg_12.10.2008
cd ffmpeg_12.10.2008
./configure --prefix=/usr --enable-shared --enable-pthreads --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-gpl --enable-x11grab --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid  --extra-cflags="-mtune=native -march=native -O4 -pipe"
Note: --enable-liba52 should not be used anymore as ffmpeg now have native ac3 and eac3 decoders, the external library support is removied
make
make install
ldconfig

xine-lib

  1. download xine-lib from Mercurial Repositories (xine-lib, gxine)
apt-get update
apt-get install autogen cvs libXext-dev libcdio-dev libvcdinfo-dev libpostproc-dev libpng12-dev libxt-dev
cd /usr/local/src/
hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2 xine-lib-1.2_14.10.2008
cd xine-lib-1.2_14.10.2008

* Patching of xine-lib.1.2 isnt needed anymore as the source is updated and now contain the patch which was here posted before.

./autogen.sh --prefix=/usr --with-external-ffmpeg --disable-dxr3 
make 
make install 
ldconfig

xine-ui

apt-get update
apt-get install shared-mime-info 
cd /usr/local/src/
cvs -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login
cvs -z3 -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co -P xine-ui
mv xine-ui xine-ui_12.10.2008
cd xine-ui_12.10.2008
./autogen.sh --prefix=/usr --enable-vdr-keys 
make 
make install

VDR

  1. Lets download vdr-1.7.0
apt-get update
apt-get install libncurses-dev libncursesw5-dev libfreetype6-dev libfontconfig1-dev libxft-dev libjpeg62-dev libcap-dev
cd /usr/local/src/
wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.0.tar.bz2
tar -xjf vdr-1.7.0.tar.bz2
mv vdr-1.7.0 vdr
cd vdr
  1. patch for h264 and S2API support
First we will need Reinhard's vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff

wget http://www.linuxtv.org/pipermail/vdr/attachments/20081007/edcd3fcc/attachment-0001.obj
mv attachment-0001.obj vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
gunzip vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
patch -p1 -i vdr-1.7.0-s2api-07102008-h264-clean.patch

  1. patch for h264 ONLY IF USING MULTIPROTO OR MULTIPROTO_PLUS
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff

  1. now xine-vdr.0.8.2 from Reinhard Nißl http://home.vrweb.de/~rnissl/
cd PLUGINS/src/
wget http://home.vrweb.de/~rnissl/vdr-xine-0.8.2.tgz
tar -xzvf vdr-xine-0.8.2.tgz
mv xine-0.8.2/ xine
mv vdr-xine-0.8.2.tgz /usr/local/src/ <-- maybe we will need it later to -->
cd ../../
  1. Use Make.config i posted here
vi Make.config <-- hit i for Insert mode paste the code above and hit escape and type :wq -->
Code: Make.config
# cat Make.config
#
# User defined Makefile options for the Video Disk Recorder
#
# Copy this file to 'Make.config' and change the parameters as necessary.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 2.0 2008/01/13 12:54:09 kls Exp $
 
### The C compiler and options:
 
CC       = gcc
CFLAGS   = -g -O2 -Wall
 
CXX      = g++
CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
 
ifdef PLUGIN
CFLAGS   += -fPIC
CXXFLAGS += -fPIC
endif
 
### The directory environment:
#change it to dvb if using multiproto or multiproto_plus
DVBDIR   = /usr/local/src/s2api/linux
MANDIR   = /usr/man
BINDIR   = /usr/bin
 
LOCDIR   = /usr/share/locale
PLUGINDIR= ./PLUGINS
PLUGINLIBDIR= /usr/lib/vdr/plugins
VDRSCRIPTDIR= /usr/lib/vdr/scripts
VIDEODIR = /video
CONFDIR  = /etc/vdr/
 
### The remote control:
 
LIRC_DEVICE = /dev/lircd
RCU_DEVICE  = /dev/ttyS1
 
## Define if you want vdr to not run as root
#VDR_USER = vdr
 
REMOTE= LIRC
VFAT= 1
FFMDIR= /usr/local/src/ffmpeg_12.10.2008 
#dont forget to change if ffmpeg folder have diferent name
FFMPEG_STATIC= 1
FFMPEG_SVN= 1
 
### You don't need to touch the following:
 
ifdef DVBDIR
INCLUDES += -I$(DVBDIR)/include
endif

make
make plugins
make install
  1. copy the .mpg files from xine-vdr plugin to plugins directory
mkdir -p /etc/vdr/plugins/xine/
cd /etc/vdr/plugins/xine/ 
cp -a /usr/local/src/vdr/PLUGINS/src/xine/data/* .
  1. make symlink to xineplayer
cd /usr/local/src/vdr/PLUGINS/src/xine/
ln -s $(pwd)/xineplayer /usr/bin/xineplayer
  1. config files copy to /etc/vdr
cd /usr/local/src/vdr/
cp -a svdrpsend.pl /usr/bin/
cp *.conf /etc/vdr
  1. Download new channels.conf from linowsat.de
cd /etc/vdr/
mv channels.conf channels.conf_orig
  1. I have AStra 19.2 and Hotbird 13.0 if you need something else then check http://www.linowsat.de/settings/vdr.html
wget http://www.linowsat.de/settings/vdr/01300192/ca/channels.conf
  1. remote.conf file
cd /etc/vdr/
vi remote.conf

Paste the code belove, save and quit.

Code: remote.conf
KBD.Up         00000000001B5B41
KBD.Down       00000000001B5B42
KBD.Menu       000000000000006D
KBD.Ok         000000000000000D
KBD.Back       0000000000000062
KBD.Left       000000000000006C
KBD.Right      0000000000000072
KBD.Red        0000001B5B32307E
KBD.Green      0000001B5B32317E
KBD.Yellow     0000001B5B32337E
KBD.Blue       0000001B5B32347E
KBD.0          0000000000000030
KBD.1          0000000000000031
KBD.2          0000000000000032
KBD.3          0000000000000033
KBD.4          0000000000000034
KBD.5          0000000000000035
KBD.6          0000000000000036
KBD.7          0000000000000037
KBD.8          0000000000000038
KBD.9          0000000000000039
KBD.Play       0000000000000070
KBD.Pause      0000000000000050
KBD.Stop       0000000000000073
KBD.Record     0000000000000052
KBD.FastFwd    0000000000000066
KBD.FastRew    0000000000000046
KBD.Power      0000000000000010
KBD.Channel+   000000000000002B
KBD.Channel-   000000000000002D
KBD.Volume+    00000000001B5B43
KBD.Volume-    00000000001B5B44
KBD.Schedule   0000000000000053
KBD.Channels   0000000000000063
KBD.Timers     0000000000000074
KBD.Recordings 0000000000001B72
KBD.Setup      0000000000000013
KBD.Commands   0000000000000043
KBD.User1      00000000001B4F50
KBD.User2      00000000001B4F51
KBD.User3      00000000001B4F52
KBD.User4      00000000001B4F53
KBD.User5      000000001B5B5B45
KBD.User6      0000001B5B31377E
KBD.User7      0000001B5B31387E
KBD.User8      0000001B5B31397E
LIRC.Up         Up
LIRC.Down       Down
LIRC.Menu       Menu
LIRC.Ok         Ok
LIRC.Back       Back
LIRC.Left       Left
LIRC.Right      Right
LIRC.Red        Red
LIRC.Green      Green
LIRC.Yellow     Yellow
LIRC.Blue       Blue
LIRC.0          0
LIRC.1          1
LIRC.2          2
LIRC.3          3
LIRC.4          4
LIRC.5          5
LIRC.6          6
LIRC.7          7
LIRC.8          8
LIRC.9          9
LIRC.Play       play
LIRC.Pause      pause
LIRC.Stop       stop
LIRC.FastFwd    fwd
LIRC.FastRew    rew
LIRC.Volume+    Volume+
LIRC.Volume-    Volume-
LIRC.Mute       Mute
LIRC.Channels   Yellow
LIRC.Channel+   Channel+
LIRC.Channel-   Channel-
LIRC.Record     Record
remote-tcp:3333.Up         0000000000415B1B
remote-tcp:3333.Down       0000000000425B1B
remote-tcp:3333.Menu       000000000000006D
remote-tcp:3333.Ok         0000000000000A0D
remote-tcp:3333.Back       0000000000000062
remote-tcp:3333.Left       0000000000445B1B
remote-tcp:3333.Right      0000000000435B1B
remote-tcp:3333.Red        0000007E30325B1B
remote-tcp:3333.Green      0000007E31325B1B
remote-tcp:3333.Yellow     0000007E33325B1B
remote-tcp:3333.Blue       0000007E34325B1B
remote-tcp:3333.0          0000000000000030
remote-tcp:3333.1          0000000000000031
remote-tcp:3333.2          0000000000000032
remote-tcp:3333.3          0000000000000033
remote-tcp:3333.4          0000000000000034
remote-tcp:3333.5          0000000000000035
remote-tcp:3333.6          0000000000000036
remote-tcp:3333.7          0000000000000037
remote-tcp:3333.8          0000000000000038
remote-tcp:3333.9          0000000000000039
remote-tcp:3333.Channel+   000000000000002B
remote-tcp:3333.Channel-   000000000000002D
remote-tcp:3333.Volume+    000000007E355B1B
remote-tcp:3333.Volume-    000000007E365B1B

Other VDR plugins

OSD Teletext (Teletext plugin)

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.wiesweg-online.de/linux/vdr/vdr-osdteletext-0.5.1.tgz
wget http://www.vdr-portal.de/board/attachment.php?attachmentid=13339
mv attachment.php\?attachmentid\=13339 osdteletext-0.5.1-vdr-1.5.0.diff 
tar -xivf vdr-osdteletext-0.5.1.tgz
mv osdteletext-0.5.1 osdteletext
cd osdteletext
patch -p1 -i ../osdteletext-0.5.1-vdr-1.5.0.diff
cd ../../../
make plugins
make install
mkdir -p /vtx

Femon (Signal plugin)

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/vdr-femon-1.6.1.tgz
tar -xzvf vdr-femon-1.6.1.tgz
mv femon-1.6.1 femon
cd ../../
make plugins
make install

EnigmaNG (VDR skin)

"EnigmaNG" is a standalone skin for VDR based on the "Enigma" text2skin addon. URL: http://andreas.vdr-developer.org/enigmang/

cd /usr/local/src/vdr/PLUGINS/src
wget http://andreas.vdr-developer.org/enigmang/download/vdr-skinenigmang-0.0.6.tgz
tar -xivf vdr-skinenigmang-0.0.6.tgz
mv skinenigmang-0.0.6 skinenigmang
cd ../../
make plugins
make install

After make plugins and make install we need to download logos, channellogos and fonts in our plugins directory

mkdir -p /etc/vdr/plugins/skinenigmang
cd /etc/vdr/plugins
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-logos-xpm-hi-20070702.tgz
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-channellogos-xpm-hi-20070702.tgz
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-fonts-20080225.tgz
tar xzvf skinenigmang-logos-xpm-hi-20070702.tgz
tar xzvf skinenigmang-channellogos-xpm-hi-20070702.tgz
tar xzvf skinenigmang-fonts-20080225.tgz

PremiereEpg plugin

The plugin parses the extended EPG data which is send by Premiere on their portal channels (e.g. SPORT PORTAL). The EPG data is transmitted in a non-standard format on a non-standard PID. The resulting EPG events are feed into VDRs normale EPG database.

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.muempf.de/down/vdr-premiereepg-0.0.8.tar.gz
tar -xzvf vdr-premiereepg-0.0.8.tar.gz
mv premiereepg-0.0.8 premiereepg
cd ../..
make plugins
make install

Edit runvdr script

For runvdr we will use runvdr-extreme script from http://www.udo-richter.de/vdr/scripts.html#runvdr-extreme

cd /usr/local/src/
wget http://www.udo-richter.de/vdr/files/runvdr-extreme-0.4.0.tgz
tar -xvif runvdr-extreme-0.4.0.tgz
cd runvdr-extreme-0.4.0/
cp init.d.runvdr.Debian /etc/init.d/runvdr
chmod a+x /etc/init.d/runvdr
cp runvdr /usr/bin/runvdr
chmod a+x /usr/bin/runvdr
cp runvdr.conf.example /etc/runvdr.conf

Edit the /etc/runvdr.conf and /etc/init.d/runvdr to add your plugins/settings, set "/usr/bin/runvdr" as Path for the Deamon script.

  1. runxine.desktop script ==

Login with normal user, go to your /home/USERNAME/Desktop (Change USERNAME with username you using) and make a new file:

nano /home/USERNAME/Desktop/runxine

And paste code belowe:

Code: remote.conf
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=runxine
Comment=
Comment[de]=
Exec=xine -V xv -A alsa -Dtvtime:method=use_vo_driver,cheap_mode=1,pulldown=none,use_progressive_frame_flag=1 -pqhf --post vdr_video --post vdr_audio --post upmix_mono "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
GenericName=dvb
GenericName[de]=dvb
Icon=video
MimeType=video/mp4;video/mpeg;video/quicktime;video/x-flic;video/x-msvideo;video/x-ogm;video/x-theora;
Name[de]=xine-vdr
Path=
ServiceTypes=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=none
X-KDE-SubstituteUID=false
X-KDE-Username=
GenericName[de_DE@euro]=dvb 

Double click on that file and xine should be launched and you should see something. After first run of runxine script close it and edit config file /home/USERNAME/.xine/config

nano /home/USERNAME/.xine/config
And uncomment these line and change at the ende of line to match the line belowe.
video.processing.ffmpeg_choose_speed_over_accuracy:1
video.processing.ffmpeg_pp_quality:0
video.processing.ffmpeg_skip_loop_filter:all
video.processing.ffmpeg_thread_count:2

Thanks to

  • Klaus Schmidinger for VDR
  • Reinhard Nißl for xine-vdr plugin
  • V4L Dev team
  • S2API Dev team
  • FFMPEG Dev team
  • x264 Dev team
  • xine Dev team
  • Shalafi the one who helped me a lot in debuing stuff and helping in this vdr-wiki. Thanks a lot.
  • And big thanks goes to #ES, without ppl overthere this wiki would never been writen.