How do I confirm that my screen recorder recorded correctly?

If none of the more specific forums is the right place to ask

How do I confirm that my screen recorder recorded correctly?

Postby kerryhall » 2020-06-19 01:24

Debian 10.

I'm trying to record a game with simplescreenrecorder.

I'm doing "select window" mode, recording 1080p@60 fps. Codec is H.264, preset is ultrafast, allow frame skipping is off, fps is set to 60.

At least, that is my goal.

My game is getting 200+ fps, using opengl.

When I review the video, it's very choppy. (But ffprobe shows it being 62.5 fps. I don't object to a higher framerate, but it's wierd that it's not 60) So I'm guessing that it did some frame doubling thing or something for the choppiness to happen.

I do have 32 gigs of ram, which I'm hoping is enough of a buffer for 1080p@60 fps. (Or ideally, at some point, 4k)

Three questions here.

1. How do I record my game at 60 fps without it getting choppy?

2. This one is a bit trickier. In the future, how do I verify that the screen recorder is actually recording at 60 fps? I don't want to not notice an issue, then down the road I have someone point out to me "wow, your video is actually closer to 10 fps if you look at the actual content of the frames. My thought is perhaps use some sort of script, maybe a feature that ffmpeg has built in, to confirm that each frame is sufficiently different. (I would assume I provide some "distance" param that I can tune)

3. Why is the output fps higher than what I specified? Shouldn't it be exactly 60 fps?
kerryhall
 
Posts: 179
Joined: 2008-08-19 11:06

Re: How do I confirm that my screen recorder recorded correc

Postby ruwolf » 2020-06-19 02:09

I do not know, but maybe SimpleScreenRecorder cannot record and encode it in your required rate?
How does ffmpeg (or vlc) work with similar settings? Or with faster codec?
User avatar
ruwolf
 
Posts: 415
Joined: 2008-02-18 05:04
Location: Slovakia, Banovce nad Bebravou, Matice slovenskej 1260/4-7

Re: How do I confirm that my screen recorder recorded correc

Postby cuckooflew » 2020-06-19 03:39

I have no clue about SimpleScreenRecorder, I use ffmpeg myself, but not much, however when started in the terminal it does how the frame rate,
https://youtu.be/7cIhv0nwkc0

Really you should also try some search foo: Used key words:
Code: Select all
Using ffmpeg How do I record my game at 60 fps without it getting choppy?

https://trac.ffmpeg.org/wiki/ChangingFrameRate
13 Oct 2018 ... ffmpeg can be used to change the frame rate of an existing video, such that ... This is useful when working with, for example, high-framerate input ... Without setting appropriate output quality or bit rate, the video quality ... If the input video was 60 fps, ffmpeg would drop every other frame to get 30 fps output.

Was the first hit, but there are other tutorials as well, I can not read them all and decide for you which one you prefer, you need to do that your self. Below is a simple example though:
Code: Select all
ffmpeg -i <input> -filter:v fps=fps=60 <output>

That should produce a video 60 fps, where it says <input> is the name of the video you want to change the frame rate... the above link goes into details.
I use this simple line to record at 60 fpm, :
Code: Select all
sleep 5; ffmpeg -y -video_size 1400x900 -framerate 60 -f x11grab -i :0.0+0,0 output.mp4

There is much more info on the https://trac.ffmpeg.org/wiki

Doing some search foo for you, I found this:https://www.maartenbaert.be/simplescreenrecorder/improving-performance/#reduce-the-frame-rate-of-the-application-that-you-want-to-record
Reduce the frame rate of the application that you want to record

If you're recording at 30 frames per second, it doesn't make much sense to run the game that you want to record at 60 frames per second (or even higher). If you use OpenGL recording, you can check Limit application frame rate to make the application frame rate match the video frame rate. Most modern games are frame rate independent (even if you slow down the frame rate, the game world will still run at the same speed), so this works pretty well. It will typically make the video smoother as well, because no frames need to be dropped.

I know, it says reduce the frame rate, but it seems you should be able to reverse the command to increase it, ahh, nooo, I see now there is no CLI used with Simple Screen Recorder,
https://www.maartenbaert.be/simplescreenrecorder/
Image
I see you should be able to ajust the frame rate, but it looks confusing to me, and much more complicated, is there a manual with this software, ? ( I can't find one) The ffmpeg manual, and wiki is pretty straight forward, simple, but any way, you can use ffmpeg to edit and change the frame rates, quickly, I think the problem is you are trying to use to high of a frame rate. Like it says:
It will typically make the video smoother as well, because no frames need to be dropped
Please Read What we expect you have already Done
Google knows a lot,
God, our Father knows all, maybe ask Him ,
…one flew east, one flew west,
One flew over the cuckoo’s nest.

I am not the right colour, so my life does not matter ?
to God it does :)
cuckooflew
 
