Rust×mediasoupで作るビデオチャットシステム.pdf
by
hotwatermorning
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.