
Ji rojên ewil ên xebata li ser pergala çavdêriya vîdyoyê ewr de, em bi pirsgirêkek re rû bi rû man, bêyî çareseriyek ku em bikarin dev ji Ivideon berdin - ev Everesta me bû, hilkişîna ku gelek enerjî jê girt, lê naha di dawiyê de axeke qeşayê di serê puzzle-platformê de asê kir.
Pergala veguhestina deng û vîdyoyê li ser Înternetê pêdivî ye ku bi amûr, xerîdarên Webê û standardên ku ew piştgirî dikin ve girêdayî nebe, û di hebûna Wergêrên Navnîşana Torê û dîwarên agir de jî rast bixebite. Bikarhênerek çavdêriya vîdyoya ewr dixwaze bigihîje karûbarê, her çend ew kamerayên analog bikar bîne, û tercîh dike ku li ser cîhaza herî nûjen weşana vîdyoya zindî temaşe bike.
Pir girîng e ku bikarhêner dixwaze vîdyoyan bi dereng hindiktirîn temaşe bike. Hema hema tenê awayê ku meriv vîdyoyê bi derengiya kêm di gerokek de nîşan bide ev e ku hûn WebRTC (ragihandina webê ya rast-dem) bikar bînin. WebRTC komek teknolojiyên ji bo veguheztina peer-to-peer a vîdyoyê û dengî di gerokan de ye, ku di destpêkê de ji bo veguheztin û lîstina herikên vîdyoyê bi derengiya kêm hatî çêkirin. Ji bo vê armancê, di nav tiştên din de, protokola UDP tê bikaranîn.
Berî ku em ji we re bibêjin motora nû çi dide bikarhêner, em ê bînin bîra we çima û çima em teknolojiyên HLS piştgirî dikin, û çima me biryar da ku em bi pêş de biçin.
Motora HLS: erênî û neyînî

