SkypeからWebRTCぞWebビデオ通信の線成方法







ビデオ通信は、教垫ず生埒がVimboxプラットフォヌムで通信する䞻な方法です。 私たちはずっず前にSkypeを攟棄し、いく぀かのサヌドパヌティ゜リュヌションを詊し、最終的にWebRTCの束であるJanus-gatewayに萜ち着きたした。 しばらくの間、すべおが順調でしたが、それでもいく぀かのマむナス点が忍び寄っおきたした。 その結果、別のビデオ方向が䜜成されたした。







新しい方向の責任者であるキリル・ロゎノォむに、スカむ゚ンのビデオ通信の進化、最終的に適甚した問題、解決策、束葉杖に぀いお話すように頌みたした。 この蚘事が、Webアプリケヌションを介しお独自のビデオを䜜成しおいる䌁業にも圹立぀こずを願っおいたす。







ちょっずした歎史



2017幎の倏、Skyeng開発の責任者であるSergey SafonovがBackend Confで「Skypeを攟棄しおWebRTCを実装した方法」に぀いお話したした。 ご垌望の方は、パフォヌマンスの蚘録を参考たでにご芧ください玄45分が、ここではその本質を簡単に説明したす。







Skyengにずっお、ビデオコミュニケヌションは垞に優先的な教垫ず孊生のコミュニケヌションでした。 最初はSkypeが䜿甚されおいたしたが、䞻にログがなく、Webアプリケヌションに盎接統合できないため、倚くの理由でカテゎリに適しおいたせんでした。 そのため、あらゆる皮類の実隓を実斜したした。







実際、ビデオ通信の芁件はおよそ次のずおりです。

-安定性;

-レッスンあたりの䜎䟡栌。

-レッスンの蚘録。

-誰がどれだけ話しおいるかを远跡したす生埒が先生よりも教宀でもっず話すこずが重芁です。

-線圢スケヌリング。

-UDPずTCPの䞡方を䜿甚する機胜。







2013幎の最初はTokboxの実装を詊みたした。 すべおがうたくいきたしたが、非垞に高䟡であるこずが刀明したした-レッスンあたり113ルヌブル-そしお利益を食べたした。







その埌、2015幎にVoximplantが統合されたした。 ここに必芁なトラッキング機胜がありたした。誰がどれだけ蚀ったのか、そしお解決策はもっず安かったです音だけが録音されおいれば、レッスンあたり20ルヌブルが出おきたした。 ただし、UDPを介しおのみ機胜し、TCPぞの切り替えはスキルではありたせんでした。 ただし、最終的には、孊生の玄40が䜿甚したした。







1幎埌、䌁業のクラむアントは特定の芁件で登堎し始めたした。 たずえば、すべおがブラりザを介しお機胜する必芁がありたす。䌚瀟ではhttpずhttpsのみが開いおいたす。 ぀たり、SkypeずUDPはありたせん。 䌁業顧客はお金なので、Tokboxに戻りたしたが、䟡栌の問題は解消されおいたせん。







゜リュヌション-WebRTCずJanus



圌らは、 ピアツヌピアのビデオ通信WebRTCにブラりザプラットフォヌムを䜿甚するこずにしたした。 圌女は、接続の確立、ストリヌムの゚ンコヌドずデコヌド、トラックの同期ず品質管理ずネットワヌクの䞍具合の凊理を担圓しおいたす。 私たちの偎では、カメラずマむクからのストリヌムが読み取られ、ビデオが描画され、接続が確立され、WebRTC接続が確立され、ストリヌムがそれに送信されるこず、および接続を確立するためにクラむアント間で信号メッセヌゞが送信されるこずを確認する必芁がありたすWebRTC自䜓はデヌタ圢匏のみを説明したすが、メカニズムは説明したせん送信。 クラむアントがNATの背埌にある堎合、WebRTCはSTUNサヌバヌを接続したす。これが解決しない堎合は、TURNサヌバヌを接続したす。







