web-dev-qa-db-fra.com

Comment puis-je arrêter la vidéo se déchirer? (Pilote de prop Nvidia, gestionnaire de fenêtres non composites)

J'ai ce problème qui touche apparemment beaucoup d'utilisateurs du pilote propriétaire Nvidia:

Déchirement de la vidéo : fines lignes horizontales (généralement près du haut de mon écran) lorsqu'il y a beaucoup de panoramique ou d'action dans la vidéo.

(Remarque: le retour au pilote nouveau par défaut n'est pas une option, car sa gestion de l'alimentation, apparemment inexistante, draine ma batterie plusieurs fois plus rapidement).

J'ai essayé Totem, Parole et VLC, et tous se déchirent. Le meilleur résultat a été d'utiliser X11 output dans VLC, mais il y a toujours une déchirure avec une action relativement modérée.

Matériel: MacBook Air 3,2 - équipé d’un Nvidia GeForce 320M.

Il existe deux correctifs courants pour déchirer avec les pilotes de prop Nvidia:

  1. Désactivez la composition , car les pilotes propriétaires de Nvidia ne jouent généralement pas avec Nice avec les gestionnaires de fenêtre de composition sous Linux (Compiz est une exception à ma connaissance). Mais j'utilise un gestionnaire de fenêtres extrêmement léger (gestionnaire de fenêtres impressionnant) qui n'est même pas capable de composer (ni d'effets sympas). J'ai également ce problème dans Xfce, où le compositing est désactivé.

  2. Activation de la synchronisation avec VBlank. Pour l'activer, j'ai défini l'option dans nvidia-settings, puis je l'ai démarrée automatiquement en tant que nvidia-settings -l avec mes autres programmes de démarrage automatique. Cela semble fonctionner, car lorsque je lance glxgearsname__, je reçois:

    $ glxgears
     Running synchronized to the vertical refresh.  The framerate should be
    approximately the same as the monitor refresh rate.
    303 frames in 5.0 seconds = 60.500 FPS
    300 frames in 5.0 seconds = 59.992 FPS
    

    Et quand je vérifie le taux de rafraîchissement en utilisant nvidia-settings:

    $ nvidia-settings -q RefreshRate
    Attribute 'RefreshRate' (wampum:0.0; display device: DFP-2): 60.00 Hz.
    

    Tout cela suggère que la synchronisation avec VBlank est activée . Si j'ai bien compris, cela est précisément conçu pour arrêter de se déchirer, et le problème de beaucoup de gens est même d'avoir quelque chose comme glxgearspour afficher les informations correctes. Je ne comprends pas pourquoi ça ne marche pas pour moi.

xorg.conf : http://paste.ubuntu.com/992056/

Exemple de déchirement observé: video tearing

35
Chan-Ho Suh

Une chose à essayer que peut fonctionne. Ouvrez nvidia-settings et allez à la section powermizer. Choisissez "Performances maximales" dans la liste déroulante, et vous devriez voir votre niveau de puissance de powermizer atteindre la vitesse la plus rapide.

Une fois que vous avez fait cela, essayez la vidéo.

Dans le passé, j’avais constaté que vsync ne fonctionnait pas lorsque la carte nvidia était réglée sur le paramètre le plus lent de powermizer.

18
mjnichol

Si vous utilisez deux moniteurs, le pilote nvidia ne peut être synchronisé qu'avec le vblank de l'un des écrans, à moins qu'ils n'utilisent exactement le même taux de rafraîchissement. Et je veux dire exactement. Ceci est effectivement impossible si les deux moniteurs ne sont pas du même type. Si le pilote nvidia se synchronise sur le mauvais affichage (par exemple, la synchronisation sur l'affichage intégré lorsque vous souhaitez regarder un film sur le téléviseur externe), vous pouvez annuler son choix. A partir de la documentation du pilote nvidia:

Lors de l'utilisation de __GL_SYNC_TO_VBLANK avec TwinView, OpenGL ne peut se synchroniser qu'avec l'un des périphériques d'affichage. cela peut provoquer une corruption par déchirement sur le périphérique d'affichage avec lequel OpenGL n'est pas synchronisé. Vous pouvez utiliser la variable d'environnement __GL_SYNC_DISPLAY_DEVICE pour spécifier le périphérique d'affichage sur lequel OpenGL doit se synchroniser. Vous devez définir cette variable d’environnement sur le nom d’un périphérique d’affichage; par exemple "CRT-1". Recherchez la ligne "Périphérique d’affichage connecté:" dans votre fichier journal X pour obtenir la liste des périphériques d’affichage présents et leur nom.

J'ai défini ceci de manière permanente dans/etc/environment - ajoutez juste quelque chose comme ceci sur une nouvelle ligne:

__GL_SYNC_DISPLAY_DEVICE="DFP-0"

11
Alistair Buxton

Moi aussi, je souffrais de déchirure vidéo dans mon processeur Intel Sandy Bridge. Cela a fonctionné pour moi. Je mets les lignes suivantes dans "/ etc/environment" -

CLUTTER_Paint = disable-clipped-redraws: désactiver-culling
CLUTTER_VBLANK = True

et cela a fonctionné. Appuyez sur Entrée à la fin et copiez-collez ces lignes. Cela peut nécessiter un redémarrage. L'essayer.

7
BRKsays

Voici comment j'ai résolu les problèmes de vsync pour la vidéo sur mon ordinateur portable ASUS K50IN avec le NVIDIA GeForce G102M. Je suis conscient que votre kilométrage peut varier puisque les cartes sont différentes, mais vous pouvez l'essayer ... L'astuce pour moi était d'utiliser des barebones MPlayer (mais pas MPlayer2!). Cela ne fonctionne avec aucun des autres joueurs.

  1. Faites la magie de compiz habituelle dans ccsm

    • Sous Composite, désactivez Détecter la fréquence d'actualisation et entrez manuellement la fréquence actuelle de votre moniteur.
    • J'ai activé l'option "Copier dans la texture", sans savoir si cela m'a aidé ou non.
    • Sous OpenGL: Filtre Tex. - Meilleur
    • La synchronisation avec VBlank est activée
    • Unity Plugin: (ne sait pas si cela a aidé, mais cela aurait amélioré la vitesse) Opacité du panneau - 1.0000, idem pour l'opacité du lanceur. Dash Blur - Statique
  2. Faites la magie habituelle de nvidia-settings:

    • Activer la synchronisation avec VBlank sous les paramètres XVideo et OpenGL
    • Définissez les paramètres d'image sur Haute qualité sous les paramètres OpenGL
    • Sous Configuration de l'affichage, définissez votre résolution manuellement, puis définissez votre taux de rafraîchissement de Auto à votre taux de rafraîchissement actuel.
  3. Installez mplayer et vdpau (PAS mplayer2 !!! Ceci est nouveau et expérimental et, pour moi du moins, était lent avec VDPAU)

    • Paquets: mplayer libvdpau1 vdpau-va-driver
  4. Configurer MPlayer (j'ai aussi essayé gnome-mplayer, mais le résultat n'est pas aussi difficile que j'ai essayé)

    • Ouvrez le fichier ~/.mplayer/config ou créez-le si vous ne l'avez pas. Vous devrez peut-être également créer le dossier . Mplayer. Il devrait contenir ceci:
[default]
ao=Pulse
vo=vdpau

Changez ao en alsa si vous avez supprimé le son Pulse.

Redémarrez X en vous reconnectant/déconnectant.

Essayez, YMMV comme toujours. J'ai constaté que, en particulier dans les versions non-LTS ou avec les pilotes bêta, cela pourrait ne plus fonctionner en fonction du codec de la vidéo.

4
Amir Dizdarević

Je ne sais pas si cela va vous aider, mais cela a fonctionné pour moi. Ouvrez nvidia-settings et modifiez la fréquence de Auto à 60. Appuyez ensuite sur Appliquer. Cela a résolu mes problèmes avec le déchirement de la vidéo et le scintillement du bureau en général. Malheureusement, je dois le faire chaque fois que je redémarre.

1
vicentec

Cela a fonctionné pour moi sur un pilote ATI radeon, cela pourrait donc fonctionner pour vous:

Ajouter un fichier de configuration (par exemple, cas /etc/X11/xorg.conf.d/20-nouveau.conf)

composé de ceci:

Section "Device"
    Option      "EXAVsync"  "True"
    Option      "GLXVBlank" "True"
    Identifier  "Nvidia card"
    Driver      "nouveau"
EndSection

EXA est le cadre de composition vidéo. il ne semble pas vsnc par défaut.

Il pourrait également être intéressant d’essayer différents logiciels (par exemple, vlc) pour la lecture de vidéos.

1
Mark Williams

Je rencontrais les mêmes problèmes de déchirure vidéo. Dans mon cas, j'ai observé que le démantèlement se produit uniquement en mode plein écran. Le problème semble être de mettre la vidéo à l'échelle en plein écran. Lorsque la taille originale de la vidéo lue et les rapports de résolution de l'écran ne correspondent pas, la vidéo est déchirée. Régler le rapport de format dans smplayer sur le rapport de format d'affichage a résolu le problème pour moi.

par exemple. Je lisais une vidéo de taille 1280x714 en plein écran, il y avait une déchirure dans la vidéo. Lorsque j'ai forcé le format d'image de la vidéo à 16: 9, la lecture s'est déroulée sans heurts.

Je dois noter que la cause première du problème reste là et est agaçante. Étant donné que les proportions ne sont pas conservées dans l’original, la vidéo présentera certaines déformations. Cependant il vaut mieux regarder sans larmes;)

1
focknvidia

La mise à niveau de PPA vers la version 319 a résolu le problème:

Si après le démarrage, il s'exécute en mode de secours, lancez la récupération et exécutez Sudo nvidia-xconfig. Bonne lecture vidéo!

1
BrozzSama

J'utilise Ubuntu 12.04LTS 64bit et j'ai un nvidia gtx 660ti.

Je souffrais de déchirure de la vidéo pendant plus d'un mois jusqu'à ce que je trouve une solution.

Ouvrez nvidia x paramètres du serveur -> PowerMizer -> Paramètres PowerMizer (près du bas) et où il est indiqué "Mode préféré", modifiez le paramètre de Adaptatif à Préférer les performances maximales.

1
user144925

Si vous n'utilisez pas le double moniteur, il existe une autre possibilité. Il existe deux types de synchronisation avec vblank: un pour XVideo et un pour OpenGL. Dans nvidia-settings, l’un se trouve sous "Paramètres X Server XVideo" et l’autre sous "OpenGL/Paramètres". Lequel affecte réellement votre logiciel de lecture vidéo peut dépendre du plugin de sortie utilisé.

0
Alistair Buxton

J'utilise un système d'exploitation élémentaire Luna 64 bits (basé sur Ubuntu 12.04 LTS) et j'ai eu le même problème. En cherchant autour de moi, j'ai finalement trouvé une méthode qui fonctionne avec WORKS et elle inclut bien évidemment la solution "Paramètres du Powermizer en Performance", comme beaucoup d'autres personnes l'ont déjà dit.

Le problème est que, après le redémarrage, ces paramètres sont restaurés sur le paramètre "Auto" par défaut et que, apparemment, l'application Nvidia-Settings n'enregistre pas correctement les nouveaux paramètres de Powermizer. NE PAS S'INQUIÉTER!!!

SUIVEZ SUIVRE LES INSTRUCTIONS CI-DESSOUS, C’EST TELLEMENT SIMPLE:

http://ubuntu.aspcode.net/view/635400140124705175636416/nvidia-settings-powermizer-performance-mode-on-12044-64-bit

Comme le dit l'article, créez une application de démarrage et vous êtes prêt à partir !!!! CROYEZ-MOI CELA FONCTIONNE!!! Un grand merci à Aquablue pour ce commentaire et bien sûr à Mike du service client de Nvidia qui a fourni la solution !!!

Pour info, j'ai un Phenom II X4, 8 Go de RAM DDR3, Corsair SSD, GTX 650, Elementary Luna 64 bits.

0
Spyros P.

Je ne suis pas sûr de votre description si vous voyez réellement des larmoiements; Normalement, la déchirure donne l'impression que l'image est divisée horizontalement en deux ou trois sections, les parties ne correspondant pas. Cela se produit car la partie supérieure de l'image et la partie inférieure ne proviennent pas de la même image de la vidéo. Wikipedia a une bonne simulation exemple de déchirure d'écran . Les lignes horizontales fines ont un son différent, plus proche de peignage artefacts provenant d'un mauvais désentrelacement, bien que ce soit peut-être difficile à décrire.

Vous ne mentionnez aucun détail de la vidéo que vous essayez de visionner, telle que sa résolution, son encodage, si elle est entrelacée ou progressive, et si vous avez activé le désentrelacement dans VLC. Il peut également être intéressant de vérifier si le traitement vidéo est en cours de déchargement sur le GPU ou si le processeur effectue tout le travail. Avez-vous confirmé que vous pouvez visionner la même vidéo avec un matériel différent ou sur le MacBook avec OS X?

Vous dites que vous avez essayé avec la composition désactivée sur XFCE, mais cela ne ferait probablement pas de mal d'essayer d'ajouter:

Section "Extensions"
    Option "Composite" "Disable"
EndSection

sur votre /etc/X11/xorg.conf pour vous en assurer. En outre, une autre suggestion non mentionnée jusqu'ici consiste à ajouter:

Option "UseEvents" "True"

dans les sections Device ou Screen de votre xorg.conf.

METTRE À JOUR:

La capture d'écran ci-jointe montre clairement le déchirement! Si le lecteur continue à décoder la vidéo (c'est-à-dire, pas de ralentissement saccadé, juste de la déchirure), le décodage n'a probablement aucune importance. VLC a une option sur la page des paramètres vidéo dans les préférences pour activer et désactiver la "sortie vidéo accélérée"; s'il est allumé, il devrait utiliser le GPU pour le décoder. Si vous basculez ce paramètre dans VLC et exécutez top dans un terminal pendant la lecture de la vidéo, vous devriez constater une différence d'utilisation du processeur entre les deux paramètres. Vous pouvez également essayer de désactiver tout désentrelacement dans VLC pour voir si cela fait une différence.

J'ai deux autres suggestions:

Xorg.conf ne me semble pas anormal, mais vous pouvez vérifier que les paramètres de synchronisation vblank (sur les paramètres X Server XVideo et OpenGL) sont correctement enregistrés dans .nvidia-settings-rc. Certaines personnes exécutent nvidia-settings en tant que root ou utilisent gksudo (pour pouvoir mettre à jour /etc/X11/xorg.conf), mais cela peut entraîner le stockage des paramètres dans /root/.nvidia-settings-rc plutôt que ~ /. nvidia-settings-rc. Cela devrait être de récupérer votre propre copie, mais pour éviter tout doute, vous devriez vérifier les deux paramètres de vblank lors de l'exécution de nvidia-settings en tant que vous; n'oubliez pas de cliquer sur "Enregistrer la configuration actuelle" dans la partie inférieure des paramètres. Si vous courez:

nvidia-settings -q=XVideoTextureSyncToVBlank -q=SyncToVBlank

alors, vous devriez voir que les deux paramètres sont réglés sur 1. Vous devriez probablement aussi vérifier que le chargement automatique des paramètres fonctionne, en redémarrant et en exécutant à nouveau la commande ci-dessus.

L'autre chose que vous pourriez essayer serait de mettre à jour/rétrograder vos pilotes nvidia. J'ai déjà eu des problèmes avec des mises à jour mineures de la version du pilote. il existe définitivement des "bonnes" et des "mauvaises" versions des pilotes nvidia et les dernières ne sont pas toujours les meilleures. Vous pouvez essayer de mettre à niveau à l'aide du PPA X-swat:

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates

Et vous pouvez essayer de passer à une version antérieure disponible pour 12.04:

https://launchpad.net/ubuntu/precise/AMD64/nvidia-current ou https://launchpad.net/ubuntu/precise/i386/nvidia-current

selon que vous avez installé AMD64 ou i386. Cliquez sur le numéro de version à droite que vous souhaitez essayer, téléchargez le fichier .deb puis installez-le avec:

Sudo dpkg --install <name of file>.deb

Par exemple, à cause d'un bogue nvidia non lié, j'ai dû télécharger ceci:

http://launchpadlibrarian.net/90395807/nvidia-current_290.10-0ubuntu2_AMD64.deb

de

https://launchpad.net/ubuntu/precise/AMD64/nvidia-current/290.10-0ubuntu2

et l'a installé en utilisant:

Sudo dpkg --install nvidia-current_290.10-0ubuntu2_AMD64.deb

Un autre point minuscule: une autre réponse mentionne le passage du taux de rafraîchissement de Auto à 60Hz et vous dites qu'il est déjà réglé sur 60Hz. Cependant, votre xorg.conf attaché a nvidia-auto-select dans les métamodes (dans la section Screen), ce qui suggère qu'il n'est pas corrigé. Cependant, la définition de votre moniteur n’offre que la version 60.0, c’est peut-être sans importance. Il peut être intéressant de sauvegarder et de déplacer votre fichier xorg.conf, puis de relancer nvidia-xconfig et nvidia-settings pour voir si vous obtenez une configuration différente.

0
David Edwards

Vous pouvez résoudre ce problème pour VLC en modifiant la sortie vidéo en "OpenGL GLX".

0
user279078

Je pouvais choisir la fenêtre avec mon curseur, déplacer la fenêtre et réparer le déchirement. Cela ressemble donc à certains problèmes de rappel dans X.

Pour moi, le correctif vlc était:

vlc -> outils -> préférences -> vidéo -> dans le menu déroulant "Sortie", choisissez x11 video output(XCB)

0
abr

Désolé, cette réponse est un peu pour OpenSuSE, pas pour Ubuntu, mais je l’ai finalement fait fonctionner avec ces changements,

  • Désactiver temporairement les effets de composition/fenêtre (alt + shift + f12 dans openSuSE)
  • Utilisez VLC avec le paramètre "Vidéo" réglé sur "Sortie vidéo OpenGL (expérimental)". "Sortie vidéo accélérée (superposition)" est également cochée pour moi. J'utilise VLC 2.1.1 si cela compte.
  • Définissez les paramètres de PowerMizer sur performance, comme dans la réponse de mjnichol
  • Définissez les paramètres OpenGL sur High, comme dans la réponse d'Amir Dizdarević

J'espère que ça aide! J'imagine qu'il existe certains paramètres pour que cela fonctionne avec la composition, mais je recommande au moins de désactiver la composition pour les tests. Ma configuration est un moniteur 4K et une carte graphique GTX 650.

0
gatoatigrado

En plus de l'article précédent de David: si vous souhaitez installer les derniers pilotes propriétaires de NVidia à l'aide de PPA X-swat, vous pouvez également l'ajouter à vos sources apt:

Sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
Sudo apt-get update
Sudo apt-get install nvidia-current

Cela installera la dernière version et vous tiendra au courant de leurs livraisons.

0
Yanok