()
Teknolojiya HLS (HTTP Live Weşana Zindî) ji hêla Apple ve hate pêşxistin, ji ber vê yekê ne ecêb e ku ew yekem car li ser cîhazên Apple hate piştgirî kirin. Îro, vîdyoya HLS ji hêla hema hema hemî set-top boxes û gelek cîhazên ku pergala xebitandinê bikar tînin ve jî tê piştgirî kirin. Android.
Motora HLS kodek vîdyoya naskirî ya H264 bi hev re digel herikên bihîstwerî yên AAC an MP3 bikar tîne da ku daneyên vîdyoyê biweşîne. Tevahiya herikîna daneya deng û vîdyoyê di nav konteynirek veguheztinê ya MPEG-TS de tête pak kirin. Ji bo veguheztina bi protokola HTTP, agahdariya ku di tîrêjê de heye li perçeyên ku di lîsteyên lîstika m3u8 de têne vegotin têne dabeş kirin. Û tenê wê hingê ev perçe, digel navnîşên lîstikê, bi HTTP ve têne şandin. Kulîlk bixweber tê wateya derengiya di çirkeyan de. Ev taybetmendiyek konteynera MPEG-TS ye.
Motora HLS di heman demê de herikên multibitrate, Zindî / VOD jî piştgirî dike.
Avantajên sereke yên HLS:
- di hemî gerokên sereke de piştgirîya çêkirî;
- hêsankirina pêkanînê (li gorî WebRTC);
- Organîzekirina her cûre weşanan ji temaşevanek mezin re pir rehet û bikêr e ji ber vê yekê ku beş dikarin carekê li CDN-ê werin barkirin.
Tevî sadebûna motorê, ne her tişt ew qas xweş e ku xuya dike. Pirsgirêka sereke ev e ku pêşdebirên lîstikvanê sêyemîn ji pêşniyarên Apple dûr ketine, mînakî di warê formatên dengî yên piştgirî de. Bi taybetî, gelek pêşdebiran dest bi lêzêdekirina şiyana karkirina bi pêlên dengî yên populer kirin: vîdyoya mpeg2, dengê mpeg2, hwd. Wekî encamek, ew neçar bûn ku ji bo lîstikvanên cihêreng formatên lîstika lîstikê biafirînin.
Lê yek ji pirsgirêkên herî mezin bi motora HLS re derengiya bilind a veguhastina daneyê ye.
Koka "brakes"
Sedema sereke ya derengiya bilind a HLS di vê yekê de ye ku bernameçêker motorê çêkirine da ku wêneyên herî kalîteya herî bilind bistînin. Ji ber vê yekê, pîvanên navbera çarçovê ya ku tê bikar anîn û mezinahiya tampona lêdanê bi tenê ji bo weşana vîdyoya zindî ne maqûl in. Ji ber vê yekê, di şandina dîmenên vîdyoyê de derengek pir zêde heye, ku dikare 5-7 saniye be.
Ji aliyek ve, ev ne pir e, mînakî, ji bo kesên ku fîlimek ji serverek mêvandariya vîdyoyê temaşe dikin. Lê ji bo pergalên çavdêriya vîdyoyê, derengiya şandina dîmenên vîdyoyê dikare pir girîng be.
Ger hûn li nivîsgehek temaşe dikin ku karmend demjimêrek carekê ji çavdêrên xwe mêze dikin, wê hingê derengiya 5 çirkeyan qet ne girîng e. Lê mirovan dest bi gilî kirin ku, mînakî, dema weşana lîstikek futbolê, wan berê di chatê de GOOOOL nivîsand, lê ev hîna li ser vîdyoyê tune :). Jixwe me gelek dozên bikarhêner hene ku divê Ivideon bi pratîkî şûna Skype-ê bigire.
Ma gengaz e ku meriv di HLS de derengiyê têk bibe? Bersiva vê pirsê dişibihe axaftina qirkerekî mişkek xwedî ezmûn di dersekê de ji pisporên nûjen ên kontrolkirina kêzikan re: "Mişk nayên qirkirin, lê hêjmara wan dikare di hindiktirînek maqûl de were kêm kirin." Digel derengiya HLS-ê, ew ê nekare wê bi sifirê kêm bike, lê li sûkê çareserî hene ku dikarin derengiyê bi girîngî kêm bikin.
Birînên xweş
Kêmasiyek din a motorê karanîna pelên piçûk ji bo veguheztina daneyê ye. Wusa dixuye ku ev çi xelet e?
Kesê ku hewl daye ku hejmareke mezin ji pelên piçûk ji navgînek navgînek din kopî bike, belkî pê hesiyaye ku leza nivîsandina komek wusa ji pelek mezin a heman mezinahiyê pir kêmtir e. Û şiyana gihîştina dîska hişk bi girîngî zêde dibe, ku bi gelemperî bandorek neyînî li performansa tevahiya komputerê dike. Ji ber vê yekê, veguheztina daneyên vîdyoyê di perçeyên piçûk ên 10 duyemîn de jî dibe sedema zêdebûna derengiya motorê.
Werin em bi kurtî hemî pro û xirabiyên teknolojiya HLS bi kurtî kurt bikin.
Avantajên HLS:
- Kapasîteya ku bi her amûrekê re bixebite. Hûn dikarin vîdyoyan li ser her amûrek nûjen temaşe bikin, bila ew smartphone, tablet, laptop an PC-ya sermaseyê be. Ya sereke ev e ku geroka webê nûvekirî ye û bi HTML5 û Berfirehkirina Çavkaniya Medyayê re hevaheng e.
- Qalîteya wêneyê ya hêja. Fonksiyona veguheztina daneya adapteyî ya ku tê bikar anîn dihêle hûn bi dînamîkî kalîteya vîdyoya hatî veguheztin li gorî pêlava pêwendiya Înternetê biguhezînin, dema ku algorîtm hewl dide ku kalîteya herî zêde biparêze.
- Ne hewceyî veavakirina tevlihev a alavên bikarhêner e.
dezawantajên:
- Piştgiriya tixûbdar ji bo xebata bi motorê li ser hin cîhazan.
- Di veguhestina wêneyê de derengiyên bilind.
- Ji ber karanîna pelên piçûk zêdebûnek berbiçav û tevliheviya xweşbîniyê. Ji ber xwezaya konteynerê, em ê çu carî nikaribin derengiyek ji mezinahiya beşê kêmtir bistînin.
Dezawantajên HLS ji me re avantajên wê zêdetir bûn û me neçar kir ku li vebijarkên alternatîf bigerin.
WebRTC çi ye

