
Hodeiko bideo-zaintza sistema batean lan egin genuen lehen egunetatik, arazo baten aurrean egon ginen, irtenbiderik gabe Ivideon amore eman genezakeen - hau zen gure Everest, energia asko behar zuen eskalada, baina orain azkenean dugu. piolet bat sartu du plataforma anitzeko puzzlearen goialdean.
Internet bidez audioa eta bideoa transmititzeko sistemak ez luke ekipoen, web-bezeroen eta onartzen dituzten estandarren araberakoa izan behar, eta sareko helbide-itzultzaileen eta suebakien aurrean behar bezala funtzionatu behar du. Hodeiko bideozaintzako erabiltzaile batek zerbitzura sartu nahi du, kamera analogikoak erabiltzen baditu ere, eta nahiago du zuzeneko bideo-emisioa gailu modernoenean ikusi.
Oso esanguratsua da erabiltzaileak bideoak gutxieneko atzerapenarekin ikusi nahi izatea. Nabigatzaile batean latentzia txikiko bideoa erakusteko modu ia bakarra WebRTC (web denbora errealeko komunikazioak) erabiltzea da. WebRTC nabigatzaileetan bideoa eta audioa peer-to-peer transmisiorako teknologia multzo bat da, hasiera batean latentzia txikiko bideo-korronteak transmititzeko eta erreproduzitzeko diseinatua. Horretarako, besteak beste, UDP protokoloa erabiltzen da.
Motor berriak erabiltzaileari zer ematen dion esan baino lehen, HLS teknologiak zergatik eta zergatik onartzen ditugun eta zergatik erabaki genuen aurrera egitea gogoraraziko dizugu.
HLS motorra: alde onak eta txarrak

()
HLS (HTTP Live Streaming) teknologia Applek garatu zuen, beraz, ez da harritzekoa lehen aldiz Apple gailuetan onartu izana. Gaur egun, HLS bideoa ia set-top box guztiek eta sistema eragilea exekutatzen duten gailu askok ere onartzen dute. Android.
HLS motorrak H264 bideo-kodek ezaguna erabiltzen du AAC edo MP3 audio korronteekin konbinatuta bideo-datuak erreproduzitzeko. Audio- eta bideo-datuen korronte osoa MPEG-TS garraio-edukiontzi batean biltzen da. HTTP protokoloaren bidez transmititzeko, korrontean jasotako informazioa m3u8 erreprodukzio-zerrendetan deskribatutako zatietan banatzen da. Eta soilik orduan zati horiek, erreprodukzio-zerrendekin batera, HTTP bidez transmititzen dira. Automatikoki zatitzeak segundotan atzerapena dakar. Hau MPEG-TS edukiontziaren ezaugarri bat da.
HLS motorrak bitrate anitzeko korronteak ere onartzen ditu, Live/VOD.
HLSren abantaila nagusiak:
- nabigatzaile nagusi guztietan laguntza integratua;
- inplementatzeko erraztasuna (WebRTCrekin alderatuta);
- Oso erosoa eta eraginkorra da mota guztietako emisioak publiko handi bati antolatzea, segmentuak CDN batera igo daitezkeelako behin.
Motorra sinplea izan arren, dena ez da dirudien bezain leuna. Arazo nagusia da hirugarrenen erreproduzitzaileen garatzaileek Appleren gomendioetatik urrundu direla, adibidez, onartzen diren audio formatuei dagokienez. Bereziki, garatzaile asko audio-korronte ezagunekin lan egiteko gaitasuna gehitzen hasi ziren: mpeg2 bideoa, mpeg2 audioa, etab. Ondorioz, erreproduzitzaile ezberdinentzako erreprodukzio-zerrenda formatu desberdinak sortu behar izan zituzten.
Baina HLS motorearen arazo handienetako bat datuen transferentziaren latentzia handia da.
"Bazten" jatorria
HLS-ren latentzia handiaren arrazoi nagusia programatzaileek kalitate goreneko irudiak lortzeko motorra sortu zutenean datza. Hori dela eta, erabilitako fotograma-tartearen parametroak eta erreprodukzio-buffer-aren tamaina ez dira egokiak zuzeneko bideo-emisioetarako. Hori dela eta, bideo-metrajeen transmisioan atzerapen handia dago, 5-7 segundokoa izan daitekeena.
Alde batetik, hori ez da asko, adibidez, bideoak ostalaritzako zerbitzari batetik pelikula bat ikusten dutenentzat. Baina bideo-zaintza sistemetarako, bideo-filmak transmititzeko atzerapena oso garrantzitsua izan daiteke.
Langileek beren monitoreetatik begiratzen duten bulego bat ikusten ari bazara orduan behin, orduan 5 segundoko atzerapenak ez du batere axola. Baina jendea kexatzen hasi zen, adibidez, futbol partida bat emititzean, txatean jada GOOOOL idatzi zutelako, baina hau oraindik ez dago bideoan :). Dagoeneko baditugu erabiltzaile kasu batzuk non Ivideon-ek ia Skype ordezkatu beharko lukeen.
Posible al da latentzia gainditzea HLSn? Galdera honen erantzunak izurriteen kontroleko espezialista hasiberriei egindako hitzaldi batean arratoi-exterminatzaile esperientziadun baten hitzaldia dirudi: "Arratoiak ezin dira desagerrarazi, baina haien kopurua arrazoizko gutxienera murriztu daiteke". HLSren atzerapenarekin berdin, ezin izango da zerora murriztu, baina badira merkatuan atzerapena nabarmen murrizteko irtenbideak.
Mozketa finak
Motorraren beste desabantaila bat datuak transferitzeko fitxategi txikiak erabiltzea da. Badirudi, zer gertatzen da honek?
Fitxategi txiki ugari euskarri batetik bestera kopiatzen saiatu denak, ziurrenik, ohartu da multzo horren idazketa-abiadura tamaina bereko fitxategi handi batek baino askoz txikiagoa dela. Eta disko gogorrera sartzeko intentsitatea nabarmen handitzen da, eta horrek, oro har, negatiboki eragiten du ordenagailu osoaren errendimendua. Hori dela eta, bideo datuak 10 segundoko zati txikietan transmititzeak motorren latentzia handitzen laguntzen du.
Labur ditzagun laburki HLS teknologiaren alde onak eta txarrak.
HLSren abantailak:
- Edozein gailurekin lan egiteko gaitasuna. Bideoak edozein gailu modernotan ikus ditzakezu, izan smartphone, tablet, ordenagailu eramangarri edo mahaigaineko ordenagailu batean. Gauza nagusia da web arakatzailea eguneratua eta bateragarria dela HTML5 eta Media Source Extensionsekin.
- Irudiaren kalitate bikaina. Erabiltzen den datu-transmisio moldagarriaren funtzioari esker, transmititutako bideoaren kalitatea dinamikoki alda dezakezu Interneteko konexioaren banda-zabaleraren arabera, algoritmoa kalitate handiena mantentzen saiatzen den bitartean.
- Ez dago erabiltzailearen ekipoen konfigurazio konplexurik behar.
Desabantailak ditu:
- Gailu batzuetan motorrarekin lan egiteko laguntza mugatua.
- Irudien transmisioan atzerapen handiak.
- Fitxategi txikiak erabiltzeagatik gainkostuen eta optimizazioaren konplexutasunaren gehikuntza nabarmena. Edukiontziaren izaera dela eta, ezingo dugu inoiz segmentuaren tamaina baino latentzia txikiagoa lortu.
HLSren desabantailak bere abantailak baino handiagoak ziren guretzat eta aukera alternatiboak bilatzera behartu gintuzten.
Zer da WebRTC

