23
覚えていますか? Adobe Http Dynamic Streaming

Adobe HTTP Dynamic Streaming LT

Embed Size (px)

DESCRIPTION

Adobe HTTP Dynamic StreamingのLT資料

Citation preview

Page 1: Adobe HTTP Dynamic Streaming LT

覚えていますか?Adobe Http Dynamic Streamingを

Page 2: Adobe HTTP Dynamic Streaming LT

自己紹介• {id:|@}con_mame

• インフラ

• JetpackでMozillaで発表した事も…

• 今日、ニコニコニュース検索用IE8アクセラレータリリース

Page 3: Adobe HTTP Dynamic Streaming LT

本題

Page 4: Adobe HTTP Dynamic Streaming LT

Adobe Http Dynamic Streaming

Page 5: Adobe HTTP Dynamic Streaming LT

Adobe Http Dynamic Streaming

• 6月18日リリース

• HTTPを使用して動画・Live配信

• コンテンツ認証対応

• ビットレート動的切替え対応

• OSMFも同時に公開

Page 6: Adobe HTTP Dynamic Streaming LT

メリット• FW内のPCにもストリーミング配信

• 導入が簡単• 変換ツール付き• 動画の読み込みを待たずにシーク可能• FMSいらない

• キャッシュサーバの恩恵を受けられる

Page 7: Adobe HTTP Dynamic Streaming LT

メリット• H.264およびAACでHD品質を実現

• アダプティブビットレート

• Adobe Flash Access 2によるコンテンツ保護標準のHTTP配信システムをサポート

• DVR対応のライブストリーミング

• 高度なシーク機能を備えたオンデマンドストリーミング

• マルチプラットフォームでブラウザー、デスクトップ、デバイスに配信

• LinuxおよびWindows Serverをサポート

• オープン仕様のMP4標準ファイル形式

Page 8: Adobe HTTP Dynamic Streaming LT
Page 9: Adobe HTTP Dynamic Streaming LT

導入方法

• Apache2.2以上

• Http Origin Module入れるだけ

Page 10: Adobe HTTP Dynamic Streaming LT

導入方法

• http://www.adobe.ge/jp/products/httpdynamicstreaming/ からadobe_f4f_apache_module100_linux_x86.zip をDL

• Apacheのモジュールディレクトリにコピー

Page 11: Adobe HTTP Dynamic Streaming LT

導入1. unzip adobe_f4f_apache_module100_linux_x86.zip

2. cd /adobe_f4f_apache_module100_linux_x86/adobe/f4fmodule

3. cp libF4V.so /etc/httpd/modules

4. cp libexpat.so.1 /etc/httpd/modules

5. cp mod_f4fhttp.so /etc/httpd/modules

Page 12: Adobe HTTP Dynamic Streaming LT

配信ファイル置き場・conf

作成

LoadModule f4fhttp_module modules/mod_f4fhttp.so

<Location /vod> HttpStreamingEnabled true HttpStreamingContentPath "/var/www/vod"</Location>

mkdir -p /var/www/vod

Page 13: Adobe HTTP Dynamic Streaming LT

動画変換

• F4V or MP4 compatible files

• FLV

Page 14: Adobe HTTP Dynamic Streaming LT

動画変換• f4f  動画ファイル本体。内部はセグメントに分割されている

• f4m マニフェストファイル。この中に動画情報が格納されており、可変ビットレートやライセンス管理の情報も記述される

• f4x インデックスファイル。Playerから要求される各フラグメントファイルのf4fファイル中でのインデックスを持っている

Page 15: Adobe HTTP Dynamic Streaming LT

動画変換

unzip adobe_f4fpackager100_linux_x86.zipcd adobe_f4fpackager100_linux_x86/adobe/f4fpackager

./f4fpackager --input-file 変換元動画 --output-file 書出し先ディレクトリ

f4fpackager --input-file=sample1_150kbps.f4v --bitrate=150f4fpackager --input-file=sample1_700kbps.f4v --manifest-file=sample1_150kbps.f4m --bitrate=700f4fpackager --input-file=sample1_1500kbps.f4v --manifest-file=sample1_700kbps.f4m --bitrate=1500

