Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recorded GIFs flicker (Nvidia graphic driver) #86

Closed
BrainAxe opened this issue Feb 23, 2017 · 12 comments
Closed

Recorded GIFs flicker (Nvidia graphic driver) #86

BrainAxe opened this issue Feb 23, 2017 · 12 comments
Labels

Comments

@BrainAxe
Copy link

peek 2017-02-23 20-55
Hi, my destop is Linux mint 18.1 cinnamon 64bit and my graphic driver is nvidia video driver. The problem is recorded gifs are flicking with my desktop wallpaper.

@phw
Copy link
Owner

phw commented Feb 23, 2017

Thanks for reporting. Could you try if other screen recording software suffers from the same issue?

In the end Peek is just using ffmpeg to do the recording, and issues like this are often driver related in which case there is not much I can do :(

@BrainAxe
Copy link
Author

Thanks for replying. I just found out other screen recording software (kazam) also having same problem in screen recording :(

@phw
Copy link
Owner

phw commented Feb 24, 2017

Ok. I would love to offer you a workaround, but I have no experience with the Nvidia driver and the available settings and I also can't test it.

Two things I found that could be related:

http://unix.stackexchange.com/questions/156155/x11grab-flickers-in-opengl-draw-areas
http://askubuntu.com/questions/263996/fixing-the-nvidia-graphics-screen-flicker-issue

I will leave this issue open for a while, maybe somebody else has some idea on this.

@gort818
Copy link
Contributor

gort818 commented Mar 2, 2017

I had luck with changing the allow flipping setting for the Nvidia driver.

phw added a commit that referenced this issue Mar 6, 2017
@phw
Copy link
Owner

phw commented Mar 6, 2017

@gort818 Thanks, I added this info the FAQs.

@BrainAxe It would be cool if you could try if this also works for you.

@BrainAxe
Copy link
Author

BrainAxe commented Mar 6, 2017

Thanks @gort818 for the information. It works and I am relieved from unwanted pain.
I am very grateful to @phw for keeping this issue opened. I found the setting in OpenGL Settings, here is a screenshot you can add this in FAQs and thanks again. :)
screenshot_00000

@phw phw removed the need more info label Mar 6, 2017
@phw phw closed this as completed Mar 6, 2017
@gort818
Copy link
Contributor

gort818 commented Mar 7, 2017

Glad to help guys!

@WolfieWerewolf
Copy link

I know this is an old ticket but I also had the same issue and the above solution resolved it for me. Thank you.

@KiLLAAA
Copy link

KiLLAAA commented Oct 4, 2020

x11_grab_glitch
Guys, i'm sorry to be late to the party, but disabling the Flipping in nV settings did help, but not completely SOLVE the issue..
Grabbing high framerate still makes the same glitches even with hardware encoder and lowish bitrate!
Settings below, ffmpeg 4.1 compiled standalone to match my 384.xx driver and codec headers version 8.
$ ./ffmpeg -video_size 1024x768 -framerate 60 -f x11grab -i :0.0+100,200 -vcodec h264_nvenc x11_output.mp4 ffmpeg version 4.1.6 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.5-4ubuntu8~14.04.2) configuration: --prefix=/apps/libav/11.7 --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-gray --enable-vdpau --enable-libmp3lame --enable-libfdk-aac --enable-libtheora --enable-libxcb --cpu=native --enable-vdpau --enable-libwavpack --enable-libxvid --enable-libx264 --enable-nvenc libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 [x11grab @ 0x2e8a500] Stream #0: not enough frames to estimate rate; consider increasing probesize Input #0, x11grab, from ':0.0+100,200': Duration: N/A, start: 1601796935.110486, bitrate: N/A Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1024x768, 60 fps, 1000k tbr, 1000k tbn, 1000k tbc File 'x11_output.mp4' already exists. Overwrite ? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc)) Press [q] to stop, [?] for help Output #0, mp4, to 'x11_output.mp4': Metadata: encoder : Lavf58.20.100 Stream #0:0: Video: h264 (h264_nvenc) (Main) (avc1 / 0x31637661), bgr0, 1024x768, q=-1--1, 2000 kb/s, 60 fps, 15360 tbn, 60 tbc Metadata: encoder : Lavc58.35.100 h264_nvenc Side data: cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: -1 frame= 233 fps=0.0 q=18.0 size= 0kB time=00:00:03.83 bitrate= 0.1kbits/frame= 264 fps=214 q=18.0 size= 0kB time=00:00:04.35 bitrate= 0.1kbits/frame= 296 fps=170 q=18.0 size= 0kB time=00:00:04.88 bitrate= 0.1kbits/frame= 326 fps=145 q=18.0 size= 0kB time=00:00:05.38 bitrate= 0.1kbits/frame= 357 fps=130 q=18.0 size= 0kB time=00:00:05.90 bitrate= 0.1kbits/frame= 386 fps=119 q=18.0 size= 0kB time=00:00:06.38 bitrate= 0.1kbits/frame= 414 fps=110 q=18.0 size= 0kB time=00:00:06.85 bitrate= 0.1kbits/frame= 447 fps=105 q=18.0 size= 256kB time=00:00:07.40 bitrate= 283.4kbits/frame= 476 fps=100 q=18.0 size= 256kB time=00:00:07.88 bitrate= 266.1kbits/frame= 509 fps= 96 q=18.0 size= 512kB time=00:00:08.43 bitrate= 497.4kbits/frame= 540 fps= 93 q=18.0 size= 512kB time=00:00:08.95 bitrate= 468.7kbits/frame= 570 fps= 90 q=18.0 size= 512kB time=00:00:09.45 bitrate= 443.9kbits/

@phw
Copy link
Owner

phw commented Oct 4, 2020

@KiLLAAA This is still likely a video driver issue. You can try to report this to ffmpeg or Nvidia.

@KiLLAAA
Copy link

KiLLAAA commented Oct 4, 2020

@phw yes, it looks like ffmpeg grabs current frame which is still being written at the time.

@artik
Copy link

artik commented Dec 17, 2021

My workaround is to create a script to deactivate Allow flipping when launching peek with /usr/bin/nvidia-settings -a 'AllowFlipping=0' and reactivate it when closing the program. Here is my script:

#!/bin/bash

/usr/bin/nvidia-settings -a 'AllowFlipping=0'
peek
/usr/bin/nvidia-settings -a 'AllowFlipping=1'

Bonus: for those who want to also close peek when capture is finished:

#!/bin/bash

TARGET=~/bureau/temp/

/usr/bin/nvidia-settings -a 'AllowFlipping=0'
peek & inotifywait -m -e create $TARGET \
   | while read FILENAME
       do
       	/usr/bin/nvidia-settings -a 'AllowFlipping=1'
           pkill peek
       done

Adapt with your path. Needs inotifywait to work: sudo apt install inotify-tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants