
Bho na ciad lĂ ithean de bhith ag obair air siostam sgrĂšdaidh bhidio sgòthan, bha duilgheadas againn, Ă s aonais fuasgladh a dh âfhaodadh sinn a leigeil seachad air Ivideon - bâ e seo an Everest againn, sreap a thug tòrr lĂšth, ach a-nis tha sinn mu dheireadh thall. steigeil tuagh-deighe a-steach do mhullach an tòimhseachan tar-Ă rd-Ăšrlar.
Cha bu chòir don t-siostam airson claisneachd is bhidio a chuir thairis air an eadar-lĂŹn a bhith an urra ri uidheamachd, teachdaichean lĂŹn agus na h-inbhean a tha iad aâ toirt taic, agus cuideachd obrachadh gu ceart an lĂ thair Eadar-theangairean Seòladh LĂŹonra agus ballachan teine. Tha neach-cleachdaidh sgrĂšdaidh bhidio sgòthan airson faighinn chun t-seirbheis, eadhon ged a chleachdas e camarathan analog, agus is fheĂ rr leis a bhith aâ coimhead bhidio beò air a chraoladh air an inneal as Ăšire.
Tha e glè chudromach gu bheil an neach-cleachdaidh airson coimhead air bhideothan le glè bheag de dhĂ il. Is e cha mhòr an aon dòigh air bhidio a shealltainn le latency ĂŹosal ann am brobhsair a bhith aâ cleachdadh WebRTC (conaltradh fĂŹor-Ăšine lĂŹn). Tha WebRTC na sheata de theicneòlasan airson tar-chuir bhidio is claisneachd ann am brobhsairean, a chaidh a dhealbhadh an toiseach airson sruthan bhidio a chuir air ais agus a chluich le latency ĂŹosal. Airson an adhbhair seo, am measg rudan eile, tha am protocol UDP air a chleachdadh.
Mus innis sinn dhut dè a bheir an einnsean Ăšr don neach-cleachdaidh, cuiridh sinn nad chuimhne carson agus carson a tha sinn aâ toirt taic do theicneòlasan HLS, agus carson a chuir sinn romhainn gluasad air adhart.
Einnsean HLS: buannachdan agus eas-bhuannachdan

