vokoscreen

Z thewoodcraft.org

Vokoscreen, je aplikace pro nahrávání dění na linuxové ploše. Narazil jsem na něj, když jsem chtěl udělat sérii videotutoriálů o Synfig Studiu a ihned mi padnul do oka.

Zpočátku jsem uvažoval o tom, že bych pro nahrávání využil konzolovou utilitu recordmydesktop, ale nechtělo se mi číst manuál. I když nakonec i na něj došlo.

U vokoscreenu mne zaujalo především přehledné GUI, které má pět záložek pro nastavení:

  1. Obrazu
  2. Zvuku
  3. Výstupního formátu
  4. Cest
  5. A případnou integraci výstupu z webkamery či jiného zařízení s video výstupem do zaznamenávané plochy.

Na rozdíl od konzolové utility recordmydesktop tak není nutné zjišťovat přes wmctrl jaký je identifikátor okna které chci nahrávat, ani počítat geometrii výřezu, pokud chci nahrávat pouze dění v určité oblasti pracovní plochy.

Okno, které chceme nahrávat si můžeme vybrat kurzorem myši – podobně jako když chceme udělat jeho screenshot přes utilitu Snímek obrazovky. A pro nastavení výřezu používá vokoscreen rámec, kterým lze nastavit jak velkou oblast chci nahrávat a pak ho přesunout nad vybranou oblast pracovní plochy. Není tedy nutné zjištovat geometrii okna ani přepočítávat souřadnice v rámci pracovní plochy, pokud používáme více monitorů.

PoznámkaPro videotutoriál o použití vokoscreenu však bylo nutné přeci jen recordmydesktop použít, aby bylo možné demonstrovat jak se pracuje s nastavením rámce pro záznam výřezu linuxové plochy.
user@stroj~$ recordmydesktop -x=0 -y=0 --width=800 --height=896 --no-sound --no-cursor --no-wm-check -o zaznam.ogv

S těmito parametry recordmydesktop zaznamenával obsah levé poloviny displeje mého notebooku – mimo něj mám totiž pracovní plochu roztaženou přes další dva na výšku postavené monitory s rozlišením 1920x1200 – bez zvuku, a se skrytým kurzorem, do souboru zaznam.ogv

Aby bylo možné záznam dále zpracovávat přes avidemux, musel být soubor zaznam.ogv překonvertován z kontejneru OGV (theora) do MP4 (H.264)

user@stroj~$ ffmpeg -i zaznam.ogv zaznam.mp4

Předdefinování velikosti a pozice výřezu

Pozici výřezu a jeho rozměry vokoscreen ukládá do souboru .config/vokoscreen/vokoscreen.conf A tady se dá podle potřeby nastavení rámce přednastavit:


[Area]
Height=768
Width=1024
X=40
Y=50

Zobrazování myši a klávesových zkratek v záznamu

KeyMon – (z angl. Keyboard Status Monitor) je utilita, která umí na linuxové ploše zobrazit stisky tlačítek na myši a klávesové zkratky – nezobrazuje souvislou linii textu jako podobná utilita screenkey.

Protože umí zobrazovat i tlačítka na myši, hodí se při nahrávání videotutoriálů k aplikacím se kterými se pracuje pomocí myši v kombinaci s klávesovými zkratkami.

Instalace…

root@stroj~# apt-get install key-mon

Nejspíš proto, že se s myší v kombinaci s klávesami pracuje nejčastěji u grafických aplikací, nenajdeme po instalaci KeyMon v menu Příslušenství ale Grafika.

Po suštění se na ploše objeví symbolické zobrazení myši, základních modálních kláves (Ctrl, Alt) a jedné klávesy.

(Obrázek)

Pokud chcete změnit výchozí vzhled tlačítek, či přidat zobrazování dalších kláves – kupř. pokud využíváte klávesu Compose namapovanou na klávesu Meta (obvykle je to ta, na které najdete logo Widows) – stiskněte nad tímto symbolickým zobrazením pravé tlačítko myši. Po jeho uvolnění se ukáže dialog, přes který lze otevřít okno pro další nastavení (Settings)

(obrázek první záložky dialogu) (obrázek druhé záložky dialogu)

Na první záložce se nastavuje zobrazení tlačítek, a na druhé jsou další volby, mezi jinými i nastavení vzhledu.

Symbolické zobrazení tlačítek lze přesunout na libovolné místo pracovní plochy uchopením pomocí levého tlačítka myši a přetažením.

