Úvod
Už delší dobu jsem hledal možnost, jak streamovat video z webkamery takovým způsobem aby ho případný divák nemusel otvírat v žádném externím programu, ale aby se mu zobrazilo přímo v prohlížeči. Předpokládejme tedy situaci, kdy je webkamera připojena k serveru, kde běží Debian či Ubuntu Server, tedy nebudeme spouštět grafické rozhraní a klienti se budou připojovat právě na tento server.Po projití několika návodů a postupů, jsem skončil u všeobecně oblíbeného VLC, které je známo spíše jako přehrávač multimédií na desktopu, ale už méně, jako výkoný streamovací nástroj.
Instalace
VLC nainstalujeme z příkazové řádky takto:sudo apt-get install vlcNyní připojíme webkameru a zkontrolujeme, jestli systém zaregistroval kameru mezi USB zařízeními pomocí příkazu
lsusbDále se podíváme, zda je v systému kamera viditelná jako video zařízení /dev/video*
ls -l /dev/video*Odpovědí systému na tento příkaz by mělo být něco takového:
crw-rw----+ 1 root video 81, 0 srp 3 10:42 /dev/video0Nyní tedy k samotnému streamování. V příkazové řádce zadáme příkaz (vše na jeden řádek!)
cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=theo,vb=256}:standard{access=http,mux=ogg,dst=:8888}'Vysvětlivky:
- cvlc - spouští VLC v režimu příkazové řádky, bez grafického rozhraní. Vhodné pro server.
- v4l2 - Video4Linux, aplikace pro zachytávání signálu z TV tunerů a webkamer
- /dev/video0 - zařízení prezentované v systému
Z jiného počítače zadáme v prohlížeči IP adresu serveru (zde jen jako příklad) a port:
http://192.168.5.33:8888Nyní už jsme měli vidět obraz z kamery.
Poznámky
- Přehrávání vyzkoušeno v Mozilla Firefox 22.0. V Chromu a Opeře by myslím neměl být problém, u IE si ale nejsem jist.
- Kódování v reálném čase vyžaduje hodně systémových prostředků (paměti) a výpočetní síly (CPU), proto je potřeba počítat s tím, že streamování bude server znatelně zatěžovat. S tím souvisí i plynulost přehrávání, zpoždění obrazu a max. počet připojených uživatelů. Odhaduji, že 1 GB RAM a 2 GHz procesor jsou minimum.
Žádné komentáře:
Okomentovat