GithubHelp home page GithubHelp logo

decky-recorder's People

Contributors

derpychap avatar kleutzinger avatar korewakiyo avatar marissa999 avatar newbytee avatar safijari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

decky-recorder's Issues

Improve configuration of Rolling Record

As it stands the configuration menu isn't very intuitive, and I think there are a couple of changes that could be made to massively improve it's usability.

First of all, I can't quite understand why the file format option is disabled when replay mode is enabled.
The only thing I can think of is that changing it while replay is enabled could cause the cache to get weird, but would it not be better to keep the option enabled and flush the cache if it's changed? It took me a second to realise why it wasn't working.

Secondly, it would be nice to be able to customise the length of the buffer and how much it saves.
As of now, my understanding is that it will always loop record the last 5 minutes, which can take up a decent chunk of ram. Personally I'd rather have the loop be shorter, say two minutes, but have the entire two minutes be saved whenever I press the keybind rather than just 30 seconds. As it is now the only way to save longer clips is to go into the menu, which is fairly cumbersome in games where you can't pause easily.
Having options for buffer length and keybind record length would be good, but has the potential to get overly complicated since then you've got 3 separate options - Buffer length, keybind record length, and manual record buttons.
Personally, my solution to that would be to simplify the menu substantially to have you select the length of your recording loop, and then have the keybind save the entire loop. Then also have the keybind be the only way in which you save clips, rather than having multiple time options. It's simpler to understand conceptually, and also makes the plugin much easier to operate.

Finally, it would be extremely useful to be able to choose the location of the saved video files. Being able to set the record folder to the SD card would make managing clips much easier, especially for people with smaller onboard storage.

Really love the plugin, this functionality is the one thing I wish the deck had natively. Awesome work implementing it!

[Feature request] Remember video formats

Decky Recorder is always set to *.MP4 by default, no matter what setting you changed prior to you rebooting your Steam Deck.

It would be great to have Decky Recorder remember your last set format for the next time you activate Replay Mode.

Some confusion about how this works

I am new to GitHub, apologies in advance if I do or say something incorrect. I am a little confused about how this plugin works. I understand the normal recorder, pressing start and stop, and picking the file format. It's the replay system I don't understand.

Is it only recording in the background when the toggle is on? Why do I have to turn off replay to record a normal video? What is the 30 sec, 1 min, 2 min, 5 min, buttons for? Is there a way to have Steam+Y save more than 30 sec?

I sometimes don't understand really simple things, I hope this doesn't come across as rude, I am just confused how this works.

[Feature request] Shortcut to disable replay

Since having replay enabled can cause performance issues on some heavier titles and there already is a shortcut for enabling it (Steam + Start/Y), I suppose there should be a shortcut for disabling it, too.

If not otherwise in use, I'd suggest Steam + Select.

In case of my favorite title on the Steam Deck, Fall Guys, I could enable replay once I reach the final round with less players than the rounds before and could disable it afterwards to not harm my framerate in the first games of the next round where there are a lot more players (and hence a neeed for ressources).
I know I'm already able to this via the menu, but a shortcut would be welcome.

Steam Deck crashes when recording starts while being docked

"using the plugin (version 0.10 on Decky v2.6.1-pre2) causes SteamOS crash whilst docked to external screen in gaming mode
On latest version on Stable SteamOS if that makes any difference"
https://discord.com/channels/960281551428522045/1079884555386892359/1079885860985647124

I can as of now not see any reason, why the crash is happening. It feels like it should work, the resolution should not matter, and even if gstreamer has an issue, it shouldnt crash the whole deck and instead just exit? Maybe its a driver/gpu issue? I will have to debug that a bit more, somehow

Steam + Start doesn't work

Hi,

0.2.1 changes the keybind to take a recording to Steam+Start, instead of Steam+Y (6f78b55)

Unfortunately, this new keybind doesn't seem to work for me. When pressing the combination, the Steam menu will open instead, and no recording will occur. This happens even after a reboot.

If any other information is needed, please let me know!

Audio is in mono?

I used the plugin for the first time today. I watched the recording later and noticed the audio recorded was in mono, not stereo? What would be the reason for that?

No way to change recording output destination.

A big issue for people with a 64 GB model of the Steam Deck is minimal storage space after awhile. Even if you factory reset, and reinstall the bare essentials, it gets tedious after awhile.

