úterý 23. června 2009

Streamování pozemní digitální televize DVB-T a VLC

Tak jsme chtěli v práci televizi po síti, až jsme se do toho rovnou dali. Stačil nám jeden starší počítač:

Intel(R) Celeron(R) CPU 2.66GHz
cahe size 256 KB
512MB RAM
120GB HDD
Ati Radeon 9200 PRO
Ethernet:3Com Corporation 3c905C-TX/TX-M 100MBit

Ubuntu server 9.04

a televizní karta Technisat AirStar 2 DVB dnes kolem jednoho tisíce korun. Je určená pro mpeg-2(dvd kvalita), ale z mých zkušeností zvládá i testovací kanály, které jsou v mpeg4(HD). Další výhodou je přítomnost samice pro anténu a samce pro připojení externího zařízení k téže anténě(třeba televize).

Po zasunutí karty i naše serverové jádro(naše 2.6.28.11-server) Airstar rozpoznalo, ačkoliv(podle lspci) jako:
Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)

...což je obdoba jen pro satelitní vysílání dvb-s.

dmesg | grep DVB
[ 8.060152] DVB: registering new adapter (FlexCop Digital TV device)
[ 8.605099] b2c2-flexcop: found 'Zarlink MT352 DVB-T' .
[ 8.605107] DVB: registering adapter 0 frontend 0 (Zarlink MT352 DVB-T)...
[ 8.605203] b2c2-flexcop: initialization of 'Air2PC/AirStar 2 DVB-T' at the 'PCI' bus controlled by a 'FlexCopIIb' complete

Tuner se registroval klasicky jako Zarlink MT352 DVB-T /dev/dvb/adapter0 a to nám bohatě stačilo(pravděpodobně se jedná o stejný čip).

Co dál? K serveru stačilo doinstalovat VLC a w-scan.

My žádný channels.conf sice nepotřebovali, ale pokud neumíte googlit, můžete si díky němu zjistit veškeré potřebné informace o parametrech vysílání. Zjistíte zde potřebné frekvence multiplexů(pro lenochy zde najdete příslušné kanály. Pro jejich frekvence si už buď zaskenujte nebo zagooglete :-ú)

No a teď už jen vymyslet, jak streamovat. Nainstalovali jsme si zmíněné vlc, které má tu výhodu, že už po instalaci umí dekódovat/kódovat spoustu formátů bez dodatečných kodeků a hlavně, umí spolehlivě běžet jen v terminálu a tak se dá i šoupnout do pozadí či spustit přímo jako démon.
Ale ještě větší hlavně, podpora nejrůznějších druhů zachycovacích zařízení dává tomuto "přehrávači" výsadní postavení mezi open sourceovými výtvory pro přehrávání, převádění nebo streamování videa z externích zařízení.

Stream po HTTP

Pokud se chcete dozvědět o logice posloupnosti parametrů vlc v příkazové řádce, na vlc wiki toho je opravdu hodně. Já sem hodím pouze hotové řešení např, pro ČT http stream v Praze:

vlc --quiet dvb:// --dvb-frequency=730000000 --dvb-bandwidth=8 --ts-es-id-pid -programs=257,258,259,260 --sout #duplicate{dst=std{access=http, mux=ts,dst=:8080/ct1}, select="program=257", dst=std{access=http,mux=ts, dst=:8080/ct2}, select="program=258", dst=std{access=http,mux=ts,dst=:8080/ct24}, select="program=259", dst=std{access=http, mux=ts,dst=:8080/ct4}, select="program=260"}'

Toto si můžete uložit jako např. streamCT, nastavit parametr spuštění a hodit treba do /usr/bin.
Pak po spuštění počítače stačí v řádce napsat streamCT a streamujete.
Klient se může připojit např. takto: vlc http://192.168.1.2:8080/ct1

Stream po UDP:

Pokud Vám nevyhovuje streamování po http protokolu, tedy unicastově, protože třeba počítáte s tím, že se bude připojovat hodně lidí a příliš by to zatížilo síť i systémové prostředky serveru můžete zkusit streamovat po udp protokolu jako multicast.

Z mé zkušenosti je s výše uvedenou konfigurací možno po http streamovat až pro pět lidí čtyři kanály současně(samozřejmě jen jeden multiplex, protože máme jen jeden tuner) bez viditelných problémů s obrazem či zvukem. CPU Vám v tomto případě vyleze na max a system load se zobrazuje v nemožných číslech. Stejně tak, datový tok po síti už je v této chvíli výrazný a pokud máte slabší switch a síťovku, nemusí to být unosné. Do pěti lidí ale opravdu doporučuji stream unicastem.