()
WebRTC plataforma Google-k garatu zuen 2011n, nabigatzaileen eta mugikorrentzako aplikazioen artean streaming bidezko bideo eta audio datuak latentzia minimoarekin transmititzeko. Horretarako, UDP protokolo estandarra eta fluxua kontrolatzeko algoritmo bereziak erabiltzen dira. Gaur egun kode irekiko proiektu bat da, Google-k aktiboki mantendu eta garatutakoa.
WebRTC peer-to-peer bideo eta audio transmisiorako teknologia multzo bat da. Hau da, adibidez, WebRTC erabiltzen duten erabiltzaile-arakatzaileek datuak elkarri zuzenean transferi ditzakete, datuak gordetzeko eta prozesatzeko urruneko zerbitzariak erabili gabe. Informazio guztia azken erabiltzaileen arakatzaileek eta mugikorreko aplikazioek ere prozesatzen dute.
Teknologia honen erosotasuna eta gaitasun zabalak arakatzaile ezagun guztien garatzaileek eskertu dituzte. WebRTC euskarria Mozilla Firefox, Opera, Google Chrome-n (eta Chromium-en oinarritutako arakatzaile guztietan) eskuragarri dago gaur egun, baita mugikorretarako aplikazioetan ere. Android eta iOS.
Dudarik gabeko abantaila guztiengatik, WebRTC-k hainbat desabantaila nabarmen ditu.
Aukera zailak
WebRTC teknologia askoz konplexuagoa da sareko interakzioei dagokienez, P2Pri buruzkoa delako. Zaila da araztea, probatzea eta ezusteko portaera izan daiteke. Aldi berean, NAT eta suebakia gainditu behar ditugu, UDP blokeatuta dagoen sareetan funtzionamendua ziurtatu behar dugu.
Google-ren WebRTC inplementazioa oso zaila da erabiltzeko. SDK muntaketa zerbitzuak eskaintzen dituen enpresa oso bat ere badago. Gainera, Google-ren ezarpena oso zaila izan zen gure sistemarekin integratzea bideo osoa berriro kodetu gabe.
Hala ere, aspalditik nahi izan dugu erabiltzaileei "zuzeneko" bideo osoarekin lan egiteko aukera eman eta pantailako irudiaren eta gertaeren beraren arteko desfasea minimizatzeko. Gainera, PTZ kamerak erabiltzeko gogoa genuen, non atzerapenak kritikoak diren, erosoagoa.
Lagaren aurkako beste inplementazio batzuek funtzionaltasun mugatua dutela eta okerrago funtzionatzen dutela kontuan hartuta, WebRTC erabiltzea erabaki dugu.
Zer egin dugu

WebRTC plataforma behar bezala ezartzea ez da lan erraza. Edozein kalkulu oker edo zehaztasun ezak bideo-transmisioan atzerapenak ekar ditzake beste plataformekin alderatuta ez gutxitzeaz gain, areagotzeaz gain.
WebRTC-k behar bezala funtziona dezan, lehenik eta behin, beharrezkoa da web-bideoarekin lan egiteko pila-berritze teknologikoa egitea. Horixe egin genuen.
Lehenik eta behin, WebRTC seinaleztapen-protokolo zerbitzari bat ezarri genuen Websocket-en bidez, eta WebRTC pareko zerbitzari bat ere zabaldu genuen hodeian, webrtc.org SDK-n oinarrituta. H.264 + Opus/G.711 formatuan bezeroen WebRTC parekoei bideo-korronteak banatzea da bideo-transkoderik gabe.
Websocket aukeratu dugu seinaleztapen-protokolo gisa, dagoeneko kalitate handiko euskarria duelako web arakatzaile ezagun guztietan. Hori dela eta, garapen-gastuak ez ezik, denbora eta baliabideak alferrik galtzea saihestu dezakezu TCP eta TLS esku-emanaldi errepikatuetan AJAX-ekin alderatuta.
Kontua da, lehenespenez, WebRTC-k ez duela behar den seinaleztapen-protokolorik eskaintzen iturriaren eta bezeroaren aplikazioen arteko denbora errealeko bideo-komunikazioa behar bezala konfiguratzeko, mantentzeko eta amaitzeko.
Eta seinaleztapen-teknologia modu independentean ezartzeko, gure seinaleztapen-zerbitzari propioa garatu behar genuen hainbat web-protokoloren laguntzarekin (Websocet, WebRTC). Eta denbora errealean saioak eta jakinarazpenak modu seguruan kudeatzeko, bideoen kudeaketa eta askoz gehiago.
P2Pren mugak gainditu genituen latentzia murriztuz ez P2P bidez, baizik eta UDP eta fluxu-kontrolaren bidez latentzia murrizteko. WebRTC-n ere integratuta dago, erabilera-kasu nagusia arakatzaile baten bidez p2p elkarrizketak baitira.
Bezero mugikorrean, webrtc.org SDK erabiliz inplementatu dugu erreproduzitzailea, berak bakarrik zuzen inplementatzen baitu fluxuen kontrola, ezagutzen diren Forward Error Correction (FEC) eskema guztiak dituelako eta behar bezala ezartzen baitu nabigatzaile guztientzako paketeak birbidaltzeko mekanismoa. Garrantzitsua da webrtc.org SDK Google-k aktiboki garatzen ari dela.
Zein da WebRTC ezartzearen emaitza?
Kameretatik zuzeneko bideoa ikusteko, WebRTCn oinarritutako erreproduzitzaile optimizatu berri bat gehitu dugu zure kontu pertsonalean. Bideoa kargatzeko abiadura azkarra eskaintzen du eta latentzia pilatzeko arazoa erabat ezabatzen du ikusteko denbora handitzen den heinean.
Ivideon hodeiko zerbitzuan WebRTC euskarria sartu ondoren, konfiantza osoz esan dezakegu gure bezeroek orain zuzeneko bideo osoa ikusi dezaketela. Orain bideo-sekuentziak igortzerakoan atzerapena ez da segundo bat baino gehiagokoa! Konparazio baterako, aurreko HLS motorrak 5-7 segundoko atzerapenarekin eman zuen bideoaren entrega. Bideo-erakusketa-abiaduraren aldea oso nabarmena da, eta gure bideo-zerbitzuarekin lanean hasi eta berehala ohartuko da erabiltzailea.
Espero genuen bezala, erreproduzitzaile berriaren ezarpenak PTZaren erantzuna eta kamerarekin ahots bidezko komunikazioa hobetu ditu.

