ほぼ無料で誰でも?気軽に?使えるH265対応8Kライブストリーミング配信サーバー(RTMP/HLS)を構築、8Kライブ配信を試してみよう

誰でも使えるライブ配信プラットファームとして、YoutubeやFacebookがありますが8Kには対応していません。8Kでライブ配信できるカメラがあっても、気軽に使える8K対応の配信サーバーは少ない状況です。

気軽に使える8K対応の配信サーバーを作ってみましょう。ほぼ無料で誰でも?気軽に?使えるH265対応8Kライブストリーミング配信サーバー(RTMP/HLS)を構築して、8Kライブ配信を試してみます。

広告:リアルタイム8K3D(7680×3840@30fps)VR180ライブ配信カメラ「Kandao VR Cam(カンダオ ブイアール カム)」の発売及び、導入サービスを提供
https://jouer.co.jp/news/8k3d-vr180live-kandao-vr-cam/


ライブ配信をするために必要な配信サーバーは、2パターンあります。どこかの配信サービスを利用するか、自分で配信サーバーを構築するかです。

1.配信サービスを利用する(主にクラウド)
2.配信サーバーを構築(オンプレ or クラウド)

8Kライブストリーミング配信サービスを調べると、いくつか配信サービスが見つかります。企業向けだったり、気軽に使えるものは少ないです。Wowza、Vimeo、AWS Elemental MediaLive etc etc..などもありますが、4Kライブ配信ついては詳しく説明があるものの、8Kについては、明確に書かれていなかったりします(H265に対応していれば原理的には動くはずですけれど・・・)。

 

SRS(Simple Realtime Server)配信サーバーを構築

ということで、自分で配信サーバーを構築してみます。構築はクラウドで行います。オンプレミス(物理的にサーバーをつくってネットワークにつなげる)でも作れますが、誰でも?気軽に使えるコンセプトから、今回はAWSでクラウドに構築したいと思います。

配信サーバーを構築するとき、よく使われるのnginx+nginx-rtmp-moduleです。nginxの読み方はエンジン(ンジンエックスにみえますが。。エンジン)です。nginx-rtmp-moduleは、正式にH265をサポートしていないため8Kのライブ配信で利用するには、さまざまな工夫が必要になります。今回は使いません。

H265をサポートするSRS(Simple Realtime Server)を使います。どのようなシステムか説明を引用します。

SRS(Simple Realtime Server)とは
https://ossrs.io/lts/en-us/docs/v5/doc/introduction#whos-using-srs

SRSはオープンソース (MITライセンス)、シンプルで、高効率のリアルタイムビデオサーバであり、RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH、GB28181をサポートしています。SRSメディアサーバは、FFmpeg、OBS、VLC、WebRTCなどのクライアントと連携し、典型的なパブリッシュ(プッシュ)およびサブスクライブ(再生)のサーバモデルでストリームを受信および配信する能力を提供します。SRSは、RTMPやSRTをHLS、HTTP-FLV、WebRTCに変換するなど、広く使われているインターネットオーディオとビデオのプロトコル変換をサポートしています。

 

というオープンソースです。たぶん開発元は中国のエンジニアの方々なのかなと思います。Ubuntu 20+の使用が推奨されていますので、Ubuntu 20で構築します。ソースからの構築よりdockerが推奨されているようです。dockerを利用できる詳しい方は直接「Getting Started」を見て構築ください。
https://ossrs.io/lts/en-us/docs/v5/category/getting-started

 

AWSのEC2をセットアップ

AWSのEC2を使います。テストなので20.04LTSで、t2.mediumあたりで作ります。

 

1時間の利用で0.0608USDドルです。1時間10円ぐらいでしょうか。データの通信料もかかるとしてもお手軽です。好みに応じてインスタンスタイプをお選びください。

 

AWSが初めての人は、さまざまな記事でEC2の使い方が紹介されていますので、登録方法から、リージョン、キーペア、ネットワーク設定など適宜しらべて起動させてください。自分で調べて慣れておく必要があります。

 

インスタンスが起動したらまずは、セキュリティグループを設定します。必要最小限の設定を行います。今回はTCPにてポート22、1985、8080、1935を使います。こんな感じで設定しました。セキュリティ等は考慮していない、ざっくりとしたテスト用の設定です。

 

インスタンスのセキュリティグループを適用させて完了です。

 

手軽にEC2のWebブラウザーからインスタンスに接続してターミナルを開きます。

 

SRSパッケージとツールをインストール

リポジトリを更新してSRSパッケージとツールをインストールします。上手くゆかない場合は、&&で繋げているものを区切って個別に実行してみてください。インストール後にh265オプションを指定してビルドします。

