Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust×mediasoupで作るビデオチャットシステム.pdf

hotwatermorning
October 11, 2023
920

 Rust×mediasoupで作るビデオチャットシステム.pdf

hotwatermorning

October 11, 2023
Tweet

Transcript

  1. Copyright © LabBase, Inc. All Rights Reserved.  今日の発表について • 今日のデモサイトとコード

    ◦ https://mediasoup-test.diatonic.jp/ ◦ https://github.com/hotwatermorning/mediasoup-test • 今回の発表は、表題の内容について自分で調べて試してみたもの。 この技術について十分な知見があるとは言えないのでその点 ご容赦下さい。
  2. Copyright © LabBase, Inc. All Rights Reserved.  弊社はRust推しです • 来週21日(土)のRust

    Tokyo 2023に シルバースポンサーとして協賛してます ◦ https://rust.tokyo/2023 • 弊社での開発に興味があったらぜひカジュアル面談 しましょう! ◦ https://herp.careers/v1/polinc/QWQuVQIx8WH5
  3. Copyright © LabBase, Inc. All Rights Reserved.  自己紹介 湯朝剛介 (@hotwatermorning)

    • 前職ではC++でオーディオアプリケーションを開発 • いまは株式会社LabBaseで、TypeScriptとRustを使って Webサービスを開発している • 趣味はプログラミングと作曲(DTM) • 「C++ポケットリファレンス」 (技術評論社)共著
  4. Copyright © LabBase, Inc. All Rights Reserved.  目次 • mediasoupとは

    • Rust×mediasoupで何ができるのか • デモ • 参考情報など
  5. Copyright © LabBase, Inc. All Rights Reserved.  mediasoupとは? WebRTC (Web

    Real-Time Communication) • Webブラウザやモバイルアプリなどでリアルタイム通信をする技術 • 音声/ビデオ/バイナリデータをP2Pでやり取りできる • Webと付いているが、アプリやゲームからも利用できる
  6. Copyright © LabBase, Inc. All Rights Reserved.  mediasoupとは? SFU (Selective

    Forwarding Unit) • WebRTCのP2P通信は、参加者が増えるほど帯域を消費する ◦ 例えば5人がフルメッシュでP2P通信すると、それぞれの参加者が自身を 除く4人すべてにデータを送受信する必要がある • これを防ぐために、各参加者の通信を集約して配信するための仕組み https://dev.to/devalexiou/the-multiple-faces-of-webrtc-n-peer-calling-mesh-mcu-and-sfu-39dg
  7. Copyright © LabBase, Inc. All Rights Reserved.  mediasoupとは? つまりmediasoupを使うと •

    複数人が参加可能な、WebRTCによるビデオチャットのシステムを 構築できる。
  8. Copyright © LabBase, Inc. All Rights Reserved.  mediasoupとは? mediasoupの特徴 •

    バックエンド(サーバーサイド)側のAPIとしてC++, Node, Rustをサポート • フロントエンド側のAPIとしてC++, JavaScript をサポート • サーバーではなく単体のライブラリとして提供されている ◦ 他のアプリケーションに組み込みやすい
  9. Copyright © LabBase, Inc. All Rights Reserved.  Rust×mediasoupで何ができるか mediasoupとRust •

    mediasoupはバックエンド側のAPIでRustをサポートしている • => Rust製のWebアプリケーションにビデオチャットシステムを 組み込みやすい ◦ フロントエンドはJavaScriptかC++で書く必要あり
  10. Copyright © LabBase, Inc. All Rights Reserved.  Rust×mediasoupで何ができるか mediasoupの機能 •

    SFU • IPv6 Ready • Simulcast and SVC • 輻輳制御 • 録画(GStreamer, FFmpeg) • などなど・・・
  11. Copyright © LabBase, Inc. All Rights Reserved.  参考情報など • mediasoup公式サイト

    (https://mediasoup.org/) • 時雨堂のWebRTC入門イベント ◦ 自社でSFUを開発している時雨堂の人が時々やっている WebRTCの入門イベント ◦ めちゃめちゃ勉強になるので興味ある人はおすすめです • WebRTC Meetup (https://webrtcmeetup.connpass.com/) ◦ WebRTCのコミュニティ ◦ 過去の勉強会の資料や動画が上がっていてめちゃめちゃ参考になります • console.lealog(); (https://lealog.hateblo.jp/) ◦ mediasoupの仕組みについて分かりやすく解説されています