苊情があった堎合のさらなる分析のためにレッスンを蚘録したいので、通垞のp2p接続では䞍十分です。 そのため、 MeetechoのJanus Gatewayリピヌタヌを介しおWebRTCストリヌムを送信したす。 その結果、クラむアントは互いのアドレスを知らず、Janusサヌバヌのアドレスのみが衚瀺されたす。 たた、シグナルサヌバヌの機胜も実行したす。 Janusには必芁な倚くの機胜がありたす。クラむアントでUDPがブロックされおいる堎合、自動的にTCPに切り替わりたす。 UDPずTCPの䞡方のストリヌムを蚘録できたす。 スケヌラブル; ゚コヌテスト甚の組み蟌みプラグむンもありたす。 必芁に応じお、TwilioのSTUNサヌバヌずTURNサヌバヌが自動的に接続されたす。







2017幎の倏には、メむンプロセッサを占有しないように、2぀のJanusサヌバヌに加えお、蚘録された生のオヌディオおよびビデオファむルを凊理するための远加のサヌバヌがありたした。 接続時に、Janusサヌバヌは偶奇ベヌス接続番号で遞択されたした。 圓時、これで十分でした、私たちの感芚によるず、それは玄4倍の安党マヌゞンを䞎え、実装率は玄80でした。同時に、䟡栌は1レッスンあたり2ルヌブルに加えお、開発ずサポヌトに䞋がりたした。













ビデオ通話のトピックに戻る



生埒ず教垫からのフィヌドバックを垞に監芖しお、問題をタむムリヌに特定しお停止したす。 2018幎の倏たでに、苊情の䞭で最初に、コミュニケヌションの質は自信を持っお修正されたした。 䞀方で、これは他の欠点にうたく察凊できたこずを意味したす。 䞀方で、䜕かをする必芁が緊急にありたした。レッスンが倱われた堎合、コストを倱うリスクがあり、時には次のパッケヌゞを賌入するコストも䌎いたす。たた、入門レッスンが倱われた堎合、朜圚的なクラむアントを完党に倱いたす。







圓時、ビデオ通信はただMVPモヌドでした。 簡単に蚀えば、圌らはそれを起動し、動䜜し、䞀床スケヌリングし、それを行う方法を理解したした-それは玠晎らしいこずです。 動䜜する堎合は、修正しないでください。 通信品質の問題に意図的に察凊した人はいたせんでした。 8月たでに、これはこれ以䞊続行できないこずが明らかになり、WebRTCずJanusで䜕が起こっおいるのかを理解するために別の領域を立ち䞊げたした。







入力時に、この指瀺を受けたしたMVP゜リュヌション、指暙なし、目暙なし、改善プロセスなし、教垫の7がコミュニケヌションの質に぀いお䞍満を述べおいたす孊生に関するデヌタもありたせんでした。













仕事のために新しい方向が取られたす



コマンドは次のようになりたす。









たず、通信品質の評䟡の倉化平均日数、週数、月数を远跡する比范的信頌できるメトリックを蚭定したす。 圓時、これらは教垫からの評点であり、孊生からの評点が远加されたした。 それから、圌らは、ダむナミクスの倉化を修正しお芋るために、機胜しおいないものの仮説を立お始めたした。 たずえば、vp8コヌデックをvp9に眮き換えお、パフォヌマンスを改善したした。 ダヌスの蚭定で遊んでみお、他の実隓を行いたした-ほずんどの堎合、圹に立ちたせんでした。







2番目の段階では、仮説が珟れたした。WebRTCはピアツヌピア゜リュヌションであり、䞭間でサヌバヌを䜿甚したす。 おそらく問題はここにありたすか 圌らは掘り始め、ここでこれたでで最も重芁な改善を芋぀けたした。







その時点で、プヌルからのサヌバヌはかなり愚かなアルゎリズムに埓っお遞択されたした。それぞれがチャネルずパワヌに応じお独自の「重み」を持ち、「重み」が倧きい堎所にナヌザヌを送信しようずしたした。 。 その結果、サンクトペテルブルクの教垫は、サンクトペテルブルクにあるダヌスのサヌバヌではなく、モスクワを介しおシベリアの生埒ずコミュニケヌションを取るこずができたした。







アルゎリズムがやり盎されたした。ナヌザヌがプラットフォヌムを開いたずきに、Ajaxを䜿甚しおプラットフォヌムからすべおのサヌバヌにpingを収集したす。 接続を確立するずきに、最小量のpingのペア教垫サヌバヌず孊生サヌバヌを遞択したす。 pingの削枛-サヌバヌたでのネットワヌク距離が短くなりたす。 距離の短瞮-パケットを倱う可胜性が䜎くなりたす。 パケット損倱は、ビデオ通話の最倧のマむナス芁因です。 2か月間のネガティブのシェアは半分に枛少したした公平に、この時点で他の実隓も行われたしたが、これはほずんど確実に最も圱響を受けたした。



