()
Chaidh teicneòlas HLS (HTTP Live Streaming) a leasachadh le Apple, agus mar sin chan eil e na iongnadh gun deach taic a thoirt dha an toiseach air innealan Apple. An-diugh, tha bhidio HLS cuideachd aâ faighinn taic bho cha mhòr a h-uile bogsa seata-mhullaich agus mòran innealan a tha aâ ruith an OS. Android.
Bidh an einnsean HLS aâ cleachdadh an codec bhidio H264 ainmeil ann an co-bhonn ri sruthan claisneachd AAC no MP3 gus dĂ ta bhidio a shruthladh. Tha an sruth dĂ ta claisneachd is bhidio gu lèir air a phacaigeadh a-steach do shoitheach còmhdhail MPEG-TS. Airson a chraoladh tro phròtacal HTTP, tha am fiosrachadh a tha san t-sruth air a roinn ann am pĂŹosan a tha air am mĂŹneachadh ann an liostaichean-cluiche m3u8. Agus dĂŹreach an uairsin tha na criomagan sin, còmhla ri clĂ ran-cluiche, air an gluasad tro HTTP. Tha suathadh gu fèin-ghluasadach aâ ciallachadh dĂ il ann an diogan. 'S e seo feart de na MPEG-TS container.
Bidh an einnsean HLS cuideachd aâ toirt taic do shruthan multibitrate, Live/VOD.
PrĂŹomh bhuannachdan HLS:
- taic stèidhichte anns a h-uile prÏomh bhrobhsair;
- furasta a chuir an gnĂŹomh (an coimeas ri WebRTC);
- Tha e gu math goireasach agus èifeachdach a h-uile seòrsa de chraoladh a chuir air dòigh gu luchd-èisteachd mòr leis gum faodar earrannan a luchdachadh suas gu CDN aon uair.
A dh'aindeoin cho sÏmplidh 'sa tha an einnsean, chan eil a h-uile dad cho rèidh' sa tha e coltach. Is e am prÏomh dhuilgheadas gu bheil luchd-leasachaidh cluicheadair treas-phà rtaidh air gluasad air falbh bho mholaidhean Apple, mar eisimpleir a thaobh cruthan claisneachd le taic. Gu sònraichte, thòisich mòran de luchd-leasachaidh air an comas a bhith ag obair le sruthan claisneachd mòr-chòrdte: mpeg2 bhidio, mpeg2 claisneachd, msaa Mar thoradh air an sin, bha aca ri diofar chruthan playlist a chruthachadh airson diofar chluicheadairean.
Ach is e aon de na duilgheadasan as motha leis an einnsean HLS an ĂŹre Ă rd de ghluasad dĂ ta.
Cò Ă s a thĂ inig âbreicicheanâ
Is e am prĂŹomh adhbhar airson latency Ă rd HLS gu bheil luchd-prògramaidh air an einnsean a chruthachadh gus ĂŹomhaighean den chĂ ileachd as Ă irde fhaighinn. Mar sin, chan eil paramadairean an eadar-ama frèam a thathar aâ cleachdadh agus meud aâ bhufair ath-chluich dĂŹreach freagarrach airson craolaidhean bhidio beò. Air sgĂ th seo, tha dĂ il gu math Ă rd ann an sgaoileadh fiolm bhidio, a dh'fhaodas a bhith 5-7 diogan.
Air an aon lĂ imh, chan eil seo mòran, mar eisimpleir, dhaibhsan a bhios a 'coimhead film bho fhrithealaiche aoigheachd bhidio. Ach airson siostaman sgrĂšdaidh bhidio, faodaidh an dĂ il ann a bhith aâ sgaoileadh fiolm bhidio a bhith glè chudromach.
Ma tha thu a 'coimhead oifis far am bi luchd-obrach a' coimhead suas bho na sgrÚdairean aca uair san uair, chan eil dà il de 5 diogan gu diofar. Ach thòisich daoine a 'gearan, mar eisimpleir, nuair a bha iad a' craoladh geama ball-coise, gu robh iad mar-thà a 'sgrÏobhadh GOOOOL anns a' chat, ach chan eil seo air a 'bhidio fhathast :). Tha grunn chÚisean luchd-cleachdaidh againn mu thrà th far am bu chòir do Ivideon a dhol an à ite Skype gu practaigeach.
A bheil e comasach faighinn seachad air latency ann an HLS? Tha freagairt na ceiste seo coltach ri òraid neach-sgrios radain eòlach aig òraid do eòlaichean smachd air plĂ ighean Ăšra: âChan urrainnear radain a chuir Ă s, ach faodar na h-Ă ireamhan aca a lughdachadh gu ĂŹre reusanta.â Mar an ceudna leis an dĂ il ann an HLS, cha bhith e comasach a lughdachadh gu neoni, ach tha fuasglaidhean air aâ mhargaidh a dhâ fhaodadh an dĂ il a lughdachadh gu mòr.
Gearraidhean breagha
Is e eas-bhuannachd eile den einnsean cleachdadh faidhlichean beaga airson gluasad dà ta. Bhiodh e coltach dè tha ceà rr air seo?
Is dòcha gu bheil neach sam bith a tha air feuchainn ri Ă ireamh mhòr de fhaidhlichean beaga a chopaigeadh bho aon mheadhan gu meadhan eile air mothachadh gu bheil astar sgrĂŹobhaidh seata mar seo mòran nas ĂŹsle na aon fhaidhle mòr den aon mheud. Agus tha an dian ruigsinneachd air a 'chlĂ r-chruaidh a' meudachadh gu mòr, a tha sa chumantas a 'toirt droch bhuaidh air coileanadh a' choimpiutair gu lèir. Mar sin, bidh tar-chuir dĂ ta bhidio ann am pĂŹosan beaga 10 diog cuideachd aâ cur ri barrachd latency einnsean.
Bheir sinn geà rr-chunntas goirid air na buannachdan agus na h-eas-bhuannachdan a tha an lÚib teicneòlas HLS.
Buannachdan HLS:
- Comas a bhith ag obair le inneal sam bith. Faodaidh tu coimhead air bhideothan air inneal Ăšr-nodha sam bith, ge bith an e fòn cliste, clĂ r, laptop no PC deasg a thâ ann. Is e am prĂŹomh rud gu bheil am brabhsair lĂŹn Ăšraichte agus co-chòrdail ri HTML5 agus Media Source Extensions.
- CĂ ileachd ĂŹomhaigh sĂ r-mhath. Leigidh an gnĂŹomh tar-chuir dĂ ta atharrachail a thèid a chleachdadh leat cĂ ileachd aâ bhidio a chaidh a ghluasad atharrachadh gu dinamach a rèir leud bann a âcheangail eadar-lĂŹn, fhadâ s a tha an algairim a âfeuchainn ris aâ chĂ ileachd as Ă irde a chumail suas.
- Chan eil feum air rèiteachadh iom-fhillte de uidheamachd an neach-cleachdaidh.
-eas-bhuannachdan:
- Taic cuibhrichte airson a bhith ag obair leis an einnsean air cuid de dhâ innealan.
- DĂ il Ă rd ann an sgaoileadh ĂŹomhaighean.
- Meudachadh mòr ann an os cionn agus iom-fhillteachd optimization mar thoradh air cleachdadh fhaidhlichean beaga. Air sgà th nà dar an t-soithich, cha bhith e comasach dhuinn gu brà th latency fhaighinn nas Ïsle na meud na h-earrainn.
Bha eas-bhuannachdan HLS nas Ă irde na na buannachdan aige dhuinne agus thug e oirnn coimhead airson roghainnean eile.
Dè a thâ ann an WebRTC

