Jump to content






Photo
* * * * * 1 votes

ffmpeg screen capture command

Posted by notKlaatu , 08 January 2009 · 1,316 views

i am always having to look this up. now at least i'll have it here:

ffmpeg -f x11grab -vc theora -s vga -r 24 -b 1200 -g 300 -i :0.0 ~/Videos/screenCapture1.ogv

option by option:

-f x11grab = take video from X...ffmpeg must have been compiled with enable-x11grab included; your distro or version may or may not have this enabled!

-vc = Video Codec...usually you will have ogg theora, xvid, [ff]mpeg (the default), and x264 available

-s = size. see the ffmpeg man page for details; vga is something like 800x600 and there are many other sizes available. know that it starts from the top left corner counts pixels from there.

-r = frame rate. lower frame rate gives smaller file size but looks a little less smooth

-b = bitrate. higher bitrate looks better but makes for a larger file size

-g = GOP size...300 provides a pretty nice looking image without increasing file size too much; it's got one intra frame every...i dunno....300/24 = 12.5 seconds or so.

-i = input...in this case it's :0.0 meaning your main screen. or display. or whatever it's called.


As you can imagine, there are a LOT more options available to you via man ffmpeg. Probably the most notable would be the offset, so if you wanted the capture area to not start at the very top left, you could tell it to, say, go down 10 pixels and over 10 pixels and THEN capture vga-size images, or xga-size images, or whatever.




Great to get in contact here.
I mean this to say:
===
$ ffmpeg -vcodec libxvid -b 1200 -g 300 -vd x11:0,0 -s 1024x768 screenCapture1.xvid
FFmpeg version SVN-r14424, Copyright © 2000-2008 Fabrice Bellard, et al.
configuration: --cc=cc --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-shared --enable-postproc --extra-cflags=-I/usr/local/include/vorbis -I/usr/local/include --extra-ldflags=-L/usr/local/lib -la52 --extra-libs=-pthread --enable-gpl --enable-pthreads --enable-swscale --mandir=/usr/local/man --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --disable-libamr-nb --disable-libamr-wb --disable-mmx --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
libavutil version: 49.7.0
libavcodec version: 51.61.0
libavformat version: 52.18.0
libavdevice version: 52.0.0
built on Jan 9 2009 12:11:23, gcc: 4.2.1 20070719 [FreeBSD]
ffmpeg: unrecognized option '-vd'
===
There is no really '-vd' described at http://ffmpeg.mplaye...ffmpeg-doc.html
Is this your mistake? :)
  • Report
yeah that is my mistake and i wonder now how i got that wrong....
one think about your ffmpeg version though is that i don't see in the list of all those options that x11 grab is enabled. you may need to recompile is with that enabled...i'm not positive.

anyway, i'm correcting the post now...
  • Report
Hi there, thanks for the command, but unfortunately

ffmpeg -f x11grab -vc theora -s vga -r 24 -b 1200 -g 300 -i :0.0 ./screenCapture1.ogv
gives me a nearly empty ogv file. Using an .avi filename does work though. Perhaps my ffmpeg doesn't support theora. :|

Do you have ideas how to record a video, but in a max-performance, least-speedy way, so I could encode it later but enjoy a faster framerate?

If you reply, please press the "reply" button at the bottom right of this so I get notified :)
  • Report

November 2014

S M T W T F S
      1
2345678
9101112131415
1617181920 21 22
23242526272829
30      

Recent Entries

Recent Comments

Search My Blog

BinRev is hosted by the great people at Lunarpages!