
Site na ụbọchị mbụ nke na-arụ ọrụ na igwe ojii video onyunyo usoro, anyị nwere nsogbu chere ihu, na-enweghị ngwọta nke anyị nwere ike ịhapụ Ivideon - nke a bụ Everest anyị, ịrị elu nke were ike dị ukwuu, ma ugbu a anyị nwere n'ikpeazụ. rapaara anyụike akpụrụkpụ n'elu egwuregwu mgbagwoju anya cross-platform.
Usoro maka ịnyefe ọdịyo na vidiyo na ịntanetị ekwesịghị ịdabere na akụrụngwa, ndị ahịa Weebụ na ụkpụrụ ha na-akwado, ma na-arụkwa ọrụ nke ọma n'ihu ndị ntụgharị okwu na adreesị netwọkụ na firewalls. Onye ọrụ onyunyo vidiyo igwe ojii chọrọ ịnweta ọrụ ahụ, ọbụlagodi na ọ na-eji igwefoto analog, ma na-ahọrọ ikiri mgbasa ozi vidiyo na-ebi ndụ na ngwaọrụ ọgbara ọhụrụ.
Ọ dị oke mkpa na onye ọrụ chọrọ ikiri vidiyo na obere oge. Ihe fọrọ nke nta ka ọ bụrụ naanị otu esi egosi vidiyo nwere obere latency na ihe nchọgharị bụ iji WebRTC (nzikọrịta ozi ịntanetị ozugbo). WebRTC bụ usoro teknụzụ maka mgbasa ozi ndị ọgbọ na ndị ọgbọ n'ime ihe nchọgharị, emebere ya maka mbufe na ịkpọghachi iyi vidiyo nwere obere oge. Maka nzube a, n'etiti ihe ndị ọzọ, a na-eji usoro UDP eme ihe.
Tupu anyị agwa gị ihe injin ọhụrụ na-enye onye ọrụ, anyị ga-echetara gị ihe kpatara na ihe kpatara anyị ji akwado teknụzụ HLS, yana ihe kpatara anyị ji kpebie ịga n'ihu.
Igwe HLS: Uru na ọghọm

