
Tun daga kwanakin farko na aiki a kan tsarin kula da bidiyo na girgije, mun fuskanci matsala, ba tare da maganin da za mu iya dainawa akan Ivideon ba - wannan shine Everest, hawan wanda ya ɗauki makamashi mai yawa, amma yanzu muna da ƙarshe. makale gatari na kankara a cikin saman wasan wasan giciye-dandamali.
Tsarin watsa sauti da bidiyo ta Intanet bai kamata ya dogara da kayan aiki, abokan cinikin gidan yanar gizo da ka'idojin da suke tallafawa ba, sannan kuma suyi aiki daidai a gaban Masu Fassara Adireshin Sadarwar Sadarwa da Tacewar wuta. Mai amfani da bidiyon girgije yana son samun damar sabis, koda kuwa yana amfani da kyamarori na analog, kuma ya fi son kallon watsa shirye-shiryen bidiyo kai tsaye akan na'urar zamani.
Yana da matukar mahimmanci cewa mai amfani yana son kallon bidiyo tare da ɗan jinkiri. Kusan hanya ɗaya tilo don nuna bidiyo tare da ƙarancin jinkiri a cikin mai lilo shine amfani da WebRTC (samun sadar yanar gizo ta ainihin lokacin). WebRTC saitin fasahohi ne don watsa bidiyo da mai jiwuwa-tsara a cikin masu bincike, da farko an tsara su don watsawa da sake kunna rafukan bidiyo tare da ƙarancin jinkiri. Don wannan dalili, a tsakanin sauran abubuwa, ana amfani da ka'idar UDP.
Kafin mu gaya muku abin da sabon injin ke ba mai amfani, za mu tunatar da ku dalilin da yasa muke tallafawa fasahar HLS, da dalilin da yasa muka yanke shawarar ci gaba.
Injin HLS: ribobi da fursunoni