()
Chaidh an Ă rd-Ăšrlar WebRTC a leasachadh le Google ann an 2011 gus dĂ ta sruthadh bhidio is claisneachd a chuir eadar brobhsairean agus tagraidhean gluasadach le glè bheag de dhâ Ăšine. Airson seo, thathas aâ cleachdadh protocol Ă bhaisteach UDP agus algorithms smachd sruthadh sònraichte. An-diugh is e pròiseact stòr fosgailte a thâ ann, tha e air a chumail suas gu gnĂŹomhach le Google agus ga leasachadh.
Tha WebRTC na sheata de theicneòlasan airson sgaoileadh bhidio is claisneachd bho cho-aoisean. Is e sin, mar eisimpleir, faodaidh brobhsairean luchd-cleachdaidh a âcleachdadh WebRTC dĂ ta a ghluasad gu chèile gu dĂŹreach, gun a bhith aâ cleachdadh frithealaichean iomallach airson dĂ ta a stòradh agus a ghiullachd. Bidh a h-uile fiosrachadh cuideachd air a phròiseasadh le brobhsairean luchd-cleachdaidh deireannach agus tagraidhean gluasadach.
Tha luchd-leasachaidh a h-uile brabhsair mòr-chòrdte air meas a thoirt air goireasachd agus comasan farsaing na teicneòlais seo. Tha taic WebRTC ri fhaighinn an-drĂ sta ann am Mozilla Firefox, Opera, Google Chrome (agus a h-uile brabhsair stèidhichte air Chromium), a bharrachd air ann an aplacaidean gluasadach a tha aâ ruith Android agus iOS.
Airson a bhuannachdan gun teagamh, tha grunn eas-bhuannachdan cudromach aig WebRTC.
Duilgheadasan roghainn
Tha teicneòlas WebRTC tòrr nas iom-fhillte a thaobh eadar-obrachadh lÏonra leis gu bheil e mu dheidhinn P2P. Tha e duilich dÏ-bhugachadh, deuchainn, agus faodaidh e giÚlan fhèin gun dÚil. Aig an aon à m, feumaidh sinn faighinn seachad air NAT agus balla-teine, feumaidh sinn dèanamh cinnteach obrachadh ann an lÏonraidhean far a bheil UDP bacadh.
Tha buileachadh WebRTC Google gu math duilich a chleachdadh. Tha eadhon companaidh slĂ n ann a bheir seachad seirbheisean cruinneachaidh SDK. A bharrachd air an sin, bha e gu math duilich buileachadh Google fhilleadh a-steach leis an t-siostam againn gun a bhith ag ath-chòdachadh aâ bhidio gu lèir.
Ach, tha sinn air a bhith ag iarraidh o chionn fhada cothrom a thoirt do luchd-cleachdaidh a bhith ag obair le bhidio âbeòâ lĂ n-chuimseach agus a âlughdachadh an dĂ il eadar an ĂŹomhaigh air an sgrion agus na tachartasan fhèin. A bharrachd air an sin, bha miann againn camarathan PTZ a chleachdadh, far a bheil dĂ il deatamach, nas comhfhurtail.
Leis gu bheil gnĂŹomhachd cuibhrichte fhathast aig gnĂŹomhachd an-aghaidh lag eile agus gu bheil iad ag obair gu math nas miosa, chuir sinn romhainn WebRTC a chleachdadh.
Dè a rinn sinn

