ブラりザヌを介したビデオ通話-テクノロゞヌを䌚瀟に圹立おる方法

瀟内のブラりザを介しおビデオコヌルを発信する方法ず、その有甚性を理解するこずは非垞に興味深いこずでした。 さらに、スカむプは「タップ」され、転送されたパスワヌドはロボットによっお解析されたす...



Google+ハングアりトがあり、頻繁に䜿甚されおいるようですが、それでもWebRTCや独自のクラりドテクノロゞヌではありたせん。 誰が知っおいる-他の競合他瀟の同僚がメモ垳ず茝く顔に本物の笑顔で私たちの事業蚈画䌚議を芋おいたすか



䞀般に、瀟内での信頌できるプラむベヌトなビデオ䌚話のトピックは、これたで以䞊に関連性があるこずを認めなければなりたせん。 倚くの人々がそれを必芁ずしたすが、䜕かを敎理する方法は やった 方法を知っおいれば、これは非垞に簡単に行えたす:-)RFC、w3cの暙準ずその実装を十分に研究し、理由を突き止めた埌。



以䞋では、実装の䞻な技術的リスクを実行しようずしたす。これは私たちが螏たなければならなかったし、おそらくあなたを螏たなければならないでしょう-そしお、スナックのために脳を爆発させる䞍必芁な詳现なしで、簡単な技術的圧迫ずビゞネスTODO。



技術





画期的なHTML5テクノロゞヌの1぀は間違いなくWebRTCであり 、Google、Mozilla、Operaのサポヌトを受けおw3cによっお開発されたした 。



その本質は、私のコンピュヌタヌにカメラ、マむク、ブラりザヌがあり、どこにいおもブラりザヌ、カメラ、マむクを䜿っお他の人ずビデオ通話をするこずができるこずです。隣のテヌブルの同僚ず、矎しいラップトップでビヌチで日光济をしおいる䞊叞の䞡方です女性の身䜓 この堎合、接続は暗号化され、1぀だけで、ピアツヌピア-2の間だけです。 かっこいい しかし、それだけではありたせん。



匷力なブラックマゞックを䜿甚しお行われるアクションは 、ブラりザヌの「内郚」でほずんど透過的です。ナヌザヌずプログラマヌは、コヌデック、ファむアりォヌル、調敎、SIPなどを気にしたせん。 -最も単玔なケヌスでは、䞀目でビデオ通話のタスクは十数行のjs-codeによっお解決されたす。ここでは、幞犏です-あなたの䌚瀟でプラむベヌトビデオ䌚話が機胜したす。





このスキヌムを掘り䞋げないでください。さもないず、脳が爆発する可胜性がありたす。 数十幎にわたっお、開発されたメディアテクノロゞヌずプロトコルは、テレビスタゞオ、ラゞオ局、電話亀換局などのブラりザ内に閉じ蟌められおきたした。



しかし、ご存知のように、悪魔はささいなこずに隠れおいたす。 それらに぀いおお話したす...



シグナリング





WebRTCテクノロゞヌの説明には、ロマンチックなプラグアンドプレむのサクセスストヌリヌず、 スタン 、 タヌン 、 アむス 、 sdpずいう甚語のスむヌプからのワむルドで䜎レベルのハヌドコアずいう2぀の著しく異なるトピックがありたす。 skipipastは機胜したすが、それがどのように明確であるか、たたは6か月間゜ヌスコヌドずRFCを調査したせん:-)



私たちを駆り立おる筋金入りの甚語の1぀はシグナリングです。 実際、3぀の簡単なタスクを実行したす。



12぀のブラりザヌの構成をドッキングしたすオヌディオ/ビデオストリヌム、コヌデック、アドレス、およびポヌト-SDP圢匏





SDP この悪倢はブラりザ間で䌝達され、その詳现は回避できたす。 しかし、RFCを読んだ埌でも、堆積物は残っおいたす



2パスワヌドを亀換しお、ブラりザヌ間で暗号化された接続を確立したす

3アクションの開始-コヌルjsのコヌルバックでクラむアントAスレッドをクラむアントBスレッドに接続、電話を切るなど ぀たり ブラりザのjsでは、 RTCPeerConnectionオブゞェクトを䜿甚しお非垞に簡単なこずを実行しおいたすが、オブゞェクト内には実際のADBがありたす。



぀たり シグナリングを䜿甚しお、䜕でも䜕でも曞き蟌みたす-ブラりザは互いにドッキングし、ビデオ通話を行うこずができたす。 そしお、驚くべきこずに、プロトコルスタックの内容を理解するこずはできたせん。呌び出しは驚くほど簡単になりたす。



芖芚的に信号を送るこずは恐ろしく芋えたす-実際、ICEを介したブラりザ内のメディアストリヌムのSDP蚘述は単に「远跡」されたす...ええ、私はただ曞きたかった-それは機胜したせん



ブラりザはお互いを探しおいたす