sudo apt update && sudo apt install -y build-essential libssl-dev unzip tclsh cmake pkg-config autoconf automake && git clone -b develop https://github.com/ossrs/srs.git
cd srs/trunk && ./configure --h265=on && make


次にsrs.confを作ります。※srs/trunk内にsrs.confを作っています。必要のない設定も含まれているかもです。深く理解できておりません。

sudo nano srs.conf
listen 1935;
max_connections 1000;
srs_log_tank file;
srs_log_file ./objs/srs.log;

http_api {
    enabled on;
    listen 1985;
    crossdomain on;
}

http_server {
    enabled on;
    listen 8080;
    dir ./objs/nginx/html;
}

stats {
    network 0;
    disk sda sdb xvda xvdb;
}

vhost __defaultVhost__ {
    hls {
        enabled on;
        hls_path ./objs/nginx/html;
        hls_fragment 5;
        hls_window 30;
    }

    http_remux {
        enabled off;
    }
}

以上にて、./objs/srs -c srs.confでSRSが動作します。毎回起動がめんどくさいので、自動起動するように設定します。

 

systemdのサービスとして毎回自動起動

.shファイルを作って、systemdのサービスとして毎回自動起動するように設定します。AWSのubuntuユーザー名はubuntuですので、もしユーザー名が異なる場合は適宜変更してください。nanoはエディターです。vimが好きな人はvimをつかってください。

sudo nano /usr/local/bin/start_srs.sh
#!/bin/bash
cd /home/ubuntu/srs/trunk
./objs/srs -c srs.conf

実行権限も設定しておきます。

sudo chmod +x /usr/local/bin/start_srs.sh

次にsystemdのサービスとして登録します。

sudo nano /etc/systemd/system/srs.service
[Unit]
Description=Start SRS service
After=network.target

[Service]
Type=forking
User=ubuntu
Group=ubuntu
ExecStart=/usr/local/bin/start_srs.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

起動時の開始を有効にします。

sudo systemctl enable srs.service

システムをリブートして正しく起動するか確認します。

sudo reboot
sudo systemctl status srs

問題なく起動していれば準備完了です。これでサーバーを起動すると自動的にSRSサーバーが起動します。以上でセットアップ完了です。ほぼ無料で誰でも?気軽に?使えるH265対応8Kライブストリーミング配信サーバー(RTMP/HLS)を構築できました。

試しに7680×3840@30fpsにて、H265の20Mbpsで配信テストをしてみます。rtmpのURLは以下になります。app部分がストリームキーです。必要に応じて入力を分けてください。xxx.xxx.xxx.xxxは利用しているAWSのインスタンスのIPアドレスに置き換えてください。8K配信ができるkandao  Steamを使っています。

rtmp://xxx.xxx.xxx.xxx:1935/live/app

受信側のhlsがこちらです。対応している再生ソフトなどでライブ配信URLを受信してみてください。Podplayerを使っています。H265@7680×3840@30fpsにてしっかり受信できました。

http://xxx.xxx.xxx.xxx:8080/live/app.m3u8

ちなみに本記事作成にあたりサーバー稼働時間が12時間でEBS(SSD)が4.3GBでした。合計で1.28$の請求です。

注意
テスト用の配信サーバーなので、一般的なセキュリティーはもちろんHTTPSやRTMPの安全性も考慮していません。実際にサービスとして利用する場合には、慎重に検討が必要です。オープンソースであるSRSが信頼足るものか、配信サーバとして安定しているかご自身でご確認ください。

ジュエ株式会社では、さまざまなVRライブ配信システム(ソフト、ハード、サーバーシステム)を提供しています。お気軽にご相談ください。

広告:リアルタイム8K3D(7680×3840@30fps)VR180ライブ配信カメラ「Kandao VR Cam(カンダオ ブイアール カム)」の発売及び、導入サービスを提供
https://jouer.co.jp/news/8k3d-vr180live-kandao-vr-cam/

 

    お問い合わせ


    360度VR撮影、特殊空撮、GRIP、VRライブ配信、撮影機材の販売レンタル、ドローン及びVRイベント運営等、各種ご相談承ります。
    下記フォームよりお気軽にお問い合わせください。



    ※フォームから送信できない場合は、お電話もしくはメールアドレスへ直接ご連絡ください。


    ジュエ株式会社 TEL:050-3786-1660 FAX:03-6740-7791 メール:info@jouer.co.jp
    事務所:〒111-0034 東京都台東区雷門1丁目7-5里見ビル3F

    内容を確認いただき「チェック」を入れて送信ください。


    関連記事一覧

    最近の記事

    オススメ記事

    PAGE TOP