2015年1月6日火曜日

ビデオストリーミングサーバの状況について

オープンソースのビデオ・ストリーミング・サーバの最近の動向を公開されている(検索出来る)範囲で調べてみたので以下にまとめてみる。

数年振りに動画系の話題なので、現状がどうなっているのかということで、"Video Streaming Server"とか"Darwin Streaming Server"(←これは、昔環境作った記憶の断片)というような感じで検索して出て来たプロダクト(とキーワード)を5つピックアップしてGoogleトレンドに掛けてみたのが以下の図
Red5(), Kaltura(), GStreamer(), VideoLAN Server(), HLS Streaming(

ピックアップした5つは、単純にキーワード検索しているのでノイズが多いし、普通にGoogleでWeb検索してみた結果だと、もう少し情報が多いような気もするのだけど大体の動向が分かれば良いので絞り込みはしない状態で良いと考えている(上の図は「すべての国」「すべてのカテゴリ」「ウェブ検索」という条件)
2006年から2010年ぐらいまでが、ピックアップした5つのプロダクトのピークになっていて、徐々に減っていて現在はピーク時の半分以下ぐらいの注目度になっているという状況(120から50ぐらいに減少している)ビデオ・ストリーミング環境が個人を含むプライベート環境での利用から商用またはパブリックのサービスを利用する方向にどれ位流れているのかというデータをこれに重ね合わせることで現状のビデオ・ストリーミングに関する現在の状況がより明確になると考えるが、モバイルデバイスの進化や無線環境の高速化、サービスの多様化と簡易化などが進んでいることは明らかなので、利用者の増加(これも本当に増加しているのかデータが必要ではあるが)に同期する形で「利用する」という方向にシフトしているというのは容易に想像できる。従って、ビデオ・ストリーミングの市場自体は縮小している訳ではないが、サービスとしてオープンソースを基本としたビデオ・ストリーミング環境を構築することに対するニーズは縮小傾向にあると考えられる。
GStreamerは2006年がトレンドのピーク、Red5は2008年から2010年位までがトレンドのピークで、両プロダクトともその後は徐々に下がっている。GStreamerの方が落ち方が緩やかだが、Red5は約1年周期で検索のピークが現れている(実際、使い方とかインストール記事が色々な年に分散している)ので、現状は両プロダクトともに注目度は高く、ニーズ(利用者)は存在していることが推測出来る。"VLC"をキーワードとすると他のプロダクトの動きが誤差となってしまうので、あえて"VideoLAN Server"をキーワードとしているのでトレンドとしての数値は多くないので、このキーワードは微妙な設定になってしまっているが、”VLC”を含めると認知度も注目度も非常に高いプロダクトとなっている。"HLS Streaming"は中々トレンドが上昇してこないが、HLS, MPEG-DASH, MSE(Media Source Extensions)といった、HTMLベースのストリーミングプロトコルの動向は注目しておく必要があると考えている。
ちなみに、(昔、環境を作っていた)Darwinってどんな感じだったのかをみるのに、HLSと入れ替えてみたのが下の図

Red5, Kaltura(), GStreamer(), VideoLAN Server(), Darwin Streaming Server

結果、Darwinって意外と注目されていなかったの??という、ちょっと意外という印象に(Red5と入れ替わりになったように見える)
さて、国内の情報についても大切な要素なので、最初の条件で「すべての国」を「日本」に絞ってみると以下となり日本国内は、Red5が割と注目されていてここ2年位は、Red5と GStreamerが同程度の注目度ということになっている。Kalturaはリリースされたところでピークを作っているがその後は長続きしていないのと、HLS Streamingはほとんど認知されていない状況に見える。

Red5, Kaltura(), GStreamer(), VideoLAN Server(), HLS Streaming

ビデオ・ストリーミング・サーバ製品について改めて調べていると、WikiPediaに「List of streaming media systems」というページが既に存在していて、主なストリーミング・サーバが網羅されている。最近の動向を纏めるという主旨からするとこのリストに上がっているプロダクトの概要程度は調べておいたほうが良さそうなので、そのうちこのブログは更新されるかもしれない。

◇ プロダクトの概要





  • Red5
    日本ではそれなりに注目度も誇ったプロダクト。"Red5とは"で検索すると、「Red5は、Javaで書かれたオープンソースのFlash Player向けマルチプラットフォーム・ストリーミングサーバと紹介される」特にAdobe Media Server互換のストリーミング・サーバとして位置付けられる。公式サイトでは、2012年12月のversion 1.0リリース以降の情報が更新されていない為開発が止まっているように見えるが、開発サイトでは現在も開発が続けられており2014年12月26日にはversion 1.0.4がリリースされている。基本的には「ダウンロードして起動」で使い始めることができるので導入は非常に簡単といえる。但し、RTMPプロトコルのみがサポートされているので、Flashビデオでのストリーミングが対象となる為、基本としてはiOS端末は対象外となってしまう。性能(同時配信数)については、http://movie.infotrust.co.jp/の環境で20同時接続ぐらいまで可能との記述がある(あくまで参考値)
  • Kaltura
    Kalturaは、PHPで作成された動画配信プラットフォームで有償版(商用版)とコミュニティエディション(CE)と呼ばれるオープンソースの2種類が存在する。環境としては、Apache, PHP, MySQLなどが必要であり、必要となるバージョンが細かく指定されているなど環境構築は手間がかかるというイメージが初期の頃にはあったが、All In Oneのディストリビューションが提供されるようになってそのイメージも変化している。
    動画公開/共有サイトの構築に必要となる、モニタリング、アクセス制御、スケジュールというような管理機能、マルチサイト、マルチアカウント機能なども提供されている。また、KalturaはカスタマイズしたRed5サーバを配信プラットフォームとして利用しているが、コンテンツのアップロードやフォーマット変換からストリーム配信までを提供しているので、簡単に動画配信をはじめるには非常に便利なプラットフォームとなっている。
    • 公式サイト : http://www.kaltura.org
    • その他 :
      https://www.udemy.com/how-to-create-your-own-internet-video-streaming-server/
      http://www.ryuzee.com/contents/blog/3345
  • GStreamer
    GStreamerは、オープンソースのマルチプラットフォーム対応マルチメディアフレームワーク。C言語で実装されており、コンパクトなコアライブラリやプラグイン機構がその特徴となっている。version 1.0は2012年に公開され、2014年7月に1.4系がリリースされている。フレームワーク提供となっているので、ストリーミングサーバとしてパッケージされているものではないが、多くのプラグインを組み合せたり独自のプラグインを開発することでサービスに特化した環境を構築することが可能となっている。
    • 公式サイト : http://gstreamer.freedesktop.org/
    • その他 :
      http://www.clear-code.com/blog/2010/1/11.html
      http://oss.infoscience.co.jp/index.html#vol6
  • VideoLAN Server
    VideoLANプロジェクトで開発が行われているストリームサーバ。現在では、メディアプレイヤとして多くのコーデックとマルチプラットフォーム対応で有名となっているメデイアプレイヤのVLC(VideoLAN Client)にほぼ全ての機能がマージされているので、簡単なストリーム環境であれば、VLCをストリームサーバとして機能させることも可能となっている。
    • 公式サイト : http://www.videolan.org/vlc/streaming.html
    • その他 :
  • C++ RTMP Server

  • Darwin Streaming Server
    version 6.0.3で開発が止まっている模様。
    • 公式サイト : 
      http://dss.macosforge.org/
    • その他 :
      http://www.bamboo.mydns.jp/wordpress/archives/102
  • FFserver
    FFserverは、動画や音声のデコードおよびエンコード、フォーマット変換やフィルタなどさまざまな機能をもつマルチメディアフレームワークとして多くのストリーム環境で利用されているFFmpegに含まれるライブブロードキャスト向けのストリーミングサーバ。
    • 公式サイト : http://www.ffmpeg.org/
    • その他 :
      http://ja.wikipedia.org/wiki/FFmpeg
  • Nginx-rtmp-module
    HTTPサーバソフトウェアとして有名なNginxでRTMPプロトコルをサポートする為のモジュール。このモジュールをNginxに組み込むことで、RTMP/HLS/MPEG-DASH
    • 公式サイト : https://github.com/arut/nginx-rtmp-module
    • その他   :
    • Flumotion
      GStreamerの開発元
      • http://www.flumotion.net/
    • Wowza Streaming Engine
      Wowza社が開発してるストリーミング製品。ライセンス形態としては、PerpetualとAnnualの2種類が存在する。Annualライセンスに関してはオンプレではなく、EC2やGoogle上で展開されているサービスを月額で利用する。
      • 公式サイト : http:://www.woza.com/products/streaming-engine
    • Adobe Media Server
    • EvoStream

    参考資料
    • 双方向動画像通信技術(特許庁:標準技術集 2004年3月)
      • http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/bidirectional_video/mokuji.htm