()
Apple ne ya ƙirƙiro fasahar HLS (HTTP Live Streaming), don haka ba abin mamaki ba ne cewa an fara tallata ta a kan na'urorin Apple. A yau, kusan dukkan akwatunan set-top da na'urori da yawa suna gudanar da tsarin aiki suna tallafawa bidiyon HLS. Android.
Injin HLS yana amfani da sanannen codec na bidiyo na H264 a hade tare da rafukan sauti na AAC ko MP3 don watsa bayanan bidiyo. Gaba dayan rafin bayanan sauti da na bidiyo an tattara su cikin kwandon jigilar kaya na MPEG-TS. Don watsawa ta hanyar ka'idar HTTP, an raba bayanin da ke cikin rafi zuwa guntuwar da aka kwatanta a cikin jerin waƙoƙin m3u8. Sannan kawai waɗannan gutsuttsura, tare da lissafin waƙa, ana watsa su ta HTTP. Chunking ta atomatik yana nufin jinkiri cikin daƙiƙa. Wannan shi ne wani alama na MPEG-TS ganga.
Injin HLS kuma yana goyan bayan rafukan rafuka masu yawa, Live/VOD.
Babban fa'idodin HLS:
- ginanniyar tallafi a cikin duk manyan masu bincike;
- sauƙin aiwatarwa (idan aka kwatanta da WebRTC);
- Yana da matukar dacewa da inganci don tsara kowane nau'in watsa shirye-shirye zuwa ga manyan masu sauraro saboda gaskiyar cewa ana iya loda sassan zuwa CDN sau ɗaya.
Duk da sauƙi na injin, ba duk abin da ke da santsi kamar yadda ake gani ba. Babban matsalar ita ce, masu haɓaka ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun za su haɓaka ta ƙaura daga shawarwarin Apple, misali ta fuskar tsarin sauti masu goyan baya. Musamman ma, yawancin masu haɓakawa sun fara ƙara ikon yin aiki tare da mashahuran rafukan sauti: mpeg2 bidiyo, mpeg2 audio, da sauransu. Sakamakon haka, dole ne su ƙirƙiri nau'ikan jerin waƙoƙi daban-daban don 'yan wasa daban-daban.
Amma ɗayan manyan matsalolin injin HLS shine babban latency a canja wurin bayanai.
Asalin "brake"
Babban dalilin babban latency na HLS ya ta'allaka ne a cikin gaskiyar cewa masu shirye-shirye sun kirkiro injin don samun hotuna mafi inganci. Don haka, ma'aunin tazarar firam ɗin da aka yi amfani da shi da girman buffer na sake kunnawa ba su dace da watsa shirye-shiryen bidiyo kai tsaye ba. Saboda wannan, akwai jinkiri mai girma a watsa shirye-shiryen bidiyo, wanda zai iya zama 5-7 seconds.
A gefe guda, wannan ba shi da yawa, alal misali, ga waɗanda ke kallon fim daga uwar garken karɓar bidiyo. Amma don tsarin sa ido na bidiyo, jinkirin watsa hotunan bidiyo na iya zama mahimmanci.
Idan kana kallon ofis inda ma'aikata ke kallon sama daga masu lura da su sau ɗaya a sa'a, to jinkirin daƙiƙa 5 ba shi da mahimmanci ko kaɗan. Amma mutane sun fara korafin cewa, alal misali, lokacin da ake watsa wasan ƙwallon ƙafa, sun riga sun rubuta GOOOL a cikin hira, amma har yanzu ba a kan bidiyon ba :). Mun riga mun sami adadin lokuta masu amfani inda Ivideon yakamata ya maye gurbin Skype a zahiri.
Shin yana yiwuwa a doke latency a cikin HLS? Amsar wannan tambayar tayi kama da jawabin ƙwararren mai kashe bera a wata lacca ga ƙwararrun ƙwararrun ƙwari: “Ba za a iya kawar da berayen ba, amma ana iya rage adadinsu zuwa mafi ƙanƙanta.” Hakanan tare da jinkiri a cikin HLS, ba zai yiwu a rage shi zuwa sifili ba, amma akwai mafita akan kasuwa wanda zai iya rage jinkirin sosai.
Yanke mai kyau
Wani rashin lahani na injin shine amfani da ƙananan fayiloli don canja wurin bayanai. Da alama me ke damun wannan?
Duk wanda ya yi ƙoƙari ya kwafi ɗimbin ƙananan fayiloli daga wannan matsakaici zuwa wancan ya lura cewa saurin rubutun irin wannan saitin ya yi ƙasa da babban fayil guda ɗaya mai girman girman. Kuma ƙarfin samun damar zuwa rumbun kwamfutarka yana ƙaruwa sosai, wanda gabaɗaya yana cutar da aikin gabaɗayan kwamfutar. Sabili da haka, watsa bayanan bidiyo a cikin ƙananan ɓangarorin daƙiƙa 10 kuma yana ba da gudummawa ga haɓakar latency na injin.
Bari mu taƙaita duk fa'idodi da rashin amfani na fasahar HLS.
Amfanin HLS:
- Ikon yin aiki tare da kowace na'ura. Kuna iya kallon bidiyo akan kowace na'ura ta zamani, zama smartphone, kwamfutar hannu, kwamfutar tafi-da-gidanka ko kwamfutar tafi-da-gidanka. Babban abu shine cewa mai binciken gidan yanar gizon ya kasance na zamani kuma yana dacewa da HTML5 da Ƙarin Madogararsa na Media.
- Kyakkyawan ingancin hoto. Ayyukan watsa bayanai masu daidaitawa da aka yi amfani da su suna ba ku damar canza yanayin ingancin bidiyon da aka watsa dangane da bandwidth na haɗin Intanet, yayin da algorithm ke ƙoƙarin kiyaye mafi girman inganci.
- Babu buƙatar haɗaɗɗiyar tsari na kayan aikin mai amfani.
disadvantages:
- Taimako mai iyaka don aiki tare da injin akan wasu na'urori.
- Babban jinkiri a watsa hoto.
- Mahimmin haɓakawa a cikin sama da kuma rikitarwa na ingantawa saboda amfani da ƙananan fayiloli. Saboda yanayin kwandon, ba za mu taɓa samun damar samun latency ƙasa da girman sashi ba.
Rashin lahani na HLS ya zarce fa'idarsa a gare mu kuma ya tilasta mana mu nemi wasu zaɓuɓɓuka.
Menene WebRTC

