Menü

2013. január 6., vasárnap

Screencast készítés

Több vonalon is jelentkezett az igény, hogy jó lenne nem csak írogatni és screenshotokkal illusztrálni egyes leírásokat. Valóban nagyon jó dolog videóból megtudni, milyen is a rendszer, milyen lehetőségek állnak rendelkezésre egyes feladatok megoldására, vagy hogy egy szoftver hogy működik, netán egy konkrét problémának mi a megoldása. Utána néztem, hogyan lehet megvalósítani ezt a dolgot.
Három megoldást találtam. Kettő grafikus felülettel bíró alkalmazást, illetve egy konzolról parancssorosan működtethetőt. Gyorsan leírom melyikkel mire jutottam.

Az első csomag az Istanbul nevű alkalmazás volt. Yum segítségével telepítettem. Pár gnome-python2 csomagot rakott még fel. Gyorsan elindítottam, teljes képernyőt, kijelölt ablakot tudott rögzíteni, de különösebben nem sok mindent tudtam a felvétel módjával kapcsolatosan paraméterezni. A tesztfelvételből kiderült, hogy Theora ogg videót kreált, viszont 10 képkocka / másodperc az számomra durván kevés. Mivel gyorsan kívántam a megoldást megvalósítani és nem igazán találtam meg a beállítási, paraméterezési lehetőségeit, inkább ránéztem a másik szoftveres megoldásra. 

A másik ilyen screencast készítő alkalmazás a RecordMyDesktop nevet viselte. Yum segítségével telepítettem, két csomagot telepített fel a gépre. Magát az alkalmazást és egy grafikus beállítási felületet az alkalmazáshoz. Ez az alkalmazás már jobban paraméterezhető volt.

RecordMyDesktop – Az alap vezérlőablak.


Az alap vezérlőablakból az Advanced gombra klikkelve további részletes beállítások érhetőek el.

További beállítási lehetőségek


Ez már egészen jól működött, szintén Theora videóformátumba készítette a videót, amelyet így gyorsan a home könyvtáramban találtam meg out.ogv néven. Természetesen a save as gombra klikkelve más helyet és fájlnevet is meg lehet adni az alkalmazásnak. Ami nekem gondot okozott, az az, hogy a laptopomra egy külső USB-s E-MU 0202 hangegység van csatlakoztatva. Emiatt alaphelyzetben is szeret néha megbolondulni a hang, és mivel ráadásul hangot rögzíteni pedig egy Logitech AK5370-es USB mikrofonnal, nem pedig a laptopba épített mikrofonnal szoktam… na szóval ennek beállításával nem próbálkoztam meg így hirtelen (persze sikerülne, de már vonzott a sokkal egzotikusabb konzolos megoldás).

Tehát a harmadik megoldás a konzolos rögzítés. Ehhez az ffmpeg-et használhatjuk. Rengeteg paraméterezéssel tudjuk beállítani, hogy milyen videóformátumot szeretnénk, milyen audióval és hogy teljes képernyőről, avagy a képernyő meghatározott területéről.

Gyorsan egy kis segédlet, ha esetleg valaki a YouTube-ra szeretne screencastokat készíteni, az alábbi táblázatban a különféle videóméreteket és a hozzájuk ideális bitrátát az alábbi táblázatban tekinthetitek meg.



Formátum 16:9 4:3 Bitráta
1080p (Full HD) 1920×1080 1440×1080 8000 kbps
720p (HD) 1280×720 960×720 5000 kbps
480p 854×480 640×480 2500 kbps
360p 640×360 480×360 1000 kbps


A screencast kétféleképp készülhet. Első változatban csak videót rögzítve és a szöveg, illetve zene és egyebek utólagosan kerülnek a videóhoz, akkor a legegyszerűbb kiadni az alábbi parancsot:


ffmpeg -f x11grab -show_region 1 -y -r 25 -s 1280x720 -i :0.0+100,200 -b 8000000 screencast.webm

