Tuesday, January 08, 2013

Univision Anywhere системийг анх бүтээсэн нь

Завгүй ажиллаж байхад цаг хугацаа нэг л мэдэхэд урсаад өнгөрчих юм. Яг нэг жилийн өмнө Юнивишн компанид ажиллаж эхлэсний анхны том төсөл болох Univision Anywhere TV бүтээгдэхүүн үйлчилгээний системийг босгож байсан саяхан л юм шиг санагдана. Тэр үеийн дурсамжаа жоохон сөхмөөр санагдаад...



Системийг программчлалын хувьд үндсэндээ манай төслийн баг болох гурван мэргэжилтэн гардаж босгосон. Android/iOS app-ын кодыг Тэмүүлэн, харин tv.univision.mn буюу хэрэглэгчдэд харагдах web front-end болон service web back-end буюу арын төлбөр тооцоо, хэрэглэгчдийн database зэргийн кодыг би эхлүүлж цааш нь Жарантай үргэлжлүүлж гүйцэт дуусгасан ба streaming server, transrating scheduled job task гэх мэт сервер дээрх системийг би хийсэн гээд ер нь сар гаруйн хугацаанд анхны хувилбарыг хийж дуусгасан юм байна шүү. Нэрний хувьд Univision Anywhere гэсэн захиралын санааг бүгд дэмжснээр ийм нэртэй болов.


Гадны vendor, supplier компаниудаас бэлэн шийдэл аваад нэвтрүүлэх боломж байсан ч, гол нь нэлээдгүй цаг хугацаа алдах гээд байснаас өөрсдийн техникийн нөөц бололцоог ашиглаад хурдан хугацаанд in-house development буюу өөрсдийн шийдэлээ боловсруулж, өөрсдөө системээ бүтээхээр шуудрав. Үнэндээ ч хийж чадна гэдэгтээ өөртөө болон хамтрагчиддаа 100% итгэлтэй байсан юм. Түүгээрээ ч болсон. Уг системээ анх босгохдоо бараг ихэнхийг нээлттэй эх код бүхий программ, хэрэгслийг ашигласан л даа.

Эхлээд нийтдээ монголын дотоодын 30 гаруй тв сувгийн шууд эфирийг RTSP, RTMP, HLS streaming protocol-оор дамжуулж tv.univision.mn сайтаар үзэх боломжтой байсаныг 1 сарын 4нд анх гар утас таблетэд зориулсан өргөтгөл болох android 1.0 хувилбараа Android Market (GooglePlay) болон GoGo Apps руу оруулж амжлаа. Гэхдээ нийтэд зарлалгүйгээр зөвхөн байгууллага дотроо тест хийж байлаа.

Эхний удаад ТВ сувгуудыг single profile буюу зөвхөн нэг л дэлгэцэд зориулсан байдлаар 240p чанартайгаар гаргаж байсан ба дараа нь multiprofile stream буюу жижиг (iPhone), дунд (iPad), том (Web/PC) дэлгэцүүдэд зориулсан 240p, 360p, 480p чанартай Adaptive Bit-rate HLS болгож өргөжүүлсэн юм.


Хийж турших зүйлс их байсан тул ажил дээрээ байнга л оройтдог байв. (Нээрээ, манай санхүүгийн албаныхан ч бас тэр үед бас их оройтдог байсан юм даг) Юуны түрүүнд "түүхий эд" болох IPTV Head-end-ээс гарч буй multicast stream source гаралтуудыг 240p чанартайгаар RTSP, RTMP, HLS зэрэг протокол руу болгож transrate хийх хэрэгтэй байсан тул Ubuntu Linux 64bit системийг software transcoder болгохоор ffmpeg, vlc, mencoder зэрэг multimedia сан хэрэгсэлээр тоноглоод ТВ сувгуудыг Darwin Streaming server руу дамжуулж туршсан нь амжилттай болов. Ер нь Helix, Darwin, Peercast, Red5 гээд олон streaming server solution-уудтай ажиллаж байсны туршлага тэгэхэд үнэхээр их хэрэг болсон л доо.
Туршилтын системээ Ubuntu Linux дээр libvirtd ашиглаж kvm virtual host үүсгэж ашиглаж байсан ба physical NIC interface-ыг bridge үүсгэж virtual host -руу share хийгээд 224.0.0.0/4 route нэмснээр multicast stream source-ыг чөлөөтэй ашиглаж болж байлаа.

