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

Andy Furniss adf.lists at gmail.com
Sun Sep 4 14:57:52 EEST 2016


Carl Eugen Hoyos wrote:
> 2016-09-04 10:37 GMT+02:00 Sven C. Dack <sven.c.dack at sky.com>:
>> On 04/09/16 09:25, Carl Eugen Hoyos wrote:
>>>
>>> 2016-09-04 10:16 GMT+02:00 Sven C. Dack <sven.c.dack at sky.com>:
>>>
>>>> $ ffmpeg -f x11grab -s 1920x1080 -i :0.0 -f rawvideo /dev/null
>>>> (I.e. 30fp/s, 2gbit/s)
>>>>
>>>> This will tell you how fast you can grab at the most. Here the
>>>> screen size is set to be 1920x1080.
>>>> Then reduce it with the "-r" option:
>>>
>>> No!
>>
>> *lol* It used to work like this in the past and it still does
>
> Yes but this is a bug and you will most likely not be
> informed when it gets fixed.

Good to know - I had -r pasted away in my notes.

So in terms of benchmarking it seems to replace -r needs use of vsync 2
- it's horrible without when asking for high fps, but current git does
warn to use it.

For me cpus forced to perf I get -

ffmpeg -vsync 2 -framerate 200 -f x11grab -s 1920x1080 -i :0.0 -vframes 
1000 -f null -

frame= 1000 fps=138 q=-0.0 Lsize=N/A time=00:00:07.24 bitrate=N/A speed= 
   1x

ffmpeg -vsync 2 -framerate 200 -f x11grab -s 1920x1080 -i :0.0 -vframes 
1000 -pix_fmt yuv420p -f null -

frame= 1000 fps= 47 q=-0.0 Lsize=N/A time=00:00:21.27 bitrate=N/A speed= 
   1x

ffm -vsync 2 -framerate 200 -f x11grab -s 1920x1080 -i :0.0 -vframes 
1000 -pix_fmt nv12 -f null -

frame= 1000 fps= 33 q=-0.0 Lsize=N/A time=00:00:30.41 bitrate=N/A 
speed=0.999x

Which is a quite low (IIRC I managed to get gstreamer to do 60).

My h/w enc needs nv12 and is capable of 2160p60 real time.

Of course it may do 444 just it's not implemented and I guess doing the
CSC on the GPU would be another way to go.




More information about the ffmpeg-user mailing list