|
|
Zeile 17: |
Zeile 17: |
| * eine Liste unterstützer Grafikkarten, inklusive OnBoard-Grafikkarten und Mobilgeräten befindet sich [[VDPAU-Grafikkarten|hier]] | | * eine Liste unterstützer Grafikkarten, inklusive OnBoard-Grafikkarten und Mobilgeräten befindet sich [[VDPAU-Grafikkarten|hier]] |
| * Benchmarks zu einigen Grafikkarten befinden sich [[VDPAU-Benchmarks|hier]]. | | * Benchmarks zu einigen Grafikkarten befinden sich [[VDPAU-Benchmarks|hier]]. |
− |
| |
− | == Tipps und Tricks, wenn es mal nicht so läuft: ==
| |
− |
| |
− | ===Tuningtips===
| |
− |
| |
− | ;Bei Klötzchenbildung mit HD-Sendern auf AMD-Systemen (z.B AMD X2-Dualcore und Geforce8200/8300):
| |
− | :Cpu-Takt fest auf 2000MHz einstellen, (Befehl: cpufreq-set -f 2000Mhz) '''und''' in der config_xineliboutput den Wert setzen:
| |
− | # vdpau: HD deinterlace method
| |
− | # { bob temporal temporal_spatial }, default: 1
| |
− | video.output.vdpau_deinterlace_method:bob
| |
− |
| |
− | ;Bei Blockartefakten mit xine:
| |
− | :Anzahl der Videopuffer höher setzen: "buffer.video_num_buffers" steht bei mir auf 5000. Hilft auch bei Meldung (SDTV) "video_out: throwing away image with pts 5988455 because it's too old .."
| |
− | buffer.video_num_buffers:2500
| |
− |
| |
− | ;Nur einen ganz schmalen Streifen (ca. 4mm) in der Mitte des Bildschirms (nach Neuinstallation xineliboutput):
| |
− | :Im OSD unter den Plugin-Einstellungen für xineliboutput einstellen: Lokale Einstellungen -> Fenster-Seitenverhältnis auf CenterCutOut stellen. Im OSD speichern und VDR neustarten.
| |
− | : Oder einfach in setup.conf folgendes einfügen: '''xineliboutput.DisplayAspect = CenterCutOut'''
| |
− |
| |
− | ;Mit diesen Einstellungen ist der Ton Synchron auch auf Dolby Sendern:
| |
− | # Wenn !=0, immer auf diese Rate anpassen
| |
− | # numeric, default: 0
| |
− | audio.synchronization.force_rate:48000
| |
− | # Resampling benutzen
| |
− | # { auto off on }, default: 0
| |
− | audio.synchronization.resample_mode:on
| |
− |
| |
− | ===Dokumentation der Einstellungen mit Ausgabe über xineliboutput-1.0.4===
| |
− |
| |
− | Vorwort:
| |
− |
| |
− | Der VDR wird komplett über die Runvdr gestartet, in der Runvdr wird die Pluginlist generiert, aus den Parametern der /etc/vdr/sysconfig.
| |
− | Der X-Server wird ebenfalls über die Runvdr gestartet, dazu wird ein separates Skript aufgerufen.
| |
− |
| |
− | '''2.1 Startaufruf des VDR, hier mit Ausgabe über xineliboutput:'''
| |
− |
| |
− | PLUGINLIST=" \"-Pxineliboutput -l sxfe --video=vdpau --display=:0.1 -p --post tvtime:method=use_vo_driver --audio=alsa:default -f \" ...."
| |
− |
| |
− | Kurze Erläuterung zu den wichtigen Parametern:
| |
− |
| |
− | --video=vdpau => bestimmt den Videoausgabetreiber von xineliboutput
| |
− | --display=0.1 => Ausgabe auf Display 1, bei einer Dualscreenkonfiguration (für z.B. GraphTFT)
| |
− | --post tvtime:method=use_vo_driver => Ausgabeart für Deinterlacing in Verbindung mit vdpau
| |
− |
| |
− | ''' Parameter in der setup.conf für xinelibouput, hier bei Videoausgabemode 1920x1080i = interlaced:'''
| |
− |
| |
− | xineliboutput.Audio.Compression = 500
| |
− | 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 = default
| |
− | xineliboutput.Audio.SoftwareVolumeControl = 0
| |
− | xineliboutput.Audio.Speakers = Surround 5.1
| |
− | xineliboutput.Audio.Surround = 0
| |
− | xineliboutput.Audio.Upmix = 0
| |
− | xineliboutput.Audio.Visualization = none
| |
− | xineliboutput.Audio.Visualization.GoomOpts = width=1440,height=768,fps=25
| |
− | xineliboutput.Decoder.PesBuffers = 900
| |
− | xineliboutput.DisplayAspect = Pan&Scan
| |
− | xineliboutput.Frontend = sxfe
| |
− | xineliboutput.Fullscreen = 1
| |
− | xineliboutput.Media.BrowseFilesDir = /media
| |
− | xineliboutput.Media.BrowseImagesDir = /media/filme/21
| |
− | xineliboutput.Media.BrowseMusicDir = /media/filme1
| |
− | xineliboutput.Media.CacheImplicitPlaylists = 1
| |
− | xineliboutput.Media.EnableID3Scanner = 1
| |
− | xineliboutput.Modeline =
| |
− | xineliboutput.OSD.AlphaCorrection = 0
| |
− | xineliboutput.OSD.AlphaCorrectionAbs = 0
| |
− | xineliboutput.OSD.Blending = 1
| |
− | xineliboutput.OSD.BlendingLowRes = 1
| |
− | xineliboutput.OSD.ExtSubSize = -1
| |
− | xineliboutput.OSD.HideMainMenu = 0
| |
− | xineliboutput.OSD.LayersVisible = 4
| |
− | xineliboutput.OSD.Scaling = 2
| |
− | xineliboutput.Playlist.Album = 1
| |
− | xineliboutput.Playlist.Artist = 1
| |
− | xineliboutput.Playlist.Tracknumber = 1
| |
− | 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.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 = 0
| |
− | xineliboutput.Video.AutoCrop.FixedSize = 0
| |
− | xineliboutput.Video.AutoCrop.SoftStart = 1
| |
− | xineliboutput.Video.Brightness = -1
| |
− | xineliboutput.Video.Contrast = -1
| |
− | xineliboutput.Video.Deinterlace = none
| |
− | xineliboutput.Video.DeinterlaceOptions = method=use_vo_driver,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.Overscan = 0
| |
− | xineliboutput.Video.Port = :0.1
| |
− | xineliboutput.Video.Saturation = -1
| |
− | xineliboutput.Video.Scale = 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
| |
− |
| |
− | ''' wichtige Parameter der config_xineliboutput (Deinterlace-Mode => temporal):'''
| |
− |
| |
− | Wie man sieht muss man nicht sehr viel bei gestopptem VDR in der Datei anpassen.
| |
− |
| |
− |
| |
− | .....
| |
− | # vdpau: HD deinterlace method
| |
− | # { bob temporal temporal_spatial }, default: 1
| |
− | #video.output.vdpau_deinterlace_method:temporal
| |
− |
| |
− | # vdpau: Try to recreate progressive frames from pulldown material
| |
− | # bool, default: 1
| |
− | #video.output.vdpau_enable_inverse_telecine:1
| |
− |
| |
− | # vdpau: disable deinterlacing when progressive_frame flag is set
| |
− | # bool, default: 0
| |
− | #video.output.vdpau_honor_progressive:0
| |
− |
| |
− | # vdpau: disable advanced deinterlacers chroma filter
| |
− | # bool, default: 0
| |
− | #video.output.vdpau_skip_chroma_deinterlace:0
| |
− |
| |
− | # Vertikale Bildposition im Ausgabefenster
| |
− | # [0..100], default: 50
| |
− | #video.output.vertical_position:50
| |
− |
| |
− | video.output.xv_deinterlace_method:bob
| |
− |
| |
− | # Choose speed over specification compliance
| |
− | # bool, default: 0
| |
− | #video.processing.ffmpeg_choose_speed_over_accuracy:0
| |
− |
| |
− | # Qualität der MPEG-4 Nachbearbeitungsstufe
| |
− | # [0..6], default: 3
| |
− | video.processing.ffmpeg_pp_quality:0
| |
− |
| |
− | # Skip loop filter
| |
− | # { default none nonref bidir nonkey all }, default: 0
| |
− | video.processing.ffmpeg_skip_loop_filter:all
| |
− |
| |
− | # FFmpeg video decoding thread count
| |
− | # numeric, default: 1
| |
− | video.processing.ffmpeg_thread_count:2
| |
− |
| |
− | ===Überprüfen ob VDPAU aktiv ist===
| |
− |
| |
− | Bei laufendem vdr in eine Konsole eingeben:
| |
− | watch -t fold -100 /dev/vcs10
| |
− | Dann mal das Programm umschalten. Es müssen Meldungen mit vdpau auftauchen. Es wird z.B. angezeigt, welches Deinterlacing gerade verwendet wird.
| |
− |
| |
− | ====Temperatur der GPU überwachen====
| |
− |
| |
− | Im intervall von 1s wird die Temperatur auf der Konsole ausgegeben
| |
− | watch --i=1 DISPLAY=:1 nvidia-settings -tq gpucoretemp
| |
− |
| |
− | ====welche Nvidia Treiber Version wird verwendet?====
| |
− | Die verwendete NVidia Treiber Version ausgeben
| |
− | DISPLAY=:1 nvidia-settings -q NvidiaDriverVersion
| |
| | | |
| == Links == | | == Links == |
Mit Hilfe dieser Schnittstelle kann das Dekodieren, Deinterlacen und Skalieren von digitalem Video durch die GPU der Grafikkarte unterstützt werden, die CPU wird bei der Wiedergabe entlastet.