2012年9月28日金曜日

webmのライブストリーミング

chromeには、webmのライブストリーミングを再生する能力があります。
で、対応しているストリームを吐くことができるのは、stream-mというアプリケーションがあります。
以前紹介したことがありますね。

で、このwebmのライブストリーミングがどうなっているかというと
range指定でサイズが不明な状態でhttpのダウンロード要求が送られます。
するとサーバーからは、ある分と追記された分を順次送り届けます。
ブラウザ側では、うけとったデータをその都度再生可能な量たまったら順次再生しているという次第です。
新規アクセスがある場合に、アクセスがあった時刻以降の動画をうまく送信してやれば、webmのライブストリーミングがいっちょあがりという次第です。

いままでのhttp経由のストリーミングでは、それぞれの小さなメディアパケットがきまっていて、それを順次ダウンロードするという形だったので様相が違いますね。

なお、stream-mをつかってライブストリーミングを実行していると、socketの例外で接続が死ぬことがあります。この場合、webmのライブストリーミングでは、再接続の方法はないみたいです。このあたりはjavascriptでうまくプログラムを書いて調整しないといけないということかもしれませんね。

このhttpのストリーミングの方式、結構おもしろいですね。
長期間にわたって、任意のデータを送り続けることが可能というもので、ヘッダの送信は1回ですむので、httpTakStreamingもこの方式を取り入れて可能なかぎり1回のアクセスで送信をするみたいなことができたら、転送量の節約につかえるかもしれません。

もっとも、http転送のベーシックなものとはいえ、こんなダウンロードの仕方をflashで制御できるのかは調査してみないとわかりませんけど・・・

まとめ:
・webmのストリーミングはwebmの動画を転送量不明状態で送り続ける形で成立している。
・レジューム機能はついていない
(videoタグの動作を調査すればなにかしらあるかもしれない。)
(たぶんjavascriptで制御しろということなのだろう。)
・stream-mは長時間利用してるとsocketの例外がでて接続がきれちゃうことがある。

0 件のコメント:

コメントを投稿