Multicast je samozřejmě skvělým řešením pro velký počet připojujících se uživatelů, protože server vysílá na Vámi zvolených multicastových adresách prakticky stále stejný objem dat, která se vlastně množí v síti(na switchi) a která přijímají pouze ty počítače, které se registrují do skupiny pro příjem. Ovšem, mluvím spíše o lokální síti, kdy se počítače registrují přes IGMP protokol do skupiny příjemců a je třeba říct, že pod jednou podsítí se multicast chová jako broadcast, tzn. že data se posílají na všechny porty switche(jinak musíte mít přímou podporu ve switchi). Mezi sítěmi se pak uplatňujě PIM protokol.

Takže v malé domácí síti sice budete streamovat ze serveru na mutlicastových adresách, ale data se budou posílat úplně na všechny aktivní porty switche a tím i ke každému připojenému počítači, který je sice přijímat nemusí, ale můžete si tak v krajním případě zahltit switch, nebo nějaký citlivý prvek na síti, který nebude stíhat zahazovat pakety. Jeden multiplex, podle mých zkušeností, znamená kolem 5MB uploadu pro server.
Pokud tedy chcete takto vysílat, pak změňte odpovídající parametry např. takto :
access=udp
dst=mult.adresa(např. 239.255.1.x)

Klient se pak připojí a zaregistruje např. takto: vlc udp://@239.255.1.x

V připadě nějakých nekorektních informací ohledně sítě se omlouvám, ale myslím, že nějak podobně to chodí :-)

pondělí 1. června 2009

Sabayon Linux

Open your source, open your mind

Takto nás vítá distribuce Sabayon 4, vytvořená Fabiem Erculianim. Jak již jeho jméno napovídá, jedná se o italské distro, mající nemalé ambice i předpoklady, stát se velmi populárním "negeekovským" operačním systémem.

Sabayon sám sebe představuje jako GNU/Linux, ve kterém by neměly být problémy a vše by mělo fungovat "out of box" a zároveň by nemělo klást velké nároky na uživatele.

Jako základ používá Sabayon Gentoo, který je podle nich nejrozšířetelnější distribuce. Jak autoři tvrdí, Sabayon nechce kopírovat jiné distrubuce jako to dělá Ubuntu, ale snaží se brát z každé distribuce jen to nejlepší(trochu si to odporuje, ne?). Jinými slovy, Sabayon chce být sám sebou a nestojí za ním žádná společnost, jako u jiných.

Ke stažení jsou aktuálně k dispozici DVD (4GB a okleštěné 2GB verze ), stažitelné z ČVUT přes http nebo ftp protokol, a to 32-bit i 64-bitové verze.
Nároky na hardware jsou trochu vyšší, než jsme u Linuxu zvyklí, i když na wiki jsou oficiálně pro livko s 3D desktopem vypsány rozumné:

  • Live Environment - 3D Desktop:
    • i686 Processor (starting from AMD K6 and Intel Pentium II)
    • at least 256MB of RAM (512 suggested)
    • an OpenGL capable 3D graphics card (mostly NVIDIA, ATI, Intel, VIA)
    • a DDC capable Monitor
    • mouse and keyboard

Doporučoval bych ale spíše 1GB RAM a neintegrovanou grafiku novějších řad. Například na Ati Radeon Xpress 200 compiz v novém xorgu(7.4) hned tak nepoběží. Ještě dodám, že po instalaci je při běžné práci alokováno kolem 500MB RAM.

Co stojí určitě za zmínku, to je možnost z Live DVD nabootovat do 3D FPSek(např. Sauerbraten), kde se snaží distribuce ukázat, jak na tom je s multimediální podporou.

Dále mužete z livka nabootovat rovnou do grafického prostředí a pak instalovat, nebo instalovat rovnou z grafického či textového rozhrání.

Konzole pod Gentoo je vůbec moc pěkně řešená a barevně členitá, což zpřehledňuje práci. Tady by se ostatní distribuce mohli učit(verbose mode při bootu). Na druhou stranu, pokud jste zvyklí na doplňování pomocí TABulátoru, druhotné doplnění a nabídka možností(např. man iwconf... a po TAB doplňění) se prostě nedoplní a to mi u OS pro blbé, jak autoři proklamují KISS(Keep it Simple Stupid), přijde jako podpásovka(to samé u příkazů pro roota se sudo)- začátečník si tady ani neškrtne, pokud nemá polopatický návod na to, co zrovna dělá. Ale to jsem se dostal trochu jinam.

Dále je možné nastartovat XsistenCe, což je mod, ve kterém můžete pracovat normálně jako v instalovaném systému a ukládat svá data do domovského adresáře, která se zapisují na usb disk, takže o ně nepřijdete. Taková možnost mi přijde trochu nepoužitelná, protože start z DVD je relativně dost pomalý a představa, že s sebou tahám DVD a flash disk se mi nezdá jako nejvhodnější řešení, ale nezkoušel jsem, takže hodnotit nemohu.Také můžete bootovat v eepc módu s nižším rozlišením.