Utilitu lze spustit i na příkazové řádce terminálu, příkazem key-mon. To ovšem dává smysl jen v případě, že vás zajímá případné hlášení chyb.

Poznámka KeyMon umí zobrazit na ploše i místo, nad kterým bylo stisknuto tlačítko na myši, ale v tomto případě mi přišla interpretace stisknutého tlačítka myši v místě kurzoru lepší u vokoscreenu.

Sofistikované zobrazování kláves na displeji při psaní textu

I když má vokoscreen checkbox, kterým lze zapnout zobrazování kláves stisknutých během nahrávání záznamu, nemá ani zdaleka takové konfigurační možnosti, jako má Screenkey – aplikace, která zobrazuje na ploše linuxového desktopu stisknuté klávesy. Oproti podobné utilitě key-mon, nezobrazuje tlačítka myši, ani symbolická tlačítka se zobrazením stisknutých kláves, ale souvislý textový řádek s textem. Obě aplikace se z hlediska funkcionality potkávají pouze v jednom bodě: obě umí zobrazit stisky modálních kláves. Je v repozitářích Debianu, takže instalace je jednoduchá:

root@stroj~# apt-get install screenkey

Po instalaci naleznete ikonu pro screenkey v menu Příslušenství (…)

(Obrázek s tlačítkem)

Po spuštění se v oznamovací části vašeho panelu objeví tlačítko, přes které lze otevřít dialog, kterým lze podle potřeby zobrazování kláves na ploše zapnout či vypnout. Je-li zobrazování (Show keys) zapnuto, začne se po stisku libovolné klávesy zobrazovat v dolní polovině obrazovky pruh, na kterém bude vidět vše, co na klávesnici stisknete.

(Screenshot obrazovky)

Tohle tlačítko také zpřístupní dialog další nastavení.

(obrázek dialogu pro nastavení)

Jeho prostřednictvím můžete změnit nastavení zobrazovacího fontu, upravit barvu písma, pozadí zobrazovacího pruhu, které (pokud máte zapnutý kompozitor) může být i průhledné. Upravit se dá i časový interval pro neaktivitu. Po jeho uplynutí se zobrazovací pruh vždy automaticky skryje.

Ve výchozím nastavení screenkey zobrazuje tento pruh nad dolním okrajem prostřední třetiny vaší obrazovky, přes celou její šířku. To můžete změnit nastavením geometrie při spouštění z příkazové řádky:

user@stroj~$ screenkey -g 400x200+40+100 -p fixed

S takto nastavenou geometrií bude screenkey zobrazovat stisknuté klávesy v rámci obdélníku o velikosti 400x200 pixelů, jehož levý horní roh bude 40 pixelů od levého a 100 pixelů od horního okraje pracovní plochy.

Máte-li povoleno použití kompozitoru, můžete být i průhledný.

Máte-li nainstalován také slop, můžete nastavit oblast, kde se mají zobrazovat stisknuté klávesy, přes dialog Nastavení pomocí myši.

Screenkey svoje aktuální nastavení ukládá do JSON souboru .config/screenkey.json/vokoscreen.conf ve kterém je uložená i poslední nastavená geometrie. Tu lze před novým spuštěním přednastavit, podobně jako u vokoscreenu.

 "geometry": [Y, X, H, W] 
Upozornění Pozor na pořadí parametrů, které je jiné, než když se nastavuje geometrie okna na příkazové řádce:
… -g WxH+Y+X …

Slop je utilita, která vrací aktuální geometrii vybraného okna či plochy. Její instalace je u Debianu triviální, protože je součástí distribuce:

~# apt-get install slop

(Obrázek se zaměřovacím křížem, zarovnaný vpravo)

Po spuštění zobrazí na ploše zaměřovací kříž, kterým vyberete okno co vás zajímá a na výstupu se zobrazí jeho aktuální geometrie. Pokud kliknete na plochu, zobrazí se aktuální geometrie plochy.

Tato utilita se může hodit především v shellových skriptech, pokud chcete zjistit aktuální nastavení vybraného okna a pomocí wmctrl nastavit jiné.

PoznámkaUtilita slop není nezbytně nutná, proto ji screenkey nemá v závislostech – řekne si o ni teprve v okamžiku, kdy se pokusíte nastavit pozici zobrazovacího pruhu kurzorem myši.

Postprocessing záznamu

Přes vokoscreen lze nahrávat komentář rovnou při pořizování záznamu. Další možnost je: nahrát komentář při sledování záznamu např. prostřednictvím audacity (ke stažení je i verze pro MS Windows) a potom zvukovou stopu do videa naklíčovat přes avidemux (ke stažení je i verze pro MS Windows).

