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