Page 16: Adobe HTTP Dynamic Streaming LT

manifest

Page 17: Adobe HTTP Dynamic Streaming LT

OSMFで再生してみる

Page 18: Adobe HTTP Dynamic Streaming LT

仕組み1. Playerにはマニフェストファイルのアドレスを渡す

2. http://www.hoge.com/fuga.f4m

3. ApacheはOrigin Moduleに処理を渡して、Origin ModuleからPlayerにマニフェストファイルが返される

4. Playerはマニフェストファイル中のBootstrapセクションを参照してタイムコード(segment#/fragment#)に変換する

5. Playerが「http://www.hoge.com/media/fugaSeg1-Frag1」のようなアドレスを生成しリクエスト

6. ApacheはOrigin Moduleに処理を渡し、Origin Moduleはセグメント番号とフラグメント番号からf4fファイルのビットオフセットを算出し指定のフラグメントをPlayerに返す

• シークバーを動かした時は、シーク先の時間に対応するフラグメントが要求されるのでキャッシュサーバにキャッシュがあればOrigin Moduleに処理が渡らずキャッシュサーバ中のキャッシュを返す

Page 19: Adobe HTTP Dynamic Streaming LT

ログ172.16.49.1 - - [30/Oct/2010:23:51:34 +0900] "GET /vod/trinoko/trinokocity.f4m HTTP/1.1" 200 2154 "http://172.16.49.100/OSMFPlayer.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.23 Safari/534.10"

172.16.49.1 - - [31/Oct/2010:00:04:37 +0900] "GET /vod/elu/eluSeg1-Frag7 HTTP/1.1" 200 532024 "http://172.16.49.100/OSMFPlayer.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.23 Safari/534.10"

172.16.49.1 - - [31/Oct/2010:00:04:43 +0900] "GET /vod/elu/eluSeg1-Frag8 HTTP/1.1" 200 190361 "http://172.16.49.100/OSMFPlayer.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.23 Safari/534.10"

172.16.49.1 - - [31/Oct/2010:00:04:45 +0900] "GET /vod/elu/eluSeg1-Frag9 HTTP/1.1" 200 298743 "http://172.16.49.100/OSMFPlayer.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.23 Safari/534.10"

Page 20: Adobe HTTP Dynamic Streaming LT

パフォーマンス• 100クライアントでキャッシュに乗っているフラグメントにアクセス

• 1,000リクエストと10,000リクエスト

• load averageも見てみる

• 10回の平均を見る

• Apacheの設定は標準

Page 21: Adobe HTTP Dynamic Streaming LT

Apache vs Varnish vs nginx1,000リクエスト*Apacheload average: 3.95Requests per second: 126.98 [#/sec] (mean)Time per request: 787.547 [ms] (mean)

*Nginxload average: 0.42Requests per second: 122.54 [#/sec] (mean)Time per request: 816.040 [ms] (mean)

*Varnishload average: 0.91Requests per second: 105.91 [#/sec] (mean)Time per request: 944.240 [ms] (mean)

Page 22: Adobe HTTP Dynamic Streaming LT

Apache vs Varnish vs nginx10,000リクエスト*Apacheload average: 18.93Requests per second: 124.10 [#/sec] (mean)Time per request: 805.778 [ms] (mean)

*Nginxload average: 1.75Requests per second: 120.28 [#/sec] (mean)Time per request: 831.421 [ms] (mean)

**Varnishload average: 4.07Requests per second: 122.40 [#/sec] (mean)Time per request: 816.992 [ms] (mean)

Page 23: Adobe HTTP Dynamic Streaming LT

まとめ• Apacheあれば動画ストリーミングが簡単に出来る

• FWにも強い

• ライセンス管理も出来る• Live配信でもFWを気にしなくていい

• キャッシュサーバでフラグメントをキャッシュ出来る• パフォーマンスの低下が少ない