Posts: 434
Joined: 2018-05-10 19:34
Location: Some where out west

Re: How do I confirm that my screen recorder recorded correc

Postby stevepusser » 2020-06-19 05:24

Are you trying with or without the "record openGL" option?
The MX Linux repositories: Backports galore! If we don't have something, just ask and we'll try--we like challenges. New packages: Kodi 18.7, QMPlay2 20.07.04, Pale Moon 28.10.0, KeepassXC 2.6.0, Krita 4.3.0, Foliate 2.4.2
User avatar
stevepusser
 
Posts: 11815
Joined: 2009-10-06 05:53

Re: How do I confirm that my screen recorder recorded correc

Postby cuckooflew » 2020-06-19 05:41

by kerryhall > 2. This one is a bit trickier. In the future, how do I verify that the screen recorder is actually recording at 60 fps? I don't want to not notice an issue, then down the road I have someone point out to me "wow, your video is actually closer to 10 fps if you look at the actual content of the frames. My thought is perhaps use some sort of script, maybe a feature that ffmpeg has built in, to confirm that each frame is sufficiently different. (I would assume I provide some "distance" param that I can tune)

Not tricky at all, again use ffmpeg/ffprobe to check the frame rate, if you are not sure. You can use this on any video, it does not matter what program you used to make the video.
Code: Select all
 $ ffprobe -v 0 -of compact=p=0 -select_streams 0 \-show_entries stream=r_frame_rate screen-shot.mp4 
r_frame_rate=60/1

Where I said "screen-shot.mp4" is the name of the video you want to check.
'ffprobe' comes with ffmpeg:
Code: Select all
man ffmpeg
---snip-----
SEE ALSO
       ffmpeg-all(1), ffplay(1), ffprobe(1), ffmpeg-utils(1),
       ffmpeg-scaler(1), ffmpeg-resampler(1), ffmpeg-codecs(1),
       ffmpeg-bitstream-filters(1), ffmpeg-formats(1), ffmpeg-devices(1),
       ffmpeg-protocols(1), ffmpeg-filters(1

A script would be possible, but I don't see the need, just keep the command handy, eg: in a file, mine is named "ffmpeg-screenrecord", and it has various commands in it, I just change the video name, or input/output names accordingly. Then copy/paste it into the terminal. As I learn more about ffmpeg, I add new commands to the file. A script would require input, from the user as well, one would need to type in the input file name, and the output file name,...
Another command to look at the actual content of the frames:
Code: Select all
$ ffprobe -show_streams screen-shot.mp4 2>&1 | \grep fps | \awk '{split($0,a,"fps")}END{print a[1]}' | \awk '{print $NF}'
60

=============================================================
by kerryhall >3. Why is the output fps higher than what I specified? Shouldn't it be exactly 60 fps?
Seems like it should be, if that was what you entered in the frame rate box.
Do you mean when you use this "simplescreenrecorder" ? I don't know, and it seems there is not really any good documentation, manual etc,...Like there is for ffmpeg,...I suppose the devloper has something written into the program that does that, but with out good documentation, the only thing I can think of is ask the author of the program,.or wait, maybe some one will just know , off the top of their head
==========================================
by kerryhall > I don't want to not notice an issue, then down the road I have someone point out to me "wow, your video is actually closer to 10 fps if you look at the actual content of the frames. My thought is perhaps use some sort of script, maybe a feature that ffmpeg has built in, to confirm that each frame is sufficiently different. (I would assume I provide some "distance" param that I can tune)

All though it is basically simple, it can get complex, and there are so many options, etc...everything that can be done with ffmpeg will not fit into a few posts,..but you might find this interesting:
In a nut shell, ffmpeg can be used to generate previews, these would be useful to you maybe.
https://www.binpress.com/generate-video-previews-ffmpeg/.
Please Read What we expect you have already Done
Google knows a lot,
God, our Father knows all, maybe ask Him ,
…one flew east, one flew west,
One flew over the cuckoo’s nest.

I am not the right colour, so my life does not matter ?
to God it does :)
cuckooflew
 
Posts: 434
Joined: 2018-05-10 19:34
Location: Some where out west


Return to General Questions

Who is online

Users browsing this forum: No registered users and 13 guests

fashionable