映像配信サーバーの構築 第2回(選択した環境はレンタルのVPS環境)

選択した環境

レンタルサーバー(転送データ無制限)を利用

各事務所が全国にある為、拠点間のVPNが存在するが、映像配信によって帯域を常に占有する訳にはいかないですし、クラウド系配信サービスも同様に長時間配信だと予算的に厳しい。自社内のDMZエリアに公開サーバーを配置する案もありますが、現状はDMZ自体が無いので環境構築費用を考慮すると選択肢から除外となります。

コスト、セキュリティ、通信インフラを総合的考えるとレンタルサーバーの選択が現実的となりました。

配信サービスはOpen Source Softwareを利用

配信サービスも社員数500名×勤務時間中の配信を考えると数万円/月の予算では配信サービスの利用が難しいのが現実です。ほとんどの配信サービスでは視聴回数などの制限があるので、500名が20日間毎日閲覧(デスクトップに埋め込んで強制再生)するとなると10,000回以上の再生回数が予想され、かつ長時間となるので利用可能なサービスがかなり限られます。それでもSmartSTREAMは比較的条件をクリアできそうでした。

AVideoを選択

OSSの候補としてはSTREAMAAVideoMistServer などいくつかありましたが、認証プラグインや埋め込み用HTMLなどが提供されていたことからAVideoを選択しました。

STREAMA
AVideo
MistServer

配信の構成

LIVE配信の構成

AVideoはPHPで構成されたプログラムでサーバーにアップロードされた各映像リストをDB(ここではMySQL)管理してApache経由でユーザーに映像リスト情報を提供し、サーバーに格納されているxxxxx.mp4ファイルを選択することで映像を閲覧します。
一方、LIVE配信については上記の図の様にRTMPによって送られてきた映像をNGINX経由でFFmpegへ送り、HLSで配信可能な形式へ変換(xxxxx.ts)を行い、xxxxx.m3u8ファイルの内容でxxxxx.tsファイルを再生して閲覧します。

Encoder部分はOBSでも代用可能ですが、専用ハードも比較的安いのでハードが場所も取らいないのでお勧めです。

上記の構成でWEBサーバーやデータベースを利用していますので、レンタルするサーバーは共有サーバーではなく、占有サーバーもしくはVPSを選択することになります。
サーバー構成的にはCPUコア×2でも充分です、最低メモリーは4GB。通信帯域がどのくらいかによって視聴可能ユーザー数に制限が出て来るかと思います。

今回相談を受けた内容では500名が常時閲覧となると帯域的にSD映像もしくはサイネージで利用されてえいる情報ページ(パワーポイント資料を想定)ではHD映像でフレームレートを24fpsぐらいまで下げていくことでデータ転送量の節約をしていく感じでしょうか。
本番環境に実際に構築となればこの辺りは専門家に任せるのが一番ですね。