Při dodatečném komentáři lze "vystříhat" hluchá místa a přebrepty. Popřípadě jednotlivé komentáře podle potřeby přeskupit.

Pro nahrávání zvukového doprovodu je lepší místo vestavěného mikrofonu v notebooku použít sluchátka s mikrofonem – na pozadí pak nebude slyšet hučení ventilátoru a klepání na klávesnici.

Volba kodeku

Volba kodeku při pořizování záznamu je důležitá pro jeho následné zpracování a přehrávání. Oproti aplikaci recormydesktop, která nahrává video pouze do OGG kontejneru (Theora + Vorbis), umožňuje vokoscreen vybrat nejenom typ kontejneru, ale i použitý kodek. Umí dokonce nahrát obrazový záznam jako animovaný GIF.

Chceme-li záznam umístit na web, tak aby ho bylo možné přehrávat přímo prostřednictvím webového prohlížeče, jsme limitováni tím, že linuxová verze Firefoxu podporuje pouze opensource kodeky. Můžeme použít buď MKV kontejner nebo WEBM. Ovšem WEBM kontejner podporuje pro video pouze kodeky VP8/9, které se nehodí pro dodatečné zpracování. Do budoucna by měl podporovat i nový kodek AV1, ale pokud chceme aby bylo možné záznam přehrávat i v rámci starších webových prohlížečů, jako je např. moje oblíbená Opera 12.16, nebo přes webové prohlížeče na starších mobilních zařízeních, je nejlepší použít kontejner WEBM s kodeky VP8 (pro video) a Vorbis (pro audio). U distribuční verze vokoscreenu 2.5.0[1] však podpora pro přímé nahrávání do WEBM není[2].

Pokud vám nezáleží na podpoře starších prohlížečů můžete použít pro video novější kodek VP9 a pro audio kodek Opus.

Upozornění Chcete-li pořízený záznam dále zpracovávat např. pomocí avidemuxu, je lepší ukládat video do kontejneru MP4 (nebo MKV) a použít bezztrátové kódování – mpeg2 pro video a flac pro audio. Soubor se záznamem sice bude větší, zato vám odpadnou problémy se střihem.

Avidemux umožňuje bezproblémový střih jen tam kde jsou klíčové snímky. A u videa enkódovaného přes VP8/9 nebo x264 byste tím pádem nemohli udělat střih tam kde byste chtěli, ale buď na klíčovém snímku před nebo za.

Ořezání videa

Pokud nahráváte přes vokoscreen okno, může být součástí záznamu i okraj, který ve výsledném záznamu mít nechcete. K ořezání můžete použít ffmpeg a jeho filtr crop. V následujícím ukázkovém příkladu je záznam okna o velikosti 1024 x 834 pixelů oříznut o 70 pixelů shora:

user@stroj~$ ffmpeg -i vokoscreen-1024x834.mp4 -filter:v "crop=1024:768:0:70" vokoscreen-1024x768.mp4

Konverze videa do VP8/9

Hotové video, které je v MP4 (nebo MKV) můžete do WEBM dodatečně překódovat přes ffmpeg. Toto je dvouprůchodová konverze zpracovaného záznamu do WEBM (VP8 + Vorbis).

První průchod…

user@stroj~$ ffmpeg -i "vokoscreen.mp4" -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -threads 2 -vf scale=-1:480 -an -pass 1 -f webm /dev/null

Vytvoří soubor, který se pak využije při druhém průchodu…

user@stroj~$ ffmpeg -i "vokoscreen.mp4" -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -threads 2 -vf scale=-1:480 -codec:a libvorbis -b:a 128k -pass 2 -f webm vokoscreen.webm

Výsledkem je mírně rozostřený záznam, což ovšem v tomto případě nebylo na škodu, neboť díky tomu vynikly titulky.

Titulky

Hotový záznam lze kromě audiostopy doplnit také o titulky. Ty mohou doplnit zvýšit informační hodnotu videozáznamu a taky se dají překládat.

Pro tvorbu titulků lze použít aegisub – opensource titulkový editor, dostupný i pro MS Windows.

Publikace videotutoriálu na webu

  1. Verze 2.5.0, která je v distribuci Debianu, byla uvolněna 30. června 2016
  2. Podporu pro formát WEBM má vokoscreen až od verze 2.5.5-beta uvolněné 21. srpna 2017