Slide 1

Slide 1 text

Copyright © LabBase, Inc. All Rights Reserved.  Rust×mediasoup で作る ビデオチャットシステム

Slide 2

Slide 2 text

Copyright © LabBase, Inc. All Rights Reserved.  今日の発表について ● 今日のデモサイトとコード ○ https://mediasoup-test.diatonic.jp/ ○ https://github.com/hotwatermorning/mediasoup-test ● 今回の発表は、表題の内容について自分で調べて試してみたもの。 この技術について十分な知見があるとは言えないのでその点 ご容赦下さい。

Slide 3

Slide 3 text

Copyright © LabBase, Inc. All Rights Reserved.  会社紹介

Slide 4

Slide 4 text

Copyright © LabBase, Inc. All Rights Reserved.  会社紹介

Slide 5

Slide 5 text

Copyright © LabBase, Inc. All Rights Reserved.  弊社はRust推しです ● 来週21日(土)のRust Tokyo 2023に シルバースポンサーとして協賛してます ○ https://rust.tokyo/2023 ● 弊社での開発に興味があったらぜひカジュアル面談 しましょう! ○ https://herp.careers/v1/polinc/QWQuVQIx8WH5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Copyright © LabBase, Inc. All Rights Reserved.  目次 ● mediasoupとは ● Rust×mediasoupで何ができるのか ● デモ ● 参考情報など

Slide 8

Slide 8 text

Copyright © LabBase, Inc. All Rights Reserved.  01.mediasoupとは

Slide 9

Slide 9 text

Copyright © LabBase, Inc. All Rights Reserved.  mediasoupとは? WebRTC SFUのためのライブラリ https://mediasoup.org/

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Copyright © LabBase, Inc. All Rights Reserved.  02.Rust×mediasoupで 何ができるか

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Copyright © LabBase, Inc. All Rights Reserved.  Rust×mediasoupで何ができるか mediasoupの機能 ● SFU ● IPv6 Ready ● Simulcast and SVC ● 輻輳制御 ● 録画(GStreamer, FFmpeg) ● などなど・・・

Slide 17

Slide 17 text

Copyright © LabBase, Inc. All Rights Reserved.  03.デモ

Slide 18

Slide 18 text

Copyright © LabBase, Inc. All Rights Reserved.  デモ

Slide 19

Slide 19 text

Copyright © LabBase, Inc. All Rights Reserved.  04.参考情報など

Slide 20

Slide 20 text

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の仕組みについて分かりやすく解説されています

Slide 21

Slide 21 text

Copyright © LabBase, Inc. All Rights Reserved.  ありがとう ございました!

Slide 22

Slide 22 text

Copyright © LabBase, Inc. All Rights Reserved.