()
Apple mepụtara teknụzụ HLS (HTTP Live Streaming), yabụ ọ bụghị ihe ijuanya na mbụ e ji ngwaọrụ Apple kwado ya. Taa, ihe fọrọ nke nta ka ọ bụrụ igbe niile dị n'elu na ọtụtụ ngwaọrụ na-agba ọsọ OS na-akwado vidiyo HLS. Android.
Igwe HLS na-eji codec vidiyo H264 ama ama yana njikọta na iyi ọdịyo AAC ma ọ bụ MP3 iji weba data vidiyo. A na-akwakọba iyi data ọdịyo na vidiyo niile n'ime akpa njem MPEG-TS. Maka nnyefe site na protocol HTTP, a na-ekewa ozi dị na iyi ahụ n'ime iberibe akọwara na listi ọkpụkpọ m3u8. Naanị mgbe ahụ ka a na-ebufe iberi ndị a, yana ndepụta ọkpụkpọ, site na HTTP. Igbu na-akpaghị aka pụtara igbu oge na sekọnd. Nke a bụ akụkụ nke MPEG-TS akpa.
Igwe HLS na-akwadokwa iyi multibitrate, Live/VOD.
Isi uru nke HLS:
- nkwado arụnyere n'ime ihe nchọgharị niile bụ isi;
- mfe nke mmejuputa (tụnyere WebRTC);
- Ọ dị nnọọ mma na ịrụ ọrụ nke ọma iji hazie ụdị mgbasa ozi ọ bụla nye nnukwu ndị na-ege ntị n'ihi na enwere ike ibugo akụkụ na CDN otu ugboro.
N'agbanyeghị ịdị mfe nke injin ahụ, ọ bụghị ihe niile dị mma dị ka o siri dị. Nsogbu bụ isi bụ na ndị mmepe egwuregwu ndị ọzọ esiwo na ndụmọdụ Apple pụọ, dịka ọmụmaatụ n'ihe gbasara usoro ọdịyo akwadoro. Karịsịa, ọtụtụ ndị mmepe malitere ịgbakwunye ikike ịrụ ọrụ na iyi egwu egwu a ma ama: mpeg2 vidiyo, mpeg2 audio, wdg. N'ihi ya, ha ga-emepụta ụdị egwu egwu dị iche iche maka ndị egwuregwu dị iche iche.
Mana otu n'ime nsogbu kachasị na injin HLS bụ nnukwu latency na mbufe data.
Isi mmalite nke "brek"
Isi ihe kpatara nkwụsị nke HLS dị elu bụ n'eziokwu na ndị mmemme kere engine iji nweta ihe oyiyi kachasị mma. Ya mere, akụkụ nke etiti etiti etiti ejiri na nha nke ihe nkpuchi egwu anaghị adabara maka mgbasa ozi vidiyo dị ndụ. N'ihi nke a, enwere ogologo oge dị elu na nnyefe vidiyo, nke nwere ike ịbụ 5-7 sekọnd.
N'otu aka ahụ, nke a abụghị ihe dị ukwuu, dịka ọmụmaatụ, maka ndị na-ekiri ihe nkiri site na ihe nkesa nchịkọta vidiyo. Mana maka sistemu onyunyo vidiyo, igbu oge na-ebufe ihe onyonyo vidiyo nwere ike ịdị oke mkpa.
Ọ bụrụ na ị na-ekiri ụlọ ọrụ ebe ndị ọrụ na-elepụ anya site na nlekota ha otu ugboro n'otu elekere, mgbe ahụ igbu oge nke 5 sekọnd adịghị mkpa ma ọlị. Mana ndị mmadụ malitere mkpesa na dịka ọmụmaatụ, mgbe ha na-agbasa egwuregwu bọọlụ, ha deburu GOOOL na nkata ahụ, mana nke a erubeghị na vidiyo :). Anyị enweelarị ọtụtụ ikpe onye ọrụ ebe Ivideon kwesịrị iji dochie Skype.
Ọ ga-ekwe omume imeri latency na HLS? Azịza nke ajụjụ a dị ka okwu onye nwere ahụmahụ na-ekpochapụ oke oke n'okwu nkuzi nye ndị ọkachamara n'ịchịkwa ahụhụ na pesti: "A pụghị ikpochapụ oke oke, mana enwere ike ibelata ọnụ ọgụgụ ha ka ọ bụrụ nke kacha nta." N'otu aka ahụ na igbu oge na HLS, ọ gaghị ekwe omume ibelata ya na efu, mana enwere ngwọta na ahịa nke nwere ike ibelata nkwụsịtụ nke ukwuu.
Mbelata dị mma
Mwepu ọzọ nke engine bụ iji obere faịlụ maka ịnyefe data. Ọ ga-adị ka gịnị na-eme nke a?
Onye ọ bụla nwara iṅomi ọtụtụ obere faịlụ site n'otu usoro gaa na nke ọzọ eleghị anya achọpụtala na ọsọ ederede nke nhazi dị otú ahụ dị nnọọ ala karịa otu nnukwu faịlụ nke otu nha. Na ike nke ịnweta draịvụ ike na-abawanye nke ukwuu, nke na-emetụtakarị arụmọrụ nke kọmputa niile. Ya mere, ịnyefe data vidiyo na obere nkeji 10 nke abụọ na-enyekwa aka n'ịbawanye nkwụsị engine.
Ka anyị chịkọta nkenke uru niile na ọghọm dị na teknụzụ HLS.
Uru nke HLS:
- Ikike iji ngwaọrụ ọ bụla rụọ ọrụ. Ị nwere ike ikiri vidiyo na ngwaọrụ ọgbara ọhụrụ ọ bụla, ma ọ bụ smartphone, mbadamba, laptọọpụ ma ọ bụ PC desktọọpụ. Ihe bụ isi bụ na ihe nchọgharị weebụ dị ọhụrụ yana dakọtara na HTML5 na Media Source Extensions.
- Mma oyiyi mara mma. Ọrụ nnyefe data na-agbanwe agbanwe na-enye gị ohere ịgbanwe ịdịmma nke vidiyo ebugharị dabere na bandwit nke njikọ ịntanetị, ebe algọridim na-agba mbọ idobe ogo kacha.
- Ọ dịghị mkpa maka nhazi mgbagwoju anya nke akụrụngwa onye ọrụ.
Ọghọm:
- Nkwado nwere oke maka iji injin rụọ ọrụ na ngwaọrụ ụfọdụ.
- Nnukwu igbu oge na nnyefe onyonyo.
- Mmụba dị ịrịba ama na n'elu na mgbagwoju anya nke njikarịcha n'ihi iji obere faịlụ. N'ihi ọdịdị nke akpa ahụ, anyị agaghị enwe ike ịnweta latency dị ala karịa nha nke akụkụ.
Ọdịmma nke HLS karịrị uru ya karịa anyị wee manye anyị ịchọ nhọrọ ndị ọzọ.
Kedu ihe bụ WebRTC

