Ubuntu HD VDR mittels Xine und VDPAU - VDR Plugins

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Vorwort

Achtung! Für die Ausgabe des TV Bildes gibt es derzeit zwei Plugins. Zum einen das xineliboutput Plugin und zum anderen das vdr-xine Plugin. Welches Ihr einsetzt ist euch überlassen. Ich schwanke derzeit zwischen den beiden Plugins da beide Vor- und Nachteile haben. Im vdr-portal ist dazu einiges zu lesen.

Downloadverzeichnis vorbereiten

mkdir -p /data/installfiles/vdrplugins

vdr-xine Plugin

Download vdr-xine Plugin

cd /data/installfiles/vdrplugins
wget http://home.vrweb.de/rnissl/vdr-xine-0.9.3.tgz

Änderungen am vdr-xine Plugin vornehmen

cd /usr/local/src/vdr/PLUGINS/src/
tar -xzf /data/installfiles/vdrplugins/vdr-xine-0.9.3.tgz
ln -s xine-0.9.3/ xine
cd xine/
vi xine.c

Damit Ihr in der Datei die Zeilennummern sehen könnt müsst Ihr in eurem vi Editor folgendes Konfigurieren:

Tastenkombination Shift + :
:set number

Danach müssen folgende Zeilen die mit dem "+" gekennzeichnet sind unter den vorhandenen Teil hinzugefügt werden:

