2

Can you help me to figure out what's going on here?

I'm trying to capture in realtime my screen and save it losslessy via ffv1 codec.

ffmpeg encoding ffv1 errors on console

CPU usage while recording is not so much, as comparison h264 in ultrafast profile takes lot more cpu than ffv1.

Here's the command I'm using:

ffmpeg -f dshow -y -i video="screen-capture-recorder" -framerate 30 -c:v ffv1 -pix_fmt bgra -t 5 capture.mkv

I tried also adding the tuning and rtbufsize but nothing changes :\

ffmpeg -f dshow -y -i video="screen-capture-recorder" -framerate 30 -c:v ffv1 -pix_fmt bgra -t 5 -tune zerolatency -rtbufsize 2100M capture.mkv

Any suggestions? :)

2

I get the same result with your commands, however if I skip the pixel format conversion and use the input pixel format 'bgr0', then except for an initial frame drop, I get no further drops. Note that tune is a x264 parameter - it has no relevance for FFV1.

And if I use gdigrab (my preferred grabbing device), I get no frame drops at all, even with bgra:-

ffmpeg -y -f gdigrab -i desktop -framerate 30 -c:v ffv1 -pix_fmt bgra -t 5 capture.mkv
  • Oh, i have a weird problem. You know in order to have the libfdk_aac i compilated the ffmpeg build with the linux cross compile script github.com/rdp/ffmpeg-windows-build-helpers/blob/master/… but i guess gdigrab is missing. Also a dumb question that i would still like to ask, for screen recording the input will be always rgb24 or equivalents right? Make any sense using a 32bit (rgba) ? – user3450548 Nov 11 '15 at 20:37
  • Yeah, no sense recording an alpha plane for screen capture. Just grab a static ffmpeg build from Zeranoe; rename that EXE and use it for capture. – Gyan Nov 11 '15 at 20:50
  • You right about this, but I would like an omnicomprehensive ffmpeg executable. Tomorrow i will see if i can build a more complete version :) So about the alpha, asking it to record a 32 bit ver of a screen capture, the alpha will just be filled with zero? – user3450548 Nov 11 '15 at 22:47
  • Oh and i tried the gdigrab, differently from the screen-capture-recorder that handles only the main monitor, gdigrab grabs ALL the monitors together, there's a more simple way for selecting the monitor like 1, 2, 3? Or the only possible way is to deal with the offsets? (this require specifying manually the resolution, thing that could change time by time if you want to use that batch somewhere else) – user3450548 Nov 11 '15 at 22:56
  • The alpha plane will be useless. Not sure if it is zeroed or random data. Check in a compositing app. Can't find any qualifier right now to select only one monitor for capture. Since ffmpeg can capture a single window when given title, I think it may be possible if there is an equivalent ID assigned internally to a single monitor's output. Will need some research. – Gyan Nov 12 '15 at 6:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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