()
Platforma WebRTC ji hêla Google ve di sala 2011-an de hate pêşve xistin da ku daneyên vîdyoyê û bihîstwerî di navbera gerok û sepanên mobîl de bi derengiya hindiktirîn veguhezîne. Ji bo vê yekê, protokola standard UDP û algorîtmayên kontrolkirina herikîna taybetî têne bikar anîn. Îro ew projeyek çavkaniyek vekirî ye, ew bi çalak ji hêla Google ve tê parastin û pêşve dibe.
WebRTC komek teknolojiyên ji bo peer-to-peer veguheztina vîdyo û deng e. Ango, bo nimûne, gerokên bikarhêner ên ku WebRTC bikar tînin dikarin rasterast daneyan ji hev re veguhezînin, bêyî ku serverên dûr ji bo hilanîn û hilanîna daneyan bikar bînin. Hemî agahdarî ji hêla gerokên bikarhênerên dawîn û serîlêdanên mobîl ve jî têne hilberandin.
Rehetî û şiyanên berfireh ên vê teknolojiyê ji hêla pêşdebirên hemî gerokên populer ve hatine teqdîrkirin. Piştgiriya WebRTC niha di Mozilla Firefox, Opera, Google Chrome (û hemî gerokên li ser bingeha Chromium), û her weha di sepanên mobîl ên ku dixebitin de heye. Android û iOS-ê.
Li gel hemî avantajên xwe yên bê guman, WebRTC çend dezawantajên girîng hene.
Zehmetiya hilbijartinê
Teknolojiya WebRTC di warê danûstendinên torê de ji ber rastiya ku ew di derbarê P2P de ye pir tevlihevtir e. Zehmet e ku meriv xelet bike, ceribandin, û dikare bi rengek nediyar tevbigere. Di heman demê de, pêdivî ye ku em NAT û dîwarê agir bi ser bixin, pêdivî ye ku em di torên ku UDP têne asteng kirin de operasyonê piştrast bikin.
Bikaranîna WebRTC ya Google-ê pir dijwar e. Tewra pargîdaniyek tevahî heye ku karûbarên meclîsa SDK peyda dike. Zêdeyî, bicîhkirina Google-ê pir dijwar bû ku bi pergala me re bêyî kodkirina tevahiya vîdyoyê ji nû ve were kod kirin.
Lêbelê, me demek dirêj dixwest ku em fersendê bidin bikarhêneran ku bi vîdyoya tevahî "zindî" re bixebitin û derengiya di navbera wêneya li ser ekranê û bûyeran bixwe de kêm bikin. Zêdeyî, me xwest ku em karanîna kamerayên PTZ-ê, li cihê ku dereng krîtîk in, rehettir bikin.
Bihesibînin ku pêkanînên din ên dijî-lag hîna jî fonksiyonên tixûbdar hene û bi rengek xirabtir dixebitin, me biryar da ku WebRTC bikar bînin.
Me çi kiriye

Bi rêkûpêk pêkanîna platforma WebRTC ne karekî hêsan e. Hesabkirinek xelet an xeletî dikare bibe sedema dereng di veguheztina vîdyoyê de ne tenê li gorî platformên din kêm nebe, lê tewra jî zêde bibe.
Ji bo ku WebRTC rast bixebite, berî her tiştî, pêdivî ye ku ji bo xebata bi vîdyoya malperê nûvekirinek teknolojîk a stackê were kirin. Tiştê ku me kir ev bû.
Pêşîn, me serverek protokola nîşana WebRTC-ê li ser Websocket bicîh kir, û di heman demê de serverek peer WebRTC di ewr de li ser bingeha webrtc.org SDK-ê bicîh kir. Peywira wê ew e ku bêyî veguheztina vîdyoyê, di formata H.264 + Opus/G.711 de vîdyoyên vîdyoyê li hevalbendên WebRTC yên xerîdar belav bike.
Me Websocket wekî protokola nîşankirinê hilbijart ji ber ku ew jixwe di hemî gerokên webê yên populer de xwedî piştgirîya kalîteya bilind e. Ji ber vê yekê, hûn dikarin ne tenê sermaya pêşkeftinê bi girîngî kêm bikin, lê di heman demê de li gorî AJAX-ê dem û çavkaniyan li ser dubarekirina destên TCP û TLS jî winda bikin.
Rastî ev e ku, ji hêla xwerû, WebRTC protokola îşaretkirinê ya ku ji bo rast mîhengkirin, domandin û qedandina pêwendiya vîdyoyê ya rast-ê di navbera çavkanî û sepanên xerîdar de hewce dike peyda nake.
Û ji bo ku em teknolojiya îşaretkirinê serbixwe bicîh bînin, pêdivî bû ku em servera xweya nîşankirinê bi piştgirîya çend protokolên malperê (Websocet, WebRTC) pêşve bibin. Û bi şiyana birêvebirina bi ewlehî danişîn û agahdariya di wextê rast de, rêveberiya vîdyoyê û hêj bêtir.
Me sînorên P2P bi kêmkirina derengiyê ne bi P2P, lê bi navgîniya UDP û kontrolkirina herikînê derbas kir da ku derengiyê kêm bike. Ev jî di WebRTC-ê de hatî çêkirin, ji ber ku karanîna bingehîn danûstendinên p2p bi navgînek gerokek e.
Di muwekîlê mobîl de, me lîstikvan bi karanîna webrtc.org SDK-ê bicîh kir, ji ber ku tenê ew bi rêkûpêk kontrolkirina herikê bicîh tîne, hemî nexşeyên naskirî yên Rastkirina Çewtiya Pêşerojê (FEC) heye, û mekanîzmaya şandina pakêtan ji bo hemî gerokan rast bicîh tîne. Di heman demê de girîng e ku webrtc.org SDK ji hêla Google ve bi rengek çalak tê pêşve xistin.
Encama pêkanîna WebRTC çi ye?
Ji bo dîtina vîdyoya zindî ji kamerayan, me lîstikvanek nû ya xweşbînkirî ya li ser bingeha WebRTC li hesabê weya kesane zêde kiriye. Ew leza barkirina vîdyoyê ya bilez peyda dike û her ku dema temaşekirinê zêde dibe pirsgirêka berhevbûna derengiyê bi tevahî ji holê radike.
Piştî danasîna piştgiriya WebRTC di karûbarê cloudê Ivideon de, em dikarin bi pêbaweriyek bêkêmasî bibêjin ku xerîdarên me naha dikarin vîdyoya zindî ya bêkêmasî temaşe bikin. Naha derengiya weşana rêzikên vîdyoyê ji yek saniyeyê derbas nabe! Ji bo berhevdanê, motora HLS ya berê bi derengiya 5-7 çirkeyan radestkirina vîdyoyê peyda kir. Cûdahiya di leza xwenîşandana vîdyoyê de pir girîng e, û bikarhêner dê tavilê piştî ku dest bi xebata bi karûbarê meya vîdyoyê re bike wê bibîne.
Wekî ku me li bendê bû, pêkanîna lîstikvanê nû bersivdayîna PTZ û ragihandina deng bi kamerayê re çêtir kiriye.

