SlideShare a Scribd company logo
1 of 22
Download to read offline
ストリーミングのげんざい 
“No man ever steps in the same river twice” 
~ Heraclitus 
2014-11-11 
Tetsuya Morimoto
がいよう 
● 技術背景 
– ビデオコーデックと特許料 
– Adaptive bitrate streaming 
● HTTP ストリーミングの進化 
● まとめ 
Streaming media 
RTMP 
HTTP 
Progressive download 
Adaptive bitrate streaming 
HTTP Live Streaming 
HTTP Dynamic Streaming 
Smooth Streaming 
MPEG-DASH
こーでっく
こーでっく 
● 動画ファイルには様々なフォーマットがある 
– mp4, flv, webm, mov, wmv, 3gp, ... 
● 動画ファイルを利用する場合、 
– 提供する側があるフォーマットでエンコードして、 
– 再生する側があるフォーマットでデコードする 
ことで内容を見聞きできる 
● 何のためにエンコードするか? 
– 圧縮してサイズを小さくするため 
● エンコード ⇔ デコードが双方向にできる装置や 
ソフトウェアまたはアルゴリズムのことをコーデックと呼ぶ
えいちにーろくよん 
● 広範囲に利用されているビデオコーデックの規格 
– いろんなベンダーが参加して作ったため、多数の特許権が含まれている 
● パテントプールであるMPEG LAに特許料を支払わないといけない 
– エンドユーザーが無料で視聴できるインターネットビデオのみ免除 
(YouTubeのようなサービス) 
● コーデック変換が発生する箇所で特許料の支払い義務が生じる 
– ストリーミング/トランスコードサーバー、ブラウザ、メディアプレイヤー 
– 一般的にH.264を扱うプロダクトを販売/購入する場合、 
その販売/購入代金にその特許料も含まれる 
● その販売企業がMPEG LAに特許料を支払う 
– H.264の特許料はキャップ制で、上限額を支払えば不特定多数へ提供できる 
● Adobe Flash Player 
● Cisco OpenH264
えいちにーろくよんのとっきょりょう 
● MPEG LA の AVC/H.264 情報 
– AVC Patent Portfolio License Briefing 
● ライセンスの要約をまとめた資料 
● Manufacture and Saleの価格帯も書いてある 
● あくまで2008年時点での参考情報 
– いまのライセンスとは違うかもしれない 
● 特許料は年間キャップ制 
– この資料では$6.5 million per year 2011-2015 
– H.264 をプロダクトで商用利用するには 
MPEG LA とライセンスを締結しないといけない
おーぷんえいちにーろくよん 
● CiscoのOpenH264プロジェクトとは? 
– Cisco曰く、WebRTCを促進する目的らしい 
– CiscoがMPEG LAへ特許料を支払っているため、 
Ciscoがビルドしたバイナリを使ってライセンス条項に従えば、特許料の支払いは免除される 
– オープンソースとしてgithubでホスティング: openh264 
● RELEASEファイルにライブラリのダウンロード先がある 
– 2014-05-23 1.0.0 リリース 
– 2014-07-09 1.1.0 リリース 
– 2014-10-28 1.2.0 リリース 
● ライセンスについて 
– サーバーでの商用利用: License question on server-side for commercial use 
– クライアントでの商用利用: License question. 
– 2014-10-14 シスコの OpenH264 が Firefox の一部に 
● EricssonはOpenH264を利用するWebRTC実装をオープンソース化 
● Mozilla 
– 2014-10-14 OpenH264 Now in Firefox 
● Firefox33からOpenH264を組み込み
うぇぶえむ 
● GoogleのWebMプロジェクトとは? 
– 2010年からGoogleが開発 
– open-source, royalty-free, Webに特化したフォーマット 
– コンテナー: webm (Matroskaのサブセット) 
● ビデオコーデック: VP8→VP9 
● オーディオコーデック: Vorbis 
ビデオとオーディオの圧縮技術はそれぞれ違うため 
それらを1つにまとめることを「多重化」すると言う 
また、このまとめたものをコンテナーと呼ぶ 
– 姉妹プロジェクトとして画像フォーマット: webp 
– YouTubeにアップロードされた動画はwebmでエンコードされる 
● 普及を妨げる要因? 
– MPEG LAがH.264をインターネットの無料動画に限り無料に変更 
– VP8がMPEG LAの管理する特許に抵触の可能性 
● 2013-03-07: Google and MPEG LA make a deal over VP8 codec 
– IE 、Safariで未サポート (別途プラグインが必要)
すとりーみんぐ
はやり 
● Streaming方式 (リアル・ストリーミング) 
– RTMPによるストリーミング 
– キャッシュが端末に残らない (CDNには残るかも?) 
– 専用サーバー/クライアントが必要 
– (相対的に)帯域制御やサービス品質の保証が容易 
● Progressive download方式 (擬似ストリーミング) 
– HTTPによるストリーミング(ダウンロード) 
– 端末や途中経路にキャッシュとしてファイルが残る 
– Webサーバーから配信、ブラウザ(html5対応)で再生できる 
● Webアプリのノウハウでスケールアウトが容易 
● Adaptive bitrate streaming方式 
– HTTPストリーミングの進化系 
– デバイスや帯域に適したストリーミングを提供 
HTTP ストリーミング 
HTTP ストリーミング 
あらかじめそれぞれのデバイス、 
ビットレートにトランスコードした 
メディアファイルを用意する 
1つのメディアファイルを 
リアルタイムエンコードする
さいきん 
● Adobe 
– 2009年RTMPの仕様を公開する 
● CDNサービスが可能となり、Flash技術がエンタープライズ分野でも利用される 
– 2010年HTTP Dynamic Streaming (HDS)を提供 (FMS 4.0) 
– 2011年HLSをサポート (Flash Player 11+) 
● Apple 
– 2009年HTTP Live Streaming (HLS)を提供 
● 対応ビデオコーデックはH.264のみ 
● Google 
– 2010年WebMプロジェクトを開始 
● royalty-freeなオープンなストリーミングの世界 
– 2011年Android 3.0 HoneycombでHLSをサポート (スマートフォン4.0) 
● Microsoft 
– 2010年Smooth Streamingを提供 (IIS Media Service 4.0) 
Red5: FMSのOSS実装 
2005年プロジェクトを開始 
2009年に0.8.0 をリリース 
2012年に1.0 をリリース 
Wowza: FMSの競合プロダクト 
2007年1.0 をリリース 
2009年2.0 をリリース(HTTP ストリーミング開始) 
Adaptive bitrate streaming 
2010年ぐらいから始まった 
html5 
2008年First Public Working Draft 
2011年Last Call 
Mozilla (Firefox) 
2010 WebM サポートを支持 
2012 スマートデバイスで H.264 サポート開始 
2014.10 H.264 サポート (OpenH264)
えいちえるえす 
● HTTP Live Streaming ドキュメント 
– Appleが提唱/実装 
– IETFで標準化が進められている 
● HTTP Live Streaming draft-pantos-http-live-streaming 
–現時点ではDraft 14 (2014-10-14) 
– 6ヶ月ごとに更新されるため、標準化が決まるのはまだまだ先になりそう? 
– プレイリストと小さく分割したセグメントファイルを使う 
● プレイリスト: M3Uフォーマット (m3u8) 
– M3UをUTF-8でエンコードしたのを指して.m3u8という拡張子で保存する 
● コンテナー: MPEG-2 TS 
–世界的に採用されてる地上波/BSデジタル放送の規格、日本も同様 
– ビデオコーデックやオーディオコーデックについてはIETFのDraftには書いてない 
–余談: MatchStick Developer's Guideから未来の展望? 
– AESを使った暗号化の仕組みもある 
● HTTP上で暗号化されたファイルを送信 
小さく分割したメディアファイルを 
プレイリストから順番に再生 
Adobe社の戦略? 
2009年RTMP仕様公開 
2010年FMS4.0 をリリース 
- HDS をサポート 
※ Flash Player 11以上H.264 をサポート(IE6 は10 まで)
すまーとでばいす 
● HTTP Live Streaming 対応状況 by JW Player 
● サポートしているストリーミング方式 
– iPhone/iPad 
● iOS 3.0 (iPhone OS) から HLS をサポート 
● 但し、m3uフォーマットの拡張タグなどでバージョン間の違いはある 
– Example Playlist Files for use with HTTP Live Streaming 
– Android 
● 2.3 Gingerbread 
– WebM フォーマットをサポート 
● 3.0 Honeycomb 
プレイリストを書いたりして何でもできる 
– HLS をサポート (MPEG4/H.264) 
– Windows Phone/Tablet 
● Windows8 
プレイリストの中に 
– Smooth Streamingをサポート (MPEG4/H.264)
ぱそこんぶらうざ 
● http://caniuse.com/ 
● ブラウザが<video> タグでサポートしているフォーマット 
IE8 IE9+ Chrome Firefox Safari Opera 
MPEG4 
/H.264 ☓ ○ ○ ○ ○ ☓ 
WebM ☓ ☓ ○ ○ ☓ ○ 
Ogg ☓ ☓ ○ ○ ☓ ○ 
・IE8はFlash player または Silverlight を使う以外にストリーミングする方法はない 
・IE9+でWebMプラグインをインストールすればWebM フォーマットが再生可能 
・Safariのみ、HLS をブラウザがサポートしている
すまーとでばいすとぱそこんぶらうざ 
● http://caniuse.com/ 
● スマートデバイスとパソコンを一緒くたにしてみた 
IE8 
(PC) 
IE9+ 
(PC) 
Chrome 
(PC) 
Firefox 
(PC) 
Safari 
(PC) 
Opera 
(PC) iOS Android 
2.3 
Android 
4.0+ 
Windows 
8+ 
MPEG4 
/H.264 ☓ ○ ○ ○ ○ ☓ ○ ☓ ○ ○ 
WebM ☓ ☓ ○ ○ ☓ ○ ☓ ○ ○ ☓ 
Ogg ☓ ☓ ○ ○ ☓ ○ ☓ ☓ ☓ ☓ 
HLS ☓ ☓ ☓ ☓ ○ ☓ ○ ☓ ○ ☓ 
要件に応じて最適なフォーマット/方式を選択しないといけない 
・IE8は<video> タグをサポートしない 
・SafariはWebM(VP8) をサポートしない
ぶらうざのもんだい 
● HLSのMPEG-2 TS コンテナーにビデオコーデックの指定 
はない 
– iOS (Safari)がVP8 (WebM) をサポートしない 
– 事実上、HLSのビデオコーデックはH.264のみ 
● IE8 (サポートは2016年1月まで)が<video> タグをサ 
ポートしない 
– ストリーミングするにはFlash Player またはSilverlight 
を使うしかない
めでぃあぷれいやー 
● Video.js 
– html5とswfプレイヤーを備えたマルチブラウザ/マルチデバイス対応 
● PC向け: IE8+ 、Firefox 、Chrome 
● スマートデバイス: iOS 、Android 、Windows Tablet/SmartPhone 
– ライセンス: Apache License 2.0 
– プラガブルなアーキテクチャ 
● hls/mediasourceプラグインでHLSに対応 
– flashhlsプレイヤーの1つ (要flash) 
● MPEG-DASHの開発も最近始まった 
– videojs-osmf 
– DASH Everywhere-ish 
– 実績 
● Google Media Frameworkのプレイヤーに採用 
● twitpicやairbnbなどでも採用されているらしい
なぜふらっしゅなのか 
● PC向けブラウザは多くがHLSをサポートしていない 
● (2014-11時点で) HLSをサポートするのはSafariのみ 
– 再生する(H.264デコード)には特許問題の不透明感 
– ブラウザベンダーの思惑? 
● WindowsはSmooth Streamingあるし 
● Chrome/FirefoxはWebMを推進しているし 
● そうだ! Flash Playerを使おう 
– マルチプラットフォーム/ブラウザで動作し、 
H.264デコードの特許問題にも抵触しない唯一のソリューション 
● IE8が<video>タグに対応していない問題も解決? 
MPEG-DASHの普及まで
びでおじぇーえすのあーきてくちゃ 
● video.js 
– プレイヤー本体、ブラウザの<video>タグを使う 
● video-js-swf 
– Flash Playerを使うswfプレイヤーの実装 
– RTMP/HTTPの両方をサポート 
● videojs-contrib-hls 
– HLSをサポートするプラグイン 
● クライアント駆動のビットレートスイッチをサポート 
● 但し、IEのサポートは10+ (要Typed Arrays, Cross-Origin Resource Sharing) 
– プレイリストのパースやh264ストリームを扱う機能を提供 
● videojs-contrib-media-source 
– Media Source Extensionsを扱うためのプラグイン 
● video要素のデータを直接的に扱う 
● ソースから読み込んだデータをbase64でエンコードして直接swfへバッファとしてinvokeする 
– まだまだ荒削りな実装にみえる (- -# 
このバッファリングがピーキー、特にIE10
ぼくのかんがえたさいきょうの 
● ストリーミングサーバー 
– Webサーバーをスケールアウトする形態でHLSを提供 
● 将来的にはMPEG-DASHへ移行 
– RTMPストリーミングは以下の要件がない限り使わない 
(いまの時点では) 
HLS を中心に据え、 
対応できないケースを 
限定的に対応 
● 端末にキャッシュを残せない 
● IE6がサポート対象である (Flash Player 10はHTTPストリーミングを未サポート) 
– IE8サポートが不要ならWebMを提供するのも1つの方法 
● IE、SafariはWebMプラグインのインストールが必要 
● ブラウザ/各種デバイス 
– flashhlsでPC/スマートデバイス全てHLSでストリーミング再生 
● MPEG-DASHでWindows Tablet/SmartPhoneも 
– HLSに対応できないブラウザ (IE8やIE9など)はどうする? 
Flash Playerは必須 
● MPEG4/H.264をFlash Playerで再生 (なくなるのは時間の問題) 
● 要件/構成によってはWebMで代用することも
だっしゅ 
● dashif.org 
– Dynamic Adaptive Streaming over HTTP, aka MPEG-DASH 
– Adobe HDSとMicrosoft Smooth Streamingはこれに移行 
– ベンダーロックインではないAdaptive bitrate streaming ⇔ HLS 
– DRM (デジタル著作権管理)も扱える 
● 標準化 
– 2012-03: 1st Edition of MPEG-DASH, ISO/IEC 23009-1:2012 
– 2014-05: 2nd Edition of MEPG-DASH, ISO/IEC 23009-1:2014 
● HTML5 Media Source Extensionsからも使えるらしい 
● コンテナー: MP4, WebM, MPEG-2 TSなど 
● ISO base media file format (MP4も含む) 
● Matroska/WebM in MPEG DASH 
● OS/ブラウザベンダーの動向 
標準化はされているから 
これからの普及待ち 
– Apple: Safari8+(Yosemite), Adobe Primetime Support for MPEG-DASH 
iOSは? 
– Google: Android 4.4から対応、Chrome23+ 
– Mozilla: Firefox31+(Partial support), DASH Adaptive Streaming for HTML 5 Video (バグ修正中?) 
– Microsoft: IE11+, Building a simple MPEG-DASH streaming player 
– Opera: 20以降 (Only WebM?)
まとめ 
● ストリーミングプロトコルはHTTP一択へ 
– Adaptive bitrate streamingはいまのところ2つに集約化 
● HTTP Live Streaming 
● MPEG-DASH (将来的にはこっち?) 
HLSの展望はApple次第 
● H.264の特許問題はこれらを使うことで一応は回避可能 
– OpenH264やFlash Playerなどエンコード/デコード対応 
– 但し、アプリの作り込みが必要 
● MPEG-DASHでWebMが普及? 
– HLSのコンテナー: MPEG-2 TS 
OS/ ブラウザベンダーの対応次第 
● ビデオコーデック: 仕様にはないけど、事実上はH.264 
– MPEG-DASHのコンテナー: MP4, WebM, MPEG-2 TSなど 
– WebRTCのコーデック: H.264 or VP8(VP9) ?

More Related Content

What's hot

Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用Yuta Imai
 
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
ABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組みABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組みYusuke Goto
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器Akihiro Kuwano
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術Yusuke Goto
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムyuichiro nakazawa
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようEiji KOMINAMI
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたonozaty
 
AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換虎の穴 開発室
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAmazon Web Services Japan
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation Amazon Web Services Japan
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Shinya Mori (@mosuke5)
 

What's hot (20)

Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
 
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
 
ABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組みABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組み
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
AWS Black Belt online seminar 2017 Snowball
AWS Black Belt online seminar 2017 SnowballAWS Black Belt online seminar 2017 Snowball
AWS Black Belt online seminar 2017 Snowball
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
 
AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換AWS Elemental MediaConvert で動画変換
AWS Elemental MediaConvert で動画変換
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念
 

Similar to ストリーミングのげんざい

HTML5 VIDEO on Chromecast
HTML5 VIDEO on ChromecastHTML5 VIDEO on Chromecast
HTML5 VIDEO on ChromecastKatsumi Onishi
 
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトnormalian
 
インターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みインターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みRyosuke Kubo
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化Yusuke Goto
 
Perl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバーPerl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバーHideo Kimura
 
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。Daiyu Hatakeyama
 
HTML5ビデオ導入編
HTML5ビデオ導入編HTML5ビデオ導入編
HTML5ビデオ導入編Yuki Naotori
 
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013満徳 関
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup samplemganeko
 
ライブストリーミングの基礎知識その2
ライブストリーミングの基礎知識その2ライブストリーミングの基礎知識その2
ライブストリーミングの基礎知識その2kumaryu
 
Azure vs aws比較 エンコード ace用
Azure vs aws比較 エンコード ace用Azure vs aws比較 エンコード ace用
Azure vs aws比較 エンコード ace用裕之 木下
 
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~decode2016
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能TAKUYA OHTA
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokeeyut148atgmaildotcom
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全Daiyu Hatakeyama
 
Azure Media Services 概要
Azure Media Services 概要Azure Media Services 概要
Azure Media Services 概要Daiyu Hatakeyama
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全Daiyu Hatakeyama
 
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版Yusei Yamanaka
 

Similar to ストリーミングのげんざい (20)

HTML5 VIDEO on Chromecast
HTML5 VIDEO on ChromecastHTML5 VIDEO on Chromecast
HTML5 VIDEO on Chromecast
 
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイト
 
インターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みインターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組み
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
 
Perl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバーPerl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバー
 
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。
 
HTML5ビデオ導入編
HTML5ビデオ導入編HTML5ビデオ導入編
HTML5ビデオ導入編
 
動画配信プラットフォーム on AWS
動画配信プラットフォーム on AWS動画配信プラットフォーム on AWS
動画配信プラットフォーム on AWS
 
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
ライブストリーミングの基礎知識その2
ライブストリーミングの基礎知識その2ライブストリーミングの基礎知識その2
ライブストリーミングの基礎知識その2
 
Azure vs aws比較 エンコード ace用
Azure vs aws比較 エンコード ace用Azure vs aws比較 エンコード ace用
Azure vs aws比較 エンコード ace用
 
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~
DEV-019_Programmable Video ~Azure Media Services でのビデオ サービス開発~
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全
 
Azure Media Services 概要
Azure Media Services 概要Azure Media Services 概要
Azure Media Services 概要
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全
 
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版
 

More from Tetsuya Morimoto

ビジネスパーソン x プログラミング
ビジネスパーソン x プログラミングビジネスパーソン x プログラミング
ビジネスパーソン x プログラミングTetsuya Morimoto
 
チケット駆動開発のススメ
チケット駆動開発のススメチケット駆動開発のススメ
チケット駆動開発のススメTetsuya Morimoto
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカーTetsuya Morimoto
 
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTPyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTTetsuya Morimoto
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Tetsuya Morimoto
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
Ikazuchi introduction for Europython 2011 LT
Ikazuchi introduction for Europython 2011 LTIkazuchi introduction for Europython 2011 LT
Ikazuchi introduction for Europython 2011 LTTetsuya Morimoto
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
 
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半Tetsuya Morimoto
 
エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半Tetsuya Morimoto
 
エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7Tetsuya Morimoto
 

More from Tetsuya Morimoto (17)

ビジネスパーソン x プログラミング
ビジネスパーソン x プログラミングビジネスパーソン x プログラミング
ビジネスパーソン x プログラミング
 
チケット駆動開発のススメ
チケット駆動開発のススメチケット駆動開発のススメ
チケット駆動開発のススメ
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTPyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 
Hyper Introduction
Hyper IntroductionHyper Introduction
Hyper Introduction
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
PyCon 2012 紀行
PyCon 2012 紀行PyCon 2012 紀行
PyCon 2012 紀行
 
Sphinx 社内勉強会
Sphinx 社内勉強会Sphinx 社内勉強会
Sphinx 社内勉強会
 
Ikazuchi introduction for Europython 2011 LT
Ikazuchi introduction for Europython 2011 LTIkazuchi introduction for Europython 2011 LT
Ikazuchi introduction for Europython 2011 LT
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半
 
エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半
 
エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7
 
Ex py intro-20100630
Ex py intro-20100630Ex py intro-20100630
Ex py intro-20100630
 
曖昧 RPM 講座
曖昧 RPM 講座曖昧 RPM 講座
曖昧 RPM 講座
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (7)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

ストリーミングのげんざい

  • 1. ストリーミングのげんざい “No man ever steps in the same river twice” ~ Heraclitus 2014-11-11 Tetsuya Morimoto
  • 2. がいよう ● 技術背景 – ビデオコーデックと特許料 – Adaptive bitrate streaming ● HTTP ストリーミングの進化 ● まとめ Streaming media RTMP HTTP Progressive download Adaptive bitrate streaming HTTP Live Streaming HTTP Dynamic Streaming Smooth Streaming MPEG-DASH
  • 4. こーでっく ● 動画ファイルには様々なフォーマットがある – mp4, flv, webm, mov, wmv, 3gp, ... ● 動画ファイルを利用する場合、 – 提供する側があるフォーマットでエンコードして、 – 再生する側があるフォーマットでデコードする ことで内容を見聞きできる ● 何のためにエンコードするか? – 圧縮してサイズを小さくするため ● エンコード ⇔ デコードが双方向にできる装置や ソフトウェアまたはアルゴリズムのことをコーデックと呼ぶ
  • 5. えいちにーろくよん ● 広範囲に利用されているビデオコーデックの規格 – いろんなベンダーが参加して作ったため、多数の特許権が含まれている ● パテントプールであるMPEG LAに特許料を支払わないといけない – エンドユーザーが無料で視聴できるインターネットビデオのみ免除 (YouTubeのようなサービス) ● コーデック変換が発生する箇所で特許料の支払い義務が生じる – ストリーミング/トランスコードサーバー、ブラウザ、メディアプレイヤー – 一般的にH.264を扱うプロダクトを販売/購入する場合、 その販売/購入代金にその特許料も含まれる ● その販売企業がMPEG LAに特許料を支払う – H.264の特許料はキャップ制で、上限額を支払えば不特定多数へ提供できる ● Adobe Flash Player ● Cisco OpenH264
  • 6. えいちにーろくよんのとっきょりょう ● MPEG LA の AVC/H.264 情報 – AVC Patent Portfolio License Briefing ● ライセンスの要約をまとめた資料 ● Manufacture and Saleの価格帯も書いてある ● あくまで2008年時点での参考情報 – いまのライセンスとは違うかもしれない ● 特許料は年間キャップ制 – この資料では$6.5 million per year 2011-2015 – H.264 をプロダクトで商用利用するには MPEG LA とライセンスを締結しないといけない
  • 7. おーぷんえいちにーろくよん ● CiscoのOpenH264プロジェクトとは? – Cisco曰く、WebRTCを促進する目的らしい – CiscoがMPEG LAへ特許料を支払っているため、 Ciscoがビルドしたバイナリを使ってライセンス条項に従えば、特許料の支払いは免除される – オープンソースとしてgithubでホスティング: openh264 ● RELEASEファイルにライブラリのダウンロード先がある – 2014-05-23 1.0.0 リリース – 2014-07-09 1.1.0 リリース – 2014-10-28 1.2.0 リリース ● ライセンスについて – サーバーでの商用利用: License question on server-side for commercial use – クライアントでの商用利用: License question. – 2014-10-14 シスコの OpenH264 が Firefox の一部に ● EricssonはOpenH264を利用するWebRTC実装をオープンソース化 ● Mozilla – 2014-10-14 OpenH264 Now in Firefox ● Firefox33からOpenH264を組み込み
  • 8. うぇぶえむ ● GoogleのWebMプロジェクトとは? – 2010年からGoogleが開発 – open-source, royalty-free, Webに特化したフォーマット – コンテナー: webm (Matroskaのサブセット) ● ビデオコーデック: VP8→VP9 ● オーディオコーデック: Vorbis ビデオとオーディオの圧縮技術はそれぞれ違うため それらを1つにまとめることを「多重化」すると言う また、このまとめたものをコンテナーと呼ぶ – 姉妹プロジェクトとして画像フォーマット: webp – YouTubeにアップロードされた動画はwebmでエンコードされる ● 普及を妨げる要因? – MPEG LAがH.264をインターネットの無料動画に限り無料に変更 – VP8がMPEG LAの管理する特許に抵触の可能性 ● 2013-03-07: Google and MPEG LA make a deal over VP8 codec – IE 、Safariで未サポート (別途プラグインが必要)
  • 10. はやり ● Streaming方式 (リアル・ストリーミング) – RTMPによるストリーミング – キャッシュが端末に残らない (CDNには残るかも?) – 専用サーバー/クライアントが必要 – (相対的に)帯域制御やサービス品質の保証が容易 ● Progressive download方式 (擬似ストリーミング) – HTTPによるストリーミング(ダウンロード) – 端末や途中経路にキャッシュとしてファイルが残る – Webサーバーから配信、ブラウザ(html5対応)で再生できる ● Webアプリのノウハウでスケールアウトが容易 ● Adaptive bitrate streaming方式 – HTTPストリーミングの進化系 – デバイスや帯域に適したストリーミングを提供 HTTP ストリーミング HTTP ストリーミング あらかじめそれぞれのデバイス、 ビットレートにトランスコードした メディアファイルを用意する 1つのメディアファイルを リアルタイムエンコードする
  • 11. さいきん ● Adobe – 2009年RTMPの仕様を公開する ● CDNサービスが可能となり、Flash技術がエンタープライズ分野でも利用される – 2010年HTTP Dynamic Streaming (HDS)を提供 (FMS 4.0) – 2011年HLSをサポート (Flash Player 11+) ● Apple – 2009年HTTP Live Streaming (HLS)を提供 ● 対応ビデオコーデックはH.264のみ ● Google – 2010年WebMプロジェクトを開始 ● royalty-freeなオープンなストリーミングの世界 – 2011年Android 3.0 HoneycombでHLSをサポート (スマートフォン4.0) ● Microsoft – 2010年Smooth Streamingを提供 (IIS Media Service 4.0) Red5: FMSのOSS実装 2005年プロジェクトを開始 2009年に0.8.0 をリリース 2012年に1.0 をリリース Wowza: FMSの競合プロダクト 2007年1.0 をリリース 2009年2.0 をリリース(HTTP ストリーミング開始) Adaptive bitrate streaming 2010年ぐらいから始まった html5 2008年First Public Working Draft 2011年Last Call Mozilla (Firefox) 2010 WebM サポートを支持 2012 スマートデバイスで H.264 サポート開始 2014.10 H.264 サポート (OpenH264)
  • 12. えいちえるえす ● HTTP Live Streaming ドキュメント – Appleが提唱/実装 – IETFで標準化が進められている ● HTTP Live Streaming draft-pantos-http-live-streaming –現時点ではDraft 14 (2014-10-14) – 6ヶ月ごとに更新されるため、標準化が決まるのはまだまだ先になりそう? – プレイリストと小さく分割したセグメントファイルを使う ● プレイリスト: M3Uフォーマット (m3u8) – M3UをUTF-8でエンコードしたのを指して.m3u8という拡張子で保存する ● コンテナー: MPEG-2 TS –世界的に採用されてる地上波/BSデジタル放送の規格、日本も同様 – ビデオコーデックやオーディオコーデックについてはIETFのDraftには書いてない –余談: MatchStick Developer's Guideから未来の展望? – AESを使った暗号化の仕組みもある ● HTTP上で暗号化されたファイルを送信 小さく分割したメディアファイルを プレイリストから順番に再生 Adobe社の戦略? 2009年RTMP仕様公開 2010年FMS4.0 をリリース - HDS をサポート ※ Flash Player 11以上H.264 をサポート(IE6 は10 まで)
  • 13. すまーとでばいす ● HTTP Live Streaming 対応状況 by JW Player ● サポートしているストリーミング方式 – iPhone/iPad ● iOS 3.0 (iPhone OS) から HLS をサポート ● 但し、m3uフォーマットの拡張タグなどでバージョン間の違いはある – Example Playlist Files for use with HTTP Live Streaming – Android ● 2.3 Gingerbread – WebM フォーマットをサポート ● 3.0 Honeycomb プレイリストを書いたりして何でもできる – HLS をサポート (MPEG4/H.264) – Windows Phone/Tablet ● Windows8 プレイリストの中に – Smooth Streamingをサポート (MPEG4/H.264)
  • 14. ぱそこんぶらうざ ● http://caniuse.com/ ● ブラウザが<video> タグでサポートしているフォーマット IE8 IE9+ Chrome Firefox Safari Opera MPEG4 /H.264 ☓ ○ ○ ○ ○ ☓ WebM ☓ ☓ ○ ○ ☓ ○ Ogg ☓ ☓ ○ ○ ☓ ○ ・IE8はFlash player または Silverlight を使う以外にストリーミングする方法はない ・IE9+でWebMプラグインをインストールすればWebM フォーマットが再生可能 ・Safariのみ、HLS をブラウザがサポートしている
  • 15. すまーとでばいすとぱそこんぶらうざ ● http://caniuse.com/ ● スマートデバイスとパソコンを一緒くたにしてみた IE8 (PC) IE9+ (PC) Chrome (PC) Firefox (PC) Safari (PC) Opera (PC) iOS Android 2.3 Android 4.0+ Windows 8+ MPEG4 /H.264 ☓ ○ ○ ○ ○ ☓ ○ ☓ ○ ○ WebM ☓ ☓ ○ ○ ☓ ○ ☓ ○ ○ ☓ Ogg ☓ ☓ ○ ○ ☓ ○ ☓ ☓ ☓ ☓ HLS ☓ ☓ ☓ ☓ ○ ☓ ○ ☓ ○ ☓ 要件に応じて最適なフォーマット/方式を選択しないといけない ・IE8は<video> タグをサポートしない ・SafariはWebM(VP8) をサポートしない
  • 16. ぶらうざのもんだい ● HLSのMPEG-2 TS コンテナーにビデオコーデックの指定 はない – iOS (Safari)がVP8 (WebM) をサポートしない – 事実上、HLSのビデオコーデックはH.264のみ ● IE8 (サポートは2016年1月まで)が<video> タグをサ ポートしない – ストリーミングするにはFlash Player またはSilverlight を使うしかない
  • 17. めでぃあぷれいやー ● Video.js – html5とswfプレイヤーを備えたマルチブラウザ/マルチデバイス対応 ● PC向け: IE8+ 、Firefox 、Chrome ● スマートデバイス: iOS 、Android 、Windows Tablet/SmartPhone – ライセンス: Apache License 2.0 – プラガブルなアーキテクチャ ● hls/mediasourceプラグインでHLSに対応 – flashhlsプレイヤーの1つ (要flash) ● MPEG-DASHの開発も最近始まった – videojs-osmf – DASH Everywhere-ish – 実績 ● Google Media Frameworkのプレイヤーに採用 ● twitpicやairbnbなどでも採用されているらしい
  • 18. なぜふらっしゅなのか ● PC向けブラウザは多くがHLSをサポートしていない ● (2014-11時点で) HLSをサポートするのはSafariのみ – 再生する(H.264デコード)には特許問題の不透明感 – ブラウザベンダーの思惑? ● WindowsはSmooth Streamingあるし ● Chrome/FirefoxはWebMを推進しているし ● そうだ! Flash Playerを使おう – マルチプラットフォーム/ブラウザで動作し、 H.264デコードの特許問題にも抵触しない唯一のソリューション ● IE8が<video>タグに対応していない問題も解決? MPEG-DASHの普及まで
  • 19. びでおじぇーえすのあーきてくちゃ ● video.js – プレイヤー本体、ブラウザの<video>タグを使う ● video-js-swf – Flash Playerを使うswfプレイヤーの実装 – RTMP/HTTPの両方をサポート ● videojs-contrib-hls – HLSをサポートするプラグイン ● クライアント駆動のビットレートスイッチをサポート ● 但し、IEのサポートは10+ (要Typed Arrays, Cross-Origin Resource Sharing) – プレイリストのパースやh264ストリームを扱う機能を提供 ● videojs-contrib-media-source – Media Source Extensionsを扱うためのプラグイン ● video要素のデータを直接的に扱う ● ソースから読み込んだデータをbase64でエンコードして直接swfへバッファとしてinvokeする – まだまだ荒削りな実装にみえる (- -# このバッファリングがピーキー、特にIE10
  • 20. ぼくのかんがえたさいきょうの ● ストリーミングサーバー – Webサーバーをスケールアウトする形態でHLSを提供 ● 将来的にはMPEG-DASHへ移行 – RTMPストリーミングは以下の要件がない限り使わない (いまの時点では) HLS を中心に据え、 対応できないケースを 限定的に対応 ● 端末にキャッシュを残せない ● IE6がサポート対象である (Flash Player 10はHTTPストリーミングを未サポート) – IE8サポートが不要ならWebMを提供するのも1つの方法 ● IE、SafariはWebMプラグインのインストールが必要 ● ブラウザ/各種デバイス – flashhlsでPC/スマートデバイス全てHLSでストリーミング再生 ● MPEG-DASHでWindows Tablet/SmartPhoneも – HLSに対応できないブラウザ (IE8やIE9など)はどうする? Flash Playerは必須 ● MPEG4/H.264をFlash Playerで再生 (なくなるのは時間の問題) ● 要件/構成によってはWebMで代用することも
  • 21. だっしゅ ● dashif.org – Dynamic Adaptive Streaming over HTTP, aka MPEG-DASH – Adobe HDSとMicrosoft Smooth Streamingはこれに移行 – ベンダーロックインではないAdaptive bitrate streaming ⇔ HLS – DRM (デジタル著作権管理)も扱える ● 標準化 – 2012-03: 1st Edition of MPEG-DASH, ISO/IEC 23009-1:2012 – 2014-05: 2nd Edition of MEPG-DASH, ISO/IEC 23009-1:2014 ● HTML5 Media Source Extensionsからも使えるらしい ● コンテナー: MP4, WebM, MPEG-2 TSなど ● ISO base media file format (MP4も含む) ● Matroska/WebM in MPEG DASH ● OS/ブラウザベンダーの動向 標準化はされているから これからの普及待ち – Apple: Safari8+(Yosemite), Adobe Primetime Support for MPEG-DASH iOSは? – Google: Android 4.4から対応、Chrome23+ – Mozilla: Firefox31+(Partial support), DASH Adaptive Streaming for HTML 5 Video (バグ修正中?) – Microsoft: IE11+, Building a simple MPEG-DASH streaming player – Opera: 20以降 (Only WebM?)
  • 22. まとめ ● ストリーミングプロトコルはHTTP一択へ – Adaptive bitrate streamingはいまのところ2つに集約化 ● HTTP Live Streaming ● MPEG-DASH (将来的にはこっち?) HLSの展望はApple次第 ● H.264の特許問題はこれらを使うことで一応は回避可能 – OpenH264やFlash Playerなどエンコード/デコード対応 – 但し、アプリの作り込みが必要 ● MPEG-DASHでWebMが普及? – HLSのコンテナー: MPEG-2 TS OS/ ブラウザベンダーの対応次第 ● ビデオコーデック: 仕様にはないけど、事実上はH.264 – MPEG-DASHのコンテナー: MP4, WebM, MPEG-2 TSなど – WebRTCのコーデック: H.264 or VP8(VP9) ?