Inhaltsverzeichnis

Xineliboutput

Als OSD-Provider nutze ich xineliboutput.

Installieren

Xineliboutput-Plugin herunterladen.

mkdir -p /data/installfiles/vdrplugins/xineliboutput
cd /data/installfiles/vdrplugins/xineliboutput
cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput

Xineliboutput-Plugin installieren.

cd /usr/local/src/vdr/PLUGINS/src/
cp -a /data/installfiles/vdrplugins/xineliboutput/vdr-xineliboutput/ .
ln -s vdr-xineliboutput/ xineliboutput
cd xineliboutput
./configure && make -j2 && make install

/data/installfiles/usermod-vdruser.sh ausführen.

Konfiguration

Konfigurationsdateien ablegen.

cd /usr/local/src/vdr/PLUGINS/src/xineliboutput/
mkdir -p /etc/vdr/plugins/xineliboutput
cp *.mpg /etc/vdr/plugins/xineliboutput/

setup.conf anpassen.

killall runvdr
killall vdr
cd /etc/vdr
vi setup.conf

Folgende Zeilen anpassen:

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.Decoder.PesBuffers = 1000
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.ScalingSPU = 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 = 0
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

Finetuning xineliboutput

cd /etc/vdr/plugins/xineliboutput/
vi config

Diese Zeilen anpassen:

# vdpau: HD deinterlace method
# { bob  half temporal  half temporal_spatial  temporal  temporal_spatial }, default: 3
video.output.vdpau_hd_deinterlace_method:half

# vdpau: SD deinterlace method
# { bob  half temporal  half temporal_spatial  temporal  temporal_spatial }, default: 3
video.output.vdpau_sd_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:500

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

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

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

# number of audio buffers
# numeric, default: 230
engine.buffers.audio_num_buffers:100

# FFmpeg video decoding thread count
# numeric, default: 1
video.processing.ffmpeg_thread_count:4

# default length of display queue
# numeric, default: 3
video.output.vdpau_display_queue_length:4

Im Menü –> Einstellungen –> Plugins –> Xineliboutput folgendes einstellen:

Audio:
Lautsprecher: Hier das einstellen was man selbst als Lautsprechersystem hat (2.0 oder 5.1,…)
Volume Controll: Stellen auf „Software“, da sonst die Lautstärke nicht gewählt werden kann.

Video:
Seitenverhältnis: „anamorphic“ Hiermit stellen wir das Autocropping, sprich die autom. Bilddarstellungsanpassung ein.
Softwarescaling: „ja“
Deinterlacing: „Bob“

Xineliboutput kann auf 2 verschiede Weisen gestartet werden.

Start über runvdr-Script

Im runvdr-Script kann xineliboutput als Plugin hinzugefügt. Somit wird es immer mit dem VDR gestartet.

Der Plugineintrag in der runvdr lautet:

  -P'xineliboutput --local=sxfe --video=vdpau --display=:0 --primary --post tvtime:method=use_vo_driver -f' 

Danach erstellen wir in „Unity“ ein Startscript welches bei jedem Anmelden ausgeführt wird.

Systemeinstellungen → Startprogramme → Hinzufügen:

Name: VDR
Befehl:

/usr/local/bin/runvdr

Kommentar: VDR Startscript

Start als vdr-sxfe

Man kann das OSD aber auch eigenständig starten. Dies hat den Vorteil, dass bei einem Absturz der Oberfläche der VDR nich mit abstürzt und die evtl. laufende Aufnahme nicht gestört wird.

Dazu legen wir wieder ein Startscript an:

Name: VDR
Befehl:

/usr/local/bin/vdr-sxfe --video=vdpau --audio=alsa:hw:0,7 --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 --fullscreen --aspect=16:9 --lirc=/dev/lirc0 --reconnect xvdr+tcp://127.0.0.1:37890 >/var/log/xinelib.log 2>&1

Kommentar: VDR Startscript

Hierfür muss die svdrphosts.conf angepasst werden.

vi /etc/vdr/svdrphosts.conf

Hier muss die IP oder der IP-Kreis stehen welcher auf den svdr-Port zugreifen kann.

127.0.0.1

Damit vdr-sxfe sich mit dem VDR verbinden kann, muss das runvdr-Script xineliboutput mit folgender Zeile starten:

-P'xineliboutput -l none -r 37890 -p' \

Nun muß der VDR durch ein Init-Script automatisch beim booten gestartet werden.

Dazu erstellen wir das vdr-Init-Script.

vi /etc/init.d/vdr

Inhalt aus vdr-Init-Script verwenden

Script ausführbar machen.

chmod a+x /etc/init.d/vdr

Init-Script in die Bootreihenfolge einbinden.

update-rc.d vdr defaults

Dolby-Digital unter YaVDR0.6.1

Wenn bei YaVDR V0.6.1 im Web-Frontend als Ausgabeplugin „vdr-sxfe“ (xineliboutput) verwendet wird und man Surround Sound verwenden möchte, muss man folgende Einstellungen in der Datenbank, per Terminal, vornehmen, da es aktuell im Web-Frontend noch nicht möglich ist dies einzustellen.
Zunächst stellt man fest, welche Soundkarten und Ausgabe-Devices es gibt.

aplay -l

Mit folgendem Befehl listet man die „PCM-Geräte“ auf.

aplay -L

Danach prüft man ob das Soundausgabegerät in der Datenbank richtig eingestellt ist.

dbget system.hardware.alsa.hdmi.card
dbget system.hardware.alsa.hdmi.device

Ggf. kann man diese Einstellungen wie folgt setzen (Hier Soundkarte „0“ und Ausgabedevice „3“ →HDMI):

dbset system.hardware.alsa.hdmi.card=0
dbset system.hardware.alsa.hdmi.device=3

Nun setzt man, in der Datenbank, den System-Audio-Typ auf „passthrough“.

dbset system.sound.type=passthrough

Aufgrund dieser Einstellung entscheidet sich nun das „process-template“ Script, die richtige Template-Datei (/usr/share/yavdr/templates/etc/vdr-sxfe/config_xineliboutput/21_audio_hdmi_passthrough) für die VDR-SXFE Einstellungen zu verwenden.

process-template /etc/vdr-sxfe/config_xineliboutput

Zuletzt startet man den VDR neu und freut sich über Stereo und Surround Sound.

restart vdr