()
Google mepụtara WebRTC n'elu ikpo okwu na 2011 iji nyefee vidiyo na data ọdịyo dị n'etiti ihe nchọgharị na ngwa mkpanaaka na obere latency. Maka nke a, a na-eji ọkọlọtọ UDP ọkọlọtọ na algọridim njikwa ọsọ pụrụ iche. Taa ọ bụ ọrụ mepere emepe, Google na-arụsi ọrụ ike ma na-emepụta ya.
WebRTC bụ usoro teknụzụ maka mgbasa ozi vidiyo na ndị ọgbọ. Ya bụ, dịka ọmụmaatụ, ihe nchọgharị onye ọrụ na-eji WebRTC nwere ike ịnyefe data na ibe ya ozugbo, na-enweghị iji sava dịpụrụ adịpụ maka ịchekwa na nhazi data. A na-ahazikwa ozi niile site na ihe nchọgharị ndị ọrụ njedebe na ngwa mkpanaka.
Ndị mmepe nke ihe nchọgharị weebụ niile ama ama aghọtala ịdị mma na ikike dị ukwuu nke teknụzụ a. Nkwado WebRTC dị ugbu a na Mozilla Firefox, Opera, Google Chrome (na ihe nchọgharị niile dabere na Chromium), yana na ngwa mkpanaka na-agba ọsọ Android na iOS.
Maka uru ya niile enweghị mgbagha, WebRTC nwere ọtụtụ ọghọm dị mkpa.
Ihe isi ike nke oke
Teknụzụ WebRTC dị mgbagwoju anya karịa n'ihe gbasara mmekọrịta netwọkụ n'ihi na ọ bụ ihe gbasara P2P. O siri ike ihichapụ, nwalee, ma nwee ike ịkpa àgwà na-enweghị atụ. N'otu oge ahụ, anyị kwesịrị imeri NAT na firewall, anyị kwesịrị ịhụ na ọrụ na netwọk ebe UDP na-egbochi.
Mmejuputa WebRTC nke Google siri ike iji. Enwere ọbụna ụlọ ọrụ dum na-enye ọrụ mgbakọ SDK. Na mgbakwunye, mmejuputa Google siri ike ijikọ na sistemụ anyị na-enweghị idegharị vidiyo niile.
Otú ọ dị, anyị chọsiri ike inye ndị ọrụ ohere ịrụ ọrụ na vidiyo "dị ndụ" zuru oke ma belata nkwụsị n'etiti ihe oyiyi na ihuenyo na ihe omume n'onwe ha. Na mgbakwunye, anyị nwere ọchịchọ iji igwefoto PTZ, ebe igbu oge dị oke egwu, nwee ntụsara ahụ.
N'iburu n'uche na mmejuputa ihe mgbochi ndị ọzọ ka nwere oke ọrụ ma na-arụ ọrụ nke ọma, anyị kpebiri iji WebRTC.
Gịnị ka anyị mere