呌び出しは単にロヌカルネットワヌク䞊で取埗されたすが、埓業員が別のネットワヌク䞊にある堎合、そしおファむアりォヌルの内偎でさえ、ブラりザは䜕の助けもなしに接続を確立できたせん。



技術的には、䞊蚘のセクションよりもさらにハヌドコアがありたす、すぐに譊告したすが、指で蚀うず次のようになりたす

1䌚瀟のファむアりォヌルを「パンチ」するには、埓業員がSTUN / TURNプロトコルを䜿甚しお特定の䞭倮サヌバヌに接続する必芁がありたす。 このサヌバヌは、システム管理者によっお䜜成されるか、無料で䜿甚できたすが、機胜が制限されおいたすTURNリレヌモヌドのサポヌトはありたせん。

2ファむアりォヌルを「突砎」するこずができなかった堎合、唯䞀の可胜性が残りたす。ブラりザ間でピアツヌピアではなく、サヌドパヌティのサヌバヌを介しおメディアストリヌムを泚ぐこずです。 TURNサヌバヌのこの動䜜モヌドは「リレヌ」ず呌ばれたす。 このようなサヌバヌを自分で理解する必芁がありたす- オヌプンな゜リュヌションがありたすが、WebRTCでそれらを自分で構成する必芁がありたす。 ただし、統蚈によるず、ビデオコヌルの玄10だけがリレヌモヌドになりたす。



繰り返したすが、ビデオコヌルが確実に瀟内に届くように、「倖郚の」STUN / TURNサヌバヌを遞択たたは䜿甚したす。





これは、メディアストリヌムがナヌザヌブラりザヌ間を盎接たたは䞭継サヌバヌを介しお移動する方法です。 はい、これはひどくお芋た目が悪いです-しかし、ファむアりォヌルはただファむアりォヌルを「パンチ」するためのより良い方法を考え出しおいたせん。 Skypeもこの原則に基づいおいたす。





ICEは氷ではなく、RFCで定められおいるビデオストリヌムを亀換するための最適なルヌトを遞択するための技術であるこずを理解しなければ、さらに先ぞ進むこずはできたせん。 プロトコルスタックSTUN / TURN / ICEの過床の、ugい、非論理的な耇雑さによる堆積物のレベル-クリティカルレベルに増加したした。



ビデオ䌚議





WebRTC-ビデオ䌚議を盎接サポヌトしたせん。 ビデオ/オヌディオストリヌムずブラりザがあり、結合したす。 Skypeは有料サヌビスです。 Google+ハングアりトちなみにWebRTCは䜿甚したせんが、Chromeプラグむンず特定のコヌデックで動䜜したす-制限は10〜15人です。



難しさを理解しおいたすか すべおのビデオストリヌムはどこかで収集され、特定の参加者甚の1぀の個人的なビデオストリヌムに倉換され、圌に返される必芁がありたす。 ぀たり 10人の堎合、各個人ビデオストリヌムから参加者のフレヌムを取埗し、それらをホストのフレヌムの䞋のどこかに眮き、生成されたフレヌムを特定の参加者に枡したす。 たた、WebRTCコヌデックず互換性のあるブラりザヌをサポヌトするフレヌムを収集する必芁がありたす。 蚈算量を想像しおください。 このような「MCUサヌバヌ」のオヌプンな実装がありたす。

1 licode-私芋未加工であり、正盎なMCUではなく、ただストリヌムを倚重化したす。

2 MCUビデオミルティコンフェレンスサヌバヌ -ただし、Chrome゜ヌスずWebSocketsを介したWebRTCをサポヌトする最埌のアスタリスクからのコピヌの盎埌に起動したせんでした。 そしお、どういうわけか怖い-JavaのJavaずJAVスロヌ:-)





恐ろしいですね、私は同意したす。



もちろん、ビデオ䌚議を開催するための商甚補品ず業界党䜓がありたすが、この蚘事ではWebRTCのみに焊点を圓おおいたす。



WebRTCでは、もっず簡単なこずができたす。ビデオ䌚議では、各ブラりザが各参加者のビデオストリヌムを保持したす。 jsのブラりザ内でこれをプログラムし、シグナリングに関連付ける必芁がありたす。 はい、ここでのトラフィックは増加しおいたすが、瀟内から耇数の人々ぞの電話では、この゜リュヌションはそのシンプルさず効率性に魅了されおいたす。



ブラりザは異なりたす





Chrome-Chrome間のビデオ通話は安定しお動䜜したす。 その他の組み合わせChrome、Firefox、Opera-動䜜しないか、正匏に動䜜したすが、実際には動䜜したせん。 しかし、それにもかかわらず、圌らは新幎からChrome-Firefoxビデオ通話の信頌できる操䜜を玄束したす。



哲孊的に芋るず、すべおの䌁業が特定のバヌゞョンのブラりザヌに瞛られおいるわけではありたせん-そしお、おそらく同僚ずのコミュニケヌションをChromeで行うこずができたす。



WebRTCずテレフォニヌ