226 bool cPluginXine::Start(void)    227 {
228   // Start any background activities the plugin shall perform.
229   if (!PluginXine::cXineDevice::Open())
230     return false;
231

+232 pid_t cpid;
+233 switch (cpid = fork()){
+234 case 0: SystemExec("xine -f -V vdpau -A alsa --post vdr --post vdr_video --post vdr_audio --post autocrop:enable_autodetect=0,enable_subs_detect=1,soft_start_step=0,stabilize=1 --aspect-ratio=anamorphic --verbose=2 --no-logo --no-splash vdr:/tmp/vdr-xine/stream#demux:mpeg_pes");
+235 }

Mit "soft_start_step=0" kann man das langsame Aufziehen des Bildes abstellen, es ploppt quasi sofort auf die gewünschte Größe, ohne rumgezappel. " --aspect-ratio=auto" dient als Gegenmittel gegen Breitschädel. Kommt auf die eigenen Sehgewohnheiten an, ob man 4:3 Sendungen mit entsprechenden seitlichen schwarzen Balken auf 16:9-TV's geometrisch korrekt oder auf die volle Breite aufgezogen (= " --aspect-ratio=anamorphic") besser findet.

xineliboutput Plugin

Download

cd /data/installfiles/vdrplugins
cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput
mv vdr-xineliboutput vdr-xineliboutput-cvs-31012010
tar -czf vdr-xineliboutput-cvs-31012010.tar.gz vdr-xineliboutput-cvs-31012010/

Änderungen am xineliboutput Plugin

Unter folgendem Link kann man die Änderungen am Plugin mitverfolgen:

http://sourceforge.net/mailarchive/forum.php?forum_name=xineliboutput-cvslog

Download xineliboutput Patches

cd /data/installfiles/vdrplugins
wget -O xineliboutput-cvs-20100117-vdpau-extensions-v11.diff http://www.vdr-portal.de/board/attachment.php?attachmentid=24082

xineliboutput Plugin Patchen und installieren

cd /usr/local/src/vdr/PLUGINS/src/
cp -a /data/installfiles/vdrplugins/vdr-xineliboutput-cvs-31012010 .
ln -s vdr-xineliboutput-cvs-31012010/ xineliboutput
cd xineliboutput/
patch -p1 -i /data/installfiles/vdrplugins/xineliboutput-cvs-20100117-vdpau-extensions-v11.diff
sudo su -
cd /usr/local/src/vdr/PLUGINS/src/xineliboutput/
./configure make && make install
cd /usr/local/src/vdr/PLUGINS/src/
chown -R vdruser.vdruser xineliboutput/
chown -R vdruser.vdruser /usr/local/src/vdr/locale/
exit
cd /usr/local/src/vdr/PLUGINS/src/xineliboutput/
mkdir -p /etc/vdr/plugins/xineliboutput
cp *.mpg /etc/vdr/plugins/xineliboutput/

remote.conf anpassen

Achtung! Dieser Schritt ist nicht zwingend erforderlich. Wenn Ihr euren VDR mit dem Plugin startet wird ein Anlernmenü für die Tastatur und die Fernbedienung gestartet. Dort könnt Ihr vorerst eure Tastatur anlernen und dadurch wird die remote.conf automatisch erstellt. Falls Ihr eure Tastatur nicht anlernen möchtet könnt Ihr einfach die untigen Werte in eure remote.conf übertragen.

cd /etc/vdr
vi remote.conf
XKeySym.Up         Up
XKeySym.Down       Down
XKeySym.Menu       m
XKeySym.Ok         Return
XKeySym.Back       BackSpace
XKeySym.Left       Left
XKeySym.Right      Right
XKeySym.Red        r
XKeySym.Green      g
XKeySym.Yellow     y
XKeySym.Blue       b
XKeySym.0          0
XKeySym.1          1
XKeySym.2          2
XKeySym.3          3
XKeySym.4          4
XKeySym.5          5
XKeySym.6          6
XKeySym.7          7
XKeySym.8          8
XKeySym.9          9
XKeySym.Power      Home
XKeySym.Channel+   KP_Add
XKeySym.Channel-   KP_Subtract
XKeySym.Volume+    Prior
XKeySym.Volume-    Next

setup.conf anpassen

Achtung! Konfiguration nur bei gestoptem VDR durchführen.

cd /etc/vdr
vi setup.conf

xineliboutput.Audio.Compression = 100
xineliboutput.Audio.Delay = 0
xineliboutput.Audio.Driver = alsa
xineliboutput.Audio.Equalizer = 0 0 0 0 0 0 0 0 0 0
xineliboutput.Audio.Headphone = 0
xineliboutput.Audio.Port = hw:0,1
xineliboutput.Audio.SoftwareVolumeControl = 0
xineliboutput.Audio.Speakers = Surround 5.1
xineliboutput.Audio.Surround = 0
xineliboutput.Audio.Upmix = 0
xineliboutput.Audio.Visualization = goom
xineliboutput.Audio.Visualization.GoomOpts = width=720,height=576,fps=25
xineliboutput.DisplayAspect = CenterCutOut
xineliboutput.Frontend = sxfe
xineliboutput.Fullscreen = 1
xineliboutput.Media.CacheImplicitPlaylists = 1
xineliboutput.Media.DVD.ArrowKeysControlPlayback = 1
xineliboutput.Media.EnableID3Scanner = 1
xineliboutput.Media.MenuItems = -1
xineliboutput.Modeline = 
xineliboutput.OSD.AlphaCorrection = 0
xineliboutput.OSD.AlphaCorrectionAbs = 0
xineliboutput.OSD.Blending = 1
xineliboutput.OSD.BlendingLowRes = 1
xineliboutput.OSD.DvbSubtitles = 0
xineliboutput.OSD.ExtSubSize = -1
xineliboutput.OSD.Height = 576
xineliboutput.OSD.HideMainMenu = 0
xineliboutput.OSD.LayersVisible = 4
xineliboutput.OSD.Scaling = 1
xineliboutput.OSD.Size = automatic
xineliboutput.OSD.Width = 720
xineliboutput.Playlist.Album = 0
xineliboutput.Playlist.Artist = 0
xineliboutput.Playlist.Tracknumber = 0
xineliboutput.Post.denoise3d.chroma = 30
xineliboutput.Post.denoise3d.Enable = 0
xineliboutput.Post.denoise3d.luma = 40
xineliboutput.Post.denoise3d.time = 60
xineliboutput.Post.pp.Enable = 0
xineliboutput.Post.pp.Mode = de
xineliboutput.Post.pp.Quality = 3
xineliboutput.Post.unsharp.chroma_amount = 0
xineliboutput.Post.unsharp.chroma_matrix_height = 3
xineliboutput.Post.unsharp.chroma_matrix_width = 3
xineliboutput.Post.unsharp.Enable = 0
xineliboutput.Post.unsharp.luma_amount = 0
xineliboutput.Post.unsharp.luma_matrix_height = 5
xineliboutput.Post.unsharp.luma_matrix_width = 5
xineliboutput.Remote.AllowHttp = 1
xineliboutput.Remote.AllowHttpCtrl = 0
xineliboutput.Remote.AllowRtsp = 1
xineliboutput.Remote.AllowRtspCtrl = 0
xineliboutput.Remote.Iface = 
xineliboutput.Remote.Keyboard = 1
xineliboutput.Remote.ListenPort = 37890
xineliboutput.Remote.LocalIP = 
xineliboutput.Remote.MaxClients = 10
xineliboutput.Remote.Rtp.Address = 224.0.1.9
xineliboutput.Remote.Rtp.AlwaysOn = 0
xineliboutput.Remote.Rtp.Port = 37890
xineliboutput.Remote.Rtp.SapAnnouncements = 1
xineliboutput.Remote.Rtp.TTL = 1
xineliboutput.Remote.UseBroadcast = 1
xineliboutput.Remote.UseHttp = 1
xineliboutput.Remote.UsePipe = 1
xineliboutput.Remote.UseRtp = 1
xineliboutput.Remote.UseTcp = 1
xineliboutput.Remote.UseUdp = 1
xineliboutput.RemoteMode = 0
xineliboutput.Video.AspectRatio = 0
xineliboutput.Video.AutoCrop = 1
xineliboutput.Video.AutoCrop.AutoDetect = 1
xineliboutput.Video.AutoCrop.DetectSubs = 1
xineliboutput.Video.AutoCrop.FixedSize = 1
xineliboutput.Video.AutoCrop.SoftStart = 1
xineliboutput.Video.Brightness = -1
xineliboutput.Video.Contrast = -1
xineliboutput.Video.Decoder.H264 = automatic
xineliboutput.Video.Decoder.MPEG2 = automatic
xineliboutput.Video.Deinterlace = none
xineliboutput.Video.DeinterlaceOptions = method=Linear,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
xineliboutput.Video.Driver = auto
xineliboutput.Video.FieldOrder = 0
xineliboutput.Video.HUE = -1
xineliboutput.Video.IBPTrickSpeed = 1
xineliboutput.Video.MaxTrickSpeed = 12
xineliboutput.Video.NoiseReduction = -1
xineliboutput.Video.Overscan = 0
xineliboutput.Video.Port = :0
xineliboutput.Video.Saturation = -1
xineliboutput.Video.Scale = 1
xineliboutput.Video.Sharpness = -1
xineliboutput.Video.SwScale = 0
xineliboutput.Video.SwScale.Aspect = 1
xineliboutput.Video.SwScale.Downscale = 1
xineliboutput.Video.SwScale.Height = 1080
xineliboutput.Video.SwScale.Resize = 1
xineliboutput.Video.SwScale.Width = 1920
xineliboutput.VideoModeSwitching = 1
xineliboutput.X11.UseKeyboard = 1
xineliboutput.X11.WindowHeight = 1080
xineliboutput.X11.WindowWidth = 1920

runvdr anpassen

-P'xineliboutput --local=sxfe --video=vdpau --display=:0 --primary --post tvtime:method=use_vo_driver --audio=alsa:hw:0,1 -f' \

Finetuning xineliboutput Plugin

Achtung!" Die config Datei von xineliboutput darf nur editiert werden wenn der VDR gestoppt ist. Ansonsten werden eure Änderungen an der Datei wieder überschrieben.

cd /etc/vdr/plugins/xineliboutput/
vi config
# vdpau: HD deinterlace method
# { bob  half temporal  half temporal_spatial  temporal  temporal_spatial }, default: 3
video.output.vdpau_deinterlace_method:temporal_spatial

# vdpau: disable deinterlacing when progressive_frame flag is set
# bool, default: 0
video.output.vdpau_honor_progressive:1

# vdpau: restrict enabling video properties for SD video only
# { none  noise  sharpness  noise+sharpness }, default: 0
video.output.vdpau_sd_only_properties:noise+sharpness

# number of video buffers
# numeric, default: 500
engine.buffers.video_num_buffers:1000

# Standardanzahl von Videobildern
# numeric, default: 15
engine.buffers.video_num_frames:22

# number of buffers for HD content
# numeric, default: 2500
media.xvdr.num_buffers_hd:2500

# SRC tuning step
# numeric, default: 5000
media.xvdr.scr_tuning_step:150

# Anzahl der Audiopuffer
# numeric, default: 230
engine.buffers.audio_num_buffers:500

text2skin Plugin und PearlHD Skin

Download

text2skin

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/vdr-plugin-text2skin.git
mv vdr-plugin-text2skin/ vdr-plugin-text2skin-cvs-30012010

PearlHD Skin

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/skin-pearlhd.git
mv skin-pearlhd/ skin-pearlhd-cvs-30012010

Sender Logos

cd /data/installfiles/vdrplugins
wget http://home.in.tum.de/~schulzh/hqlogos.tar.bz2

Installation

text2skin

cd /usr/local/src/vdr/PLUGINS/src/
cp -a /data/installfiles/vdrplugins/vdr-plugin-text2skin-cvs-30012010/ .
ln -s vdr-plugin-text2skin-cvs-30012010/ text2skin
cd /usr/local/src/vdr/
make plugins

PearlHD Skin

cd /tmp
cp -a /data/installfiles/vdrplugins/skin-pearlhd-cvs-30012010/ .
cd /tmp/skin-pearlhd-cvs-30012010/
vi Make.config

CHANNELLOGO=1
CHANNELLOGORIGHT=1
CHANNELLOGOPNG=1
EPGIMAGESPNG=1
DYNAMICFONTS=1
sudo make
sudo make install
sudo chown -R vdruser.vdruser /etc/vdr/plugins/text2skin/
cd /etc/vdr/plugins/text2skin/PearlHD/
tar -xjf /data/installfiles/vdrplugins/hqlogos.tar.bz2

runvdr anpassen

-Ptext2skin \

Links

  1. Homepage des Plugin