()
Dandalin WebRTC Google ne ya ƙera shi a cikin 2011 don watsa bayanan bidiyo da sauti mai gudana tsakanin masu bincike da aikace-aikacen wayar hannu tare da ƙarancin jinkiri. Don wannan, ana amfani da daidaitattun ƙa'idodin UDP da algorithms na sarrafa kwararar kwarara. A yau aikin buɗaɗɗen tushe ne, Google ne ke kula da shi sosai kuma ana haɓaka shi.
WebRTC saitin fasahohi ne don bidiyo-tsara-zuwa-tsara da watsa sauti. Wato, alal misali, masu amfani da yanar gizo masu amfani da WebRTC suna iya tura bayanai zuwa juna kai tsaye, ba tare da amfani da sabar nesa ba don adanawa da sarrafa bayanai. Ana kuma sarrafa duk bayanan ta masu binciken masu amfani na ƙarshe da aikace-aikacen wayar hannu.
Masu haɓaka dukkan shahararrun masu bincike sun yaba da sauƙin amfani da wannan fasaha da kuma fa'idarta. Tallafin WebRTC a halin yanzu yana samuwa a Mozilla Firefox, Opera, Google Chrome (da duk masu bincike da ke tushen Chromium), da kuma a cikin manhajojin wayar hannu da ke aiki. Android da kuma iOS.
Don duk fa'idodinsa babu shakka, WebRTC yana da manyan hasashe da yawa.
Difficulties na zabi
Fasahar WebRTC ta fi rikitarwa ta fuskar hulɗar cibiyar sadarwa saboda gaskiyar cewa kusan P2P ne. Yana da wahala a yi kuskure, gwadawa, kuma yana iya yin hali mara tsinkaya. A lokaci guda, muna buƙatar shawo kan NAT da Tacewar zaɓi, muna buƙatar tabbatar da aiki a cikin cibiyoyin sadarwa inda aka katange UDP.
Aiwatar da Google's WebRTC yana da matukar wahala a yi amfani da shi. Har ma akwai kamfani gaba ɗaya wanda ke ba da sabis na taro na SDK. Bugu da ƙari, aiwatar da Google yana da matukar wahala don haɗawa tare da tsarin mu ba tare da sake shigar da duk bidiyon ba.
Duk da haka, mun dade muna so mu ba masu amfani damar yin aiki tare da cikakken bidiyon "rayuwa" da kuma rage girman da ke tsakanin hoton akan allon da kuma abubuwan da suka faru da kansu. Bugu da ƙari, muna da sha'awar yin amfani da kyamarori na PTZ, inda jinkiri yana da mahimmanci, mafi dadi.
La'akari da cewa sauran aiwatar da hana-lag har yanzu suna da iyakacin ayyuka kuma suna aiki da muni sosai, mun yanke shawarar amfani da WebRTC.
Me muka yi

Aiwatar da dandalin WebRTC yadda ya kamata ba abu ne mai sauƙi ba. Duk wani kuskure ko kuskure na iya haifar da jinkiri a watsa bidiyo ba kawai ragewa ba idan aka kwatanta da sauran dandamali, har ma da karuwa.
Domin WebRTC yayi aiki daidai, da farko, wajibi ne don aiwatar da haɓakar fasaha na tari don aiki tare da bidiyo na yanar gizo. Abin da muka yi ke nan.
Da farko, mun aiwatar da uwar garken siginar siginar WebRTC akan Websocket, sannan kuma mun tura sabar takwarorinta na WebRTC a cikin gajimare bisa webrtc.org SDK. Ayyukansa shine rarraba rafukan bidiyo zuwa abokan ciniki na WebRTC a cikin tsarin H.264 + Opus / G.711 ba tare da fassarar bidiyo ba.
Mun zaɓi Websocket a matsayin ƙa'idar siginar saboda ya riga ya sami goyan baya mai inganci a cikin duk shahararrun mashahuran yanar gizo. Saboda wannan, zaku iya rage girman haɓaka ba kawai a kan gaba ba, amma kuma ku guje wa ɓata lokaci da albarkatu akan maimaita musafaha na TCP da TLS idan aka kwatanta da AJAX.
Gaskiyar ita ce, ta hanyar tsoho, WebRTC ba ta samar da ka'idar siginar da ake buƙata don daidaitawa, kulawa, da kuma ƙare sadarwar bidiyo na ainihi tsakanin tushen da aikace-aikacen abokin ciniki.
Kuma don aiwatar da fasahar sigina kai tsaye, muna buƙatar haɓaka uwar garken siginar namu tare da goyan bayan ka'idojin gidan yanar gizo da yawa (Websocet, WebRTC). Kuma tare da ikon sarrafa zaman amintattu da sanarwa a cikin ainihin lokaci, sarrafa bidiyo da ƙari mai yawa.
Mun shawo kan iyakokin P2P ta hanyar rage jinkiri ba ta hanyar P2P ba, amma ta hanyar UDP da sarrafa kwarara don rage jinkirin. Hakanan an gina wannan a cikin WebRTC, tunda babban abin amfani shine tattaunawar p2p ta hanyar bincike.
A cikin abokin ciniki ta hannu, mun aiwatar da mai kunnawa ta amfani da webrtc.org SDK, tunda kawai yana aiwatar da sarrafa kwararar ruwa daidai, yana da duk sanannun tsare-tsaren Kuskuren Gabatarwa (FEC), kuma yana aiwatar da tsarin sake aika fakiti don duk masu bincike. Hakanan yana da mahimmanci cewa Google yana haɓaka webrtc.org SDK sosai.
Menene sakamakon aiwatar da WebRTC?
Don duba bidiyo kai tsaye daga kyamarori, mun ƙara sabon ingantaccen ɗan wasa bisa WebRTC zuwa keɓaɓɓen asusun ku. Yana ba da saurin ɗora bidiyo mai sauri kuma yana kawar da matsalar taruwar latency gaba ɗaya yayin da lokacin kallo yana ƙaruwa.
Bayan gabatar da goyon bayan WebRTC a cikin sabis na girgije na Ivideon, za mu iya cewa tare da cikakkiyar amincewa cewa abokan cinikinmu za su iya kallon cikakken bidiyo mai rai. Yanzu jinkirin lokacin watsa shirye-shiryen bidiyo bai wuce dakika ɗaya ba! Don kwatantawa, injin HLS na baya ya ba da isar da bidiyo tare da jinkiri na 5-7 seconds. Bambanci a cikin saurin nunin bidiyo yana da mahimmanci sosai, kuma mai amfani zai lura da shi nan da nan bayan fara aiki tare da sabis na bidiyo.
Kamar yadda muka sa ran, aiwatar da sabon mai kunnawa ya inganta amsawar PTZ da sadarwar murya tare da kyamara.