I don't know the full capabilities of this plug in yet, or if it'll even be possible, but letting the user decide to output the recorded videos to a folder on their external drive or mounted micro SD card would be a godsend, cause even a 10 minute video could end up being over 2 GB in size depending on the quality.

Doesn't save last recording

Twice in a row now the plugin didn't save my last capture of about 20 minutes (.mov). Is this a known issue? After making a few recordings in a row, I switched to Desktop Mode and there was no trace of the last capture in both cases.

It might be similar to [the issues in this post].(https://www.reddit.com/r/SteamDeck/comments/11cj1of/decky_recorder_not_saving/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=share_button)

Thank you so much for all the effort!

Possibly breaks steamdeck boot

hi hi,

I'm not sure if this is due to decky-recorder - it might not be, but just mentioning in case you see another report:

I saw this plugin on the testing store and it is a really slick idea. And it worked for the one test video I tried. But a strange thing: the next time I rebooted my steamdeck it got stuck in a boot loop with a flickering black screen. I took at look with top/ps and saw there was some sort of Steam script trying to cope with the Steam UI app not launching and repeatedly relaunching it unsuccessfully.

Alas - I didn't have time to investigate more than that and just reinstalled the Steam userspace apps/config file.

It might not be due to decky-recorder, but I've never had this problem on my steamdeck before.

Spiderman Remastered often crashes when recording a clip

I doubt there's much to fix here but I might as well ask. Doesn't Decky Recorder use the resources usually reserved for Steam stuff and not the ones used by the game? If that's the case why does it crash the game sometimes? Should be linked to it being resource intensive since I've never had the other games crash on me after pressing Steam + Y

Stops Recording

Hey, there. I love this project of yours and I have to say it's one of the best things I've seen in a very long time.
I would just love if there was a way if checking if it's actually recording or not.
At the moment I had to play the same game for a few hours because I thought it was recording when it wasn't and I can't understand how long does it usually record. I saw that some videos are around 15 minutes, others longer but it's very hard to understand. Is there a way to add a feature so we could see if it's recording? I know it probably isn't but would save a lot of trouble. Thank you for your amazing work, by the way. โค

Issue when not capping the framerate

What I did:

  1. Have the in-game frame limiter set to 120 100 (Fall Guys)
  2. Set the FPS limiter in the Steam overlay to unlimited instead of 60
  3. Start recording

Issues:

  1. Game stutters hard during recording, doesn't happen when setting Steam limiter to 60
  2. After the first recording it always says something along the lines of "not enough time has passed since last recording", no new recording possible until replay has been disabled and reenabled

This happens on the Deck itself as well as when docked putting out to a 1080p60 TV.

I'm not sure yet whether other Steam FPS limits than 60 (e.g. 40) work.

[BUG] Too early to record another clip

Found that when i'm using bluetooth headphones recorder is not working(notifications appear: too early to record another clip. When disconnecting headphones, recorder work's awesome.

[FEATURE REQUEST] Stream To Twitch

When your plugin does work, it manages to record every game I play. While OBS on the other hand only manages to capture a handful of certain games. I would like to have a plugin that allows me to connect to my twitch account, type in the name for my stream, and then with the click of a button start streaming my Steam Deck on Twitch.

Also, Amazon's Luna cloud gaming service has this functionality (streaming gameplay to twitch on device) built in. So, I think building it for the Steam Deck would be worthwhile.

(I'm also interested in working with you, because I would like to learn how to make my own steam deck plugins. It sounds like a lot of fun.)

"Too early to record another clip"

The plugin used to work for a few clips but now I always get this error message. Not linked to any particular game. My deck is also pretty vanilla since I just got a replacement model. Decky Recorder is basically the only non-stock thing I use.

[Feature request] Hotkey to save replays

I use desktop mode often to play games on my steam deck, and it would be really nice to be able to set a keyboard shortcut to save a replay with so you don't have to press buttons on the console in order to quickly save something.

[Request] Button visualizer

This may out of scope for this project, however a button visualizer is mostly useful when recording videos. I understand that implementing may be quite challenging. However if you do consider implementing it, I'd like to request Steam Deck buttons showing up on the lower right, and redirected input (if any) on the bottom right.

capture not working when bluetooth earphone used.

capture not working when bluetooth earphone used.

record works fine when i use wired earphone or steamdeck speaker.

but, if i use bluetooth earphone, it's not work.

i tested airpods 3rd generation and cx350bt.

Steam + Y is the shortcut to turn off the external controller

If I play with a PS5 controller, then pressing Steam + Y (or rather PS + Triangle) will turn off the controller. This is Steam's shortcut, and I don't know if there's a way to turn it off. Pretty inconvevient when using an external controller.

That being said, I'm super excited to see to see something like this being developed!

replay mode stuck enabled

title. cant turn replay mode off. turning it off, starting a recording then going back shows it on again.

Audio encoding compatibility issue

When trying to play a recorded mp4 video on iOS or a Mac using Quicktime/Final Cut Pro, the sound wouldn't play through properly. This may be because the audio format currently being used (mpga) is not supported by those devices/programs. Is it possible to have this plugin use an audio format that's more universal, such as AAC? I don't know the technical side of how this all functions, so if there's a proper reason why this is the case then I'd understand.

Having lots of issues using this

I'm running into numerous issues with this plugin.

Quite often when going into the plugin page from Decky Loader, I'll click Decky Recorder and the page is completely blank. No options or anything. When I can get the options to actually show up I have numerous other issues crop up.

If I activate Replay Mode, using the hotkey (Steam+Y) it does nothing. When I go back to check the Plugin, Replay Mode is turned off. Turning it back on, and the same thing happens. It turns itself off.

I have been able to record a couple clips, but more often than not I will get a message that says I can't record another clip even though it isn't recording anything. When I try to manually record something, I'll click Start Recording and when I go back to the options to stop recording it shows its hasn't been recording anything. It seems as soon as I close the menu it completely stops.

I have removed the plugin and reinstalled it but the problems persist.

The new Decky Loader 2.10.4 appears to have broken Decky Recorder

I had Decky Recorder working fine on Decky Loader 2.10.3, but upon updating to 2.10.4, it stopped working.

When I start the Deck now, the Instant Replay button stays locked to on. Turning it off and exiting / re-entering the menu shows it as still on, and any attempts to capture an Instant Replay causes the generic "Not enough time has passed to do a replay" error. I've tried multiple re-installations of Decky Loader and Decky Recorder, but I've not done a Decky Loader re-install that involved deleting the config.

Is anyone on 2.10.4 having the same issue? I've noticed that this project seems to be really slow going unfortunately, because it's one of the best plugins on the Deck, and I would hate to see this issue persist, like the Bluetooth headphones issue. This new issue really kills this plugin if I'm not the only one.

[Feature Request] Remember replay mode on by default if enabled

Currently, replay mode is enabled once you hit the shortcut in-game THEN it starts recording once you hit the shortcut again. it should be enabled globally by default at all times if you enable it in settings, so you don't miss on clips because you forgot to enable it when launching a game.

Decky Recorder not recording when using bluetooth audio

Decky Recorder not recording when using bluetooth audio, works fine on wired headphones and internal speaker, but when connected to bluetooth headphones (airpods) it just won't start recording.

Edited: Just saw the same post...

[Discussion] Is there a way to make it use less computational ressources?

If I'm not mistaken the magic happens here:

decky-recorder/main.py

Lines 101 to 114 in aa6b358

# Start command including plugin path and ld_lib path
start_command = (
"GST_VAAPI_ALL_DRIVERS=1 GST_PLUGIN_PATH={} LD_LIBRARY_PATH={} gst-launch-1.0 -e -vvv".format(
str(GSTPLUGINSPATH), str(DEPSPATH)
)
)
# Video Pipeline
if not self._rolling:
videoPipeline = f"pipewiresrc do-timestamp=true ! vaapipostproc ! queue ! vaapih264enc ! h264parse ! {muxer} name=sink !"
else:
videoPipeline = "pipewiresrc do-timestamp=true ! vaapipostproc ! queue ! vaapih264enc ! h264parse !"
cmd = "{} {}".format(start_command, videoPipeline)

So, we're using gst-launch-1.0 to grab the video stream via pipewiresrc and encode it with vaapih264enc.
I'm not sure what vaapipostproc is doing exactly, tbh.

However, vaapih264enc has several options to influence video quality: https://gstreamer.freedesktop.org/documentation/vaapi/vaapih264enc.html?gi-language=python
Mainly things like bitrate and quality-level, but others as well.

Has any effort been put into testing out these parameters and their influence on the required ressources and the quality of the video output yet?
As far as I can tell it is running with the default parameters and if the documentation is to believed, that means it's using quality-factor=26 [link] and quality-level=4 [link], which are probably the most important parameters.
Since filesize isn't that important for 30 seconds clips, I'd argue increasing the quality-level (less quality, faster encode, bigger filesize) could alleviate some of those ressource bottlenecks during gameplay and still grant acceptable results.

Keep in mind I haven't tested any of this yet.

Request better recording and end recording inputs

Well like I stated I am wondering if when I start a recording though the Decky loader how can I end they recording with out going back to Decky loader to turn the recording off and ruin my recording to the point I have to edit stuff out! Is there a short cut to end recording (long recordings) if not can something be implemented like when you go to turn off recording it does not show that is what you are doing in the recording? Also these new issues when will they be fixed.

Donst work any more (>Deckyloader v2.10.3)

Hello@all
Since the latest (it could have been 2 or 3 updates) preview steam client update, the recorder no longer works for me. The "/tmp/decky-recorder.log" says the following:
Decky Recorder: 2023-08-09 20:57:12,795 INFO Traceback (most recent call last):
File "/home/deck/homebrew/plugins/decky-recorder/main.py", line 29, in
import psutil
File "/usr/lib/python3.10/site-packages/psutil/init.py", line 102, in
from . import _pslinux as _psplatform
File "/usr/lib/python3.10/site-packages/psutil/_pslinux.py", line 26, in
from . import _psutil_linux as cext
ImportError: cannot import name '_psutil_linux' from partially initialized module 'psutil' (most likely due to a circular import) (/usr/lib/python3.10/site-packages/psutil/init.py)

Decky Recorder: 2023-08-09 20:57:12,796 INFO Loading config

Immediately after a restart, the switch for the replay mode is on, if I deactivate it, close the recorder and open it again, it is on again, the recording buttons are grayed out and cannot be selected.
Starting a recording doesn't work either

Decky Recorder: 2023-08-09 21:13:02,717 INFO Is capturing? False
Decky Recorder: 2023-08-09 21:13:02,731 INFO Is Rolling? False
Decky Recorder: 2023-08-09 21:13:02,749 INFO Current mode: localFile
Decky Recorder: 2023-08-09 21:13:02,770 INFO Current local filepath: /home/deck/Videos
Decky Recorder: 2023-08-09 21:13:02,780 INFO Current local file format: mp4
Decky Recorder: 2023-08-09 21:15:22,217 INFO Disable rolling was called begin
Decky Recorder: 2023-08-09 21:15:22,217 INFO Is capturing? False
Decky Recorder: 2023-08-09 21:15:22,217 INFO Deleted all files in rolling buffer
Decky Recorder: 2023-08-09 21:15:22,217 INFO Disable rolling was called end
Decky Recorder: 2023-08-09 21:15:27,802 INFO Starting recording
Decky Recorder: 2023-08-09 21:15:27,803 INFO Starting recording for mp4 with mux mp4mux
Decky Recorder: 2023-08-09 21:15:27,803 INFO Is capturing? False
Decky Recorder: 2023-08-09 21:15:27,803 INFO Stopping recording
Decky Recorder: 2023-08-09 21:15:27,803 INFO Is capturing? False
Decky Recorder: 2023-08-09 21:15:27,803 INFO Error: No recording process to stop
Decky Recorder: 2023-08-09 21:15:27,803 INFO Traceback (most recent call last):
File "/home/deck/homebrew/plugins/decky-recorder/main.py", line 77, in start_capturing
await Plugin.clear_rogue_gst_processes(self)
File "/home/deck/homebrew/plugins/decky-recorder/main.py", line 60, in clear_rogue_gst_processes
gst_pids = find_gst_processes()
^^^^^^^^^^^^^^^^^^^^
File "/home/deck/homebrew/plugins/decky-recorder/main.py", line 37, in find_gst_processes
for child in psutil.process_iter():
^^^^^^
NameError: name 'psutil' is not defined

Decky Recorder: 2023-08-09 21:16:43,372 INFO Is capturing? False
Decky Recorder: 2023-08-09 21:16:43,467 INFO Is Rolling? False
Decky Recorder: 2023-08-09 21:16:43,490 INFO Current mode: localFile
Decky Recorder: 2023-08-09 21:16:43,522 INFO Current local filepath: /home/deck/Videos
Decky Recorder: 2023-08-09 21:16:43,532 INFO Current local file format: mp4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.