Jūn 30 2009

Webcam 4×4

Sarakstījis admin iekš Programms

Labdien.

Vēlējos nedaudz pastāstīt par saviem piedzīvojumiem programējot webcam.
Ievads.

Mans sens draugs Alvis nopietni ņemas ar 4×4 sacensībām. Pats savā laikā aktīvi vizinājos kā stūrmanis, bet kaut kā pametu šo nodarbi. Tad nu tagad ienācās prātā, ka vajadzētu uztaisīt tiešraidi no jeepa kā viņi tur pa mežiem brauc. Alvis uzņēmās pastaigāt pa mūsu mobilo sakaru operātoru kantoriem un dabūt kādu agregātu, kas varētu nodrošināt ar internetu jeepu mūsu Latvijas džungļos. Man, savukārt, tika tas gods izveidot programmu, kas varētu noraidīt webcameras bildi uz serveri un parādīt to plašākai publikas daļai.

Tā nu, bruņojušies ar absolūtu nulli zināšanās par šīm lietām, ķērāmies klāt.
Ar operātoriem ātri vien noskaidrojās, ka neviens pilnīgi visu Latviju nepārklāj, it sevišķi, kas attiecas uz mežiem un laukiem, kas atrodas vairāku kilometru attālumā no kādas kaut cik apdzīvotas vietas. Bet nu kaut kāds modēms tika dabūts, pat uz izmēģinājuma laiku un cerējām, ka vismaz kaut ko izdosies sataisīt.
Kas attiecas uz programmēšanu, tad pirmajā mirklī šķita, ka ierakstot maģiskajā googlē wārdiņu webcam, varēšu dabūt simtiem gatavu risinājumu mūsu vajadzībām, bet ak vai kāds bija pārstegums, kad pēc vairāku dienu aktīvas lasīšanas, sapratu, ka nemaz tik vienkārši ar šito lietu viss nav. Visas programmas, bija būvētas tā, ka kamera saglabā bildīdi turpat uz datora un šo datoru var izmantot kā serveri, kuram pieslēdzas lietotāji un apskata kameras saturu. Protams, šāda shēma ne pārāk atbilda mūsu vajadzībām, jo pie pāris apmeklētāju pieslēgšanās dižmodēms ar mobilā interneta pieslēgumu, pārstās kustināt internetu un neviens neko neredzēs.
Tad nu nācās pašam kaut ko ķibināt augšā. Pirmām kārtām webcameras skatītājs – ar to īpašu problēmu nebija, paņēmu savus mīļos Delphus un komponenšu pakotni DSPack un stundas laikā mikro aplikācija jau strādāja. Nākāmais solis bija noraidīt attēlu uz serveri, tam nācās uzrakstīt arī servera aplikāciju. Pagaidām izmantoju Indy komponentes TCPClient un TCPServer, tur īpašu problēnu nebija kamēr interneta pieslēgums ir stabils, bet tiko tas sāk raustīties un slēgties ārā, tā radās visdažādākās ziepes. Pie tam cik sapratu, no mašīnas izlēgšanās pilnībā nenotiek – kaut kādi daži baiti minūtē visu laiku it kā ir, tādēļ serveris nekonstatē pilnīgi atslēgšanos, bet bildi arī nesaņem. Jāsaka, ka pilnībā šo situāciju atrisinājis neesmu, bet gan jau ar laiku.
Nu un visbeidzot web skatītājs servera daļā, ar to lielu problēmu arī nebija, paņēmu Javu un uzrakstīju nelielu appletiņu, kas parāda atsūtīto bildi lietotājam. Paralēli tam tiek saglabāti visi kadriņi un ar ffmpeg palīdzību reizi stundā tiek izveidota filmiņa ar visu to, ko uzsfilmējusi webcamera.

Rezultātu šīm darbībām var redzēt šeit , protams, ka kaut kādu kustību var redzēt tikai tad, kad notiek sacensības un automašīna atrodas interneta apraides zonā.

p.s. ja kādam rodas neizsakāma vēlme palīdzēt darboties ar šo visu, tad laipni lūgtum. Kā arī, ja rodas vēlme uzzināt sīkākas tehniskās detaļas par šo projektu, rakstiet, atbildēšu.