Hiroshi Okunushi's Blog ☆ミ| IIS PHP etc.

IIS7, PHP on IIS を中心とした情報発信ブログです。

March, 2009

  • 【IIS7】 Smooth Streaming FAQ

    Alex Zambelli さんのブログ
    http://alexzambelli.com/blog/


    原文:
    Smooth Streaming FAQ


    (独自翻訳 by 奥主:正確な表現は原文を参照ください。)

    この FAQ はできるだけ最新にアップデートしていくのでブックマークしていただいて、時折 更新されたかチェックいただけると幸いです。

    Q: Smooth Streaming ってなんですか?
    A: Smooth Streaming は HTTPベース アダプティブストリーミングのマイクロソフトの実装です。

    Q: アダプティブストリーミングって何ですか?
    A: 従来のメディアストリーミングのように動作しながらも実は HTTP プログレッシブダウンロードを活用しているハイブリッドなコンテンツ配信方法です。要約すると、サーバーからクライアントへの連続した小刻みなHTTPダウンロードです。従って、一つの長いダウンロードでもなく、固定ビットレートのストリームでもありません。コンテンツは複数のビットレートでエンコードされているのが普通で、とても小さな「塊」の連続として送信されます。クライアント側ではネットワークの帯域状況、CPUの性能に応じて、動的に要求するビットレートを違うもの(異なるサイズ、異なる画質)に切��替えることができます。これにより、常にその時点での最良のビデオ品質を受信することが可能になります。

    Q: マイクロソフトはこの技術をどのように展開するのですか?新しいプラグインなどをインストールしないといけないんでしょうか?
    A:
    これは Smooth Streaming を使って何をしようとしているかによります。

    • エンドユーザーの方であれば - 皆さんは Silverlight 2 以降がマシンにインストールされていれば OK です。
    • コンテンツ制作をなさっている方であれば – エンコードを行うソフトウェアのアップグレードが必要です。MP4ベースの新しい Smooth Streaming ファイル形式をサポートしている必要があります。現在は  Expression Encoder 2 SP1 だけになりますが、他の製品のサポートも順次行われます。
    • ホスティング事業者 あるいは CDN を運営されている方であれば – Windows Server 2008 サーバーに  Smooth Streaming extension for IIS7 をインストールする必要があります。このコンポーネントにより IIS7 が Smooth Streaming 資産のクライアント向けサービスを行えるようになります。
    • Silverlight を使用した Web 開発者の方であれば - Smooth Streaming プレイバック機能をアプリケーションに付加する必要があります。これは Expression Encoder 2 SP1 に含まれている Silverlight 2 player templates を使用いただくか、 Open Video Player for Silverlight を実装するか、 MediaStreamSource ベースのアダプティブストリーミングを一から開発するかのいずれかになります。

    Q: Smooth Streaming が実際に動作しているのをどこかで見れないのですか?
    A:
    SmoothHD.com にアクセスしてみてください。オンデマンドの Smooth Streaming のデモがご覧いただけます。高速回線(3MBps以上)であれば最高 720p HD のビデオコンテンツをご覧いただけます。Smooth Streaming の再生のための前提条件は Silverlight 2 のブラウザープラグインがマシンにインストールされていることだけです。

    Q: Smooth Streaming の出荷時期はいつごろですか?
    A:
    Smooth Streaming extension for IIS7 のベータ版は既に download 可能です。このバージョンの Smooth Streaming extension はオンデマンドストリーミングだけサポートします。最終版のこの IIS7 extension は 2009年 Q2 に出荷予定となります。
    注意:UIも含めて日本語で出荷する時期を指していません。

    Q: Smooth Streaming は Windows メディアサービスや Windows メディアプレイヤーと互換性があるのですか?
    A:
    いいえ、ありません。 Smooth Streaming をサービスするには Windows Server 2008 と IIS7 が必要です。また、  Smooth Streaming 再生は Silverlight アプリケーションでのみ可能になっています。

    Q: このストリーミングの技術は Windows メディア MBR (multiple bit rate) ストリーミングと何が違うのですか?
    A:
    Windows メディアサービスはクライアントにコンテンツを配信する上で RTSP や WMS HTTP のような従来のストリーミングプロトコルを使用します。これらのプロトコルで配信されたコンテンツはエンコードされた固定のビットレートでストリーミングされ、ネットワークの状態に合わせてタイムリーにかつ動的に変動させることが困難です。つまり、利用帯域が減少しているようなネットワークの状態を把握した時には既に遅しであり、逆にネットワークの状態が回復した際にもよりよい品質に回復させることもできません。

    一方で Smooth Streaming では、細切れにした多数の HTTP ダウンロードをベースにしています。そのためクライアントはダウンロードのスピードを常に評価しつつ 順次ダウンロードするビットレートを途中でも指定できるのでネットワークの状態に適した配信を要求することができます。さらに、インターネットは元来 HTTP 通信を行うためのインフラとして発展してきたので Smooth Streaming は特別なキャッシュやプロキシーの機構・機材を必要としないので既に存在しているホスティング事業者やCDNサービスを提供している場合でも今までの仕組みを利用することができます。このことでスケーラビリティ、アクセス上の制限(ファイアウォールを気にしない)そして、リーチを最大化することが可能になります。

    Q: Smooth Streaming は実際にビデオファイルを数千に分割するのですか?
    A:
    いいえ、ディスク上で物理的に分割をするのではありません。Smooth Streaming ファイル形式に対応したエンコーダーは内部的に連続した断片を一つにまとめた MP4 形式のファイル (ビットレート毎に1つのファイル) である *.ismv あるいは *.isma の拡張子のついた実体と XML 形式のマニフェストになっている *.ism と *.ismc として出力します。Smooth Streaming の最小セットは従って、3つのファイルになります。普通にエンコードされた場合には通常 6-8 のファイルが含まれることになります。
    Smooth Streaming クライアントが IIS7 サーバーにファイル内の時間軸上のどの部分かを指定してリクエストした際にMP4ファイルは仮想的にサーバーで断片(塊)に分割され、独立したファイルとして通信されます。このことで、クライアントのリクエストは(経路上で)キャッシュされ、スケーラビリティの確保と通信の最適化が行われます。

    Q: Smooth Streaming を使うとすべてのお客様に HD ビデオを提供することが保証されるのでしょうか?
    A:
    いいえ。Smooth Streaming は奇跡を起こせるわけではありません。HTTP 配信を拡張して活用する仕組みに過ぎません。HD ビデオの配信は引き続き利用されるコーデック(VC-1, H.264 など)の効率に依存します。例えば、ほとんどのビデオを取り扱っている専門家もご同意いただけると思いますが、720p/24 ビデオは 2Mbps 以下の回線では満足できる品質レベルで配信することは難しいです。ということで、2 Mbps のエンコードされたビデオは当然リアルタイムで配信するには 2 Mbps のネットワーク帯域が必要ということになります。そしてこれを IIS7 や Silverlight が劇的に変化させることはできません。そもそも 既知の方法で 2 Mbps データを リアルタイム配信するのに 1 Mbps で済む、そんな方法があるならもう既にみんな使ってますよね、その方法を。:)

    Smooth Streaming がしてくれるのは、そうではなくて、コンテンツ提供者が HD ビデオを 受信することができる(十分なネットワーク帯域とCPU能力がある)お客様に対して、ストリーミング全体の品質を犠牲にすることなく、一番低い品質に合わせるのではなく、最適な配信です。言い換えると、Smooth Streaming でコンテンツを提供する方は、聴衆の多くがどのビットレートが最適かを推測する必要がもう無いということです。代わりに幅広いビットレートの種類を用意してエンコードしておけば、クライアント側の処理で最適なものを動的に選択し、スムーズな再生を提供できます。

    Q: マイクロソフトは以前にもアダプティブストリーミングを実装しなかったのでしょうか?
    A:
    マイクロソフトは NBC Olympics 2008 のビデオサイトでアダプティブストリーミングのプロトタイプを開発しました。Smooth Streaming はマイクロソフトがそれを製品化したものです。

    Q: Move Networks 社 はどうなんでしょう? Smooth Streaming は Move Networks アダプティブストリーミングのプラグインを置き換えるものなんでしょうか?
    A:
    いいえ。プラットフォームを提供しているマイクロソフトはアダプティブストリーミングの方式としてSilverlightプラットフォームを提供しており、パートナー様が実際には Silverlight が接続する先のサーバーの配信方式は選択できるようになっています。Move Networks 社が 2008 年に 発表した のはプレイヤーのコンポーネントとして Silverlight を採用いただけることです。しかし、サーバーの配信方式は既存のテクノロジーを使用しており、 Smooth Streaming を使用しているわけではありません。

    John Bocharov の言葉を借りると、“私の視点では、我々が  Smooth Streaming で提供しているのはプラットフォームテクノロジーであり、一方で Move Networks 社は革新的な Silverlight のプラットフォームを活用いただいているサービス ソリューション プロバイダーです。 私はこの関係を競合するサービスとは思っていません。目的とするところは、Silverlight へ ストリーミングメディアを提供する素晴らしいサービスを提供する エコシステム の創造であって、Move Networks 社とそのサービスは現在も今後も、引き続き強力で 尊敬すべきこのエリアのプレイヤーです。

    Q: Smooth Streaming は新しいコーデックに基づいているんでしょうか?
    A:
    いいえ。Smooth Streaming は業界標準である VC-1 や H.264 コーデック、WMA や AAC 音楽コーデックををサポートしています。

    Q: 既存のコンテンツをすべて再エンコードしないと Smooth Streaming で使用できないのでしょうか?
    A:
    残念ですが、その通りです。 Smooth Streaming は標準的なコーデックを使用するとは言え、異なるビットレートのファイル間で正確なタイムスライスの一致、あるいは GOP や エントリーポイントヘッダーが要求されます。従って、オリジナルに対してコンテンツを Smooth Streaming 用に再エンコードすることを推奨しています。

    Q: なんで Smooth Streaming ファイルを所有している MP4 プレイヤーで再生できないんでしょうか。MP4ベースなのではないのですか?
    A:
    Smooth Streaming ファイル、そして通信書式は特定の MP4 ボックス構造であり、ライブ配信も考慮に入れたムービーフラグメントを多く使います。ISO ベースメディアファイル書式の規定では、(MP4 ファイル書式の規定)様々の書式オプションを可能にし、展開時の柔軟性を提供しています。これにより、すべての開発者やコンテンツ提供者は MP4 実装におけるすべての規約事項を取り入れているわけではありません。結果、今 お使いの特定の MP4プレイヤーが すべての MP4 ムービーフラグメント("moof"、"mdat")に関する規約を実装しているわけではなく、特に Smooth Streaming のMP4 ボックス構造に対応しているわけではありません。

    さらに、SMPTE より、MP4 Registration Authority にて、VC-1 が MP4 コンテナのストレージとして正式に承認されました。MP4 ファイル形式は 大きく H.264 ビデオと AAC 音声コーデックに紐づいており、多くの MP4 プレイヤーはこれらのコーデックのみを受け付けるようになっています。最後に、現時点では WMA Standard と Professional 音声コーデックはどの標準団体からもまだ MP4 内に格納する場合のコーデックとして正式な承認を得られていないのでお使いの特定プラットフォームでサポートされていない可能性もあります。

    Q: Smooth Streaming は H.264/AAC をサポートしているんでしょうか?
    A:
    はい。しかし、H.264/AAC でエンコードされた Smooth Streaming コンテンツを Silverlight クライアントに配信するには Silverlight 3 が必要です。H.264/AAC サポートは Silverlight 3 の新しい再生機能になります。

    Q: Smooth Streaming は DRM コンテンツの保護をサポートするんでしょうか?
    A:
    はい。書式自身は既に PlayReady DRM サポートを含んでいます。機能自身は 3rd パーティのエンコードを行うソフトウェアが PlayReady AES ストリーミング暗号化サポートを製品として実装することで実現していきます。

  • 【IIS7】 IIS7 で実現するメディアストリーミングの世界(その3)

    Alex Zambelli さんのブログ
    http://alexzambelli.com/blog/


    原文:
    Smooth Streaming Architecture


    (独自翻訳 by 奥主:正確な表現は原文を参照ください。)

    Smooth Streaming のアーキテクチャー

    今までの二つの投稿で説明してきたように Smooth Streaming はマイクロソフトの HTTP ベースのアダプティブストリーミング - ハイブリッドなメディア配信モデル - の実装です。ストリーミングのように動作しますが、実は HTTP のプログレッシブダウンロードをベースにしています。HTTP ダウンロードは小さな塊が繰り返し行われ、メディアを容易にそして安価にユーザーに近いネットワークエッジでキャッシュすることができます。複数のビットレートでエンコードされた同一のメディアソースは Silverlight クライアントにシームレスで動的にビットレート間をネットワークの状況やCPUのパワーに基づいてスィッチさせることができます。その結果、エンドユーザーの体験は 信頼性が高く、安定した、バッファリングやストレスの無い再生を実現します。一言で言い表すと Smooth なんです。

    この投稿ではもっと Smooth Streaming がどのように動くのかを見ていきます。フォーマット、サーバー、クライアントの視点です。

    Smooth Streaming フォーマット

    Smooth Streaming はこの十年ほどの間では ASF 以外を採用した最初の Microsoft メディアフォーマットです。ISO/IEC 14496-12 ISO Base Media File Format に基づいており、MP4 ファイルの規定として知られています。なんで ASF でなく MP4 なんでしょうか? いくつかの理由があります。

    • MP4 は ASF よりもオーバーヘッドの少ない 軽量なコンテナフォーマットである
    • MP4 は .NET(マネージド)のコードを使って ASF よりも簡単にパースできる
    • MP4 はより幅広い範囲で利用されている標準で、サードパーティの採用とサポートを実現しやすい
    • MP4 は H.264 ビデオコーデックを考慮してアーキテクトされた経緯もあり、Smooth Streaming と Silverlight 3でのH.264 サポートをアテにしている (ASF も同様に H.264 ビデオを含むことができますが、MP4ほどストレートに実現できません)
    • MP4 はペイロードのファイル中のフラグメンテーションをネイティブにサポートするように設計されている

    Smooth Streaming フォーマットには2つのパートがあります。配信のフォーマットとディスクファイルのフォーマットです。Smooth Streaming ではビデオはディスクに全編が一つのファイルとして記録(ビットレートごとに一つ)され、クライアントに配信される段階で小さい断片の集まりとして順番に生成・配信されます。配信フォーマットは IIS から クライアントに送信される断片の構造を定義しています。ファイルフォーマットは一方でディスクに記録される単一ファイルのフォーマットを定義しています。幸運なことに、MP4 規約は内部的に断片の集まりとしてファイルを作成することを許可しています。 つまり Smooth Streaming において配信フォーマットはファイルフォーマットのサブセットと言えます。

    この MP4 の「断片」と私が呼んでいるのは何でしょうか?MP4ファイルの基本単位は「ボックス」と呼ばれています。これらのボックスはデータもメタデータも含むことができます。MP4 の規約ではファイル中のデータやメタデータの保持方法については柔軟性があります。ほとんどのメディアシナリオではメタデータをデータよりも先に書きこみすることを行っており、これはプレイヤーのアプリケーションが実際に再生する前にビデオ/音声に関するより多くの情報を得ることができるからです。しかしながら、ライブストリーミングのシナリオでは全体のストリームに関するメタデータを先に書きこむことが単に不明なために困難になります。さらに言及すると、事前のメタデータが少なければ少ないほどオーバーヘッドも少ない、つまり 早く起動することができます。これらの理由から MP4 ISO Base Media File Format specification は MP4のボックスが断片として構成できるように定義されています。つまり、一つの長いメタデータとデータとしてではなく、連続した短いメタデータとデータのペアとして実行とともにファイルが書かれていくということが可能です。Smooth Streaming ファイルフォーマットは MP4 ファイル規約のこの特徴を利用しています。マイクロソフトでは Smooth Streaming ファイルという用語とともに 断片化したMP4ファイル あるいは (f)MP4 と呼ぶことがあります。

    下記は Smooth Streaming ファイルの中身がどうなっているかの概要図です。

    Smooth Streaming File Format

    Smooth Streaming ファイルフォーマット

    簡単に要約してしまうと、ファイルは ファイルを全般的な説明を含む ファイルレベルのメタデータ(’moov‘) で始まり、ペイロードの本体は実際には多くの断片のボックスとして含まれており、これらの断片にもより詳細な断片レベルのメタデータ(’moof‘)と実際のメディアデータ(’mdat‘) を含んでいます。この図では断片は2つしか書いていませんが、通常 Smooth Streaming ファイルは ビデオ/オーディオ 2秒分で断片を一つ持ちます。ファイルの最後部には‘mfra‘ インデックスボックスが配置され、ファイル中の簡単で正確のシークを可能にします。

    Silverlight クライアントがビデオ タイムスライス を IIS Smooth Streaming サーバーに要求するとサーバーは単純に MP4 ファイル中の開始断片を探し、ファイル中からその該当断片を「持ちあげて」クライアントへの配信を始めます。このため、私たちは各断片を配信フォーマットと呼んでいます。このテクニックによって IIS サーバーに再書き込みを行うなどのオーバーヘッドを要求しないため、最適化された状態で配信が行われます。

    MP4 断片をもっと詳細に見た図です。

    Smooth Streaming Wire Format

    Smooth Streaming 配信フォーマット

    Smooth Streaming フォーマットは MP4 file format に基づいていると言っているのは ISO 規約に従っているとは言え、独自のボックス構成のスキーマを指定しますし、カスタムなボックスもいくつか定義しているからです。Smooth Streaming ファイルを “vanilla” MP4 ファイルと区別するために、私たちは新しい拡張子を使います。*.ismv (ビデオと音声) と *.isma (音声のみ) です。いつも IIS メディアチームに正確に何の略なのか聞くのをいつも忘れるんですが、私の推測では「IIS Smooth Streaming Media Video (Audio)」だと思っています。

    Smooth Streaming メディアのアセット

    ということで、一般的な Smooth Streaming のメディアアセットは以下のファイルで構成されます。

    • ビデオ/音声を含む MP4 ファイル
      • *.ismv - ビデオと音声を含む または ビデオだけを含む
        • エンコードされたビットレートごとに ISMV ファイルが 1 つ
      • *.isma - 音声だけを含む
        • 音声も持つビデオファイルでは単独の ISMA ファイルではなくて、ISMV ファイルにオーディオトラックとして組み込むことが可能
    • サーバー マニフェスト ファイル
      • *.ism
      • メディアトラック、ビットレート、そして ディスク上のファイルの関係を説明する
      • IIS Smooth Streaming サーバーでだけ利用される - クライアントは利用しない
    • クライアント マニフェスト ファイル
      • *.ismc
      • 利用可能なストリームと使用されたコーデック、エンコードに使用されたビットレート、ビデオの解像度、マーカー、キャプション などの情報をクライアントに説明します。
      • クライアントに配信される最初のファイルである

    双方のマニフェスト ファイルのフォーマットは XMLベースです。サーバー マニフェスト ファイル フォーマットは特に SMIL 2.0 XML フォーマット規約に基づいています。

    Smooth Streaming メディアアセットを含んだフォルダは下記の図のようになっているということになります。

    A typical folder containing a Smooth Streaming media asset

    Smooth Streaming メディア アセット を含んだフォルダー

    この特定のケースではオーディオトラックは NBA_3000000.ismv ファイルに含まれています。

    Smooth Streaming マニフェスト ファイル

    Smooth Streaming 配信/ファイル フォーマット 規約はボックスの構造だけでなく、マニフェストのXML記述方法も定義します。マニフェストは XML ベースであるため、拡張性は非常に高いです。現在の Smooth Streaming フォーマット規約には以下のような機能が含まれています。

    • VC-1, WMA, H.264 と AAC コーデック
    • テキスト ストリーム
    • 多言語音声トラック
    • 代替ビデオと音声トラック(例:複数のカメラアングル、ディレクターのコメントなど)
    • 複数のハードウェアプロファイル(例:同じビットレートでありながら違う再生デバイスを対象にする)
    • スクリプト コマンド、マーカー/チャプター、キャプション
    • クライアント マニフェスト Gzip 圧縮
    • URL 不明瞭化(※いい訳語なし:obfuscation)
    • ライブ エンコーディングとストリーミング

    Smooth Streaming オンデマンド サーバー マニフェスト については ここ をご覧ください。

    Smooth Streaming クライアント マニフェスト については ここ をご覧ください。

    Smooth Streaming 再生:まとめ

    マイクロソフトのアダプティブストリーミング プロトタイプ(NBC Olympics 2008で使われた) は物理的に長いビデオファイルを細かいファイルに分割する手法に依存していました。Web サーバーからこれらの塊を入手するにはプレイヤークライアントは単に論理的なシーケンス - 00001.vid, 00002.vid, 00003.vid - のような順番でアクセスするだけでした。

    以前 そして この投稿で説明しているように、Smooth Streaming は もっと複雑なファイルフォーマットとサーバーのデザインを利用しています。ビデオはもう数千のファイルに分割されるのではなく、仮想的にファイルの内部で「断���」として分割(普通 ビデオ GOP 当たり1断片)されており、一つの MP4 ファイルに保管されています。これによってサーバーとクライアントにおける二つの大きなデザイン変更に関係しています。

    1. サーバーは URL リクエストを解釈して MP4 ファイル内の正確なバイトオフセットを理解できないといけない
    2. インデックスではなく経過時間などで、より開発者寄りな方法でクライアントはリクエストできないといけない

    Silverlight クライアントが Smooth Streaming サーバーに要求する最初のファイルは *.ismc クライアント マニフェストです。マニフェストはどのコーデックを使って圧縮されたか(Silverlight ランタイムはこの情報を使って正しいデコーダーを初期化し、再生のためのパイプラインを構築します。)、どのビットレートと解像度が存在するか、存在している断片のリストと開始時間あるいは長さを保持しています。

    IIS7 Smooth Streaming では クライアントは RESTful なURL を用いて断片を要求することが期待されています。

    http://video.foo.com/NBA.ism/QualityLevels(400000)/Fragments(video=610275114)
    http://video.foo.com/NBA.ism/QualityLevels(64000)/Fragments(audio=631931065)

    URLで渡されている値はエンコードされたビットレート(例:400000) と協議で決められた時間単位(通常 100 ns)での断片のスタート時間オフセット(例:610275114) です。これらの値はクライアントマニフェストで得るものです。

    このようなリクエストを受け取るにあたって、IIS7 Smooth Streaming コンポーネントは品質レベル(ビットレート)を対応する *.ism サーバーマニフェストで探し、ディスクに存在する実際の*.ismv あるいは *.isma ファイルにマップします。その後、該当の MP4 ファイルを読みにいき、‘tfra’ インデックスボックスの情報に基づいてどの断片ボックス(’moof’ + ‘mdat’) がリクエストの時間オフセットに適合するかを判断します。最後に、見つかった断片ボックスを抽出し、クライアントに単独のファイルとして配信します。これは全体デザインの中で非常に重要なポイントで、このことにより送信された断片/ファイルはネットワークの途中で自動的にキャッシュされるようになり、実際の配信サーバーが同じRESTful な URL を要求してきたクライアントに再度送信する負荷を軽減できます。

    このように、サーバーからビデオ/音声の断片をリクエストするのは簡単です。しかし、アダプティブストリーミングを効果的であるとして根拠である動的なビットレートの切り替えはどうでしょうか? Smooth Streaming 体験のこの部分は完全にクライアント側の Silverlight アプリケーションコードでの実装になります。サーバーはビットレートの切り替えプロセスには携わりません。クライアント側が断片をダウンロードする時間、バッファーの飽和度、レンダリングされたフレームレート、その他の要素を確認し、判断してより高い あるいは より低いビットレートを要求するかを決めるのです。エンコードを行うプロセスで同じソースであればすべてのビットレートのファイルが完全にフレーム単位で同期(同じ長さのGOP、ドロップしたフレームなし)がとれていれば、ビットレート間の切り替え自身は完全にシームレスで、そして Smooth です。


    なかなか正確に訳すのが難しい文なんで、曖昧になってしまっている点があるかもしれません。特に fragment を断片と訳しているのが気持ち悪いのですが、全部 「塊」と置き換えてしまうとわかりやすいかもしれませんね。

    メディア配信も REST なんですねぇ (*^_^*)

    なお、新しく Media というタグを用意したので、Media の投稿だけみたい方は Media を左でクリックしてください。

  • 【IIS7】 IIS7 で実現するメディアストリーミングの世界(その2)

    Alex Zambelli さんのブログ
    http://alexzambelli.com/blog/


    原文:
    The Birth of Smooth Streaming


    (独自翻訳 by 奥主:正確な表現は原文を参照ください。)

    Smooth Streaming の誕生

    前回の投稿ではマルチビットレート ストリーミングの歴史について簡単にふれ、メディア配信のメカニズムが RTSP と HTTP ストリーミングから HTTP ダウンロード方式に回帰しているトレンドについて書きました。この投稿ではアダプティブストリーミングと従来のストリーミング(例:RTSP)、普通のプログレッシブダウンロード の違いをもっと見ていきます。

    従来のストリーミング

    まず従来のストリーミングプロトコルの一例として RTSP を見てみましょう。RTSP はステートフルなプロトコルとして定義されています。これはクライアントがストリーミングサーバーに接続すると切断するまでサーバー側でクライアントの状態情報を保持することを意味します。クライアントは状態をサーバーに PLAY, PAUSE あるいは TEARDOWN コマンドを送信することで知らせます。最初の二つはわかりやすいですね。最後のコマンドはサーバーから切断し、ストリーミングセッションを閉じる時に使います。

    クライアントとサーバーの間のセッションがいったん構築されるとサーバーはメディアを小さなパケットの安定したストリームとして配信を始めます。このパケットの様式は RTP として知られています。一般的な RTP パケットのサイズは1452バイトで、1Mbps でエンコードされたビデオストリームはパケットあたり ビデオ中のおよそ 11 ミリ秒分を含んでいるに過ぎないことになります。RTSP ではパケットは UDP でも TCP でも配信可能です。ファイアウォールやプロキシーがUDPパケットをブロックする環境では後者が推奨されますが、TCPパケットは受信確認がとれるまで再送されますのでこれによってさらなる遅延に繋がることにもなります。

    RTSP is an example of a traditional streaming protocol

    ということで RTSP を従来のストリーミングプロトコルの一例として取り上げました。

    一方でHTTP プロトコルはステートレスなプロトコルです。もしHTTPクライアントがデータをリクエストした場合にはサーバーはデータを返送する動作を当然します。しかし、どのクライアントからのリクエストだったか、あるいはその状態に関しては記憶しません。各 HTTP リクエストは完全に独立したワンタイムのセッションとして取り扱われます。

    Windows Media Services は RTSP と HTTP 双方のストリーミングに対応しています。さて、こうなると今度は「HTTPがステートレスなプロトコルだったら何故ストリーミングで使えるの?」と思うことでしょう。WMS はストリーミング用に改良された HTTP、MS-WMSP を使用し、データの転送には標準のHTTPプロトコルの手順に従いながらセッションの状態も保持するメカニズムになっています。結果として RTSP/TCP プロトコルのような動作をします。Windows Media Services は UDP と TCP の双方で RTSP ストリーミングは 2003年 (WM9 シリーズ) からサポートしています。このプロトコルの実装についての公開ドキュメントは MS-RTSP です。

    RTSP や WMS-HTTP のような従来のストリーミングプロトコルで覚えておくべき重要な点は下記です。

    1. サーバーはデータパケットをリアルタイムのレートでのみクライアントに送ります。つまり、エンコードされたビットレートでの送信のみをするということです。例えば、 500 kbps でエンコードされたビデオはクライアントに約500 kbps でストリーミングされます。
    2. サーバーは先行してクライアントバッファーを埋めるだけのデータパケットを送信します。クライアントバッファーは通常 1~10秒間です。なお、WMP と Silverlight の既定バッファー長は 5 秒です。これの意味するところはビデオをもし一時停止させて 10 分間 待ったとしても、やはり 5 秒分のビデオだけがクライアントにダウンロードされていることになります。

    プログレッシブダウンロード

    現在のWebで流行っているよくあるメディア配信の形態はプログレッシブダウンロードです。プログレッシブダウンロードは単に IIS や Apache のような HTTP Web サーバーからの通常ファイルダウンロードのことです。これは Silverlight, Flash, WMP そして 地球上に存在するそれ以外のほとんどのメディアプレイヤーでサポートされている方式になります。プログレッシブという言葉を使っている経緯としてはほとんどのプレイヤーがダウンロード中でもファイルのプレイバックを許可している点から来ています。ファイルの全体がディスクに書かれる前で、通常ブラウザーのキャッシュ内にある時から再生を始めます。HTTP1.1 標準をサポートするクライアントはまた、まだダウンロードしていないメディアファイル中の位置をバイト範囲リクエストを Web サーバーに行うことでシークすることができます。これはもちろん Webサーバー側が HTTP1.1 に対応しているとクライアントは想定して動作するということです。

    今日 Webで最も人気のあるビデオ共有 Web サイトはほとんどのケースでプログレッシブダウンロードを使用しています。YouTube, Vimeo, MySpace, MSN Soapbox - そして 若干ネーミングが誤解しそうな Silverlight Streaming Service などもそうです。前回の私の投稿でなぜ HTTP ダウンロード形式のメディア配信が流行ってきたかの理由はご覧になってください。

    クライアントに対して一度に10秒分のメディアデータしか送らないストリーミングサーバーと違って、HTTP Webサーバーは ダウンロードが完了するまでデータを流し続けます。これは YouTube サイトでの経験によって多くの人が今は知っているユーザーエクスペリエンスになっているでしょう。YouTube のビデオを開いてすぐに一時停止して待っていると、じきにビデオ全体のブラウザキャッシュへのダウンロードが完了し、途中で問題が発生することなくビデオの全体をスムーズに再生することができるわけです。この動作にはもちろん反対の影響もあります。完全にダウンロードしたたとえば10分間のビデオを再生し、30秒見たところでもう見たくないと思い、再生を止めてしまうと利用者とコンテンツプロバイダーの両方が 9分20秒 分の帯域幅を無駄にしたことになります。この問題を緩和するために IIS7 Media Pack 1.0Bit Rate Throttling という実に便利な機能を含んでおり、提供されています。このモジュールはコンテンツプロバイダー側のメディアデータ ダウンロードのスロットル制御ができることになり、経費削減に繋げることができたりし���す。ただ、それはまた別の話です。。。

    アダプティブストリーミング

    不適切な名称と言えば、もう一つありますね。アダプティブ ストリーミングです。実はですね。。。従来の感覚でのストリーミングでもなんでもないです。

    アダプティブ ストリーミングは 本当のところはハイブリッドな方式です。ストリーミングのように動作しますが、実際には HTTP プログレッシブ ダウンロードです。アダプティブストリーミングのもっと技術的に正確な名前を考えてみると「様々なサイズの分割されたビデオの連続したプログレッシブダウンロード」でしょうか。でもこの名前じゃ凄腕のマーケティング担当者でも売れませんよね。 :)

    アダプティブストリーミングで覚えておくべき大事なポイントとしては、この方式に関しての標準実装が現段階で定まっていないということです。これは単に拡張されたダウンロードの概念でしかなくて、プロトコルの定義ではないからです。故に Microsoft Smooth Streaming と Move Networks Adaptive Stream を 双方で互換性の無いコーデック、書式、暗号化方式を使っているにも関わらず、アダプティブストリーミングの例として取り上げているのです。双方ともにHTTPをデータ配送プロトコルとして利用し、メディアダウンロードを一つの大きなダウンロードとしてではなく、とても細かく分割された単位で多くの回数行われるプログレッシブダウンロードとして実装されているのが共通事項です。

    アダプティブストリーミング の プロトタイプレベルの実装では、ビデオ/オーディオのソースはとても小さい多くの単位に(塊)に分割され、期待される配送フォーマットにエンコードされます。この塊は通常 2~4 秒分の長さにします。ビデオ コーデックのレベルで各単位はビデオの GOP 境界(それぞれの塊の最初にキーフレームが入る)で分割されていることを通常意味し、それぞれの塊はそれ以前、あるいはそれ以降のものと関係がなく完全に独立していることになります。これにより、それぞれの塊で独立してデコードを行うことが可能になるわけです。

    エンコードされたそれぞれの塊は普通の HTTP Webサーバーに置かれてホストされます。クライアントは Web サーバーに順番にリクエストし、HTTP プログレッシブダウンロードを使ってダウンロードします。クライアントにダウンロードしたものが蓄積されるに連れ、順番に再生が行われていきます。ギャップや重複が無いようにエンコードが行われているため、ビデオの再生はシームレスに行われるというわけです。

    このソリューションの「アダプティブ」な部分はビデオ/オーディオのソースが複数のビットレートでエンコードされている時に適用されます。つまり、ビットレート別に2~4秒のビデオを複数の塊で生成しておくことです。クライアントはこれによってどの大きさの塊かを随時選択ができるようになっているわけです。Web サーバーは通常ネットワーク帯域の許す限り、データをできる限り速く配送しようとするので、クライアントはユーザーの使用帯域を予想することができやすく、より大きな塊を要求するか、小さいものにするかを事前に判断ができるようになります。再生/ダウンロードのバッファーは完全にカスタマイズ可能です。

    Adaptive streaming is a hybrid media delivery method

    まとめると、アダプティブストリーミングはハイブリッドなメディア配送手段です。

    他の HTTP 方式の配信方法と同様、アダプティブストリーミングはコンテンツプロバイダーに下記のアドバンテージを提供します。

    • 従来の一般的な HTTP キャッシュやプロキシーをそのまま利用できるので、展開する際により安価です。HTTP キャッシュ/プロキシーのための専用サーバーを設置する必要がありません。
    • ユーザーに近いところでの何かしらの制限や事象に適用しやすいため、より高いスケーラビリティと幅広いリーチを実現します。
    • コンテンツプロバイダーがどのビットレートがお客様に適合するかを推測するのではなくコンテンツや条件に合わせて利用してもらうことができる。

    エンドユーザーにも下記の利点を提供します。

    • 最初に低いビットレートでスタートし、より高いビットレートに移行できることにより、速い起動と短いシークタイムで動作することができます。
    • バッファリングがなく、切断も起こりにくく、再生もスムーズ
      ただし、最低のビットレート条件をユーザーの環境が満たしている場合
    • ネットワークの状態や CPU のキャパシティに応じたビットレートのシームレスなスィッチング
    • とても安定したスムーズな再生体験

    マイクロソフトのアダプティブストリーミング プロトタイプ:NBC Olympics 2008

    私たちは HTTP ベースのアダプティブストリーミングをまず NBC Olympics 2008 プロジェクトでプロトタイピングしました。短い期間で要求された品質レベルを提供するために、最も基本的なアダプティブストリーミングの実装を採用しました。NBC’s Digital Rapids と Anystream エンコーダーに違うビットレート/解像度の複数の WMV ファイルを各ソースに用意してもらいました。新しいエンコーディングのテクニックを全く使わなかった代わりに厳しいエンコーディングのガイドラインに従いました(closed GOP, fixed length GOP, VC-1 entry point headers) 。これにより正確なフレームの順番と接続性を確実にし、ビデオをスムーズに流すようにしました。その後、WMV ファイルは後処理のツールを通し、各WMVファイルを2秒ずつの塊に分割しました。そうした上で Limelight の Web サーバー(Apacheが稼働)にすべてをアップロードし、あとは塊をダウンロードし、順番に再生する Silverlight のプレイヤーを用意しました。以上です!

    よいお知らせ:エンドユーザーにとってこの実装はすごくうまく機能しました。簡単な HTTP ダウンロードで WMS ストリーミングよりも良いストリーミング体験をしてもらえました。

    悪いお知らせ:CDN のオペレーターは数時間 いや 数日をこれらのいっぱいある細かいファイルの管理に追われました。想像してください。もし各 2 秒のビデオがそれぞれファイルになって、これが 5 種類のビットレートに用意されていて、一分あたり 150 ファイル になるとします。90 分のサッカーゲームのデータは 13,500 個のファイルということになります!

    NBC Olympics は Silverlight と HTTP ベースのアダプティブ ストリーミングとしては大成功だったわけですが、このことによって私たちはまたホワイトボードと格闘するところへ話を戻さないといけないということになりました。

    ついに!Smooth Streaming!

    IIS メディアチームはすぐに NBC Olympics アダプティブストリーミングのソリューションを本物のサーバー製品にするアクションを始めました。正式な名称は IIS7 Smooth Streaming といい、IIS7.0の拡張としての開発です。

    IIS メディアチームはコンテンツ作成と配送の部分に関してプロトタイプと比較して、ファイル管理にかかる過剰な手間を軽減しながら元のソリューションのいいところを残すように再設計しました。新しいデザインは塊ごとに一つのファイルを作るアプローチを止め、各エンコードのビットレート毎に一つのファイルを置くアプローチをとりました。この時に採用したファイルのフォーマットは MPEG-4 です。

    Smooth Streaming サーバーは MPEG-4 Part 14 (ISO/IEC 14496-12) ファイルフォーマットを格納と配送のフォーマットして使用します。厳密に言うと、 Smooth Streaming のスペックはそれぞれの塊/GOP を MPEG-4 ムービーの断片(moof)として定義し、ランダムアクセスがしやすいように 連続して MP4 ファイルに格納します。各ビットレートに対して一つの MP4 ファイルを用意することになります。クライアントが特定の再生時間(3秒後から10秒後までなど)を指定してリクエストをしてきた時に動的にムービーの断片をファイルの中から探して、それぞれを独立したファイルとして送信する動きをし、完全にキャッシュ可能にすることを保証しています。

    言い直すと Smooth Streaming ではクライアントのリクエスト時に細かい断片として生成されていくことになりますが、実際のビデオはディスクに全編収録された状態でビットレートごとに一つのファイルとして格納されます。

    Smooth Streaming の今後

    Smooth Streaming サーバーサポートは次のバージョンの IIS7 Media Pack として登場します。これは Windows Server 2008 用の無償ダウンロードになります。既に IIS7 Smooth Streaming サーバーのテクノロジープレビュー は Akamai 社を通じて既に確認が可能です。彼らはこのサービスを Akamai AdaptiveEdge Streaming for Microsoft Silverlight と呼んでいます。このサービスのデモは http://www.smoothhd.com でご覧いただくことができます。

    コンテンツ制作の側としては、Smooth Streaming に対応したビデオの制作は既に Expression Encoder 2 SP1 を使用して可能です。Smooth Streaming エンコーディングサポートは Expression Encoder 2 の完全版の購入が必要です。”Express” と呼ばれるトライアルバージョンには入っていません。Smooth Streaming などのために複数のビットレートでエンコーディングを行う際のヘルパーツールとして、私が作った Smooth Streaming Calculator を推奨しておきます。Expression Encoder を使った Smooth Streaming エンコーディングについては引き続きブログを書きます。

    さらに、エンコーディング関連開発している ISV 数社と プロフェッショナルなエンコーディングを行う製品において Smooth Streaming のサポートいただけるように協業しています。

    Smooth Streaming 再生

    Silverlight 2 が Smooth Streaming ソースの再生をサポートしているのはもうご存じでしょう。もしまだだったら是非 http://www.smoothhd.com へ行ってください。しかし、どうやっているんでしょうか。

    よく信じられていることに反して、Silverlight は実際には特定のアダプティブストリーミングのテクノロジーをネイティブにサポートすることはありません。Microsoft、Netflix、Move Networks などがその例ですが。Silverlight におけるSmooth Streaming サポートは MediaStreamSource API を通じて実装されています。この API は開発者にMediaElement のネイティブトランスポートのメソッドに頼るのではなく、自身のメディア配送メソッドを実装する方法を提供しつつ、Silverlight のネイティブデコーダやレンダラーを使います。言い換えると Silverlight におけるSmooth Streaming サポートは .NET コードで提供されています。MPEG-4 ファイルフォーマットの解釈、HTTP ダウンロード、ビットレート切り替えのメカニズム、などなどがそうです。これにより、開発者はどのお客様のシナリオにも適合してくれることを祈りながら次のSilverlightのリリースを待つ必要はなく、クライアントのアダプティブストリーミングのコードを必要に応じて変更、チューニングすることができます。

    Smooth Streaming Silverlight クライアント開発の最もチャレンジングなところはやはりビットレートをいつ、あるいはどのように切り替えるかを判断している部分のモジュールです。基本的なストリームの切り替え機能はネットワークの状態に合わせて遅滞なくスムーズに切り替えることを要求します。しかし、素晴らしいエクスペリエンスを提供するにはそれでは不足している場合があります。さらに検討しないといけない点としては、下記のような点があります。

    - ユーザー側の帯域は十分にあるが、CPUのパワーが高いビットレートや解像度を処理するに足りない場合にはどう動けばいいのか?
    - ビデオが一時停止した時にどうなるのか、ブラウザーが最小化した時にどう動くべきなのか?
    - 準備されているビデオストリームで最適なものの解像度が実際のスクリーン解像度よりも大きくて帯域を無駄に使ってしまうような場合はどうするか?
    - ダウンロード バッファーのサイズはどのくらいであるべきなのか?
    - 誰が広告などの常に新しく切り替わるメディア資産がシームレスに表示されるのを保証するのか?

    という具合にどんな Web アプリケーション開発者も言うと思いますが、いいプレイヤーを作るということは単にソースのURlをセットすればいいなどというレベルではありません。

    Silverlight に Smooth Streaming サポートを加える上で 一からそのようなコードを書きたくない方は幸運にも二つのオプションが用意されています。

    1. Expression Encoder 2 SP1 テンプレート
      Expression Encoder 2 SP1に入っている Silverlight 2 プレイヤー テンプレートは すでに用意された Smooth Streaming モジュールとともに自由に変更して使える完全なソースコードが付いています。 Smooth Streaming オブジェクト(AdaptiveStreaming.dll) は簡単に Silverlight プロジェクトに統合できます。Expression Encoder の様々なテクニックに関しては James Clarke’s blog をご覧ください。
    2. Open Video Player (OVP)
      Akamai 社がリードしている Open Video Player Initiative はオープンソース コミュニティ プロジェクトで、Silverlight と Flash に最良なプレーヤーを提供しようと検討しています。Open Video Player の Silverlight のバージョンは Smooth Streaming 再生の統合サポートを提供します。そして、これが SmoothHD.com や多くのお客様のところで利用されているプレイヤーでもあります。

    これらのテンプレートはすぐに使える Smooth Streaming 体験を提供しつつ、開発者には引き続き革新的でチューンアップをできる環境を提供します!


    ということなんですが、この元の投稿が出た時から時間が経ってまして、IIS7 Smooth Streaming のベータ版はもう提供を開始していますので IIS Extensions のサイトと Learn サイトの記事をご確認ください。(●^o^●)

    http://www.iis.net/extensions/SmoothStreaming
    http://learn.iis.net/page.aspx/89/serving-media-content/

  • 【IIS7】 IIS7 で実現するメディアストリーミングの世界(その1)

    IIS の開発チームで Windows Media Service ・ IIS Media Pack を担当している Chris Knowlton が彼の下記のブログの中で紹介している Alex Zambelli(米国本社のエバンジェリスト)に連絡をとりました。是非 日本語でブログの内容を翻訳して掲載したいと連絡したところ、快諾を得られましたので何回かに分けて彼の書いているブログ投稿を日本語でお届けします。私も勉強になりました。リンク先は英語のままですが、ご容赦ください。

    Smooth Streaming – What, Why, When, Where, and How

    Alex Zambelli さんのブログ
    http://alexzambelli.com/blog/


    原文:
    A Brief History of Multi-Bitrate Streaming


    (独自翻訳 by 奥主:正確な表現は原文を参照ください。)

    マルチビットレート ストリーミングの簡単な歴史

    私が前回投稿をしてからだいぶ時間が経ってしまいました。多分 Silverlightメディアに関してのマイクロソフトの発表で意義深いものは IBC (Silverlight 3 での H.264/AAC サポートを発表) 以来のものとしては IIS と Expression に関連するものだと思います。Expression エンコーダのチームは Service Pack 1 for Encoder 2 を10月に発表し、2.5と呼んでいいくらい新しい機能を搭載しています。Silverlight 2 テンプレート、デバイス向けの H.264/AAC 簡易エンコーディング、サーバーへの WebDAV 経由の発行、そして最も重要なのは 新しい Smooth Streaming フォーマットでのオンデマンド エンコーディングです。SP1 リリースについては Expression Encoder TeamJames Clarke のブログで確認ください。

    IIS メディアチームはその間、IIS Media Pack 1.0 をリリースしました。IIS7(Windows Server 2008)用の無償ダウンロードで 、IISへメディア機能を追加するものです。この最初のメディアパックのリリースは bitrate throttling web playlists を含みます。しかし、もっとビッグなニュースが飛び込んできたのは 10月 28日 に Digital Hollywood でアナウンスした、Media Services 2.0 for IIS7 は新しい HTTP ベースのアダプティブ ストリーミング テクノロジーである  Smooth Streaming が含まれるというものでした。この新しいテクノロジーをプロモーションするために私たちはショーケース Web サイト - SmoothHD.com – を Akamai Technologies 社とのパートナーシップのもとで構築しました。Akamai 社はさらに Smooth Streaming に基づいた最初のメディア配信サービス - Akamai AdaptiveEdge Streaming for Microsoft Silverlight を提供します。テクノロジーが良ければ良いほど、製品名が長くなりますね。:)

    IIS media extensions についてのさらなる詳細については Chris KnowltonVishal Sood、あるいは John Bocharov の素晴らしいブログを読んでください。

    このように多くのアダプティブストリーミングの話が最近行われていますが、高い確率で迷子になったり、混乱してしまうことも多いと思います。アダプティブ ストリーミングってなんだろう?Smooth Streaming って何だろう? MBR ストリーミングと関係があるんだろうか? Windows Mediaと互換性があるんだろうか?Windows メディアサービスと連動して動くのだろうか? Silverlight でサポートされているんだろうか?Move Networks はこれのどこに当てはまるのか?

    そこで新しいテクノロジーの技術的な詳細に飛び込む前にまず一歩下がってマイクロソフトのマルチビットレート ストリーミング の歴史とどうやって Smooth Streaming にたどり着いたのかを説明しましょう。

    Adaptive Streaming Confusion

    メディアストリームをクライアント側の状態に合わせようとした最初の試みは “stream thinning” と呼ばれ、Microsoft がNetShow Services 3.0 や Windows Media Player 6.1 の一部として 1998 に公開したものでした。”Stream thinning” は自動的に利用可能帯域が下がるようなネットワークの状況を把握し、レスポンスのビデオフレームレートを減少させるものでした。さらに厳しい状況ではビデオの配信を取りやめて音声だけをストリームするように動作できました。

    マルチビットレートスロットリングが最初に形を成したのは1999年で、Windows Media Technologies 4.0 (Windows NT 4.0) と Windows Media Player 6.4の一部としてでした。ASF ファイル書式は一つのファイル内に複数のビデオと音声のトラックを保持することができ、Windows Media ストリーミング プロトコルはブロードキャスト中にストリームを切り替える機能を持っていました。このテクノロジーは一般的に Multiple Bit Rate ASF、あるいは 単にMBR と呼ばれています。

    2002年にマイクロソフトは Windows Media 9 シリーズをリリースしました。Windows Media Services 9 (Windows Server 2003) と Windows Media Player 9 はさらに改善された MBR テクノロジーを提供し、これは Intelligent Streaming と呼ばれました。Intelligent Streaming は帯域の検知、ストリームの減退、MBR ASF と Windows Media プレイヤー中の改善されたイメージ処理の組み合わせたものでした。Intelligent Streaming はもちろんWindows Media Encoder 9などのツールを使ってメディアがMBR ASFファイルとしてエンコードされている必要がありました。

    このテクノロジー自身はよくデザインされたものでしたが、実装そのものは残念ながらいくつかの制限を抱えていました。ストリーミングしかできない(プログレッシブダウンロードができない)上に Windows Media サーバーからのみ配信できました。各種エンコーダは複数のビデオストリームに関連性があるように要求しなかったので、もちろんフレームレベルでの関連性はもちろんなく、ストリーム間での切り替えがシームレスに行なえるようにはなっていなかったのです。メディアがストリーミングで届けられていることとストリーミングのプロトコルが固定のレートで機能するため、正確に利用されるクライアント帯域値を予測することが特にそれをリアルタイムに行なうことは不可能です。ネットワーク状態の悪化が検知されたころにはもう既に遅しという状況になりました - プレイヤーは何度か再バッファリングを試みた後、ようやくビットレートをダウングレードしました。WMP のコードはその潜在能力をフルに発揮することはありませんでした。MBR ストリーミングはこのように要件にうまく適合した人もいれば、不十分だった人もいるという状況です。

    一方で、、、ここ数年間のストリーミングメディア業界においての一つのトレンドは従来のストリーミングプロトコル(RTSP, MMS, RTMP など)から単純なHTTPダウンロードへの回帰です。証拠?YouTubeをご訪問ください。

    なんでなんでしょう?この業界のトレンドにはいくつかの強力な理由があります。

    • Web ダウンロードサービスは CDN やホスティングサービスにおいては通常メディアストリーミングサービスよりも安価で提供されている
    • 一般にUDPソケットを使用し、特殊なポート番号を使用するため、メディアプロトコルを使っているとファイアウォールやルーターを通過できない問題に遭遇することが多い。ポート80を利用するHTTP ベースの配信では通常のWebブラウジングように開いていることがほとんどなのでそのような問題は発生しない。
    • HTTP 配信では特殊なプロキシやキャッシュを必要としない。Web キャッシュメカニズムがあればよい。
    • HTTPデータをネットワークのエッジへ、そしてエンドユーザーに届けるほうが簡単で安い。

    メディア配信を想定してデザインされたストリーミングプロトコルですが、インターネット自身はHTTPをベースに構築され、HTTPの配信に関して最適化されていることがポイントなのです。インターネット全体をストリーミングプロトコルに適用するよりもむしろメディア配信の方法をインターネットに合わせる方向に進んだのは当然の帰結だったのでしょう。

    Move Networks は戦略的な Microsoft Silverlight パートナーですが、機会を活用し、早くに新しいメディア配信サービスを提供しはじめ、adaptive streaming という新しいハイブリッド形式のメディア��トリーミングのパイオニアになりました。彼らは HTTP ベースのメディア配信が大きな規模で実現できることを2008年に繰返し証明してみせました。オンデマンド配信 (ABC, ESPN, Discovery) そして ライブ配信 (Democratic National Convention) 双方でその例があります。 マイクロソフトも NBC Olympics でHTTPベースのアダプティブストリーミングの実装をプロトタイプして同様に証明をしました。

    それではアダプティブストリーミングとは何で、従来のストリーミングと何が違うのか、今後の投稿で解説したいと思います。私の次の投稿にご期待ください。


    独自翻訳(その1)でした。(*^_^*)

  • 【IIS7】 TFセミナー報告(3/16) Webインフラ基本編

    だいぶ時間が経ってしまったのですが、報告をしておこうと思います。

    かなり「基本編」の言葉に合わせにいったつもりだったのですが、どうしても新しいことをしゃべりたがりな体が言うことを聞いてくれなかったので新しいことも結構話してしまいました。

    中身は最終的に下記でお話をしました。

    •IIS7 基礎知識
    •IIS7 の基本的な足回り
    •WSS を使用した情報共有(WSS:Windows SharePoint Services)
    •メディアストリーミング
    •IIS7 で知っておくといいこと
    •まとめ

    アンケート結果を拝見したところ、ストリーミングは興味が無いのでもっと前半をやってほしかったとか、WSSを気合い入れて聞きたかったとか、そんな中、ストリーミングの話は他で聞けないので良かったとか とても幅広いコメントをいただくこととなりました。

    IIS.NETが一番 英語では情報が揃っている状況が続いていることに少し私も業を煮やしまして、結果 日本語の情報提供に少し進展がありそうです。TechNet に IIS TechCenter という日本独自発信のポータルを構築しています。また進捗があり次第 ここの状況はお知らせします。本セミナーの前半に期待が高いのはそういうオンラインの情報が日本語で少ないからだと思っているのでセミナーという形式だけでなく、広く多くの人が参照できる Webページへの情報提供で頑張っているところです。

    さて、セミナー報告の投稿ですので、お話した内容のポイントをおさらいしておきたいと思います。時期が期末で集まっていただけるのが厳しかったので、またリピートでできればやりたいとも思っています。

    ・IIS7基礎知識

    IISとはなんぞやから始まって、Windows Server 2008 の Edition の話、新機能の出荷方法に至るまでお話しました。IIS7を捉える時に大事なのは大きくまずは二つだと思っています。これはモジュール化であり、もう一つはメタベースに代わる新しい構成システムです。この二つをいつもスライドで御説明しました。

    最後に出荷方法に絡めて、IIS Extensionの最新の状況をお伝えしました。

    図1

    ※この投稿の後にMIXでの発表内容の投稿もしますので、この表はあくまでもこのタイミングでの表だと思ってください。3/18の発表でまた状況が大きく変わってます。

    •IIS7 の基本的な足回り

    まずは下記を話しました。Apacheのドキュメントはよくできてます。いきなりまずは動かしたい人(つまりは せっかちな人)向けの手順がちゃんと載っているのですから。Apache に慣れている人向けにこんな表を作ってみたわけです。

    TF_20090316_hirookun

    入手方法、インストール方法、コマンドでインストールする方法、インストール済 コンポーネントを確認する方法、起動、終了、再起動 など基本的なことを説明しました。

    さらに実は IIS でわかりにくいとフィードバックの多い、アプリケーションプール、サイト、アプリケーション、仮想ディレクトリの関係も説明し、Windows のプロセスとの関係なんかも説明しました。

    (クリックすると拡大して見れます。)

    構成物 アプリケーション実行の様子

    IIS の環境設定で実は大事なのは設定をする行為が実は最終的に構成システムを司る各 .config ファイルに設定が保管されることです。また、構成変更のタイミングで構成情報のバックアップをとっておくことが非常に大事となっています。バックアップ・戻しはぜひ下記でやるようにしましょう。

    appcmd add backup “任意”

    appcmd restore backup “任意”

    自動で構成情報の履歴がとられる仕組みもあるので、下記のコマンドでは手動で取得した以外のものも並びます。

    appcmd list backup

     

    この後は、GUI およびコマンドでの Web サイトの作成を説明しました。コマンドは載せておきます。

    –管理者実行でコマンドプロンプトを開く

    –cd c:\windows\system32\inetsrv

    –appcmd add apppool /name:”Site2”

    –md c:\Site2

    –appcmd add site /name:"Site2" /bindings:http/*:8081: /physicalPath:”c:\Site2”

    –appcmd set app “Site2/” –applicationpool:”Site2”

     

    あとは Server Core での構成でした。

    •Windows PowerShell をインストール

    –DISM /online /get-features

    –DISM /online /enable-feature /feature-name:MicrosoftWindowsPowerShell /feature-name:ServerManager-PSH-Cmdlets

     

    •Windows PowerShell を起動して、機能のインストール紹介

    –Import-Module servermanager

    –$module = Get-Module servermanager

    –$module.ExportedCmdlets

    –Add-WindowsFeature

     

    インストールの確認

    •Wfetchツールを利用

    –Server Core でも動きます

    –単独あるいは IIS 6.0 Resource Kit

    •Windows PowerShell を利用

    –$x = New-Object System.Net.WebClient

    –$x.OpenRead(“http://localhost”)

    –$x.ResponseHeaders.GetValues(“Server”)

     

    これらに加えて、ログの設定、Log Parserの紹介、カスタムエラーページ、失敗した要求トレース、RSCA(実行状態表示)の説明をしました。

     

    WSS 以降はまた今度ということで。。。

    実は今回は Live Meeting でビデオを撮影していたので、それを間もなく公開できる予定です。それも案内しますね。

  • 【TFセミナー】 Tech Fielders の集い 2009 東京/春(3/20)報告

    なかなか手が空かなくて書くのがすごーーく遅くなってしまったのですが、とてもうれしい声を参加者の方からいただくことができた素晴らしいイベントにすることができました。まずはご参加いただいた皆様に厚く御礼申し上げます。また、当日来れなかった方も TF セミナーは順次行われていますのでぜひいつかお越しくださいませ。(^-^)

    Tech Fielders 構想は特に 高添、長沢 そして舟越 を中心に組立ててきた MSテクノロジーを扱っていただけている、あるいは興味がある 新しい技術者の「輪」を作り出すこと、そして現場に役立つ情報発信を行うことを大きな目標にまずはサイトを構築するところを実践してきました。そして、セミナー併設のライトニングトークなどですでに多くの社外の方の情報発信、あるいはインタビューなどを通じたテクノロジーを使用いただいた様子やノウハウなどの共有まで進んできました。ただ、本質的にはまだ「輪」を作り出していき、それを Tech Fielders というサイトからの強力な発信というところまではまだ行けていません。

    さて、こんな中、この”集い”企画は 3/20 の新宿セミナールームが私たちのチームで確保できたところから始まります。そして、中心メンバーである高添の一声で実施に向けて歩き始めたのです。どんな内容にしようか、Back To The IT というマネージャーの方向けの試みも続きを考えていますし、Tech Fielders としてどういう情報発信やコミュニケーションを今 しようかということでみんなで悩みました。

    「外の方に情報発信を一緒にしていただく前に、まずは MS 社内の活動を社外の方にお届けしよう、MS 社内の Tech Fielders メンバーがエバンジェリストだけじゃないんだというのをお伝えしよう!」そんな話に成長していきました。

    色々な仕事がある中 時間を やりくりしながら、MCSには安納が、営業SEチームには高添が、サポート部隊には長坂と私が、開発チームには長坂がそれぞれ講師になっていただける方の調整が急ピッチで進められました。

    MS のコンサルティングチームもすごい優秀なコンサルタントがいることを私たちはもちろん知っています(所属していたこともあります。)し、サポート(私はここが長いです。)や開発、そして営業 SE (高添はここ出身)のチームも日々頑張っていることはよく知っています。こんな中、どういう内容であれば参加いただいた皆さんにいつもと違う体験をしていただけるのか、講師の方にも休日に登壇していただいて有意義な時間を過ごしていただけるのか、それを必死にみんなで考え、講師の方にご相談し、準備が進んで行きました。基本線はみんな素の技術者としての一面を出してもらおう、そしていつもやっている仕事の一端を紹介してもらおうということで定まったのでした。

    エバンジェリストが当日、誰一人としてセッションをせず、司会やスタッフになるのは初めてでしたし、いつも Flash ニュースレターでは登場しても セミナーの立会を担当する場合でないとなかなか前面に出ることのない、マーケティングメンバーも本格的な出場という意味では初めての試みでした。

    そうして色々なロジ周りの話が進み、当日に向けての担当割り、準備が着々と行われていったのでした。

    本当に手作り感満載な雰囲気を前日の会場設営でご覧いただきたいと思います。

    DSC_5707DSC_5714DSC_5716DSC_5719

    さあ当日がやってきました! 朝一番はマネージャークラスが勢揃いで若干の緊張感もありつつ、次第にメンバーが順番に揃っていき、本番を待つばかりへとどんどん準備が行われました。

    DSC_5726DSC_5733
    DSC_5746DSC_5744DSC_5755DSC_5757

    長沢の素敵なポートレートを一枚!
    DSC_5770

    開場、セッション開始です!!

    まずは「とてもつなぎの言葉をいつもみたいにしゃべってしまわないようにすごく大変だった」と後日もらしていた高添の司会で本日の段取り紹介。。。

    DSC_5773

    私の 上司の上司 と 上司の登場。。。私たちの PowerPro という取組みと Tech Fielders についてお話をさせていただきました。実はこのパート、途中で長沢と私が話しているんですが、そこは私は写真を当然とれていないのでカット。
    (^-^)

    DSC_5781DSC_5785

    そして MCS セッションの始まりです!

    DSC_5792DSC_5794
    DSC_5801DSC_5805

    いやぁ 待鳥 も 佐々木 も最高に熱かった! 最高でした。
    マイクロソフトのコンサルタントがどういう人たちなのか、どういうマインドで仕事をしているのかというのが素で会場の皆さんに伝わっていたら本当にうれしく思います。私自身はこういう人たちと同じ会社で働けてよかったとすごく思いながら見てました。MS テクノロジー、特に早期導入の時の MCS の価値も伝わったでしょうか? とても人柄が出ていた素晴らしいセッションでした。

    ~休憩時間~ 質問、質問、質問、そして準備で疲れ果てている人も。。。

    DSC_5812DSC_5814
    DSC_5816DSC_5820DSC_5832DSC_5843

    さて午後の部でございます!!

    まずは サポートで 米国へのエスカレーション(Fix の提供依頼を行う)のマネージャーである大高の登場です。
    熱意ある内容で、QFE の説明をホワイトボードでしてくれました。
    DSC_5846DSC_5855
    DSC_5859DSC_5861

    不覚にもダンプを開いて、原因調査の一例をデモしてくれたのですが、私が画面に見入ってしまい、その写真は一枚もなし、、、あらら。

    次は 開発部門で IME を担当している 佐藤 の登場です。MS における開発プロセスや MS におけるテスティングというような私たちでも普段聞けないような話をしてくれました。黒シャツも画面に釘づけです。

    DSC_5863DSC_5868
    DSC_5872DSC_5878

    そして、午後のセッション 第3部は私の元上司、企業様向けサポートの担当者チームの親分の一人、森永の登場です。
    数年前までは一緒にお客様を訪問していたのですが、その時の森永節を生で聞けて実は一番うれしかったのは私だったのかもしれません。ドイツと日本のバグ報告に関する特異性の話などかなりの人が聞き入ってました。
    (森永さん、ありがとうございました!!)

    DSC_5881DSC_5883
    DSC_5884DSC_5885  

    そして、私たちの部門以外からの登壇としては最後になりましたが、御代が登壇してくれました。アンケートを後日見たら、御代のトークの印象がすごく残っている人が多かったようで、話をすることを仕事にしている私たちもすごく勉強になるトークを展開してくれました。直接お客様に営業部隊として接することの苦悩など交えながら、すごく楽しい話をしてくれました。いやぁ 参りました、脱帽です。取材に入ってくれていた幾人かの人も相当パシャパシャしてました。

    DSC_5886DSC_5891
    DSC_5889

    さて、懇親会に入る前に、、、私たちのチームでエバンジェリストではないメンバーがいつもやっているマーケティングの仕事について、普段前に出ないメンバーが前に出てくれました。

    DSC_5892DSC_5898
    DSC_5900DSC_5921
    DSC_5939DSC_5944
    DSC_5947

    あれれ、そのままじゃんけん大会のはずがビデオ撮影していた上司が前に出て行きまして、、、
    まずは松崎と小高が執筆者に名を連ねている SharePoint開発、 VSTO本プレゼントからでございます。

    DSC_5964DSC_5969DSC_5980

    この本をご覧になりたい方は松崎の下記の投稿をにアクセスしてくださいませ。
    http://blogs.msdn.com/tsmatsuz/archive/2009/01/26/info-sharepoint-book.aspx

    「この本は松崎と小高 が。。。部屋にいないし。。。」というオチつきでした。

    そして安納、田辺、長坂の監修していたリソキ です。
    ひょっとして パー が多いか。。。

    DSC_5983DSC_5989
    DSC_5995

    そして今回はデザイナー向け製品部のご協力によりなんと Expression Studio !!
    これも集いならではか。。。激戦でした。

    DSC_5997DSC_5998DSC_6003DSC_6007DSC_6013DSC_6016

    そして終了、終了。。。懇親会へ

    DSC_6019DSC_6023
    DSC_6024DSC_6033
    DSC_6041DSC_6044
    DSC_6046DSC_6047 

    いやぁ 準備から実施まで長かった~~~~
    でもやって良かった。すごく多くのお客様に喜んでいただけました。講師陣に感謝するとともにこれからも気を引き締めて次の「集い」でまた多くの人とお話できることを楽しみにしています。

    今回は特別にいただいたいくつかのコメントも記載しておきます。

    ・日頃のエバンジェリストの方々とは違っていろいろな方々の話を聞けて良かったと思います。体制をよく理解できました。TFが私達と彼等とのよきハブとなってもらって頂きたい、MSさんの顔が見えてきました。情報の敷居を下げる事を楽しみにしています
    ・今回のセミナーも各種勉強会、コミュニティーに参加していない方にとってはPRが足りず知らなかったというケースも多かったのではないかと感じています。次回はさらに参加者の層が厚くなるとより良い意見や見解が出てくるのではないでしょうか
    ・世の流れとのリンクが見えてよかった(どんな位置で活動されているのかが良く分かりました)
    ・技術ではなく人間にフォーカスしたイベントで非常に興味深かったです
    ・技術的な話だけでなくとても面白いセミナーでした、どんなシステムもプログラムも人が作っているという当たり前の事に改めて気付かされるセミナーでした、誰かのために役に立つシステムを作る、そのことにマイクロソフトと私達技術者が共に働くのだ、という思いを強く持ちました
    ・めずらしいイベントですね、ほとんど営業さんとお話する機会がないのでよい機会です

    本イベントに関わっていただいた多くの皆様、しゃべった人も、プレゼント渡した人も、プレゼント受け取った人も、残念ながら何も当たらなかった人も、特別にお越しいただいたプレス各社の皆様も、

    本当にありがとうございました!!
    幸いなことに 次回の要望もありましたので またの機会にお会いできればと思います。

    それでは、それでは。(●^o^●)

  • 【PowerPro】 スキル チャージ プログラム に 「Web サーバー導入 Kit」追加

    ある意味初めて PowerPro メインサイトの企画に本格的に関わったので報告と早めのお知らせです。

    Microsoft スキルチャージ プログラム
    http://www.microsoft.com/japan/powerpro/skillcharge/default.mspx

    書籍「ひと目でわかるIIS7.0」つきの Web サーバー構築 を導入するための一式をインターネットに実際に接続されていることを証明する URL の報告などを条件にご提供します。無いのはインターネットに接続したり、立てるための通信周りだけなのでそれはご自身でご用意いただく必要があります。

    インターネットに接続するためにどういうことをやらないといけないのかという点がはじめての方は難しいと思いましたので「虎の巻」を用意しました。このブログをご覧いただいた方は私の書いたものだとピンとくると思います。

    フォーラムに書き込みが増えるといいなぁと思いつつ、フォーラムのリンクも載せてもらいました。

    台数が無くなってしまう前にご応募いただける方は私のこの投稿を見て速攻で申し込んでください。
    ただ、3/16 からです!!!

    インタビュー云々と書いてありますが、要は私がインタビューにお伺いさせていただきたいということです、ぶっちゃけ。

    「ひと目でわかるIIS7.0」は翻訳本ではないので学習するには本当にいい一冊だと思います。これは私も技術的なご質問を筆者にいただいて、色々な観点で携わった本でもあるので Kit に入れることを私が提案したのでした。。。

    お申し込み お待ちしてます!!!!

  • 【TFセミナー】 3/16 の Web基本編 セミナー

    ご登録いただいた皆様、ありがとうございます!
    順調に参加者の数が増えていてうれしい状況です。まだ登録が可能ですのでご参加の登録、お待ちしています。

    「テクノロジーの今、これからを伝える」専門家集団 Microsoft Tech Fielders

    Tech Fielders セミナー 東京 [マイクロソフト製品で作る Web インフラ 基本編]http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032403036&Culture=ja-JP

    さて、 3/20 の TF イベントにご参加される方がすごく多い(もう満員御礼)ですが、その影で実は 3/16 に初ものを導入しようとしています。私のこのセッションは Office Live Meeting を使ってライブ中継を行う予定です。

    弊社のセミナーは日本ではなかなかまだライブ中継をするセッションは実施できていないんです。そんな中、経済状況などの背景で我々も思っているほど東京以外の場所でセミナーを実施できていない状況でもあり、東京で実施しているセミナーを中継できないかなぁと思っています。

    ということで、、、

    ライブ中継 :
    Tech Fielders セミナー 東京 [マイクロソフト製品で作る Web インフラ 基本編]

    http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032407884&EventCategory=4&culture=ja-JP&CountryCode=JP

    ということで「東京」でやっているのを中継しているだけですので、どちらからでもご参加いただけます!
    でも初めての試みなんで何かトラブルが発生したら本当に申し訳ありません。先に謝っておきます。
    その場合でも資料はご提供しますし、フォローアップでビデオをどこかに公開します。

    こちらにご参加いただく場合には、事前に Live Meeting のクライアントをインストールいただく必要がありますので登録上の説明をよくお読みになってください。30分前から開場するようにしますからこちらで表示しているスライドと流している音楽が聞こえるかを確認しておくと本番もスムーズに接続できます。

  • 【Home】TechNet サブスクリプションで提供開始 & Power Pack 2

    Windows Home Server 担当の林のブログでも取り上げていますが、Windows Home Server のサブスクリプションでの提供が開始されています。すごく要望が多かったのを知っています。ぜひお試しください。

    Power Pack 2 と MSDN、そして OneCare

    TechNet サブスクリプション担当の杉田も相当 米国との調整で苦労していたのですが、林の力添えもあり、3/24 時点で公開が開始されています。

    image

    そして 次の大きな Update である Power Pack 2 に関しても英語版の提供が開始されており、日本語版はちょうどゴールデンウィークのころになっています。GWの仕事を一つ増やして申し訳ないんですが(>_<)、ぜひ適用しましょう!
    Windows Update での提供となりますので、特に適用済み環境をお待ちいただく必要はありませんので Home Server の特徴を気に入っていただいた方はぜひお試しになってください。すごく便利ですよ!

    林からいつも聞いているのですが、Windows Home Server は拡張が可能です。開発者の方にはぜひアドイン開発に手を染めていただきたいと思います。単なる NAS では実現できない可能性がここには広がっています。現在の Windows Home Server は Windows Server 2003 ベースです。ということは、企業開発で培ったノウハウを家庭に持ち込むことができるのです。また、家庭にある環境という意味ではビジネスで考えていたよりも多くの新しいシナリオが増えることになります。

    林がブログで紹介しているここのサイトで色々とどういう開発をみんなしているのかを見れます。
    http://forum.wegotserved.com/index.php?autocom=downloads

    メディアストリーミング関係とか、家の中だからこその電源管理とか、ビジネスでは見られない Home Automation とか開発を試していただきたい領域が本当に多くあります。ぜひアドイン開発にチャレンジください!

    ということで、Tech Fielders でも「輪」を広げていく活動をしていますが、実はすごく熱いユーザーが多い Windows Home Server でも Windows Live Group を使った「輪」ができつつあります。私もこのグループの一員です。林の下記の投稿に従って、われこそはという方はご参加くださいますよう、お願い申し上げます!!

    新しいコミュニティサイトオープン!

    よろしくお願いします。(*^_^*)

  • 【IIS、PHP】インストールマニアックスが世界にはばたく!

    以前 ご紹介しましたインプレス ITさんの インストールマニアックスで続報です。
    http://tedia.jp/installmaniax/2008/

    マイクロソフト本社ツアーが完了し、皆さん無事に帰国なさいました。(*^_^*)

    上記のインストールマニアックスのサイトでレポートも出ているほか、他にも掲載があります。

    同行なさった インプレスIT 田中さんのブログ
    http://d.hatena.ne.jp/hdkworks/

    米国側の担当が書いているブログ
    Japanese LAMP Engineers Visit Redmond
    http://port25.technet.com/archive/2009/03/10/japanese-lamp-engineers-visit-redmond.aspx

    PORT25 はマイクロソフトのオープンソースコミュニティ活動を発信するサイトとして2006年にオープンし、現在すごくアクセスのあるサイトになっています。ここにこのサイトのコンセプトが書いてありますが、No Marketing と断言するなどとても技術者指向のサイトになっており、相互運用関連の情報など結構拾いものな情報がここにはあると思っています。よろしければこれを機会にこのサイト(英語ですけど<(_ _)>)もご愛顧いただけると幸いです。