Ještě Vás upozorním, že živé sezení se hrou a v XsistenCe je již od startu doprovázeno srdce a uši rvoucím hardcorem(trochu mi to připomínalo lekačky z F.E.A.R. a pasáže skupiny Sons of Tarantula), což já jako příznivec tohoto žánru vítám, ovšem pokud se chystáte startovat někde v kolektivu či na veřejnosti(nedej bože v knihovně), upozorňuji, že Vám nezbyde než tvrdej kill počítače, protože muzika jde hodně, ale opravdu hodně hlasitě a předpoklad, že by Vám při bootu hned fungovaly funkční klávesy na ztišení hlasitosti, není v mezích reálna. Zažijete takový adrenalinový výlet.

Při instalaci z plného DVD máte možnost nainstalovat Sabayon s KDE(3.5.1), Gnome(2.26), Xfce, Fluxboxem, nebo jako pro Ultra Mobile Pc nebo jen s konzolí, např. pro server. Podpora Češtiny je závislá na překladu samostatných balíků, jako Gnome, Open Office atd. jak jsme zvyklí, takže se s ní neztratíte a už na začátku instalace si ji můžete vybrat.

Instalace Vás provede velmi lehce až ke konci, tady není co vytýkat a ani žádná výraznější odlišnost(kromě jiného zpracování) se tu neobjevuje. Instalace vzhledem k DVD verzi je asi tak rychlá, jak může být. Pokud si vyberete i instalci 3D her a aplikací(nexuiz, saurbraten,second life), které DVD obsahuje, počítejte s něco přes půl hodinou kopírování a konfigurace.

První spuštění trvá o něco déle, než ty další, zřejmě ještě probíhají postinstalační úpravy, ale i tak se nedá říct, že by Sabayon byl nějaký dragster.

Po startu(Gnome) se zdá být pracovní prostředí důvěrně známé, jen je trochu netradičně zpracované gtk schéma. Efekty prostředí se dají zapnout jinak než např. tradičně v Ubuntu ve Vzhledu. Slouží k tomu známá Fuse Icon. Jak jsem naznačil, na Xpress 200 se ale žádný 3D desktop nekonal(jen bílá tma) a compiz jsem musel zabít v hlavním promptu(Ctrl+ALT+F1 "killall compiz"). Přes Fuse icon lze přepínat mezi dekorátory.

Fluxbox je prostě simple už od začátku a doporučuji ho zejména pokročilým uživatelům.

Co mě zklamalo, bylo KDE 3.5.1 a ani tak ne jeho starší verze, což se vzhledem k nestabilitě 4.X dá lehce vysvětlit, ale zvukové schéma. Začnou na Vás totiž útočit Windowsácké tóny. Nevadí mi samotná přítomnost Windows, ale to , ře se Sabayon tváří jako samostatná a tvůrčí distribuce a pak na Vás přichystá asi ne úplně licenčně validní podraz.

Instalace aplikací se děje jako v Gentoo přes emerge(portage). A nedá se říct, že by to byla svižná instalace, pokud jste rozmazlení z Debianu. Nabízí však mnohem větší nastavitelnost a lidé, zvyklí s tímto nástrojem pracovat už nechtějí nic jiného. Viz. use flagy a ebuildy na wiki. Pak je tu GUI nástroj Spritze Package Manager(frontend entropy). Celkem použitelný, něco jako Synaptic. Nepochopil jsem ale jeho možnost ukládat heslo na jeho spuštění do klíčenky. Zadá-li líný uživatel prázdné heslo pro klíčenku, může mu později kdokoliv instalovat a odinstalovat balíky.

Co je pro uživatele skvělé, podpora přehrávání multimédií je už od počátku, takže žádné naschvál neinstalované kodeky, kvůli neotevřenému kódu a licenci Vás nemusí trápit. Je zde i plno přehrávačů, jako mplayer, xine-ui, vlc, smplayer a další.

Samozřejmě nechybí ani OpenOffice s vlastním tématem preloaderu,jako třeba v OpenSuse. Tím chci naznačit, že prvky systému a aplikací jsou vzhledově sjednoceny a to pak působí kompktně. A to je u operačního systému, kladoucího důraz na první dojem, nutnost.

Nabídka předinstalovaných programů je opravdu pestrá, snad mi tam chyběl Audicious a něco jiného než mc(třeba mucommander nebo gnome-commander).

Her tu najdete(podle toho, co jste instalovali) také dost. Třeba Wesnoth přijde při dlouhé chvíli vhod.

Na první pohled Sabayon 4.1 působí relativně dodělaně a vyladěně, nabízí jednoduchost fluxboxu a stejně tak i přeplácannost KDE a neutrálnost Xfce. Je na každém, co si zvolí, každopádně nebude litovat za zkoušku, protože ve stovkách umírajících rádoby distribucí tato hvězda stoupá výš a výš.