8K動画をクラウドで快適に配信してみた ~未来ネットワーク体験記 第1回~
プライベートクラウドとネットワーク高速化技術を動画配信に活用しました。
テクノロジーコラム
- 2021年06月07日公開
NTTテクノクロス フューチャーネットワーク事業部の松野能久です。
事業部の名の通り「未来のネットワークの研究開発」に携わっています。
今回は未来のネットワークに必要になるであろう高画質動画の世界について実験をしたいと思います。
「2021年のNW動向 高速化技術とクラウド 第1回」で紹介したように近年はYouTubeなど動画コンテンツが増えたことにより、トラフィック量が爆発的に増えてきています。
今現在、動画の解像度はフルHDが多いと思いますがYoutubeにも4Kの動画がありますよね。この4K、トラフィック量で考えると
なんとフルHDの4倍!
4Kが主流の動画になるとトラフィック量のグラフは急激に上がります。
そして8Kはまだまだ一般的に普及していませんが、8Kが主流になったらどうなるでしょうか?
トラフィック量にすると
4Kの2倍!
つまり、
今主流、フルHDの8倍です!
※注意:厳密にはコーデック、フレーム構造、サンプリン構造など様々な要素から決まりますがおおよそのイメージとして捉えてください
もちろん動画の綺麗さは格段に上がりますが、そんな大量のトラフィックになると今のネットワーク環境では快適に見れる気がしませんよね?
ですが!
今回は時代を先取りして8K動画を快適に配信、視聴できる環境を作り上げていきたいと思います。
今回の実験環境について
今回はプライベートクラウド環境を作って8K動画を配信してみたいと思います。
実験環境の構成図
実験環境を具体的な図にするとこのようになります。
それでは、なぜこのような環境にしたかを8Kのトラフィック量とプライベートクラウドという2つの側面から見ていきます。
8Kって何?トラフィック量はどのくらい?
配信する8K動画を用意しますが、8Kについてもう少し詳しく解説します。
冒頭で大量トラフィックとお伝えしましたが、どのくらい大量なのかがわかるようになると思います。
そもそも動画のトラフィック量はどう決まるのでしょうか?
動画は文字通り「画像が動く」です。
動かすには何枚もの画像が連なって切り替えていく必要があります。
パラパラ漫画と同じ原理ですね。
つまり、1秒の動画であったとしても数十枚の画像が必要となります。
この1秒あたりに必要になる画像の枚数の単位をfps(frames per second)と言います。
一般的には24fps、30fps、60fpsが用いられていて30fpsが多い印象があります。
このため、30fpsの1秒あたりの動画トラフィック量は30枚の画像サイズが目安となります。
次に画像サイズを考えてみることにります。
画像のサイズは解像度が上がるほど大きくなります。
また、場面の切り替えの際には場面が切り替わるので前後で全く異なる画像となるため画像のサイズは大きくなります。
他にも動きが早い動画の場合には前後の画像の差分が大きくなるため、1枚当たりの画像サイズは大きくなる傾向があります。
8Kの場合は、1枚の画像が横7680ピクセル×縦4320ピクセルの約330万画素の解像度になりますので、画像サイズは20M~50Mです。
動画では場面切り替えがあまり激しくない場合でも1つ前の画像との差分を配信する必要がありますので、30fpsで大体平均で1秒間あたり約200M程度のトラフィック量が必要となります。
1秒間に流れるトラフィック量は1秒間に何ビットかという単位でbit per second(ビットパーセカンド)を略したbpsという単位が用いられます。
これらをまとめると
8K動画のトラフィック量は約200Mbps
となります。
プライベートクラウドって何?
8K動画は大量のトラフィック量になるとお伝えしましたが、この大量のトラフィックを扱うキーになる技術の1つがプライベートクラウドです。
まず、クラウドには、パブリッククラウドとプライベートクラウドの2つがあります。
パブリッククラウドは、インターネットを通じてアクセスできるクラウド環境を複数のユーザでシェアして利用するサービスです。
プライベートクラウドは、社内に設置された専用のクラウド環境です。
パブリッククラウドは、クラウド環境の構築や運用などの手間やコストがかからず、すぐに使い始められるのが特徴です。
一方で、クラウド環境をシェアして利用するため、セキュリティリスクやNWも含めたリソースの使用量に注意する必要があります。
プライベートクラウドは、環境の構築や運用などの手間やコストがかかりますが、自由にカスタマイズして使うことができます。
これらの特徴をまとめると以下のようになります。
特徴 | パブリッククラウド | プライベートクラウド |
構築・運用コスト | 低い | 高い |
リソースの自由度 |
低い ※使いすぎに注意が必要 |
高い |
環境構築
それでは実際に環境を作っていきましょう。
今回はプライベートクラウドに弊社のOpenStackを用いたクラウド環境を利用したいと思います。
OpenStackでのネットワーク構築
プライベートな空間ですのでまだ何もありません。
まずはネットワークを構築していきます。
今回は
・インターネットにアクセスして動画等を取得するためのネットワーク
・社内PCからアクセスして操作するためのネットワーク
・動画配信を行うためのネットワーク
の3つを作ります。
それでは作成を行います。
まず、OpenStackのメニューからネットワークを選択して、ネットワークの作成を選びます。
インターネットにアクセスするネットワークになるので、private-internetという名称にしました。
名称を決めたらサブネットの設定になります。
プライベート空間になるので192.168.0.0/24のネットワークアドレスを使用します。
他にも詳細な設定を行うことができますが、今回は簡単な実験環境なのでこれで作成を行います。
これで1つ目のNWの作成は終わりです。簡単ですね。
ここまでで環境のイメージとしては次のようになっています。
続けて
・社内PCからアクセスして操作するためのNW
・動画配信を行うためのNW
も同じように作成します。
作成するとOpenStackのネットワーク一覧では次のようになります。
社内PCからアクセスして操作するためのNWはprivate-shanai
動画配信を行うためのNWはTest-Network
として作成しました。
環境のイメージとしては以下まで作った状態になります。
この状態ですと、プライベートクラウドの外にあるインターネット、社内ネットワークに繋がっていないので繋げてあげる必要があります。
繋げる方法はOpenStackのルーターを使います。
OpenStackではルーターの作成も簡単にできます。
ネットワークの時と同じようにOpenStackのメニューからルーターを選択して、ルーターの作成を選びます。
internetと繋ぐルーターを作るので名前はrouter-internetにしました。
外部ネットワークにはinternetを指定します。
これで作成するとルーターの作成は完了です。
今の状態では以下のようにルーターはプライベートクラウドのネットワークに接続されていない状態ですのでこれを繋げます。
ルータに対してインターフェースの追加でPrivate-Internetを選択することで繋ぐことができます。
これでプライベートクラウドとインターネットが繋がりました。
同じように社内ネットワークも接続すればネットワークの作成は完了です。
次は動画配信を行うサーバと動画受信を行うサーバを設置していきましょう。
OpenStackでのサーバー構築
今回は8K動画を配信しますのでマシンとしては動画配信マシン、動画受信マシンの2つを用意します。
OpenStackではバーチャルマシン(VM)が簡単に作成できますのでネットワークに続き早速作っていきましょう。
まずサーバの箱を作る必要があるのでボリュームの作成を行います。
動画配信用として使うものから作るので名前はSenderにしました。
また、OSは今回はUbuntuを使用します。
動画受信用も同じように作ります。名前はRecieverにしました。
すると2つのボリュームができます。
これで箱はできたのでサーバとして機能するよう作り上げていきます。
これにはボリュームをインスタンスとして起動する必要がありますのでボリュームからインスタンスとして起動を選択します。
ここからはインスタンスの内容設定になります。
名前はボリュームと同じくSenderにします。
ソースは箱を選ぶ必要がありますので既に作ったSenderのボリュームを選びます。
フレーバーとはCPUやメモリのスペックを決めるところです。
今回はそこまでスペックはなくて良いのでCPU1、メモリ2GBのサーバにします。
そしてネットワークの接続です。
既に
・インターネットにアクセスして動画等を取得するためのNW
・社内PCからアクセスして操作するためのNW
・動画配信を行うためのNW
の3つのネットワークは作成していますのでこの3つ全てに接続します。
これで設定はできたので起動します。
図にすると今の状態はこのようになります。
そして、受信側のサーバも同じように作ると今回実験したい環境が出来上がります。
動作紹介
それではいよいよ動画の配信と受信を行っていきます。
今回用意した8K動画はこちらです。
プロパティを見るとビットレートが200Mbps以上になっています。
動画の配信
配信はVLCプレーヤーを使ったストリーミング配信で行います。
VLCプレーヤーのPlayでStreamを選択します。
ストリーミング配信ではRTSP(Real Time Streaming Protocol)の他にもHTTPやRTPを使うことができますが、今回の配信ではRTSPを使います。
違いや詳しい内容を知りたい場合はお問い合わせフォームからお問い合わせください。
ポート番号はRTSPの標準ポート8554を使用します。
Streamボタンを押すと配信が開始されるのでこれで配信側の準備は完了です。
動画の受信
次に配信されている動画を受信してみましょう。
受信も配信と同じくVLCプレーヤーを使います。
配信側の動画をネットワーク越しに映すのでOpen Mediaではnetworkで配信側のURLを指定します。
なお、配信側はRSTPで配信していますので、受信側のURLもRSTPで指定します。
受信側の準備はこれで終わりです。あとはPlayでスタートすれば受信することができます。
受信が成功しているので動画表示できていますね。
静止画なので動画の動きをお見せできませんが、大量のパケットが流れているものの動画配信専用のネットワークを作っていますのでストレスなく受信できています。
まとめ
今回はプライベートクラウドを利用して8K動画で大量トラフィックを流す実験を行ってみましたがいかがでしょうか?
8K動画の配信ではフルHDと比べると4倍ものトラフィックが流れていますがプライベートクラウドを使うと安定して動画配信を行うことができました。
NTTテクノクロスでは、これまで培ってきたOpenStackのノウハウを活かし、設計・構築から保守運用まで、プライベートクラウドに関する幅広いソリューションをご用意しております。
設計の前段階のコンサルティングや、逆に構築済みの基盤の保守のみ依頼したい、といったご要望も相談可能です。
詳細は以下ページでご紹介していますので、ご興味やお悩みがございましたら、ぜひお気軽にお声がけください。
[著者プロフィール]
フューチャーネットワーク事業部 第一ビジネスユニット
松野 能久(MATSUNO YOSHIHISA)