3.10. TV vstup

Tato sekce je zaměřena na zpřístupnění sledování/grabování z V4L kompatibilního TV tuneru . Popis voleb k TV a ovládání z klávesnice naleznete v man stránce.

3.10.1. Kompilace

  1. Zaprvé musíte rekompilovat. ./configure zdetekuje v4l hlavičkové soubory kernelu a existenci zařízení /dev/video*. Pokud existují, bude zabudována podpora pro TV (viz výstup z ./configure).

  2. Ujistěte se, že váš tuner pracuje s jiným Linuxovým TV softwarem, například XawTV.

3.10.2. Tipy pro používání

Úplný seznam voleb je dostupný v manuálové stránce. Zde je jen několik typů:

  • Použijte volbu channels. Příklad:

    -tv channels=26-MTV1,23-TV2

    Vysvětlení: Při použití této volby budou použitelné pouze kanály 26 a 23 a budete také mít krásný OSD text po přepnutí kanálů, zobrazující jméno kanálu. Mezery ve jméně kanálu musí být nahrazeny znakem "_".

  • Zvolte rozumné rozměry obrazu. Rozměry výsledného obrazu by měly být bezezbytku dělitelné 16.

  • Pokud zachytáváte video se svislým rozlišením vyšším než polovina plného rozlišení (čili 288 pro PAL nebo 240 pro NTSC), pak 'snímky', které dostanete, budou ve skutečnosti prokládané páry půlsnímků. V závislosti na tom, co chcete s videem dělat, je můžete nechat jak jsou, destruktivně odstranit proklad, nebo rozdělit páry do individuálních políček.

    Jinak bude získaný snímek roztřepený během rychlých scén a regulátor datového toku nebude pravděpodobně schopen ani udržet nastavený datový tok, vzhledem k tomu, že prokladové artefakty produkují velké množství detailů, což spotřebovává velké přenosové pásmo. Odstraňování prokladu můžete zapnout pomocí volby -vf pp=DEINT_TYPE. Dobrou práci obvykle odvede pp=lb, ale záleží na osobních preferencích. Prostudujte si ostatní možnosti odstraňování prokladu v manuálu a vyzkoušejte je.

  • Odstřihněte mrtvý prostor. Když zachytáváte video, oblasti na okrajích jsou obvykle černé, nebo obsahují nějaký šum. Což opět zbytečně spotřebovává přenosové pásmo. Přesněji to nejsou samotné černé oblasti, ale ostrý přechod mezi černou a světlejším videem, ale to teď není důležité. Než začnete zachytávat, nastavte parametry volby crop tak, aby byl veškerý binec na okrajích odstřižen. Opět se snažte zachovat rozumné rozměry výsledného obrazu.

  • Sledujte zatížení CPU. Většinu času by nemělo překročit hranici 90%. Pokud máte velkou vyrovnávací paměť pro zachytávání, dokáže MEncoder přežít několikasekundové přetížení, ale nic víc. Raději vypněte 3D OpenGL spořiče obrazovky a podobné věci.

  • Nehrajte si se systémovými hodinami. MEncoder používá systémové hodiny pro A/V synchronizaci. Pokud přestavíte systémové hodiny (zvlášť nazpět), MEncoder bude zmaten a vy přijdete o snímky. To je velmi důležité pokud jste připojeni k síti a používáte nějaký časový synchronizační software jako je NTP. Musíte vypnout NTP během zachytávání, pokud chcete spolehlivě zachytávat.

  • Neměňte outfmt pokud nevíte co děláte, nebo vaše karta/ovladač opravdu nepodporuje výchozí (YV12 barevný prostor). Ve starší verzi MPlayeru/ MEncoderu bylo nutné nastavit výstupní formát. Tento problém by měl být v současných verzích vyřešen, outfmt již není nadále potřeba a výchozí hodnoty vyhovují pro většinu případů. Například pokud zachytáváte do DivX pomocí libavcodecu a uvedete outfmt=RGB24 pro zvýšení kvality zachytávaných snímků, stejně budou tyto snímky později konvertovány zpět na YV12, takže jediné co tím získáte je spousta vyplýtvaného výkonu CPU.

  • Chcete-li nastavit barevný prostor I420 (outfmt=i420), musíte přidat i volbu -vc rawi420 kvůli konfliktu fourcc Intel Indeo video kodekem.

  • Existuje několik cest, jak zachytávat zvuk. Můžete nahrát zvuk buď pomocí zvukové karty pomocí externího propojení mezi video kartou a linkovým vstupem, nebo použitím vestavěného ADC v čipu bt878. Ve druhém případě musíte načíst ovladač btaudio. Přečtěte si soubor linux/Documentation/sound/btaudio (ve zdrojácích kernelu, nikoli MPlayeru) pro několik instrukcí jak použít tento ovladač.

  • Pokud MEncoder nedokáže otevřít audio zařízení, ujistěte se, že je opravdu k dispozici. Můžete mít potíže se zvukovými servery jako aRts (KDE) nebo ESD (GNOME). Pokud máte plně duplexní zvukovou kartu (téměř každá slušná karta to již podporuje) a používáte KDE, zkuste zaškrtnout volbu "full duplex" v menu nastavení zvukového serveru.

3.10.3. Příklady

Modelový výstup do AAlib :)

mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://

Vstup ze standardního V4L:

mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://

Mnohem sofistikovanější příklad. Zde MEncoder zachytává obraz v plném PALu, ořízne okraje a odstraní proklad obrazu pomocí lineárního směšovacího algoritmu. Zvuk je komprimován konstantním datovým tokem 64kbps LAME kodekem. Toto nastavení je vhodné pro zachytávání filmů.

mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64\
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
    -vf crop=720:544:24:16,pp=lb -o výstup.avi tv://

Toto navíc přeškáluje video na 384x288 a zkomprimuje jej s datovým tokem 350kbps v režimu vysoké kvality. Volba vqmax uvolňuje kvantizer a umožní video kompresoru podržet takto nízký datový tok i za cenu snížení kvality. To lze použít pro záznam dlouhých TV seriálů, kde kvalita obrazu není až tolik důležitá.

mencoder -tv driver=v4l:width=768:height=576 \
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
    -oac mp3lame -lameopts cbr:br=48 -sws 1 -o výstup.avi\
    -vf crop=720:540:24:18,pp=lb,scale=384:288 tv://

Rovněž můžete nastavit menší rozměry obrazu ve volbě -tv a vyhnout se tak softwarovému škálování, ale tento přístup vyžaduje maximální množství informací a je trochu odolnější proti šumu. Čipy bt8x8 umí průměrování pixelů pouze ve svislém směru díky hardwarovým omezením.