Chan e obair fhurasta a thâ ann a bhith aâ buileachadh Ă rd-Ăšrlar WebRTC gu ceart. Faodaidh mearachd no mearachd sam bith leantainn gu dĂ il ann an sgaoileadh bhidio chan ann a-mhĂ in gun a bhith aâ lughdachadh an taca ri Ă rd-Ăšrlaran eile, ach eadhon a âdol am meud.
Gus an obraich WebRTC gu ceart, an toiseach, feumar Ăšrachadh teicneòlach a dhèanamh air a âchruach airson a bhith ag obair le bhidio lĂŹn. Sin a rinn sinn.
An toiseach, chuir sinn an gnÏomh frithealaiche protocol comharran WebRTC thairis air Websocket, agus chuir sinn cuideachd frithealaiche co-aoisean WebRTC san sgòth stèidhichte air an webrtc.org SDK. Is e an obair aige sruthan bhidio a sgaoileadh gu co-aoisean WebRTC teachdaiche ann an cruth H.264 + Opus/G.711 gun transcoding bhidio.
Thagh sinn Websocket mar am pròtacal comharran oir tha taic à rd-inbhe aige mu thrà th anns a h-uile brobhsair lÏn mòr-chòrdte. Mar thoradh air an seo, faodaidh tu chan e a-mhà in leasachadh os cionn a lughdachadh gu mòr, ach cuideachd seachain Úine agus goireasan air crathadh là imhe TCP agus TLS a-rithist an coimeas ri AJAX.
Is e an fhĂŹrinn, gu gnĂ thach, nach eil WebRTC aâ toirt seachad am protocol comharran a tha riatanach gus conaltradh bhidio fĂŹor-Ăšine a rèiteachadh, a chumail suas agus a thoirt gu crĂŹch eadar an stòr agus tagraidhean teachdaiche.
Agus gus teicneòlas comharran a chuir an gnĂŹomh gu neo-eisimeileach, dh'fheumadh sinn ar frithealaiche comharran fhèin a leasachadh le taic airson grunn phròtacalan lĂŹn (Websocet, WebRTC). Agus leis aâ chomas air seiseanan agus fiosan a riaghladh gu tèarainte ann an Ă m fĂŹor, riaghladh bhidio agus mòran a bharrachd.
Fhuair sinn thairis air crĂŹochan P2P le bhith aâ lughdachadh latency chan ann tro P2P, ach tro UDP agus smachd sruthadh gus latency a lughdachadh. Tha seo cuideachd air a thogail a-steach do WebRTC, leis gur e am prĂŹomh chĂšis cleachdaidh còmhraidhean p2p tro bhrobhsair.
Anns a âchliant gluasadach, chuir sinn an cluicheadair an gnĂŹomh aâ cleachdadh an webrtc.org SDK, leis nach eil ann ach gu bheil e a âcur an gnĂŹomh smachd sruthadh gu ceart, gu bheil na sgeamaichean aithnichte airson Ceartachadh Mearachd air adhart (FEC), agus gu ceart aâ cur an gnĂŹomh an uidheamachd airson pacaidean a chuir air ais airson a h-uile brobhsair. Tha e cuideachd cudromach gu bheil an webrtc.org SDK ga leasachadh gu gnĂŹomhach le Google.
Dè an toradh a thâ ann a bhith aâ buileachadh WebRTC?
Gus coimhead air bhidio beò bho chamarathan, tha sinn air cluicheadair lĂ n-leasaichte Ăšr stèidhichte air WebRTC a chuir ris aâ chunntas pearsanta agad. Bidh e a âtoirt seachad astar luchdachadh bhidio luath agus aâ cuir Ă s gu tur an duilgheadas a thaobh latency a âcruinneachadh mar a bhios an Ăšine seallaidh aâ dol am meud.
Ăs deidh dhuinn taic WebRTC a thoirt a-steach ann an seirbheis sgòthan Ivideon, faodaidh sinn a rĂ dh le lĂ n mhisneachd gum faod ar teachdaichean a-nis coimhead air bhidio beò lĂ n-chuimseach. A-nis chan eil an dĂ il ann a bhith aâ craoladh sreathan bhidio nas fhaide na aon diog! Airson coimeas a dhèanamh, thug an einnsean HLS roimhe seachad lĂŹbhrigeadh bhidio le dĂ il de 5-7 diogan. Tha an eadar-dhealachadh ann an astar taisbeanaidh bhidio glè chudromach, agus mothaichidh an neach-cleachdaidh e sa bhad Ă s deidh dha tòiseachadh ag obair leis an t-seirbheis bhidio againn.
Mar a bha sinn an dĂšil, tha buileachadh aâ chluicheadair Ăšr air freagairteachd PTZ agus conaltradh guth leis aâ chamara a leasachadh.

