In deze blogpost leg ik uit hoe de auto refresh rate optie werkt binnen XBMC. Video’s kunnen op verschillende manieren zijn gecodeerd. Bijvoorbeeld op 24 frames per seconde of bijvoorbeeld 50 frames per seconde. Als het beeldscherm op een verwerkingssnelheid van bijvoorbeeld 50 hz staat zou het afspelen van 24p content een probleem opleveren.De 24 frames kunnen namelijk verdubbeld worden om in de buurt te komen van de 50 beelden per seconde, echter ontbreken er in dit voorbeeld twee. Het ontbreken van deze twee framen zou een klein schokje teweeg kunnen brengen, vandaar dat veel gebruikers zich afvragen waarom het beeld schokkerig loopt.
Om die reden is er binnen XBMC de optie Auto refresh rate. Het aanzetten van deze optie zorgt ervoor dat het scherm een refreshrate aanneemt die past binnen het aantal beelden per seconde van de video. Is de film bijvoorbeeld gecodeerd in 24 beelden per seconde, dan neemt het scherm 24 beelden per seconde aan. Op die manier verdwijnt het schokkerige beeld dat soms lijkt te ontstaan bij sommige content. Om de auto refresh rate instellingen te kunnen gebruiken is het noodzakelijk X goed te configureren. Hiervoor moet wel naar de commandline worden gegrepen. De onderstaande handleiding gaat hier dieper op in:
Maak allereerst een nieuwe xorg.config aan met de volgende commandline regels:
sudo nvidia-xconfig
Sluit daarna X af met de volgende commandline regels:
kill -9 `ps ax | grep xbmc.bin| grep -v grep | awk ‘{print $1}’`
kill -9 `ps ax | grep startx | grep -v grep | awk '{print $1}'`
Direct daarna starten we X in een mode waarbij alle logging aanstaat en wordt gegeschreven naar een logfile:sudo X -verbose 6 > ~/xlog.txt 2>&1
De volgende stap is om de log file goed te bekeken. Ergens moeten de volgende regels voorkomen:
(II) NVIDIA(0): Frequency information for ONK TX-SR507 (DFP-1):
(II) NVIDIA(0): HorizSync : 15.000-68.000 kHz
(II) NVIDIA(0): VertRefresh : 23.000-61.000 Hz
(II) NVIDIA(0): (HorizSync from EDID)
(II) NVIDIA(0): (VertRefresh from EDID)
(II) NVIDIA(0): --- Building ModePool for ONK TX-SR507 (DFP-1) ---
(II) NVIDIA(0): Validating Mode "1920x1080":
(II) NVIDIA(0): 1920 x 1080 @ 50 Hz
(II) NVIDIA(0): For use as DFP backend.
(II) NVIDIA(0): Mode Source: EDID
(II) NVIDIA(0): Pixel Clock : 148.50 MHz
(II) NVIDIA(0): HRes, HSyncStart : 1920, 2448
(II) NVIDIA(0): HSyncEnd, HTotal : 2492, 2640
(II) NVIDIA(0): VRes, VSyncStart : 1080, 1084
(II) NVIDIA(0): VSyncEnd, VTotal : 1089, 1125
(II) NVIDIA(0): H/V Polarity : +/+
(II) NVIDIA(0): Mode is valid.
Dit zijn de instellingen van de monitor. De bovenstaande regels vertalen zich naar een volgende configuratie aanpassing. Let wel dat de gegevens hierboven van toepassing zijn op mijn monitor! Verder komen we ook regels tegen zoals hieronder:
HorizSync 15 - 68
VertRefresh 23 - 61
We gaan nu de beeldscherm instellingen toepassen op de xorg.conf configuratie. Open het xorg.conf bestand met “sudo nano /etc/X11/xorg.conf“ en voeg de bovenstaande regels toe aan de Section Monitor.
Als we nu nog iets meer naar beneden scrollen in de debug log zien we nog een aantal secties:
(II) NVIDIA(0): Validating Mode "1920x1080":
(II) NVIDIA(0): 1920 x 1080 @ 50 Hz
(II) NVIDIA(0): For use as DFP backend.
(II) NVIDIA(0): Mode Source: EDID
(II) NVIDIA(0): Pixel Clock : 148.50 MHz
(II) NVIDIA(0): HRes, HSyncStart : 1920, 2448
(II) NVIDIA(0): HSyncEnd, HTotal : 2492, 2640
(II) NVIDIA(0): VRes, VSyncStart : 1080, 1084
(II) NVIDIA(0): VSyncEnd, VTotal : 1089, 1125
(II) NVIDIA(0): H/V Polarity : +/+
(II) NVIDIA(0): Mode is valid.
(II) NVIDIA(0): Validating Mode "1920x1080":
(II) NVIDIA(0): 1920 x 1080 @ 60 Hz
(II) NVIDIA(0): For use as DFP backend.
(II) NVIDIA(0): Mode Source: EDID
(II) NVIDIA(0): Pixel Clock : 148.50 MHz
(II) NVIDIA(0): HRes, HSyncStart : 1920, 2008
(II) NVIDIA(0): HSyncEnd, HTotal : 2052, 2200
(II) NVIDIA(0): VRes, VSyncStart : 1080, 1084
(II) NVIDIA(0): VSyncEnd, VTotal : 1089, 1125
(II) NVIDIA(0): H/V Polarity : +/+
(II) NVIDIA(0): Mode is valid.
(II) NVIDIA(0): Validating Mode "1920x1080":
(II) NVIDIA(0): 1920 x 1080 @ 24 Hz
(II) NVIDIA(0): For use as DFP backend.
(II) NVIDIA(0): Mode Source: EDID
(II) NVIDIA(0): Pixel Clock : 74.16 MHz
(II) NVIDIA(0): HRes, HSyncStart : 1920, 2558
(II) NVIDIA(0): HSyncEnd, HTotal : 2602, 2750
(II) NVIDIA(0): VRes, VSyncStart : 1080, 1084
(II) NVIDIA(0): VSyncEnd, VTotal : 1089, 1125
(II) NVIDIA(0): H/V Polarity : +/+
(II) NVIDIA(0): Mode is valid.
Deze bovenstaande resoluties zijn de resoluties die we gaan toepassen. In dit voorbeeld zien we 50, 60 en 24hz. Precies wat we vaak nodig hebben. Let wel dat er onderaan Mode is valid moet staan!
De bovenstaande regels vertalen zich naar de onderstaande configuratie aanpassingen. Kijk goed naar welke posities ik in dit voorbeeld op welke plek heb gezet. Wederom; de bovenstaande secties voor mij van toepassing zijn.
ModeLine "1920x1080@50p" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
ModeLine "1920x1080@60p" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
ModeLine "1920x1080@24p" 74.16 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
Voeg deze regels ook toe aan de Section Monitor. Aan de SubSection Display voegen we nu de volgende regel toe:
Modes "1920x1080@24p" "1920x1080@50p" "1920x1080@60p"
De namen van de modes moeten overeenkomen met de Modelines!
Aan de section monitor voegen we verder nog het volgende toe
Option "ExactModeTimingsDVI" "TRUE"
Aan de section Device voegen we verder nog het volgende toe
Option "ModeValidation" "NoEdidModes"
Aan de section Screen voegen we verder nog het volgende toe
Option "DynamicTwinView" "False"
We starten het systeem nu opnieuw op en gaan daarna naar de instellingen. De optie Aanpassen refresh rate moeten we hier nog aanzetten.