Akwai kawai da dabara batu cewa muna so mu jawo hankali zuwa gare shi. Sabon ɗan wasan WebRTC a halin yanzu yana aiki a yanayin gwaji. Kuma shi ya sa ba ma ba da damar shi ga duk abokan cinikinmu ta tsohuwa. Amma zaka iya kunna shi da kanka ta hanyar kunna abin da ya dace a cikin saitunan kamara (don yin wannan, je zuwa ).
Siffofin aiwatar da WebRTC a cikin sabis na Ivideon

WebRTC har yanzu fasaha ce ta gwaji a halin yanzu. Har yanzu ba a aiwatar da tallafinsa daidai ba a cikin duk masu bincike da na'urorin masu amfani, kuma ba a cikin dukkan kyamarori ba.
Wannan shi ne ainihin dalilin da ya sa har yanzu ba mu sanya mai kunna WebRTC tsoho ga duk masu amfani ba.
A yanzu, muna ba da shawarar amfani da WebRTC kawai a cikin masu binciken Google Chrome. Sabbin nau'ikan Firefox da Safari suma suna goyan bayan wannan fasaha, amma, abin takaici, har yanzu ba ta da ƙarfi.
Har yanzu ba mu aiwatar da tallafin WebRTC don masu bincike akan na'urorin hannu ba. A halin yanzu, idan ka shiga daga na'urar hannu kuma ka kunna WebRTC, wannan yanayin ba zai yi aiki ba. Koyaya, WebRTC yana samuwa a cikin aikace-aikacen wayar hannu don и .
Kuma ƙaddamar da labarin game da fasalulluka na aiwatar da WebRTC a cikin sabis ɗinmu, bari mu lura da ƙarin maki biyu masu hankali.
Da fari dai, fasahar ta mayar da hankali kan watsa bidiyo kai tsaye a ainihin lokacin. Saboda haka, idan tashar ku ba ta da isasshen bandwidth don watsa bidiyon, za ku lura da raguwar firam (tare da HLS za ku lura da faɗuwar bidiyo da haɓaka latency, amma ba za a sami raguwar firam ba), amma har yanzu za a watsa bidiyon a zahiri. lokaci.
Abu na biyu, tunda an tsara fasahar don yin aiki musamman tare da bidiyo kai tsaye a ainihin lokacin, ba ma amfani da shi don yin aiki tare da bayanan bidiyo da aka adana.
Sauran canje-canje ga sabis
A wannan lokacin, Flash baya shiga cikin tsarin zaɓin injin atomatik. Kuna iya amfani da irin wannan mai kunnawa, amma don yin wannan kuna buƙatar zaɓar shi da hannu a cikin asusu ko saitunan kamara. Wannan ba kyauta ba ne ga salon, kawai cewa bisa ga kididdigar sabis ɗinmu, kusan babu masu amfani da suka bar aiki tare da Flash. Kuma ƙoƙarin ƙayyade ko mai binciken mai amfani yana goyan bayan shi, muna rasa kusan 2 seconds na lokaci mai daraja.
Anan ga taƙaitaccen bayanin canje-canjen da ke jiran ku a cikin tsarin sa ido na bidiyo na gajimare da asusun sirri. Ku kasance tare da mu kuma ku bi labarai!
source: www.habr.com