Дээрх хэсэг дээр ажиллаж байх хугацаанд зэрэгцээд tv.univision.mn үндсэн веб болон web tv хувилбарын ажлыг Жарантай явуулж байлаа. Бүтээгдэхүүн үйлчилгээний нөхцөлийн жоохон хоцорч гарсан тул нээлт хийх хүртэлх үлдсэн цөөхөн хэдэн хоногт тэдгээр нөхцөлд тааруулж программчлах ажлыг их шахуу хугацаанд яаравчлан дуусгаж амжсан. Анх тв сувгуудыг нэг нэгээр нь сонгож авч болдог байсныг санаж буй биз ээ.

  

Мөн үлдсэн бас нэг гол ажил болох Android, iOS төхөөрөмжийн хувилбарыг Тэмүүлэн хийж эхлэв. Ингэхдээ Android SDK, iOS SDK ашиглалгүйгээр PhoneGap, Titanium зэрэг framework ашиглаад гар утас, таблетэд зориулсан аппыг богино хугацаанд гаргаж чадсан юм. iOS хувилбарыг гаргахад Android Market-тэй харьцуулахад AppStore дээр апп оруулахад нэлээд шалгуурыг даван туулах шаардлага гарсан ба аппын үг үсэг, код коммент нэг бүрийг нарийн шалгадаг гэхэд хилсдэхгүй. Гэхдээ л iOS хувилбар маань амжилттай гарсан юм. Мөн энэ хугацаанд iPhone, iPad-ын хувилбарыг хэрэглэгчид "шаргуу" нэхсэн тул tv.univision.mn/ios гэсэн html5 хуудасыг хийхэд хүрч байлаа шүү :)

гэх мэтчилэн олон олон саад, бэрхшээл шантралгүй шаргуу хичээсний эцэст уг үйлчилгээ Монголд анх удаа* бий болж хэрэглэгчдийн гарт хүрсэний нэг сайхан дурсамж мэдээллийн технологийн хэллэгээр бичвэл нэг иймэрхүү байна.

Хийж бүтээх хэцүү ч гэлээ, эцэст нь хүнд хэрэгтэй олны таашаалд хүрсэн бүтээгдэхүүн үйлчилгээ гаргаад магтаал шүүмжлэл сонсч суух нэг тийм сайхан байдаг шүү дээ. 
Чин сэтгэлийн магтаал хүнд урам эрч хүч өгч, шүүмжлэл урам зоригийг илүү хурцалж өгдөг.
Хийх хүн аргаа олно, хийхгүй хүн шалтаг олно ч гэдэг түүнтэй адил монгол инженерүүдийн чадвар муу бишээ, тэдэнд зөвхөн боломж л олго.



Бичлэг таалагдсан бол сурталчилгаан дээр +1 дарж тус хүргээрэй ;)

8 Comments:

tume said...
This comment has been removed by the author.
Tumenjargal said...

Bayar hurgey! Programist hun ymiig buteej chaddag ym gedgiig haruulsan goy bichleg baina. Bayarlalaa

XATHAA said...

bayar hvrgie. mundag ajil bnadaa

Tsog said...

unshihad taatai blaa. Tugsgul-n 2 uguulber sain boljee.

Miigaa said...
This comment has been removed by the author.
Эрхэмээ said...

Miigaa wrote:
Univision яагаад ийм суга апп гаргасан юм бол гээд гайхаад байсын. Сарын хугацаанд хийсийн бол аргагүйн байна дөө

Эрхэмээ said...

Miigaa-д Сүүлээсээ 2 дахь өгүүлбэрт чиний сэтгэгдэлийн хариу байгаа болно :P

xman batsaikhan said...

SUGUUD YADAJ GANTS PROGRAMM BICHIJ UZCHEED HUNIIG SHUUMJLEECH

blogger templates | Make Money Online