Ịmejuputa usoro ikpo okwu WebRTC nke ọma abụghị ọrụ dị mfe. Ihe ọ bụla na-ezighị ezi ma ọ bụ ezighi ezi nwere ike iduga igbu oge na mgbasa ozi vidiyo ọ bụghị naanị na ọ bụghị ibelata ma e jiri ya tụnyere nyiwe ndị ọzọ, ma ọbụna na-abawanye.
Ka WebRTC rụọ ọrụ nke ọma, nke mbụ, ọ dị mkpa iji mepụta nkwalite teknụzụ nke tojupụtara maka ịrụ ọrụ na vidiyo weebụ. Nke ahụ bụ ihe anyị mere.
Nke mbu, anyi mebere ihe nkesa akara ngosi WebRTC n'elu Websocket, ma bukwaa sava WebRTC n'igwe ojii dabere na webrtc.org SDK. Ọrụ ya bụ ikesa iyi vidiyo na ndị ọgbọ WebRTC ahịa na H.264 + Opus / G.711 na-enweghị transcoding vidiyo.
Anyị họọrọ Websocket dị ka ụkpụrụ nrịbama n'ihi na o nweela nkwado dị elu na ihe nchọgharị weebụ niile ama ama. N'ihi nke a, ị nwere ike belata ọ bụghị naanị mmepe n'elu, kamakwa zere igbu oge na akụrụngwa na aka TCP na TLS ugboro ugboro ma e jiri ya tụnyere AJAX.
Nke bụ eziokwu bụ na, site na ndabara, WebRTC anaghị enye ụkpụrụ nrịbama dị mkpa iji hazie nke ọma, dokwaa ma kwụsị nzikọrịta ozi vidiyo n'etiti isi mmalite na ngwa ndị ahịa.
Na iji onwe ya mejuputa teknụzụ nrịbama, anyị kwesịrị ịzụlite ihe nkesa akara nke anyị na nkwado maka ọtụtụ ụkpụrụ web (Websocet, WebRTC). Site n'ikike ijikwa oge na ọkwa n'enweghị nsogbu, njikwa vidiyo na ọtụtụ ndị ọzọ.
Anyị meriri njedebe nke P2P site n'ibelata nkwụsịtụ ọ bụghị site na P2P, kama site na UDP na njikwa mmiri iji belata nkwụsị. A na-ewukwa nke a na WebRTC, ebe ọ bụ na isi ihe eji eme ihe bụ mkparịta ụka p2p site na ihe nchọgharị.
Na mobile ahịa, anyị emejuputa atumatu player site na iji webrtc.org SDK, ebe ọ bụ naanị na ọ na-arụ ọrụ n'ụzọ ziri ezi eruba akara, nwere niile mara Forward Error Correction (FEC) atụmatụ, na n'ụzọ ziri ezi mejuputa usoro maka resending ngwugwu niile nchọgharị. Ọ dịkwa mkpa na Google na-arụsi ọrụ ike webrtc.org SDK.
Kedu ihe si na ntinye WebRTC?
Ka ilele vidiyo dị ndụ site na igwefoto, anyị atụkwasịla ọkpụkpọ kachasị ọhụrụ dabere na WebRTC na akaụntụ nkeonwe gị. Ọ na-enye ngwa ngwa nbudata vidiyo ngwa ngwa ma kpochapụ nsogbu nke mkpokọta latency kpamkpam ka oge nlele na-abawanye.
Mgbe ewebata nkwado WebRTC na ọrụ ígwé ojii Ivideon, anyị nwere ike iji obi ike zuru ezu kwuo na ndị ahịa anyị nwere ike lelee vidiyo ndụ zuru oke ugbu a. Ugbu a igbu oge mgbe usoro mgbasa ozi vidiyo anaghị agafe otu sekọnd! Maka ntụnyere, injin HLS gara aga nyere nnyefe vidiyo na igbu oge nke 5-7 sekọnd. Ọdịiche dị na ọsọ ngosi vidiyo dị oke mkpa, onye ọrụ ga-ahụkwa ya ozugbo ịmalitere ọrụ vidiyo anyị.
Dị ka anyị tụrụ anya, mmejuputa onye ọkpụkpọ ọhụrụ ahụ emeela ka nzaghachi nke PTZ na nkwurịta okwu olu na igwefoto dịkwuo mma.

