Belso halozaton levo webkamera stream beagyazasa publikus weboldalba

Sziasztok,

Adott egy webkamera, ami egy PC-re (vagy akarmire, RPi, WiFi router client modban, etc.) van csatlakoztatva, es mindig mas halozaton van (pl. egy iskolaban, kulturhazban, stb.). A halozatot amire csatlakozik, nem lehet atkonfiguralni, esetleg firewall van, lehet, hogy epp csak a http es/vagy https port van nyitva kifele.

Van egy publikusan elerheto szerver, itt kellene elerhetove tenni a kamera kepet online.

Milyen lehetosegek vannak erre vajon (remelve, hogy vannak), csak sajat cuccok hasznalataval (tehat pl. UStream es baratai nelkul)?

Akar konkret programok (megvalositas) is erdekelnenek, termeszetesen Linux es mondjuk open source.

Koszi,

/sza2

Hozzászólások

A PC/akármi/RPi/WiFi is mászkál a webkamerával, vagy csak maga a kamera költözik?

BlackY

+1
Ezzel nem lesz olyan gond, mint VLC esetén, hogy maga a VLC a kiszolgáló, hiszen az ffserver mint kiszolgáló réteg fog a kliensekkel beszélgetni. Azaz csak a szerver kapacitásától függ, mennyi usert tudsz kiszolgálni. A helyi gépen pedig az ffmpeg lesz a "feladó".
Az ffserverben belövöd pl. az flv formátumot, így kompatibilis leszel mindennel, a keletkező folyamot a weblapon pedig akár egy flowplayerrel is közzé teheted. Erőforrás igénye minimális.
A stream fellövését kell valahogy megoldanod, mint ahogy írtad is, lehet, hogy tiltva lesz a helyszínen a szükséges port. Így olyan portot kell választanod neki, ami feltehetőleg mindenhol elérhető, de a szervered sem akarja másra használni.

Mondjuk a kamerával utazó gépen openvpn kliens, a publikus szerveren openvpn szerver. Ha jól sejtem a szerver így a kamerát elérheti.

Ha többen is néznék a kamera képét, akkor nem árt beiktatni valami közbülső programot a szerverre, ami kiszolgálja a nézőket, mert a kamera kapacitása erősen korlátos lehet.
Én erre vlc-t használtam az egyszerűség kedvéért. Itt egy példa, hogy lehet felparaméterezni (transzkódolja a kamera képét, linux alatt is hasonlóképpen lehet paraméterezni):

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" rtsp://webcamcíme:554/mpeg4/media.amp?resolution=vga :sout=#transcode{vcodec=h264,vb=384,fps=25,scale=0,acodec=mp3,ab=64,channels=1,samplerate=44100}:http{dst=:8090/cam.flv} :sout-keep

Úgy is be lehet állítani, hogy egyúttal mentse az adást egy fájlba is.

Erre a weblapba ágyazott kliens kapcsolódhat, ahol flowplayer-t használtam:
https://gist.github.com/anonymous/5536320
Persze kliens programmal (pl vlc) lehet a cím ismeretében a weblap nélkül is nézni a közvetítést.

A rögzítéssel annyi bajom volt, hogy 30 órás felvételt nem tudott rendesen beindexelni utólag (még órákig futott a stop után az indexelés) végig ezért nem tekerhető, rövidebbeknél nem volt gond.

Ez így jól néz ki.
Esetleg OpenVPN helyett elég lehet egy reverse SSH tunnel a proxy és a "kamera" közé, pl. autossh-val.

Másfelől nem tudom, a fenti esetben a VLC mit csinál, ha nem elérhető a kamera, amikor kapcsolódni próbál (pl. épp' költözik).
Gondolom, ezt is meg kellene oldani.

Vegyen kettőt , waze'.
Egy már valamire használható IP kamera 20e Forint. Ha már 10x költözteti, szerintem megéri.
Meg amúgy is. Majdnem az az eset, hogy kis pénzből sokat. A tulajjal meg kell beszélni,
a technikai megoldást meg látta fent, ovpn szerintem is jó megoldás, már én is használtam.

OpenVPN-t azért írtam, mert relatíve egyszerűen beüzemelhető és onnantól kezdve olyan, mintha egy hálózatban lennének. Talán 10MBit-es limitje van, de ez azt hiszem nem probléma, az iskola / művház netkapcsolata hamarabb lehet szűk keresztmetszet :)

A VLC kilép, ha nincs meg a forrás. Ezt az itteni rendezvényünkön úgy hidaltam át, hogy betettem egy végtelen ciklusba, a fájlrögzítésnél pedig a fájlnévbe beletettem az aktuális dátumot-időt. Gondolom csak az előadások alatt menne a közvetítés, így akkor (távolról) kell elindítani. De meg lehet ezt szépen szolgáltatásként is csinálni (pl upstart script), hogy könnyen indítható és leállítható legyen. Szóval ez már egy másik probléma :)

Ja meg persze cvlc a konzolos, ha jól emlékszem.