matanui159 / ReplaySorcery

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

hwaccel doesnt seem to work #170

Closed gepron1x closed 1 year ago

gepron1x commented 1 year ago

Describe the bug While replay sorcery works fine with auto videoInput mode, it doesn't on hwaccel, which make me sad.

Desktop:

Configuration:

# The minimum log-level to show
# 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 = auto
videoHeight = auto

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

# 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 = auto

# 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+super

# 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:

Reading config file '/usr/etc/replay-sorcery.conf'...
Setting 'logLevel' to 'info'...
Setting 'traceLevel' to 'error'...
Setting 'recordSeconds' to '30'...
Setting 'videoInput' to 'auto'...
Setting 'videoDevice' to 'auto'...
Setting 'videoX' to '0'...
Setting 'videoY' to '0'...
Setting 'videoWidth' to 'auto'...
Setting 'videoHeight' to 'auto'...
Setting 'videoFramerate' to '30'...
Setting 'videoEncoder' to 'auto'...
Setting 'videoProfile' to 'baseline'...
Setting 'videoPreset' to 'fast'...
Setting 'videoQuality' to '28'...
Setting 'videoBitrate' to 'auto'...
Setting 'videoGOP' to '30'...
Setting 'scaleWidth' to 'auto'...
Setting 'scaleHeight' to 'auto'...
Setting 'audioInput' to 'auto'...
Setting 'audioDevice' to 'auto'...
Setting 'audioSamplerate' to '44100'...
Setting 'audioEncoder' to 'auto'...
Setting 'audioProfile' to 'low'...
Setting 'audioBitrate' to 'auto'...
Setting 'controller' to 'auto'...
Setting 'keyName' to 'r'...
Setting 'keyMods' to 'ctrl+super'...
Setting 'outputFile' to '~/Videos/ReplaySorcery/%F_%H-%M-%S.mp4'...
Setting 'outputCommand' to 'notify-send ReplaySorcery "Saved replay as %s"'...
Reading config file '/home/gepron1x/.config/replay-sorcery.conf'...
Setting 'logLevel' to 'info'...
Setting 'traceLevel' to 'error'...
Setting 'recordSeconds' to '30'...
Setting 'videoInput' to 'kms_service'...
Setting 'videoDevice' to 'auto'...
Setting 'videoX' to '0'...
Setting 'videoY' to '0'...
Setting 'videoWidth' to 'auto'...
Setting 'videoHeight' to 'auto'...
Setting 'videoFramerate' to '30'...
Setting 'videoEncoder' to 'auto'...
Setting 'videoProfile' to 'baseline'...
Setting 'videoPreset' to 'fast'...
Setting 'videoQuality' to '28'...
Setting 'videoBitrate' to 'auto'...
Setting 'videoGOP' to '30'...
Setting 'scaleWidth' to 'auto'...
Setting 'scaleHeight' to 'auto'...
Setting 'audioInput' to 'auto'...
Setting 'audioDevice' to 'auto'...
Setting 'audioSamplerate' to '44100'...
Setting 'audioEncoder' to 'auto'...
Setting 'audioProfile' to 'low'...
Setting 'audioBitrate' to 'auto'...
Setting 'controller' to 'auto'...
Setting 'keyName' to 'r'...
Setting 'keyMods' to 'ctrl+super'...
Setting 'outputFile' to '~/Videos/ReplaySorcery/%F_%H-%M-%S.mp4'...
Setting 'outputCommand' to 'notify-send ReplaySorcery "Saved replay as %s"'...
ReplaySorcery  Copyright (C) 2020-2021  ReplaySorcery developers
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see COPYING for details.
FFmpeg version: n5.1.2
[h264_vaapi @ 0x55efd101f900] Filter graph: hwmap=derive_device=vaapi,crop=1920:1080:0:0,scale_vaapi=1920:1080:nv12
[h264_vaapi @ 0x55efd101f900] H.264 baseline profile is not supported, using constrained baseline profile instead.
[h264_vaapi @ 0x55efd101f900] No usable encoding profile found.
[NULL @ 0x55efd101f900] Failed to open encoder: Function not implemented
Failed to create VA-API encoder: Function not implemented
Function not implemented
gepron1x commented 1 year ago

Fixed by installing mesa-nonfree package.