Arreta erakarri nahi dugun puntu sotil bakarra dago. WebRTC erreproduzitzaile berria proba moduan lanean ari da. Eta horregatik ez dugu gure bezero guztientzat gaitu lehenespenez. Baina zuk zeuk aktibatu dezakezu kameraren ezarpenetan dagokion elementua gaituta (horretarako joan behar duzu ).
Ivideon zerbitzuan WebRTC ezartzearen ezaugarriak

WebRTC oraindik teknologia esperimentala da momentuz. Bere euskarria ez dago oraindik behar bezala inplementatuta nabigatzaile eta erabiltzaile gailu guztietan, eta ez kamera guztietan ere.
Horregatik, hain zuzen ere, ez dugu oraindik WebRTC erreproduzitzailea erabiltzaile guztientzat lehenetsi gisa ezarri.
Oraingoz, WebRTC Google Chrome arakatzaileetan soilik erabiltzea gomendatzen dugu. Firefox eta Safariren azken bertsioek ere teknologia hori onartzen dute, baina, tamalez, oraindik ezegonkorra da.
Oraindik ez dugu ezarri WebRTC euskarria gailu mugikorretan nabigatzaileentzat. Une honetan, gailu mugikor batetik hasi eta WebRTC aktibatzen baduzu, modu honek ez du funtzionatuko. Hala ere, WebRTC eskuragarri dago gure mugikorreko aplikazioetan и .
Eta gure zerbitzuan WebRTC inplementazioaren ezaugarriei buruzko istorioa amaituz, ohar ditzagun bi puntu sotil gehiago.
Lehenik eta behin, teknologia zuzeneko bideoak denbora errealean igortzera bideratzen da. Hori dela eta, zure kanalak ez badu bideoa transmititzeko nahikoa banda zabalerarik, fotograma jaitsierak nabarituko dituzu (HLSrekin bideoa desagertzen eta latentzia handitu egingo duzu, baina ez da fotograma jaitsierarik izango), baina bideoa errealean emitituko da. denbora.
Bigarrenik, teknologia zuzeneko bideoarekin denbora errealean lan egiteko diseinatuta dagoenez, ez dugu erabiltzen artxibatutako bideo-datuekin lan egiteko.
Zerbitzuan beste aldaketa batzuk
Une honetan, Flash-ek ez du parte hartzen motorren hautaketa automatikoaren mekanismoan. Halako erreproduzitzaile bat erabil dezakezu oraindik, baina horretarako eskuz hautatu behar duzu kontuaren edo kameraren ezarpenetan. Hau ez da modaren omenaldia, gure zerbitzuaren estatistiken arabera, ia ez dela geratzen Flash-ekin lan egiten duen erabiltzailerik. Eta erabiltzailearen nabigatzaileak onartzen duen ala ez zehaztu nahian, 2 segundo inguru galtzen ditugu denbora preziatua.
Hona hemen gure hodeiko bideo-zaintza sisteman eta kontu pertsonalean zain dituzun aldaketen ikuspegi laburra. Egon gurekin eta jarraitu berriak!
Iturria: www.habr.com