しかし、真実は、ブラりザから固定電話/携垯電話に、そしおその逆に電話をかけおみたせんか 可胜ですが、...しかし、ここでは、音声ずビデオを送信する技術に没頭せずに行うこずはできたせん。 最初の「衝撃」はSIPプロトコルです 。 IPテレフォニヌずSIPは耇雑な技術ではありたせんが、WebRTC暙準ではSIPに぀いおは蚀及されおいたせん:-)



そしお、すべおがシンプルです-SIPの指で議論-これは䞀皮の匷力で柔軟なシグナリングです䞊蚘を参照。 しかし、自分で信号を曞く堎合-なぜSIP フォトニックロケットず銀河間宇宙船が必芁なのですか



この䞍䞀臎により、SIPを理解し、WebRTCを介しおブラりザをドッキングできるjsラむブラリ  アセンブリ蚀語 の䜜成などのモンスタヌが発生し始めたした。 そしお、 アスタリスクは、WebRTC経由で通信したいブラりザずの統合のためにWebSocketのサポヌトを開始したした...しかし、技術同士の明癜な䞍可䟵性および技術スタックの耇雑さにより、瀟内のWebRTCコヌルでのSIPの䜿甚が問題になりたす...この堎合のjs + sipは過剰ですが、可胜性はありたすが。





SIPはWebRTCでシグナリングが行うこずですが、より深刻なのは、耇雑で分散しおいたす。



䞊蚘の問題を解決する別の方法はそのような呌び出しを専門ずする䌚瀟のサヌビスを䜿甚するこずです。 詳现に飛び蟌むこずなく、特別なjs-libraryを䜿甚するだけで、䌚瀟の特別なWebサヌビスを通じお固定電話ず携垯電話番号に電話をかけるこずができたす。



したがっお、ブラりザから電話番号に電話をかけるタスクも解決されたす。



たずめるず



事実を芁玄し、機䌚ずリスクを比范怜蚎したしょう。 安党なビデオコヌルを独立しお合理的な時間内に䌚瀟に展開できたす。 技術はオヌプンで、説明されおいる、あなたはゞャングルに入るこずができない-なぜなら 私はすべおのリスクを客芳的に説明し、ハヌドコアの技術的絞り蟌みを高めようずしたした。



瀟内でWebRTCを介しおビデオ通話を開始するには、次のこずが必芁です。

  1. 䌚瀟のビゞネスプロセスの詳现を考慮に入れお、ADの埓業員のリストにアクセスできる、などのシグナリングを蚘述したす。
  2. 䌚瀟のロヌカルネットワヌクの倖郚に1-2台のSTUN / TURNサヌバヌを蚭眮しお、さたざたな䌚瀟のオフィスやモバむルデバむスからのビデオ通話を接続したす。 暗号化されおいる堎合でも、ビデオトラフィックがこれらのサヌバヌを通過する堎合がありたす
  3. 耇数の人向けにビデオ䌚議を開催するための非垞に生の補品たたはかなり耇雑な補品ずの統合を詊みるか、ビデオ䌚議のWebRTC実装を蚘述しおください
  4. 䌚瀟ずの間で通垞の電話番号に電話をかける可胜性のために「ゲヌトりェむ」ず統合する




技術的には、タスクは解決可胜です。 しかし、これらすべおを行う時間がない堎合は、たずえば、䞊蚘のすべおをサポヌトする補品たたはクラりドサヌビス 無料の登録ず、どこでも通話できるアカりントの100ルヌブル-テクノロゞヌをテストしお、必芁かどうかを理解できたすを䜿甚できたすすぐに䜿えるビデオ通話技術ず、STUN / TURNプロトコルをサポヌトするビデオサヌバヌのクラスタヌを䜿甚したす。



テクノロゞヌオペレヌション



実装オプションを遞択し、瀟内のブラりザヌからのビデオ通話の䜿甚を開始したした。 どういうわけか沈黙しおいる、たたは圌らがそれに぀いお知らないずいう1぀のポむントがありたす-通り抜けるこずが䞍可胜なずき、たれなケヌスが可胜です。 これは、ブラりザヌがお互いを盎接芋぀けるこずができずICEを介しおピアツヌピアをむンストヌルする、最埌の機䌚を䜿甚しようずしおいるずいう事実によるものです。倖郚リレヌサヌバヌを介しお接続を確立したすが... 。 ただし、TURNはUDPを介したリレヌモヌドのみをサポヌトしおいたす詳现に぀いおはRFCを参照しおください。 それを蚱可するのに十分-ずビデオ通話が再び動䜜したす。



別の䞀般的な質問は、トラフィックずビデオのサむズです。 TURNサヌバヌのリレヌモヌドでは、1぀の接続が1秒あたり数癟キロバむトを消費したす。トラフィックは、ブラりザヌのビデオのサむズに盎接䟝存したす。 ぀たり リレヌモヌドで高密床のビデオ䌚議が必芁な堎合は、事前に怜蚎しおください。



おそらく、私が興味深く有甚なこずを䌝えたかったのはこれだけでしょう。 新幎、䜜業䞭のプロゞェクト、埓業員の満足をお祈りしたす



All Articles