Chan eil ann ach aon phuing seòlta air a bheil sinn airson aire a tharraing. Tha an cluicheadair WebRTC Ăšr ag obair ann am modh deuchainn an-drĂ sta. Agus is ann air sgĂ th sin nach eil sinn ga chomasachadh airson ar teachdaichean gu lèir gu bunaiteach. Ach faodaidh tu fhèin a chuir an gnĂŹomh le bhith a âcomasachadh an rud co-fhreagarrach ann an roghainnean aâ chamara (airson seo a dhèanamh feumaidh tu a dhol gu ).
Feartan buileachadh WebRTC anns an t-seirbheis Ivideon

Tha WebRTC fhathast na theicneòlas deuchainneach an-drà sta. Chan eil an taic aige fhathast air a chuir an gnÏomh gu ceart anns a h-uile brobhsair agus inneal cleachdaiche, agus cuideachd chan ann anns a h-uile camara.
Is e seo dÏreach carson nach eil sinn fhathast air an cluicheadair WebRTC a dhèanamh mar an à bhaist airson a h-uile neach-cleachdaidh.
Airson a-nis, tha sinn aâ moladh WebRTC a chleachdadh a-mhĂ in ann am brobhsairean Google Chrome. Tha na dreachan as Ăšire de Firefox agus Safari cuideachd a 'toirt taic don teicneòlas seo, ach, gu mĂŹ-fhortanach, tha e fhathast neo-sheasmhach.
Chan eil sinn fhathast air taic WebRTC a chuir an gnÏomh airson brobhsairean air innealan gluasadach. An-drà sta, ma logas tu a-steach bho inneal gluasadach agus ma chuireas tu WebRTC an gnÏomh, chan obraich am modh seo. Ach, tha WebRTC ri fhaighinn anns na tagraidhean gluasadach againn airson и .
Agus aâ crĂŹochnachadh na sgeòil mu fheartan buileachadh WebRTC nar seirbheis, bheir sinn fa-near dĂ phuing nas seòlta.
An toiseach, tha an teicneòlas ag amas air bhidio beò a chraoladh ann an Ă m fĂŹor. Mar sin, mura h-eil leud-bann gu leòr aig an t-sianal agad airson aâ bhidio a chraoladh, chĂŹ thu tuiteaman frèam (le HLS chĂŹ thu crĂŹonadh bhidio agus barrachd latency, ach cha bhi frèam ann), ach bidh aâ bhidio fhathast air a chraoladh ann am fĂŹor uair.
San dà rna h-à ite, leis gu bheil an teicneòlas air a dhealbhadh gus obrachadh gu sònraichte le bhidio beò ann an à m fÏor, cha bhith sinn ga chleachdadh gus obrachadh le dà ta bhidio tasglann.
Atharraichean eile air an t-seirbheis
Aig an Ă m seo, chan eil Flash an sĂ s tuilleadh anns an inneal taghadh einnsean fèin-ghluasadach. Faodaidh tu fhathast cluicheadair mar seo a chleachdadh, ach airson seo a dhèanamh feumaidh tu a thaghadh le lĂ imh ann an roghainnean aâ chunntais no a âchamara. Chan eil seo na mholadh air fasan, is e dĂŹreach a rèir staitistig ar seirbheis, cha mhòr nach eil luchd-cleachdaidh air fhĂ gail ag obair le Flash. Agus a 'feuchainn ri faighinn a-mach a bheil brabhsair an neach-cleachdaidh a' toirt taic dha, bidh sinn a 'call timcheall air 2 dhiog de Ăšine luachmhor.
Seo tar-shealladh goirid air na h-atharrachaidhean a tha aâ feitheamh riut anns an t-siostam sgrĂšdaidh bhidio sgòthan agus an cunntas pearsanta againn. Fuirich còmhla rinn agus lean na naidheachdan!
Source: www.habr.com
