Copyright © LabBase, Inc. All Rights Reserved. Rust×mediasoupで作るビデオチャットシステム
View Slide
Copyright © LabBase, Inc. All Rights Reserved. 今日の発表について● 今日のデモサイトとコード○ https://mediasoup-test.diatonic.jp/○ https://github.com/hotwatermorning/mediasoup-test● 今回の発表は、表題の内容について自分で調べて試してみたもの。この技術について十分な知見があるとは言えないのでその点ご容赦下さい。
Copyright © LabBase, Inc. All Rights Reserved. 会社紹介
Copyright © LabBase, Inc. All Rights Reserved. 弊社はRust推しです● 来週21日(土)のRust Tokyo 2023にシルバースポンサーとして協賛してます○ https://rust.tokyo/2023● 弊社での開発に興味があったらぜひカジュアル面談しましょう!○ https://herp.careers/v1/polinc/QWQuVQIx8WH5
Copyright © LabBase, Inc. All Rights Reserved. 自己紹介湯朝剛介 (@hotwatermorning)● 前職ではC++でオーディオアプリケーションを開発● いまは株式会社LabBaseで、TypeScriptとRustを使ってWebサービスを開発している● 趣味はプログラミングと作曲(DTM)● 「C++ポケットリファレンス」(技術評論社)共著
Copyright © LabBase, Inc. All Rights Reserved. 目次● mediasoupとは● Rust×mediasoupで何ができるのか● デモ● 参考情報など
Copyright © LabBase, Inc. All Rights Reserved. 01.mediasoupとは
Copyright © LabBase, Inc. All Rights Reserved. mediasoupとは?WebRTC SFUのためのライブラリhttps://mediasoup.org/
Copyright © LabBase, Inc. All Rights Reserved. mediasoupとは?WebRTC (Web Real-Time Communication)● Webブラウザやモバイルアプリなどでリアルタイム通信をする技術● 音声/ビデオ/バイナリデータをP2Pでやり取りできる● Webと付いているが、アプリやゲームからも利用できる
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
Copyright © LabBase, Inc. All Rights Reserved. mediasoupとは?つまりmediasoupを使うと● 複数人が参加可能な、WebRTCによるビデオチャットのシステムを構築できる。
Copyright © LabBase, Inc. All Rights Reserved. mediasoupとは?mediasoupの特徴● バックエンド(サーバーサイド)側のAPIとしてC++, Node, Rustをサポート● フロントエンド側のAPIとしてC++, JavaScript をサポート● サーバーではなく単体のライブラリとして提供されている○ 他のアプリケーションに組み込みやすい
Copyright © LabBase, Inc. All Rights Reserved. 02.Rust×mediasoupで何ができるか
Copyright © LabBase, Inc. All Rights Reserved. Rust×mediasoupで何ができるかmediasoupとRust● mediasoupはバックエンド側のAPIでRustをサポートしている● => Rust製のWebアプリケーションにビデオチャットシステムを組み込みやすい○ フロントエンドはJavaScriptかC++で書く必要あり
Copyright © LabBase, Inc. All Rights Reserved. Rust×mediasoupで何ができるかmediasoupの機能● SFU● IPv6 Ready● Simulcast and SVC● 輻輳制御● 録画(GStreamer, FFmpeg)● などなど・・・
Copyright © LabBase, Inc. All Rights Reserved. 03.デモ
Copyright © LabBase, Inc. All Rights Reserved. デモ
Copyright © LabBase, Inc. All Rights Reserved. 04.参考情報など
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の仕組みについて分かりやすく解説されています
Copyright © LabBase, Inc. All Rights Reserved. ありがとうございました!
Copyright © LabBase, Inc. All Rights Reserved.