[FFmpeg-user] Best way to record video on a computer with a really bad CPU yet really good GPU?

Sven C. Dack sven.c.dack at sky.com
Sun Sep 4 16:26:37 EEST 2016


On 04/09/16 11:25, Andy Furniss wrote:
> Sven C. Dack wrote:
>
>> The first thing you can do is to reduce the frames that get grabbed per
>> second. try this:
>>
>> $ ffmpeg -f x11grab -s 1920x1080 -i :0.0 -f rawvideo /dev/null
>> (I.e. 30fp/s, 2gbit/s)
>
> Seems to default to 30 even if you can go higher.
>
> -f null -
>
> rather than -f rawvideo /dev/null may be more representative.
>
> Either way unless you are using libx264rgb then you would need to add
>
> -pix_fmt yuv420p or for h/w enc -pix_fmt nv12 to bench properly - and
> of course if doing s/w enc you still won't know without adding that in.

I actually do know. I did this about 8-9 years ago with ffmpeg 0.5 or 0.6 iirc. 
I was using it to grab X11 at 15fp/s, scaled it down from 1620x1050 to hd480, 
ran it through libx264 at fast preset and sent it out live to Justin.TV packed 
in flv over rtmp: (now Twitch.TV). All while I was playing a 3D game under WINE!

This was on an AMD Phenom 9850 2.5GHz (the first AMD quad cores...) with 1GB RAM 
(DDR2) and an Nvidia GT9600 and later GTX 260. An Intel quad-core duo2 was 
faster than the Phenom if I recall it right. So I am pretty certain it can be 
done today when I could do it back then.

Just the quality of the video may not meet today's expectations. It would still 
be possible to record the session onto harddisk using motion jpeg if it doesn't 
need to be a live video stream. This was how it was often done in the past 
anyway, and then afterwards encode it from file.

Sven


More information about the ffmpeg-user mailing list