1

I’ve been attempting to do lossless game capture as I’ve been working on a program to do frame rate analysis. I haven’t had much luck finding a program that does lossless capture as AmaRecTV, Dxtory, and Virtualdub all seem to be abandoned. I’m trying to use FFmpeg and have come up with the following command:

ffmpeg -y -f dshow -rtbufsize 500M -i video="Game Capture 4K60 Pro Video 01" -framerate 60 -vsync 0 -c:v libx264 -preset ultrafast -crf 0 -pix_fmt yuv420p "e:\Captures\out.mkv"

Unfortunately, the file size doesn’t seem large enough to be lossless. For example, according to MediaInfo, I got an overall bit rate of 132 Mb/s (16.5 MB/s) for a 720p 60 fps capture. However, I’m pretty sure that a lossless 720p, 60 fps, 4:2:0 file should be closer to 640 Mb/s (80MB/s).

I’m using Windows 10 1809 x64, a nightly build of FFmpeg x64 that is newer than 4.0.2, Nvidia 399.24, and an Elgato 4K60 Pro.

Does this command produce lossless capture? And how can I improve it?

2 Answers 2

2

libx264 is a very efficient encoder, so that bitrate isn't unusual. In fact, it's on the higher side, but since you're capturing a game, I expect there is constant motion involved, and your preset is ultrafast which disables some of the aggressive compression.

When you say 80MB/s, I believe you're thinking of uncompressed full raster i.e. 1280 x 720 x 12 bits/pixel x 60 fps. Lossless does not mean uncompressed, just like there can be a compressed ZIP of a binary program.


BTW, the -framerate 60 goes before -i video="Game Capture 4K60 Pro Video 01" as it's an input option.

0

Whilst the x264 codec is quite efficient, if you want to make sure x264 does not do as much compression whilst there is lots of motion, you could use use quantization parameter -qp 0. There is a lot of information at the following links:

A key part of the article is this:

If you had only simple ways at hand to compare the quality of video sequences (e.g., based on a per-frame measurement of signal to noise ratio, PSNR), you may look at a CRF encoding and say it was lower quality than the CQP variant. But if you’re a human being, subjectively, the CRF copy will look equal or better to the CQP version

However, a user on the stackoverflow link above seems to think the -qp 0 was better for their game screenrecordings. This could potentially be a better fit if you're doing frame rate analysis (ie. the compression might be imperceptible to you, but not by your frame rate analyzer).

This will result in higher file sizes you expect.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.