|
|
|
|
@@ -102,11 +102,8 @@ You can see a list of capture options to record if you run `gpu-screen-recorder
|
|
|
|
|
```
|
|
|
|
|
in this case you could record a window or a monitor with the name `DP-1`.\
|
|
|
|
|
To list available audio devices that you can use you can run `gpu-screen-recorder --list-audio-devices` and the name to use is on the left size of the `|`.\
|
|
|
|
|
To list available audio application names that you can use you can run `gpu-screen-recorder --list-application-audio`.
|
|
|
|
|
## Streaming
|
|
|
|
|
Streaming works the same way as recording, but the `-o` argument should be path to the live streaming service you want to use (including your live streaming key). Take a look at `scripts/twitch-stream.sh` to see an example of how to stream to twitch.\
|
|
|
|
|
GPU Screen Recorder uses Ffmpeg so GPU Screen Recorder supports all protocols that Ffmpeg supports.\
|
|
|
|
|
If you want to reduce latency one thing you can do is to use the `-keyint` option, for example `-keyint 0.5`. Lower value means lower latency at the cost of increased bitrate/decreased quality.
|
|
|
|
|
To list available audio application names that you can use you can run `gpu-screen-recorder --list-application-audio`.\
|
|
|
|
|
You can run `gpu-screen-recorder --info` to list more information about the system, such as the device that is used for capture and video encoding and supported codecs. These commands can be parsed by scripts/programs.
|
|
|
|
|
## Replay mode
|
|
|
|
|
Run `gpu-screen-recorder` with the `-c mp4` and `-r` option, for example: `gpu-screen-recorder -w screen -f 60 -r 30 -c mp4 -o ~/Videos`. Note that in this case, `-o` should point to a directory.\
|
|
|
|
|
If `-df yes` is set, replays are save in folders based on the date.
|
|
|
|
|
@@ -117,6 +114,10 @@ This can be used for example to show a notification when a replay has been saved
|
|
|
|
|
The replay buffer is stored in ram (as encoded video) by default, so don't use a too large replay time and/or video quality unless you have enough ram to store it.\
|
|
|
|
|
You can use the `-replay-storage disk` option to store the replay buffer on disk instead of ram (in the same location as the output video).\
|
|
|
|
|
By default videos are recorded with constant quality, but with replay mode you might want to record in constant bitrate mode instead for consistent ram/disk usage in high motion scenes. You can do that by using the `-bm cbr` option (along with `-q` option, for example `-bm cbr -q 20000`).
|
|
|
|
|
## Streaming
|
|
|
|
|
Streaming works the same way as recording, but the `-o` argument should be path to the live streaming service you want to use (including your live streaming key). Take a look at `scripts/twitch-stream.sh` to see an example of how to stream to twitch.\
|
|
|
|
|
GPU Screen Recorder uses Ffmpeg so GPU Screen Recorder supports all protocols that Ffmpeg supports.\
|
|
|
|
|
If you want to reduce latency one thing you can do is to use the `-keyint` option, for example `-keyint 0.5`. Lower value means lower latency at the cost of increased bitrate/decreased quality.
|
|
|
|
|
## Recording while using replay/streaming
|
|
|
|
|
You can record a regular video while using replay/streaming by launching GPU Screen Recorder with the `-ro` option to specify a directory where to save the recording.\
|
|
|
|
|
To start/stop (and save) recording use the SIGRTMIN signal, for example `pkill -SIGRTMIN -f gpu-screen-recorder`. The name of the video will be displayed in stdout when saving the video.\
|
|
|
|
|
@@ -150,12 +151,28 @@ If you record at your monitors refresh rate and enabled vsync in a game then the
|
|
|
|
|
This is an issue in some games.
|
|
|
|
|
If you experience this issue then you might want to either disable vsync in the game or use the `-fm content` option to sync capture to the content on the screen. For example: `gpu-screen-recorder -w screen -fm content -o video.mp4`.\
|
|
|
|
|
Note that this option is currently only available on X11, or with desktop portal capture on Wayland (`-w portal`).
|
|
|
|
|
|
|
|
|
|
# Performance
|
|
|
|
|
On a system with an i5 4690k CPU and a GTX 1080 GPU:\
|
|
|
|
|
When recording Legend of Zelda Breath of the Wild at 4k, fps drops from 30 to 7 when using OBS Studio + nvenc, however when using this screen recorder the fps remains at 30.\
|
|
|
|
|
When recording GTA V at 4k on highest settings, fps drops from 60 to 23 when using obs-nvfbc + nvenc, however when using this screen recorder the fps only drops to 58.\
|
|
|
|
|
On a system with an AMD Ryzen 9 5900X CPU and an RX 7800XT GPU I dont see any fps drop at all, even when recording at 4k 60fps with AV1 codec with 10-bit colors.\
|
|
|
|
|
GPU Screen Recorder also produces much smoother videos than OBS when GPU utilization is close to 100%, see comparison here: [https://www.youtube.com/watch?v=zfj4sNVLLLg](https://www.youtube.com/watch?v=zfj4sNVLLLg) and [https://www.youtube.com/watch?v=aK67RSZw2ZQ](https://www.youtube.com/watch?v=aK67RSZw2ZQ).\
|
|
|
|
|
GPU Screen Recorder has much better performance than OBS Studio even with version 30.2 that does "zero-copy" recording and encoding, see: [https://www.youtube.com/watch?v=jdroRjibsDw](https://www.youtube.com/watch?v=jdroRjibsDw).\
|
|
|
|
|
It is recommended to save the video to a SSD because of the large file size, which a slow HDD might not be fast enough to handle. Using variable framerate mode (-fm vfr) which is the default is also recommended as this reduces encoding load. Ultra quality is also overkill most of the time, very high (the default) or lower quality is usually enough.\
|
|
|
|
|
Note that for best performance you should close other screen recorders such as OBS Studio when using GPU Screen Recorder even if they are not recording, since they can affect performance even when idle. This is the case with OBS Studio.
|
|
|
|
|
## Note about optimal performance on NVIDIA
|
|
|
|
|
NVIDIA driver has a "feature" (read: bug) where it will downclock memory transfer rate when a program uses cuda (or nvenc, which uses cuda), such as GPU Screen Recorder. To work around this bug, GPU Screen Recorder can overclock your GPU memory transfer rate to it's normal optimal level.\
|
|
|
|
|
To enable overclocking for optimal performance use the `-oc` option when running GPU Screen Recorder. You also need to have "Coolbits" NVIDIA X setting set to "12" to enable overclocking. You can automatically add this option if you run `sudo nvidia-xconfig --cool-bits=12` and then reboot your computer.\
|
|
|
|
|
Note that this only works when Xorg server is running as root, and using this option will only give you a performance boost if the game you are recording is bottlenecked by your GPU.\
|
|
|
|
|
Note! use at your own risk!
|
|
|
|
|
|
|
|
|
|
# Issues
|
|
|
|
|
## NVIDIA
|
|
|
|
|
Nvidia drivers have an issue where CUDA breaks if CUDA is running when suspend/hibernation happens, and it remains broken until you reload the nvidia driver. `extra/gsr-nvidia.conf` will be installed by default when you install GPU Screen Recorder and that should fix this issue. If this doesn't fix the issue for you then your distro may use a different path for modprobe files. In that case you have to install that `extra/gsr-nvidia.conf` yourself into that location.
|
|
|
|
|
You have to reboot your computer after installing GPU Screen Recorder for the first time for the fix to have any effect.
|
|
|
|
|
|
|
|
|
|
# TEMPORARY ISSUES
|
|
|
|
|
## TEMPORARY ISSUES
|
|
|
|
|
1) Videos are in variable framerate format. Use MPV to play such videos, otherwise you might experience stuttering in the video if you are using a buggy video player. You can try saving the video into a .mkv file instead as some software may have better support for .mkv files (such as kdenlive). You can use the "-fm cfr" option to to use constant framerate mode.
|
|
|
|
|
2) FLAC audio codec is disabled at the moment because of temporary issues.
|
|
|
|
|
|
|
|
|
|
@@ -167,19 +184,7 @@ When recording a window or when using the `-w portal` option no special user per
|
|
|
|
|
however when recording a monitor the program needs root permission (to access KMS).\
|
|
|
|
|
This is safe in GPU Screen Recorder as the part that needs root access has been moved to its own small program that only does one thing.\
|
|
|
|
|
For you as a user this only means that if you installed GPU Screen Recorder as a flatpak then a prompt asking for root password will show up once when you start recording.
|
|
|
|
|
# Performance
|
|
|
|
|
On a system with a i5 4690k CPU and a GTX 1080 GPU:\
|
|
|
|
|
When recording Legend of Zelda Breath of the Wild at 4k, fps drops from 30 to 7 when using OBS Studio + nvenc, however when using this screen recorder the fps remains at 30.\
|
|
|
|
|
When recording GTA V at 4k on highest settings, fps drops from 60 to 23 when using obs-nvfbc + nvenc, however when using this screen recorder the fps only drops to 58.\
|
|
|
|
|
GPU Screen Recorder also produces much smoother videos than OBS when GPU utilization is close to 100%, see comparison here: [https://www.youtube.com/watch?v=zfj4sNVLLLg](https://www.youtube.com/watch?v=zfj4sNVLLLg) and [https://www.youtube.com/watch?v=aK67RSZw2ZQ](https://www.youtube.com/watch?v=aK67RSZw2ZQ).\
|
|
|
|
|
GPU Screen Recorder has much better performance than OBS Studio even with version 30.2 that does "zero-copy" recording and encoding, see: [https://www.youtube.com/watch?v=jdroRjibsDw](https://www.youtube.com/watch?v=jdroRjibsDw).\
|
|
|
|
|
It is recommended to save the video to a SSD because of the large file size, which a slow HDD might not be fast enough to handle. Using variable framerate mode (-fm vfr) which is the default is also recommended as this reduces encoding load. Ultra quality is also overkill most of the time, very high (the default) or lower quality is usually enough.\
|
|
|
|
|
Note that for best performance you should close other screen recorders such as OBS Studio when using GPU Screen Recorder even if they are not recording, since they can affect performance even when idle. This is the case with OBS Studio.
|
|
|
|
|
## Note about optimal performance on NVIDIA
|
|
|
|
|
NVIDIA driver has a "feature" (read: bug) where it will downclock memory transfer rate when a program uses cuda (or nvenc, which uses cuda), such as GPU Screen Recorder. To work around this bug, GPU Screen Recorder can overclock your GPU memory transfer rate to it's normal optimal level.\
|
|
|
|
|
To enable overclocking for optimal performance use the `-oc` option when running GPU Screen Recorder. You also need to have "Coolbits" NVIDIA X setting set to "12" to enable overclocking. You can automatically add this option if you run `sudo nvidia-xconfig --cool-bits=12` and then reboot your computer.\
|
|
|
|
|
Note that this only works when Xorg server is running as root, and using this option will only give you a performance boost if the game you are recording is bottlenecked by your GPU.\
|
|
|
|
|
Note! use at your own risk!
|
|
|
|
|
|
|
|
|
|
# VRR/G-SYNC
|
|
|
|
|
This should work fine on AMD/Intel X11 or Wayland. On Nvidia X11 G-SYNC only works with the -w screen-direct option, but because of bugs in the Nvidia driver this option is not always recommended.
|
|
|
|
|
For example it can cause your computer to freeze when recording certain games.
|
|
|
|
|
|