Als we nu een film gaan afspelen zal je zien dat alles naar behoren werkt, want de juiste refreshrate zal nu bij de juiste framerate worden gekozen! En andere handig optie is om het beeld altijd te laten outputten naar dezelfde bron. Daarvoor kan je gebruik maken van deze handleiding: http://www.xbmcfreak.nl/xbmc-nvidia-ion/xbmc-live-video-output-altijd-naar-hdmi/
Bedankt voor deze uitleg. Ik bekijk dagelijks je blog naar de mogelijkheden van XBMC i.c.m. ION gebaseerde mb’s. Ik ben er nog niet uit. ZO wil ik de video die ik heb opgenomen met een HD camera direct afspelen via een multi-media speler. Helaas worden deze stukjes vidio niet naadloos afgespeeld. Ook XBMC op een laptop heeft dit probleem.
Kan je verder geen gebruik maken van een ‘lees meer..’ optie?
Om wat voor een videoformaat gaat het? WMV, AVI, MKV? Verder zal ik eens kijken naar de lees meer optie!
Uit de videocamera komen MTS bestanden. Elke shot, soms maar van enkele seconden, is een apart MTS bestand. Het is heel vervelend als tussen de bestanden een kleine pause zit. Ik kan de bestanden wel samenvoegen tot een groot bestand, maar dit wil ik niet. De bestanden, die bij elkaar horen, wil ik in een submap zetten en zo afspelen.
Al heel wat dat je MTS bestanden uberhaupt goed afgespeeld worden! Ik heb een Panasonic fotocamera (TZ7) waarmee ik ook korte filmpjes maak (AVCHD Lite) die in een .MTS container worden weggeschreven. Als ik deze filmpjes af probeer te spelen heb ik ~1 seconde geluid, dan valt ‘t geluid weg en wordt ‘t filmpje in slow-motion afgespeeld.
Een beetje off topic, maar ik denk dat hier veel mensen mee zitten. Ze kopen een HD-camcorder en bekijken de opnames direct vanaf de camera, omdat er volgens mij geen eenvoudige andere oplossing is. Er zou toch een oplossing moeten zijn om via een NAS i.c.m. een XBMC apparaat via sleur en pleur (copy/paste) je opnames goed te bekijken. Piethein, misschien kan hiervoor een apart draadje gemaakt worden.
Vreemd. Bij mij werkt dit niet.
Ik draai XBMC op Ubuntu 9.04. Wanneer XBMC open staat kan ik uiteraard dat proces wel killen, maar startx killen lukt niet want dit proces is niet actief.
Log:
ivo@media-pc:~$ more xlog.txt
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(WW) xf86CloseConsole: KDSETMODE failed: Bad file descriptor
(WW) xf86CloseConsole: VT_GETMODE failed: Bad file descriptor
(WW) xf86OpenConsole: VT_GETSTATE failed: Bad file descriptor
ddxSigGiveUp: Closing log
En voor de volledigheid ook nog mijn xorg.conf
ivo@media-pc:/etc/X11$ more xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder63) Fri Aug 14 17:54:58 PDT 2009
Section “ServerLayout”
Identifier “Layout0″
Screen 0 “Screen0″ 0 0
InputDevice “Keyboard0″ “CoreKeyboard”
InputDevice “Mouse0″ “CorePointer”
EndSection
Section “Files”
EndSection
Section “InputDevice”
# generated from default
Identifier “Mouse0″
Driver “mouse”
Option “Protocol” “auto”
Option “Device” “/dev/psaux”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5″
EndSection
Section “InputDevice”
# generated from default
Identifier “Keyboard0″
Driver “kbd”
EndSection
Section “Monitor”
Identifier “Monitor0″
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 – 33.0
VertRefresh 43.0 – 72.0
Option “DPMS”
EndSection
Section “Device”
Identifier “Device0″
Driver “nvidia”
VendorName “NVIDIA Corporation”
EndSection
Section “Screen”
Identifier “Screen0″
Device “Device0″
Monitor “Monitor0″
DefaultDepth 24
Option “DynamicTwinView” “False”
Option “FlatPanelProperties” “Scaling = Native”
Option “NoLogo” “True”
SubSection “Display”
Depth 24
EndSubSection
EndSection
Jouw X server draait nog en daarom krijg je deze foutmelding. Je moet er voor zorgen dat de X server helemaal is afgesloten en pas dan kan je een debug log aanmaken!
Bij mij werkte het pas nadat ik de lijn
Option “UseEdidFreqs” “0″
aan de Device sectie had toegevoegd.
@Perceptor
En nog vergeten te vermelden: de ondergrens van HorizSync en VertRefresh naar beneden stellen nar 15kHz en 23Hz was ook nodig, omdat anders de modes alsnog niet valide waren.
Ik heb dit probleem ook in XBMC 9.11 alpha 2 op Ubuntu 9.10. Ik heb geprobeerd dit uit te voeren in Ubuntu 9.10 maar helaas zonder succes. Deze complete Ubuntu noob strand al bij het afsluiten van X. De commandlines om dit te doen werken niet in Ubuntu 9.10 (of er moeten typo’s instaan(?).
Ik draai op een Asrock ION 330 met de 1.6 bios en met de shared mem op 512Mb. Ik heb eerder Ubuntu 9.04 erop gehad en heb toen een artikel van je gevolgd om 1920×1080@24p binnen XBMC 9.04 te krijgen maar dat artikel kan ik nergens meer vinden. Werkt dat sowieso niet meer?
@iedereen met mijn (bovenstaande) probleem in Ubuntu 9.10 met XBMC 9.11 alpha 2: op het forum kwam ik een post van iemand tegen die iets soortgelijks had maar dan in Windows: http://forum.xbmcfreak.nl/topic/xbmc-beeld-doormidden
Hoe vaag het allemaal ook lijkt, ik heb het kunnen oplossen door eigenlijk niets aan driver instellingen of xorg.conf aan te passen maar door de ‘visuele effecten’ van Ubuntu uit te zetten (GEEN) en de ‘vsync’ instelling in XBMC (9.11) op ‘altijd aan’ te zetten.
Nogmaals, hoe vaag het ook lijkt, bij mij en een andere poster in die thread werkt het. Have fun!
kleine aanvulling nog: de strepen zijn inmiddels dus wel weg maar zag in sommige files toch af en toe niet 100% vloeiende beelden (te vergelijken met een slechte softwarematige dvd speler van een paar jaar terug).
Is er een manier om deze tutorial toe te passen op XBMC 9.11(/Ubuntu 9.10)? Als deze tweak dan uiteindelijk niet werkt hoop ik dat het met de officiële release is verholpen.
Even een opmerking die de andere Ubuntu NOOBs kan helpen.
Bij het uitvoeren van:
sudo X -verbose 6 > ~/xlog.txt 2>&1
is het wel belangrijk om XBMC live in veilige modus te starten… anders draait X al en kun je hem dus niet opnieuw starten met uitgebreide logging.
Verder heeft deze handleiding al mijn schokkende beelden, EN het asynchroon lopende geluid volledig opgelost.
Hulde aan de schrijver!
Wow, bedankt voor deze tutorial! Ik heb het gevolgd onder Arch Linux en dit was precies wat ik zocht. Vooral bij een lanzaam overvliegende camera had ik erg last van schokken. Dit is nu volledig opgelost!
Er zijn af en toe nog wel wat kleine schokjes al weet ik niet precies waar die vandaan komen, dit lijkt random. 99% van de problemen zijn in ieder geval verholpen. Bedankt!
Mijn TV, een 40″ Sony Bravia heeft trouwens exact dezelfde modelines.
helupppp
hier is mijn xorg.conf
Section “Monitor”
Identifier “Monitor0″
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 – 33.0
VertRefresh 43.0 – 72.0
Option “DPMS”
ModeLine “1920×1080@60p” 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
ModeLine “1920×1080@50p” 74,25 1920 2448 2492 2640 1080 1084 1094 1124 +hsync +vsync
ModeLine “1920×1080@60p” 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
ModeLine “1920×1080@60p” 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
ModeLine “1920×1080@60p” 74.18 1920 2008 2052 2200 1080 1084 1094 1124 +hsync +vsync
ModeLine “1920×1080@50p” 74,25 1920 2448 2492 2640 1080 1084 1094 1124 +hsync +vsync
ModeLine “1920×1080@24p” 74.16 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
ModeLine “1920×1080@25p” 74.25 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
ModeLine “1920×1080@30p” 89.01 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
EndSection
Section “Device”
Identifier “Device0″
Driver “nvidia”
VendorName “NVIDIA Corporation”
EndSection
Section “Screen”
Identifier “Screen0″ “DynamicTwinView” “False”
Device “Device0″ “ModeValidation” “NoEdidModes”
Monitor “Monitor0″ “ExactModeTimingsDVI” “TRUE”
DefaultDepth 24
Option “NoLogo” “True”
SubSection “Display”
Modes “1920×1080@60p” “1920×1080@50p” “1920×1080@60p” “1920×1080@60p” “1920×1080@60p” “1920×1080@50p” “1920×1080@24p” “1920×1080@25p” “1920×1080@30p”
Depth 24
EndSubSection
EndSection
als ik nu herstart dan blijf ik haken bij de loginprompt
als ik nu de backup.conf erover heen draai boot hij weer verder naar xbmc op
dusssssssss er zit een foutje, maar waar????
iemand
@Menno
In die ModeLine regels heb je 2x 74,25 ipv 74.25 (dus komma ipv punt)
Klopt. Wat in de xorg.conf moet is met punten in plaats van komma’s.
2 Vragen van een Linux noob:
1. Ik draai de V5 Live CD en krijg X niet afgesloten.
Het eerste commando werkt, het 2e geeft
root@XBMCLive:/home/xbmc# kill -9 `ps ax | grep startx | grep -v grep | awk ‘{print $1}’`
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
En doet dus niets.
2. Hoe start ik in Safe mode om de logging te generen?
Ik zie alleen recovery mode als ik ESC druk tijdens het starten..
Begrijp ik nu goed dat je bij XBMC, draaiend op Windows 7, je alleen dat vinkje bij “Adjust display refresh rate to match video” hoeft aan te klikken en XBMC dan inderdaad zelf de refsreshrate van je videokaart aanpast? Al dit ingewikkelde Linux gedoe is dan niet nodig?
Merci voor de tutorial, nu kan ik tenminste genieten van mijn HDrips op 1080p/24p
Bedankt voor de tutorial! Ik heb een vraag: ik zie uit je log dat je XBMC verbonden is met een receiver (Onkyo), klopt dit? Ik hoef dus niet rechtstreeks op de TV aan te sluiten voor het uitvoeren van deze tutorial, maar via de receiver is ok? Ik dacht dan dan niet de juiste waardes uitgelezen konden worden maar dat kan dus wel.
Hmz… Heb deze tips zojuist doorgevoerd en bij mij (XBMC 9.11 Live op een ION 330) wordt de boel er alleen maar slechter op. Audio loopt ineens uit sync, bij 1080i bronnen (MPEG2) begint het beeld te schokken en loopt het geluid enorm voor op het beeld na verloop van tijd. Bugs in 9.11?
Hier vond ik dit een script dat veel nuttigs automatisch doet:
http://xbmc.org/forum/showthread.php?t=55282
De site is ff down, maar hier is een kopietje van het script:
http://www.virtualdanny.net/downloads/setupXBMC.sh
Erik stelde een vraag waarop ik het antwoord ook graag wil weten: “Begrijp ik nu goed dat je bij XBMC, draaiend op Windows 7, je alleen dat vinkje bij “Adjust display refresh rate to match video” hoeft aan te klikken en XBMC dan inderdaad zelf de refsreshrate van je videokaart aanpast? Al dit ingewikkelde Linux gedoe is dan niet nodig?”. Ik kan namelijk ook geen config files vinden waarin ik dit moet wijzigen!
Adjust rate werkt in principe prima, ik moet dan alleen steeds het geluid syncen met het beeld…
Alvast bedankt voor een reactie!
Ik heb zojuist op Ubuntu 10.10 je stappen uitgevoerd.
Het resultaat is prachtig.
Sommige HD content schokte echt heel vervelend (andere content niet).
Nu is het beeld prachtig rustig.
Enorm bedankt!
Is deze tutorial ook toepasbaar op ATI?