Vizsgáljuk meg elemenként az utasítást. Első lépésben az utasítássor végére vessünk egy pillantást, ahol láthatjuk, hogy a videó WebM formátumba készül. Erről annyit kell tudni, hogy VP8 kodek szükséges a lejátszásához, ami free. A Google tulajdona. Tudni kell még róla azt, hogy a YouTube is támogatja ezt a formátumot / furcsa is lenne, ha a Google a saját cuccát nem támogatná :) /, másrészt pedig a Firefox, Opera, Google Chrome alapból támogatja, a Windowsos Internet Explorer és az OS X-es Safari csak akkor, ha ezen böngészők használói feltelepítik a VP8 kodeket. Azon kívül pedig, hogy free, a HTML5 szabvány videó tag használatával egyszerűen beilleszthető videómegjelenítést érhetünk el.

No de nézzük az utasítás részelemeit:

-f x11grab

Engedélyezzük a képernyő rögzítést.

-show_region 1

A felvételi terület kijelzése. Ezen a területen kívüleső képernyőfelület nem kerül rögzítésre.

-y

Engedélyezzük a már esetleg létező screencast.webm fájl felülírását

-r 25

A videónk framerate értéke (képkocka rátája) (képkocka per másodperc)

-s 1280x720

A készítendő videónk képmérete, itt a példában HD Ready, azaz 1280×720 pixel méretű videó

-i :0.0+100,100

Az ffmpeg részére adjok meg, hogy a bal felső saroktól számítottan X(vízszintesen) és Y(függőlegesen) hány pixel távolságra kezdődjön a felvételi terület bal felső sarka. Példánkban a képernyő bal felső sarkától vízszintesen 100, függőlegesen 200 pixelre kezdődik a felvételi terület bal felső sarka.

-b 8000000

A videó bitráta értékének megadása, ahol 8000000 = 8000 kbps.

A felvételt a konzolablakban kiadott CTRL+C kombinációval lehet leállítani. Kdnlive nevű videószerkesztőben a későbbiekben lehet hozzá hangot adni, vagy akár szerkeszteni és további részleteket hozzáadni.

Amennyiben egyből hangot is szeretnénk rögzíteni, úgy az alábbi sort kiadva már mikrofonunkon keresztül a magyarázó szöveget is rá lehet rögzíteni a videóra:

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -show_region 1 -y -r 25 -s 1280x720 -i :0.0+1920,100 -acodec libvorbis -aq 90 -ac 2 -vcodec libvpx -b 8000000 teszt.webm

Aki a korábbi magyarázatot megnézte, az észreveszi, hogy ez a parancssor kiegészült a hang forrásának megadásával, illetve megadásra kerül az audió- és videókodek is.

Nos itt egy röpke teszt szösszenet, ahol a hangot a fejhallgatómból rögzítette a mikrofon / magyarázat, ha valaki az audió minőségen szörnyűlködne :) / A videó 1280×720 pixel méretben készült, WebM formátumú. 
Sajnos a blogger nem engedi betenni az eredetit, így csak az általa kreált cuccot láthatjátok itt.




Nagyítsátok ki bátran!

(Annyit sikeredett már megtudni, hogy Firefoxban és Chrome-ban tökéletesen megy a videó, ki is lehet tenni teljes képernyőre, Operában a HTML5 videó FullScreen mód még nem támogatott, de ilyen piciben lejátsza a videót )

Szóval a fentiek segítségével várható, hogy több, remélhetőleg hasznos screencast fog elkészülni, amelyek segítenek benneteket a Fedora, egyes alkalmazások megismerésében, illetve használatuk elsajátításában. Ha valakinek kérdése lenne, nyugodtan tegye fel, ha tudok rá válaszolni, akkor válaszolok.

Nincsenek megjegyzések:

Megjegyzés küldése