ストリーミング

ストリーミング (英語: streaming) とは、主に音声や動画などのマルチメディアファイルを転送・再生するダウンロード方式の一種である。 通常、ファイルはダウンロード完了後に開く動作が行われるが、動画のようなサイズの大きいファイルを再生する際にはダウンロードに非常に時間がかかってしまい、特にライブ配信では大きな支障が出る。そこで、ファイルをダウンロードしながら、同時に再生をすることにより、ユーザーの待ち時間が大幅に短縮される。この方式を大まかに「ストリーミング」と称することが多い。 類似した転送方式にプログレッシブダウンロードがある。ファイルをダウンロードしながら再生するという点ではストリーミングと同じだが、HTTPによる転送が可能であるため、別途ベンダロックインのストリーミングサーバを購入する必要がない、リバースプロキシやコンテンツデリバリネットワークとの相性が良いなど、安価に大規模配信できるという大きな利点がある。一方でストリーミングと異なり、再生後、ハードディスクの一時フォルダにマルチメディアファイルがアクセス可能な状態で残ってしまうため、著作権保護の観点からサービス提供者に忌避された時期があった。プログレッシブダウンロードが可能な代表的なファイル形式として、Flash動画などが挙げられる。YouTubeやニコニコ動画などの投稿型動画配信サイトを始め、無料コンテンツ配信でも一般的に利用されている。最近は、プログレッシブダウンロードに帯域制御などを追加したストリーミング技術も出てきており（Microsoft Smooth Streaming、Adobe Dynamic Streaming、HTTP Live Streaming、MPEG-DASHなど）、GYAO!やYahoo!　JAPANなどが採用していた。 HTTP Live Streaming (HLS) アップルによるHTTPベースのストリーミング・プロトコル。IETF標準化を目指して仕様が公開されており、多くのサーバーやクライアントが対応している。また、いくらかのブラウザ(Safari、Androidなど)でも直接再生することができる。Flash Playerも再生に対応している。また、hls.jsなどのスクリプトを使うことで、HTML5のMedia Source Extensions（英語版） APIに対応しているブラウザでも再生することができる。 MPEG-DASH (Dynamic Adaptive Streaming over HTTP) MPEGによって開発されたHTTPベースのストリーミング技術。VLCとGPACが再生に対応しているほか、dash.jsを使うことによってHTML5のMedia Source Extensions APIに対応しているブラウザでも再生することができ、dash.asを使うことによってFlash Playerでも再生することができる。 MP4BoxやFFmpegがMPEG-DASH互換MP4フラグメントの生成に対応している。 RTSP (Real Time Streaming Protocol) IETFで標準化されており、RealMedia / QuickTime / Windows Media / GStreamer を含む多くのプレーヤーで再生することができる。また、Flash Playerからは、Locomote Video Playerなどのプレイヤーを通して再生することができる。ただし、多くのブラウザは直接対応しておらず、プラグインや外部プレイヤーを使う必要がある。 多くのストリーミングソフトウェアで、この送出が可能。 MMS (Microsoft Media Server) Windows Mediaのストリーミング配信に使用される。EUの独占禁止法による問題から、楕円曲線暗号を使ったDRMを含むプロトコル仕様が公開されている。MMSを再生できるプレーヤーは多いが、互換性に問題があるものもある。また、多くのブラウザは直接対応しておらず、プラグインや外部プレイヤーを使う必要がある。 いくらかのストリーミングソフトウェアで、この送出が可能。 Microsoft Smooth Streaming MicrosoftによるSiverlight用のストリーミング・プロトコル。HTTPプログレッシブダウンロード技術を用いている。VLC 2.1以降がこの再生に対応している。Flash Playerからは、Smooth Streaming Plugin for OSMFを使うことで再生することができる。多くのブラウザは直接対応しておらず、プラグインや外部プレイヤーを使う必要がある。 FFmpegがスムースストリーミングに使われるISMVフラグメントの生成に対応している。 RTMP (Real Time Messaging Protocol) アドビシステムズによるFlash Video用のストリーミング・プロトコル。リバースエンジニアリングによって仕様が解析されているため、多くのオープンソースソフトウェアがこの再生及び送出に対応している。ただし、多くのブラウザは直接再生することができず、プラグインを使う必要がある。このことは、プラグインに対応していないモバイル端末で特に問題となる。 Adobe HTTP Dynamic Streaming (HDS) アドビシステムズによるHTTPベースのFlash Video用ストリーミング・プロトコル。ファイルを分割しフラグメント毎にダウンロードするという手法を使っている。多くのブラウザは直接対応しておらず、プラグインを使う必要がある。 FFmpegがHDSフラグメントの生成に対応している。 Real Time Media Flow Protocol アドビシステムズが開発したFlash用P2Pプロトコルであり、RFC 7016としてプロトコル仕様が公開されている。P2Pマルチキャスト配信に対応している。 PeerCastプロトコル PeerCastの使っているプロトコル。 WebRTC P2Pマルチキャスト配信が実現可能なWeb標準のP2P APIであり、ブラウザが直接対応している。P2P配信プロトコル自体は標準化されていない。WebRTCに対応するブラウザとして、Chrome、Firefox、Operaがある。 その他、JavaアプレットによるP2Pマルチキャスト配信も使われている。 HTTPベースのプロトコルは、HTTPの代わりにHTTPSを通すことで通信経路の暗号化が可能。 RTMPS アドビシステムズが開発した、RTMP及びSSLに基づくFlash用の暗号化ストリーミング・プロトコル。リバースエンジニアリングによって仕様が解析されているため、多くのオープンソースソフトウェアがこの再生及び送出に対応している。 RTMPE アドビシステムズが開発した、RTMP及びディフィー・ヘルマン鍵共有に基づくFlash用の暗号化ストリーミング・プロトコル。リバースエンジニアリングによって仕様が解析されているため、多くのオープンソースソフトウェアがこの再生及び送出に対応している。設計に欠陥があり、中間者攻撃が可能という脆弱性が存在する。 Clear Key W3C標準のEncrypted Media Extensionsで規定されている暗号化方式。Google Chromeなどが復号に対応している。 HLS暗号化 AES-128を使った暗号化。 ストリーミング形式では配信目的のためにコピーガードが用意されていることが多く、映像や音楽をファイルに保存することを困難にさせることができる。ただし、コピーガードは視聴者の見られる環境を狭め、視聴者の合法的な利用を妨害し、競合他社の製品も排除するという設計の欠陥を故意に作り出すため批判されており (Defective by Design)、何時でも何処でもどんなデバイスでもオンデマンドで見られることを目指すニューメディア (New media) には使われないことが多い。 Google Widevine DRM AES-128 CTRを使ったDRM。Common Encryption (CENC、ISO/IEC 23001-7)に基づく。MPEG-DASHで使うことができる。ChromeやAndroidが復号に対応している。オープンソースのBento4が暗号化に対応している。FFmpegやedash-packagerやMP4BOXが暗号化及び復号の両方に対応している。 2016年現在、GoogleのWidevine DRMの実装に問題が見つかっている。 Microsoft PlayReady AES-128 CTRを使ったDRM。Common Encryption (CENC、ISO/IEC 23001-7)に基づく。Microsoft Smooth StreamingやMPEG-DASHで使うことができる。Internet ExplorerやWindows PhoneやSilverlightが復号に対応している。Microsoft Expression EncoderやAzure Media Services samples、オープンソースのBento4が暗号化に対応している。FFmpegやMP4BOXが暗号化及び復号の両方に対応している。 Adobe Primetime DRM 旧Adobe Access DRM。pRTMPやPHDSで使うことができる。Adobe Flash PlayerやFirefox 38以降のWindows版32bitバイナリーが復号に対応している。Adobe Media Serverが暗号化に対応している。 Marlin DRM 多くのIP-TVが復号に対応している。MPEG DASHのMP4コンテナではCommon Encryptionに基づき、MPEG DASHのMPEG2-TSコンテナではMarlin BBTSに基づく。オープンソースのBento4が暗号化に対応している。 OMA DRM v2.0 多くのフィーチャーフォンが復号に対応している。ファイル形式にはDCFとPDCFが存在する。PDCFは3GPPのPSSに基づいている。構文以外はISMACryp（英語版）と互換性がある。 これらはレガシーであり、ハリウッドスタジオ(除ディズニー)ではUltraViolet対応のDRMを推進している。 WMDRM 楕円曲線暗号を使ったDRM。MS-RTSPやMMSで使うことができる。Windows Media PlayerやWindows Phoneが復号に対応している。Windows Media Rights Manager (WMRM) が暗号化に対応していた。 Windows 10 Anniversary Updateで、WMDRMの復号が削除され、WMDRMで暗号化されたメディアの視聴が不可能となった。 Helix DRM RealRTSPで使うことができる。Real Playerが復号に対応している。Helix Universal Server (ディスコン)が暗号化に対応していた。 FairPlay QuickTime Playerが復号に対応している。2016年、Microsoft AzureがFairPlayの暗号化に対応した。 現在はHTTPベースのストリーミング・プロトコルの普及により、動画をフラグメント化してHTTPサーバーで送出することが主流になりつつある。 Adobe Media Server (旧Adobe Flash Media Server (FMS)) アドビシステムズが提供しているWindows・Linux向けのストリーミングサーバ。コピーガードが有効な動画を、PCにおける普及率が高いマルチプラットフォームのFlash Playerに配信する唯一の手段であったため、現在のデファクトスタンダードとなっている。Flash Playerが使えないiOSへの配信にも対応しており、Protected HLSプロトコルを使うことによってブラウザから再生可能にできる。同じくFlash Playerが使えないAndroid 4.1以降への配信には、再生側にAdobe Air製のアプリをインストールさせる必要がある。なお、コピーガードを使うにはプロフェッショナル版以上を使う必要がある。バージョンによって最大同時接続数やプロセス数にライセンス的な制限があるため、大規模配信する場合にはサーバー一台に対して複数ライセンスを購入し、ライセンスをスタックする必要がある。 Wowza Streaming Engine (旧Wowza Media Server） Wowza Media Systems が開発している動画ストリーミングサーバ。RTMP を使い、Adobe Flash Player と通信できるが、クライアント・サーバー間のリモートプロシージャコールにも対応しており、その際、サーバー側は Java で記述する。バージョン4.0より、Webブラウザベースで管理出来るGUIを搭載した。 Red5（英語版） Javaで書かれたオープンソースのFlash Player向けマルチプラットフォーム・ストリーミングサーバ。ライセンスはApache License 2.0 (LGPLv3から変更された)。RTMPによる動画配信、RTMPEによる暗号化動画配信だけでなく、Flashの共有オブジェクトやRemotingなどにも対応している。ただし、プログラミング言語はJavaであり、FMS向けにActionScriptで書かれたサーバーサイドスクリプトは直接動かすことができない。 nginx-rtmp-module（英語版） NGINXを基にしたオープンソースのストリーミングサーバー。RTMPだけでなくHLSやMPEG-DASHによるライブストリーミングにも対応している。 SHOUTcast Winampの開発・配布先と知られているNullsoftが無償で提供していたが、インターネットラジオのRadionomyに買収された。 プラットフォームはWindows 95/98/Me/NT/2000/XP/2003からFreeBSD、 Linux、macOS サーバ、そしてSolaris 2.x サーバ（Sparc版）と対応OSも幅広く、バイナリーでの配布となっている。 MP3形式のデータをストリーミング送信可能である。また、プラグイン導入済みWinampとSHOUTcastサーバの組合せでライブ送信が行なえる。 Icecast MP3形式のストリーミングが可能なオープンソースのストリーミングサーバー。 VLC (VideoLAN Client) VideoLANプロジェクトで開発されているオープンソースのマルチメディアプレーヤ。GUIインターフェースだけでなく、コマンドインターフェースやWebインターフェースも持っており、ストリーミングにも対応している。HTTP、MMSH、RTSP、Icecastなどのプロトコルでストリーミング出力が可能。 Helix Universal Server RealServerの後継製品であり、リアルネットワークスが販売していた。ディスコン。配信可能なメディア種類がReal Media、Windows Media、Quick Timeと豊富であり、プラットフォームとするOS種類もWindows NT、Windows 2000、Linux、FreeBSD、Solaris、HP-UX等幅広い。 他社製品のコピーガードには対応していない。独自のコピーガードHelix DRMがあるものの、これを使うとReal Player以外では見ることはできないため、使われることは少ない。なお、リアルネットワークスはプレーヤ側において、DRMの相互運用性を確保するために、他社製品のコピーガードに対応しようとHarmony技術を開発したことがあるものの、アップルからの訴訟の可能性によって開発を停止している。 Helix DNA Server リアルネットワークスが開発したHelix Universal Serverのオープンソース版。独自のライセンスを適用していた。最終バージョンは2006年リリースの11.1。 VLS (VideoLAN Server) VideoLANプロジェクトで開発されていたオープンソースのストリーミングサーバ。現在、VLSのほとんどの機能はVLCにも実装されており、VLSは開発が終了している。 Darwin Streaming Server オープンソースのストリーミングサーバー。 QuickTime Streaming Server OS X Serverに搭載されていたストリーミングサーバ。 rtmplite Pythonで書かれたオープンソースのFlash Player向けストリーミングサーバ。ライセンスはGPLv3。 C++ RTMP Server C++で書かれたオープンソースのFlash Player向けストリーミングサーバ。ライセンスはGPLv3。 PeerCast P2P技術を使ったオープンソースのストリーミングシステム。送信機能は無く、中継機能のみ持っている。RTSPやMMSの中継に対応している。 FFserver FFmpegに含まれていたオープンソースのストリーミングサーバ。HTTPとRTSPに対応していた。廃棄された。 IIS Media Services マイクロソフトが提供しているWindows向けのストリーミングサーバであり、Windows Media サービス（英語版）の後継製品。コンテンツ開発用エンコーダ等も無償で配布されている。コピーガードが有効な動画は、Microsoft製品以外での視聴ができないため、Windows以外のPCやモバイルデバイス等への配信が難しい。 更新されておらず、Windows Server 2016以降へのインストールには回避策が必要となる。 MP4Box MPEG-DASH互換MP4フラグメントやMPEG-DASH互換MPEG-2 TSフラグメントなどの生成に対応している。オープンソース。 FFmpeg MPEG-DASH互換MP4フラグメント、MPEG-DASH互換WebMチャンク、HDSフラグメント、Microsoft Smooth Streamingに使われるISMVフラグメントなどの生成に対応している。オープンソース。 edash-packager MPEG-DASH互換MP4フラグメントの生成に対応している。ISOのCommon Encryption及びUltraViolet（英語版）の一つであるWidevine DRMの暗号化・復号に対応している。オープンソース。 TITAN File ATEMEの動画変換ソフトウェア。MPEG-DASH、Smooth Streaming、HLS互換フラグメントの生成に対応している。 Amazon Elastic Transcoder MPEG-DASH、Smooth Streaming、HLSに対応している。 Azure Media Services MPEG-DASH、Smooth Streaming、HLSに対応している。 Akamai Media Services Live/On Demand MPEG-DASH、Smooth Streaming、HLS、HDSに対応している。 Arkena Cloud4TV Flowplayer HTML5及びFlashベースのWebプレーヤー。オープンソース。 MediaElement.js HTML5及びFlashベースのWebプレーヤー。オープンソース。 Video.js HTML5及びFlashベースのWebプレーヤー。オープンソース。 Shaka Player GoogleによるHTML5ベースのWebプレーヤー。オープンソース。 Strobe Media Playback AdobeによるFlashベースのWebプレーヤー。OSMF (Open Source Media Framework)を基にしている。オープンソース。更新停止中。 MicrosoftはOSMFに向けて、Smooth Streamingに対応させるSmooth Streaming Plugin for OSMFをリリースしている。 Locomote Video Player FlashベースのWebプレーヤー。オープンソース。RTSPにも対応している。 ストリーミング技術を応用し、DVカメラなどを使い、コンピュータのネットワーク上に流すことでライブ配信すること（ライブストリーミング）も可能になった。これにより、景勝地・被災地・（彗星を初めとする）天体観測のライブカメラ映像・アマチュアバンドのライブ映像・既存メディア（ラジオやテレビ）、これらもネット上でリアルタイム放送する事が可能となった。従来から存在したテレビメディアの様な複雑な放送認可手続き・審査・取得も必要としない為、ネットにて擬似的なラジオ放送、およびTV放送を開局可能であり、個人や小規模な各種法人団体、既存のラジオ放送局（放送局スタジオ内のライブカメラ映像とセットで流してTV放送化）も積極的に参入している。前述の通り、（放送コンテンツの著作権関係さえクリアしていれば）規制の殆ど存在しないメディア形態である為、機材さえ用意すれば刑務所の中までネットワーク中継をすることも可能である。 短所としては、下記が挙げられる。 ライブストリーミングの場合、既存放送メディア同様、視聴者が放送時間を忘れて目的の番組を見逃す事がありえる。 ライブストリーミングと非ライブストリーミング（放送時間の制約が無いオンデマンド・コンテンツのストリーミング送信）共通の欠点として、ネットTV放送側が映像画質の仕様を策定する際に多くの視聴者獲得を優先させる（低スペックPCや低速ナローバンド通信回線接続PCでも視聴に耐える様、画質・画像サイズ・映像フレーム数を低めにする）か否か判断に悩まされる。 ライブストリーミング配信のためのプラットフォームが存在する。 サービスの詳細については、ライブ配信およびインターネットテレビを参照。 音声のみは、インターネットラジオ#利用者による放送配信が可能なものを参照。 Adobe Flash Media Live Encoder Open Broadcaster Software (OBS) オープンソース。 Wirecast（英語版） (Telestream（英語版）) アプリケーションストリーミング インターネットラジオ NHKネットラジオ らじる★らじる - NHKラジオの放送をインターネットで同時並行配信するサービス。 radiko - 民間放送局のラジオ放送をインターネットで同時並行配信するサービス。 SimulRadio・JCBAインターネットサイマルラジオ - コミュニティFMの自主制作番組をネット配信するサービス。 YouTube ポッドキャスティング インターネットテレビ ビデオ・オン・デマンド (VOD) - 映像、もしくは音声付き映像に限定したライブストリーミングの反語的位置付けを持つメディア。いつでも変わらぬ状態・内容で視聴可能である為、あまり時事性の伴わない映像コンテンツの提供に向いている。 P2Pテレビ コンテナフォーマット - 音声ファイルフォーマット 動画 ワンタイムURL ^ 9 特別インタビュー - ヤフーに聞く、Silverlight採用の理由 ^ MSDN IIS Smooth Streaming について ^ メディアのマルチキャスト（RTMFP） Adobe ^ Ripping Media Off of the Wire A Step-by-Step Guide P.40 DEF CON 2010年 ^ What is RTMPE Wowza Media Systems ^ a b Using PlayReady and/or Widevine Dynamic Common Encryption Microsoft ^ a b c Software DASH Industry Forum ^ a b c MPEG DASH Axiomatic Systems ^ a b FFmpeg Changelog ^ a b Common Encryption GPAC project ^ A Bug in Chrome Makes It Easy to Pirate Movies Wired 2016年6月24日 ^ Firefox で DRM コンテンツを視聴する方法#サポートする環境 Mozilla Support ^ Marlin Tutorial Intertrust ^ a b OMAにおけるDRMの標準化動向 NTTドコモ ^ OMA DRM GPAC project ^ Windows 10 Anniversary Update: 音楽とビデオの消失 Microsoft ^ a b Helix Media Delivery Platform RealNetworks ^ Microsoft announces general availability of Apple FairPlay Streaming for Azure Media Services MSPoweruser 2016年8月3日 ^ ffserver program being dropped FFmpeg project 2016年7月10日 ^ Workaround: error installing IIS Media Services on Windows Server 2016 Microsoft 2017年5月9日 ^ Amazon Elastic Transcoder が MPEG-DASH をサポート Amazon 2016年5月24日 ^ Azure Media Services の概要と一般的なシナリオ Microsoft ^ Media Services Live Akamai ^ Media Services On Demand Akamai