Ú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.
Díky za tenhle návod. Ono dneska už to vypadá, že to není potřeba. Ale já zrovna nedávno narazil na to, že jsem přesně tohle potřeboval. :) A to nejsem žádný velký streamer nebo provozovatel MMA PPV či co já vím čeho. Ale prostě jsem jen potřeboval streamovat vlastní obraz na jedno školení, kterého jsem se nemohl účastnit osobně.
OdpovědětVymazat