Enwere naanị otu isi ihe dị aghụghọ nke anyị chọrọ ịdọrọ uche gaa na ya. Ihe ọkpụkpọ WebRTC ọhụrụ na-arụ ọrụ ugbu a na ọnọdụ ule. Ya mere, anyị anaghị eme ya maka ndị ahịa anyị niile na ndabara. Mana ị nwere ike ịgbalite ya n'onwe gị site n'ịkwalite ihe kwekọrọ na ntọala igwefoto (ime nke a ịkwesịrị ịga na ).
Akụkụ nke mmejuputa WebRTC na ọrụ Ivideon

WebRTC ka bụ teknụzụ nnwale ugbu a. Emebebeghị nkwado ya nke ọma na ihe nchọgharị niile na ngwaọrụ ndị ọrụ, ọ bụghịkwa na igwefoto niile.
Nke a bụ kpọmkwem ihe kpatara na anyị emebeghị ka onye ọkpụkpọ WebRTC bụrụ nke ndị ọrụ niile.
Maka ugbu a, anyị na-akwado iji WebRTC naanị na ihe nchọgharị Google Chrome. Ụdị Firefox na Safari ọhụrụ na-akwadokwa teknụzụ a, mana, ọ dị mwute ikwu na ọ ka na-akwụsighị ike.
Anyị emebebeghị nkwado WebRTC maka ihe nchọgharị na ngwaọrụ mkpanaka. Ugbu a, ọ bụrụ na ịbanye na ngwaọrụ mkpanaka wee rụọ ọrụ WebRTC, ọnọdụ a agaghị arụ ọrụ. Agbanyeghị, WebRTC dị na ngwa mkpanaka anyị maka и .
Na imechi akụkọ gbasara njirimara nke mmejuputa WebRTC na ọrụ anyị, ka anyị rịba ama isi ihe abụọ ọzọ dị nro.
Nke mbụ, teknụzụ na-elekwasị anya na ịgbasa vidiyo dị ndụ ozugbo. Ya mere, ọ bụrụ na ọwa gị enweghị bandwidth zuru ezu iji busa vidiyo ahụ, ị ga-ahụ ka ọ na-adaba na etiti (ya na HLS, ị ga-ahụ na ọ na-ada ụda vidiyo ma na-abawanye latency, mana a gaghị enwe nkwụsị nke etiti), mana a ka ga-agbasa vidiyo ahụ n'ezie. oge.
Nke abuo, ebe ọ bụ na e mere teknụzụ ka ọ rụọ ọrụ kpọmkwem na vidiyo dị ndụ ozugbo, anyị anaghị eji ya rụọ ọrụ na data vidiyo echekwara.
Mgbanwe ndị ọzọ na ọrụ ahụ
N'oge a, Flash anaghịzi etinye aka na usoro nhọrọ injin akpaka. Ị ka nwere ike iji ọkpụkpọ dị otú ahụ, mana iji mee nke a, ị ga-eji aka họrọ ya na akaụntụ ma ọ bụ ntọala igwefoto. Nke a abụghị ụtụ maka ejiji, ọ bụ naanị na dịka ọnụ ọgụgụ nke ọrụ anyị si dị, ọ fọrọ nke nta ka ọ bụrụ ndị ọrụ ọ bụla fọdụrụ na-arụ ọrụ na Flash. Na-agbalị ịchọpụta ma ihe nchọgharị onye ọrụ na-akwado ya, anyị na-atụfu ihe dịka 2 sekọnd nke oge dị oké ọnụ ahịa.
Nke a bụ nkọwa nkenke nke mgbanwe ndị na-echere gị na sistemụ onyunyo vidiyo igwe ojii na akaụntụ nkeonwe anyị. Nọnyere anyị ma soro akụkọ!
isi: www.habr.com
