また OSS でもクライアントが用意されている場合があるため、それを使うのが無難です。WebRTC API はブラウザごとに仕様が異なります。さらにアップデートされるたびにその状況は変化していっています。まずはそこを意識しましょう。実はこれといったおすすめは特にありません。色々ありますがメンテナンスが終了するタイミングでさてどうしたらいいかとなってしまいます。簡単に使えるライブラリは隠蔽が多く、あなたのやりたいことが阻害されることが多いです。おすすめは商用サービスのクライアントが OSS で公開されている場合があるので、それを参考にしてみるのが良いと思います。そのためおすすめなのが既存の便利ライブラリを覚えるのではなく、 adapter というブラウザの互換性を吸収してくれるライブラリを使うことを検討しましょう。adapter は世界中に WebRTC を利用している人たちの苦労が集まっています。 Copy sharable link for this gist. Embed this gist in your website. 既存の Flash で実現していた機能を WebRTC や HLS/MPEG-DASH に切り替えていく必要がります。この資料では WebRTC を仕事で利用する場合、何をしたいのか、 Qiita can be used more conveniently after logging in.By following users and tags, you can catch up information on technical fields that you are interested in as a wholeBy "stocking" the articles you like, you can search right awayHelp us understand the problem. Janus is a WebRTC Server developed by Meetecho conceived to be a general purpose one. 今回はWebRTCのライブラリ Janus を使って以下のような構成を実現して、ビデオチャットサーバーを作ります。 Janusサーバーの構築 今回の前提環境(Windows Subsystem for Linuxでいけました) OS ubuntu 16.04 ライブラリ群のインストール そのノウハウをつぎ込みオープンソースとして公開している WebRTC を P2P で利用する際に必要となるシグナリングサーバです。Go で書かれており、 1:1 の利用に限定することでかなりシンプルに作られています。商用にも耐える性能を持っています。Ayame Lite は Ayame をサービスとして提供し、 毎年かかります。製品のサポート料金込みです。200 接続だと年間 120 万円です。パッケージで提供しますので、自社で運用が可能です。 AWS だろうが GCP だろうが、オンプレだろうがなんでも好きな環境で動かすことができます。サーバさえあれば起動までは 10 分です。 HTTPS が必須なのでその準備が必要ですがそれさえ対応できればすぐ確認可能です。GitHub にオープンソースで公開している WebRTC のネイティブクライアントです。 Linux と macOS と Windows で動作します。GitHub にオープンソースで公開している WebRTC のシグナリングサーバです。 Linux と macOS と Windows で動作します。 janusはかなり活発に開発が行われているうえ、slackの音声通話などでも利用されているらしいです。 意外と簡単に動かせたので、WebRTCで多対多の通信をしたいときに使ってみるとよいかと思います。(P2Pだと4~5人くらいで厳しくなって さらにルーム認証や STUN/TURN サーバを提供している Ayame 自体には一切手を入れていません。そのため、最初はサービスを利用していたが、自社で運用するといった切り替えが可能です。お勧めは Janus です。様々な機能を持っていますし、たくさんの場所で利用されています。 最近は日本語でビルド情報を公開してくれている方も多いのでそちらを参考にしてみるのが良いと思います。ただ、 React-Native も結局は iOS/Android の知識が必要なので、まぁ悩ましいところではあります。Ayame は WebRTC SFU を1から開発している時雨堂が、 もちろんどちらかを選択して、辛くなったので切り替えるというのでも構わないと思います。最初から SFU を選択できるのであればある程度 WebRTC への理解があると思いますので、 Share やりたいことをするには何をすればいいのかを、選ぶお手伝いができればと考えています。WebRTC は音声や映像を扱う以上、繋がらないが誰もがわかる技術です。そのため、できる限り繋がる必要があります。ただ、それが繋がらなくてもいい場合だってあります。おまけ的な機能だったらチャットでカバーできたりもしますし、最終的にはメールや Skype でも良い場合だってあります。MCU が必要ということは会議システムがメインでしょうか。MCU はそもそも会議システムの世界で生まれた技術ですのでそちらの代理店を色々探して見るのが良いです。MCU は 1 部屋 1 コアを利用するくらいの CPU リソースを持っていくシステムです。その部分を考慮すると良いです。もちろん OSS もあるので、それも検討するのが良いでしょう。サービスを利用するか、OSS でがんばるか、商用を利用するかの二択をまず選びます。
Chrome, Firefox で利用可能 video.captureStream() / audio.captureStream() Firefox では、video.mozCaptureStream() が使える Chrome 54 では、 chrome://flags の変更で使える 「試験運用版のウェブ プラットフォームの機能」 を有効 Qiita can be used more conveniently after logging in.You seem to be reading articles frequently this month. VR で音声とモーションデータを送りたいといったデータだけではなく音声や映像との組み合わせの需要がでてきました。しかし、音声や映像との動機ができないデータチャネルを使うメリットはほぼありません。あくまで P2P で 1:1 のやり取りで、さらに限定的な場面でのみ利用可能と考えて間違いありません。無償で提供されているサービス、またはオープンソースを使うということなります。その場合はいくつかの課題に立ち向かう必要があります。がんばりましょう、理由は様々です。ノウハウを溜め込みましょう。ネットワーク環境、ブラウザ環境、プラグイン、様々な原因があります。がんばりましょう。適当にライブラリを決めてしまうと追従を止める可能性はあります。もちろん Pull-Request を送ったりするのもとても良いことです。がんばりましょう。シグナリングサーバは WebRTC の仕様は決められていません。どんな実装でも問題ありません。多い実装は Node.js で Socket.io が多いようです。この部分は利用者数を想定する必要があります。基本的に WebRTC を利用する場合はシグナリング用の通信は張りっぱなしにすることが多いです。そのため 1 サーバで同時に張れる量を調べてみるのが良いです。Golang や Elixir なんでも良いです、好きな言語で作ってもよし。既存のシグナリングサーバ実装を使うもよし。がんばりましょう。TURN サーバを建てないと 70% 程度しか繫がらないという調査結果があります。つまり 30% はつながりません。仕事で使う場合はこれは受け入れられないでしょうから、 TURN サーバのノウハウを溜め込んでいきましょう。ありがたいことに TURN サーバの選択肢は多くありません。まずは coturn というサーバを利用してみてください。TURN サーバを運用するということはトンネルサーバを提供するということになります。転送量を気にしましょう。映像や音声はすぐに最大値を利用してきます。WebRTC であれば 2000kbps とかもザラにつかってきますので、あっというまに転送量が 1G 行きます。また、TURN サーバが落ちている場合は繫がらないのと同等ですので気をつけてください。TURN サーバは認証が必須です。Username/Credential はワンタイムで利用できるようにしましょう。coturn は RDB や Redis といったデータベースと連携できますので、うまく組み合わせていきましょう。TURN-TCP と TURN-TLS まで対応させてしまえば、 そのポートが潰されて限りは大丈夫なはずです。たまに MITM やってる FW がありますがそこはまぁあきらめてください。ビルドして、使えるようになるのがまず一番です。忘れていけませんがこのコードもガンガンバージョンは上がっていきます。ブラウザだけではなくこれらのコアライブラリにも追従していく必要があります。