Tenê xalek nazik heye ku em dixwazin balê bikşînin ser. Lîstika nû ya WebRTC niha di moda ceribandinê de dixebite. Û ji ber vê yekê em wê ji bo hemî xerîdarên xwe ji hêla xwerû ve çalak nakin. Lê hûn dikarin wê bi xwe çalak bikin bi çalakkirina tiştê têkildar di mîhengên kamerayê de (ji bo kirina vê yekê hûn hewce ne ku biçin ).
Taybetmendiyên pêkanîna WebRTC di karûbarê Ivideon de

WebRTC niha hîn jî teknolojiyek ceribandinê ye. Piştgiriya wê hîn di hemî gerok û cîhazên bikarhêner de, û di heman demê de ne di hemî kamerayan de jî rast nehatiye bicîh kirin.
Bi rastî ji ber vê yekê me hîna lîstikvana WebRTC ji bo hemî bikarhêneran nekiriye lîstikvanê xwerû.
Heya nuha, em pêşniyar dikin ku WebRTC tenê di gerokên Google Chrome de bikar bînin. Guhertoyên herî paşîn ên Firefox û Safari jî vê teknolojiyê piştgirî dikin, lê mixabin, ew hîn jî ne aram e.
Me hîna piştgirîya WebRTC ji bo gerokên li ser cîhazên mobîl bicîh neaniye. Heya nuha, heke hûn ji cîhazek mobîl têkevin û WebRTC çalak bikin, ev mod dê nexebite. Lêbelê, WebRTC di serîlêdanên me yên mobîl de heye и .
Û bi dawîkirina çîroka li ser taybetmendiyên pêkanîna WebRTC di karûbarê me de, em du xalên nazik ên din jî destnîşan bikin.
Ya yekem, teknolojî li ser weşana vîdyoya zindî di demek rast de ye. Ji ber vê yekê, heke kanala we ji bo veguheztina vîdyoyê têra bandpêdeya we nebe, hûn ê dilopên çarçoweyê bibînin (bi HLS hûn ê bala xwe bidin şilbûna vîdyoyê û derengiya zêde, lê dê dilopên çarçovê tune be), lê vîdyo dê dîsa jî bi rastî were weşandin. dem.
Ya duyemîn, ji ber ku teknolojî hatiye sêwirandin ku bi taybetî bi vîdyoya zindî di demek rast de bixebite, em wê bikar naynin ku bi daneyên vîdyoya arşîvkirî re bixebitin.
Guhertinên din ên xizmetê
Di vê demê de, Flash êdî beşdarî mekanîzmaya hilbijartina motora otomatîkî nabe. Hûn hîn jî dikarin lîstikvanek wusa bikar bînin, lê ji bo vê yekê hûn hewce ne ku wê di mîhengên hesab an kamerayê de bi destan hilbijêrin. Ev ne rêzgirtinek ji modayê ye, tenê ew e ku li gorî statîstîkên karûbarê me, di pratîkê de tu bikarhênerek nemaye ku bi Flash re bixebitin. Û hewl didin ku diyar bikin ka geroka bikarhêner wê piştgirî dike, em bi qasî 2 saniyeyan ji wextê hêja winda dikin.
Li vir nihêrînek kurt a guheztinên ku di pergala meya çavdêriya vîdyoya ewr û hesabê kesane de li benda we ne. Bi me re bimînin û nûçeyan bişopînin!
Source: www.habr.com
