8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

○○作ってみない?Advent Calendar 2023

Day 18

実際に使った「ライブ配信サイトでも作ってみない?」1日目

Last updated at Posted at 2023-12-24

めっちゃ簡単にライブ配信サイトを作ってみよう

今回のライブ配信は「1対多」を想定しています。
あといわゆる配信プラットフォームというよりは、ある特定のプロモーションに対しての配信...つまりは文化祭のライブ配信とかに向いてるような物を想定しています。

というのも、これは実際に文化祭の為に開発を行い使用した物だからです。

WebRTC...?

ライブ配信システムについては色々な方法があります。
よく使われるのはHLSストリームとかでしょうか。しかし、これを自前で実装(NginxやApacheは使う予定がなかった)するやり方はちょっとめんどくさそうでした。そこで、WebRTCという技術が登場します。

WebRTCというのは、ブラウザやモバイルアプリからリアルタイムで通信することを目的としたものです。

...と、言葉で説明するのはとても簡単ですが、実際にそれを実装するのはまたまた大変です。

P2PとSFU

WebRTCにはP2PとSFUの2種類の通信方法があります。
P2Pは聞いたことがある人も多いかもしれませんが、Peer to Peerの略で、簡単なシグナリングサーバーを用意すれば、あとは動画配信をするユーザーと配信を見るユーザーが通信を始めるみたいな感じのやつです。
P2Pはそれぞれのユーザーが直接通信をするため、サーバーに負荷がかかりません。
しかし、P2Pで1対多の通信をしようとすると、配信するユーザーに対していくつものコネクションが張られるため、配信するユーザーのパソコンやネット回線に負荷がかかってしまいます。

配信パソコンの負荷は何とかなると思いましたが、今回のネットワーク回線はなんとセルラー通信を予定しており(というよりはWi-Fiが届かない場所での配信だった為)、P2Pでの配信は諦めました。

そしてもうひとつのSFUというのは、SFUサーバーというものが各ユーザーの通信をまとめて処理する為、多くの人が配信を見にきても負荷がかかるのはSFUサーバーということになる...みたいなものです。

(わぁ、こんなところにわかりやすい記事が)

ということで、今回の配信サービスはWebRTC SFUを使用したライブ配信と決まりました。

じゃあWebRTCを実装してみろよ

と...WebRTCの実装方法について調べてみました。
さっぱりでした。

というわけで無念ですがここで終わらせていただきます。

つながるをもっと簡単に。

困っていた私に、NTTが一筋の光を見せてくれました。
それが、SkyWayです。

SkyWayは、ビデオ・音声・データ通信機能をアプリケーションに簡単に実装できる
SDK&APIです。ビデオ会議や、オンライン診療、遠隔ロボットなど、リアルタイムな
コミュニケーションを実現します。

(引用: SkyWay公式ページ)

というわけで、SkyWayを使えばもしかしたら配信サービスが作れるかもしれない!となりました。

Welcome to SkyWay

今日はSkyWayのアカウントを作って、プロジェクトの準備をしてみましょう。

こちらからSkyWayアカウントを作成することができます。
まずは作りましょう。
次に「プロジェクト」という物を作ります。
プロジェクトの名前はなんでもいいと思います。今回は「QiitaAdvent23」とかにでもしておきました。
(ここら辺はうろ覚えなので画面の指示に従ってください。)

IMG_6452.jpeg

こんな画面になったかなと思います。
そしたら右上より「アプリケーションを作成」を押してアプリケーションを作成しましょう。
機密情報があるのでシークレットキーとかはちゃんと隠しておきましょう。

ここまでできたらあとはコーディングするだけです。
とりあえず今回はSkyWayとかの概要だけ紹介して終わりにします。

Next...

というわけでNTTにヘコヘコしながらSkyWayを使った旅が始まります。
もちろんSoftBankやKDDIのことも忘れてません。このシリーズの最後の方でなんと主要3キャリアがみんな出てきます。胸熱展開!

次回は早速コーディングからです。では〜

(ちなみに、基本的にサンプルプロジェクトに準拠していきます。)

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?