Screencastanje pomoću GStreamera - oneliner
January 13, 2008 – 3:20 amTrebao sam ovih dana napraviti neki screencast. Nakon malo traženja na netu, naišao sam na zgodni Istanbul (i nešto manje zgodni Byzanz - dobra stvar je što napravi GIF animaciju screencasta, loša stvar je što se većina viewera ruši na multi-megabajtnim GIF datotekama :), no iz nekog razloga i Istanbul, i izravno grabanje koristeći ffmpeg su mi užasno spori i zauzimaju sav CPU. Vjerojatno zato što koristim open-source ati drivere bez neke akceleracije…
Prije (ponovnog) kretanja u avanturu sa ATIjevim binarnim driverima za Linux u nadi da će se stvar time automagično popraviti, probao sam sa GStreamer onelinerom i primjetio da on troši minimalno resursa i radi sasvim dobro. Nakon malo podešavanja parametara, naišao sam na savršenu kombinaciju, a ovaj blog post je način da si to negdje zapišem (tko zna, možda nekome bude i korisno).
Dakle, za GStreamer ste već vjerojatno čuli da je multimedijska platforma za Linux. No zanimljivo za ovu priču, uz njega dolazi i komandnolinijski alat za kreiranje multimedijskih pipelineova kojem samo navedete potrebne elemente/pluginove/module koji obrađuju zvuk ili sliku, potjerate signal kroz njih, i na kraju dobijete nešto.
Prevedeno u problem screencastanja:
gst-launch-0.10 ximagesrc ! ffmpegcolorspace ! \ video/x-raw-yuv,framerate=3/1 ! theoraenc ! oggmux ! \ filesink location="movie.ogg"
Objašnjenje: ximagesrc graba sliku (fullscreen), ffmpegcolorspace to prebacuje iz RGB u YUV format, meni je za screencast bilo dosta 3 FPS-a (za mojih 1600×1050 na tim jadnim driverima i gstreamer pojede sav proc i nije mu dosta na 25fpsa), potom theoraenc zakodira, oggmux spremi u prikladan format i na kraju filesink zapiše na disk.
Kao što se vidi iz priloženog, u screencastu nisam koristio audio pa je pipeline prilično jednostavan. Može se složiti i da se uzima audio s mikrofona (ili neke mp3ce ili slično) uz dosta kompliciraniji pipeline, ali to mi za ovu priliku nije trebalo.


4 Responses to “Screencastanje pomoću GStreamera - oneliner”
Jesi li probao xvidcap?
By kost on Jan 13, 2008
…naime, mi xvidcap koristimo za nas podcast… i prilicno smo zadovoljni s njim.
By kost on Jan 13, 2008
Jesam, ali mi je također trošio izuzetno puno CPU-a. Koliko vidim, on se koristi ffmpeg libraryem kojeg koristi i mencoder, iako samo procesiranje toga ne bi trebalo baš skroz ubiti mašinu. No moguće je da na isti način grabe sliku, a da se to mom X serveru ne sviđa…
By senko on Jan 18, 2008
Probaj onda i recordmydesktop
By Dado on Mar 26, 2008