matanui159 / ReplaySorcery

An open-source, instant-replay solution for Linux
GNU General Public License v3.0
854 stars 27 forks source link

Does not work with hardware acceleration enabled #174

Open Flika1999 opened 9 months ago

Flika1999 commented 9 months ago

Describe the bug The service will not start with video acceleration enabled. This is on a fresh build from source.

Desktop:

Configuration:

# Possible values: trace, debug, verbose, info, warning, error, fatal, panic, quiet
# Default value: info
logLevel = info

# The minimum log-level to add stacktraces to
# Possible values: trace, debug, verbose, info, warning, error, fatal, panic, quiet
# Default value: error
traceLevel = error

# The duration of the recording in seconds
# Default value: 30
recordSeconds = 30

# The video input backend to use for video recording
# Possible values: auto, hwaccel, x11, kms, kms_service
# Default value: auto
videoInput = hwaccel

# The name of the input video device
# For kms and kms_service, see `replay-sorcery kms-devices`
# Possible values: auto, or a device string
# Default value: auto
videoDevice = auto

# The X, Y, width and height of recording rectangle
# Default value: 0, 0
videoX = 0
videoY = 0
# Possible values: a positive integer or auto
# Default value: auto, auto
videoWidth = 1920
videoHeight = 1080

# The framerate of the recording
# Default value: 30
videoFramerate = 60

# The video encoder backend to use for video recording
# Possible values: auto, hevc, x264, openh264, x265, vaapi_h264, vaapi_hevc
# Default value: auto
videoEncoder = auto

# The H.264 profile to use for video encoding
# Possible values: baseline, main, high
# Default value: baseline
videoProfile = baseline

# A high-level preset for video encoding performance
# Possible values: fast, medium, slow
# Default value: fast
videoPreset = fast

# The quality to use for video encoding, lower is better
# Possible values: 1-51 or auto
# Default value: 28
videoQuality = 28

# The bitrate to use for video encoding
# Possible values: a positive integer ending in an SI prefix (eg. 1M) or auto
# Default value: auto
videoBitrate = auto

# The number of frames between IDR frames
# Default value: 30
videoGOP = 30

# The width and height to scale the video to
# Possible values: a positive integer or auto
# Default value: auto, auto
scaleWidth = auto
scaleHeight = auto

# The audio input backend to use for audio recording
# Possible values: none, auto, pulse
# Default value: auto
audioInput = auto

# The name of the input audio device
# For pulse, see `pactl list sources`
# Possible values: auto, system, or a device string
# Default value: auto
audioDevice = auto

# The samplerate to use for audio recording
# Default value: 44100
audioSamplerate = 44100

# The audio encoder backend to use for audio recording
# Possible values: auto, aac, fdk
# Default value: auto
audioEncoder = auto

# The AAC profile to use for audio encoding
# Possible values: low (LC), main, high (HE)
# Default value: low
audioProfile = low

# The bitrate to use for audio encoding
# Possible values: a positive integer ending in an SI prefix (eg. 1K) or auto
# Default value: auto
audioBitrate = auto

# The controller backend to use for detecting key presses
# Possible values: auto, debug, x11
# Default value: auto
controller = auto

# The key name and key modifiers (as a set of flags) to press to save a video
# Default value: r
keyName = r
# Possible values: ctrl, shift, alt, super
# Default value: ctrl+super
keyMods = ctrl+alt

# Where to save the output file
# Possible values: a strftime formatted file path
# Default value: ~/Videos/ReplaySorcery_%F_%H-%M-%S.mp4
outputFile = ~/Videos/ReplaySorcery/%F_%H-%M-%S.mp4

# A command to run when a video is successfully saved
# Possible values: a printf formatted command
# Default value: notify-send ReplaySorcery "Saved replay as %s"
outputCommand = notify-send ReplaySorcery "Saved replay as %s"

Logs: Please run journalctl --user -eu replay-sorcery -n 100 > replay-sorcery.log and upload the result.

This command returns bash: replay-sorcery.log: Permission denied (as well as when ran with sudo). But the output of journalctl --user -fu replay-sorcery is as follows:

Feb 08 17:28:59 ufo replay-sorcery[13332]: Unused option: framerate
Feb 08 17:28:59 ufo replay-sorcery[13332]: Failed to create KMS device: No such file or directory
Feb 08 17:28:59 ufo replay-sorcery[13332]: Function not implemented
Feb 08 17:28:59 ufo replay-sorcery[13332]:  - /home/will/ReplaySorcery/src/main.c:238 (main)
Feb 08 17:28:59 ufo systemd[900]: replay-sorcery.service: Main process exited, code=exited, status=1/FAILURE
Feb 08 17:28:59 ufo systemd[900]: replay-sorcery.service: Failed with result 'exit-code'.
Feb 08 17:28:59 ufo systemd[900]: replay-sorcery.service: Scheduled restart job, restart counter is at 5.
Feb 08 17:28:59 ufo systemd[900]: replay-sorcery.service: Start request repeated too quickly.
Feb 08 17:28:59 ufo systemd[900]: replay-sorcery.service: Failed with result 'exit-code'.
Feb 08 17:28:59 ufo systemd[900]: Failed to start ReplaySorcery: an open-source, instant-replay solution for Linux..