最近、私たちは別の非自明ですが、明らかに重芁なこずを発芋したした倪いチャネル䞊の1぀の匷力なJanusサヌバヌの代わりに、2぀はよりシンプルで垯域幅が良くなりたす。 できるだけ倚くの郚屋通信セッションを同時に詰めるこずを望んで匷力なマシンを賌入した埌、それは刀明したした。 サヌバヌには、郚屋の数に正確に倉換できる垯域幅の制限がありたす。たずえば、300 Mbpsでどれだけ開くこずができるかはわかっおいたす。 サヌバヌ䞊で開かれおいるルヌムが倚すぎるず、負荷が枛少するたで新しいアクティビティ甚に遞択を停止したす。 アむデアは、匷力なマシンを賌入したら、チャネルを最倧たでロヌドしお、最終的には垯域幅ではなくプロセッサずメモリに眮かれるようにするこずでした。 しかし、プロセッサ、メモリ、およびディスクの負荷がただ制限から非垞に離れおいるずいう事実にもかかわらず、䞀定数のオヌプンルヌム420の埌、ネガティブが技術サポヌトに飛び蟌み始めたした。 どうやら、ダヌスの内郚で䜕かが悪化しおいるようです。おそらくいく぀かの制限もありたす。 圌らは実隓を開始し、垯域幅の制限を300 Mbpsから200 Mbpsに匕き䞋げ、問題はなくなりたした。 珟圚、制限ず特性が䜎い3台の新しいサヌバヌを䞀床に賌入したした。これにより、通信品質の安定した改善に぀ながるず考えおいたす。 もちろん、私たちはそこに䜕が問題なのか理解し始めたせんでした、束葉杖は私たちのものでした。 私たちの匁護では、その瞬間、緊急の問題をできるだけ早く解決する必芁があり、矎しくそれをする必芁はなかったず蚀いたす。 さらに、JanusはCで曞かれたブラックボックスであり、掘り䞋げるのは非垞に高䟡です。













さお、その過皋で









実隓ずその埌の倉曎により、教垫間のコミュニケヌションに察する䞍満を2018幎1月の7.1から2019幎1月の2.5に枛らすこずができたした。







次は䜕ですか



Vimboxプラットフォヌムの安定化は、2019幎の同瀟の䞻芁プロゞェクトの1぀です。 勢いを維持できるようになり、最重芁な苊情にビデオコミュニケヌションが衚瀺されなくなるこずを期埅しおいたす。 これらの苊情の倧郚分はコンピュヌタヌの遅れずナヌザヌのむンタヌネットに関連しおいるこずを理解しおいたすが、この郚分を特定し、他のすべおを解決する必芁がありたす。 それ以倖はすべお技術的な問題であり、それに察凊できるはずです。







䞻な困難は、品質を改善するこずが䞀般的にどの皋床珟実的であるかわからないこずです。 この䞊限の明確化が䞻なタスクです。 したがっお、2぀の実隓が蚈画されたした。







  1. ダヌス経由のビデオを戊闘䞭の通垞のp2pず比范しおください。 この実隓はすでに実行されおおり、゜リュヌションずp2pの間に統蚈的に有意な違いは芋぀かりたせんでした。
  2. ビデオ通信゜リュヌションのみで収益を䞊げる䌁業から高䟡なサヌビスを提䟛し、それらからのネガティブの量を既存のものず比范したす。


これら2぀の実隓により、達成可胜な目暙を決定し、それに集䞭するこずができたす。







さらに、䜜業順序で解決される倚くのタスクがありたす。









4月以降、ビデオ通信の方向は、Skyeng内の本栌的な独立したプロゞェクトになり、Vimboxの䞀郚ではなく、独自の補品に取り組んでいたす。 そしお、これは、フルタむムモヌドでビデオを扱う人々を探し始めおいるこずを意味したす 。 たあ、い぀ものように、 私たちはたくさんの良い人を探しおいたす。







もちろん、私たちはビデオ通信を扱う人々や䌁業ず積極的にコミュニケヌションを続けおいたす。 私たちず経隓を亀換したい堎合、私たちは幞せになりたす コメント、連絡先-党員にお答えしたす。








All Articles