発行ポイントへの ASF データの送信

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

Windows Media Format SDK を使用して、ASF データを Windows Media サーバー上の発行ポイントにプッシュできます。 その後、サーバーはその発行ポイントからデータをブロードキャストします。 このシナリオは、あるコンピューターでコンテンツをキャプチャまたは再エンコードする場合に、別のコンピューター (または複数のコンピューター) からコンテンツを配布する場合に便利です。 また、プッシュ配布では HTTP プロトコルが使用されるため、ファイアウォール内のコンピューターからファイアウォール外の Windows Media サーバーにコンテンツを移動する必要がある場合にも役立ちます。

Note

発行ポイントは基本的にリダイレクターのように機能します。 クライアントは URL の発行ポイント (たとえば、mms://MyServer/MyPublishingPoint) を指定し、サーバーはこれをコンテンツの要求に変換します。

 

パブリッシュ ポイントにデータをプッシュするには、プッシュ シンク オブジェクトをライター オブジェクトにアタッチします。 プッシュ シンクは、サーバーへの接続を開き、プッシュ セッションを管理するために使用されます。 ライター オブジェクトは、ファイルの作成に関するその他のすべての側面を処理します。

次の手順に従います。

  1. IWMWriter ポインターを返す WMCreateWriter 関数を呼び出してライター オブジェクトを作成します。
  2. IWMWriterPushSink ポインターを返す WMCreateWriterPushSink 関数を呼び出して、プッシュ シンク オブジェクトを作成します。
  3. ネットワーク シンクをライターにアタッチするには、ネットワーク シンクの IWMWriterPushSink インターフェイスへのポインターを使用して、ライターで IWMWriterAdvanced::AddSink を呼び出します。
  4. IWMWriterPushSink::Connect を呼び出してサーバーに接続します。
  5. ストリームを書き込みます。 この手順では、ライター オブジェクトにプロファイルを設定し、ライターにサンプルを送信し、場合によっては他のタスクを送信します。 詳細については、「 ASF ファイルの書き込み」を参照してください。 その他のタスクには、メタデータ属性の設定 (メタデータの 操作に関するページで説明) やストリームでのライブ DRM の設定 ( 「DRM サポートの有効化」で説明) が含まれる場合があります。 これらのタスクは、ASF ファイルの書き込みとまったく同じように実行されます。
  6. 書き込みが完了したら、ライターで IWMWriterAdvanced::RemoveSink を呼び出して、プッシュ シンク オブジェクトをデタッチします。
  7. プッシュ シンクで IWMWriterPushSink::EndSession を呼び出して、サーバーとのセッションを終了します。

これらの手順は、WMVNetWrite サンプル アプリケーションに示されています。

Note

非常に低ビット レートのビデオのみのファイルを送信する場合は、発行ポイントで数秒再生が開始されない可能性があります。 これは、1 つのパケットに多数の小さなビデオ フレームが含まれ、オーディオが含まれない場合や、低ビット レートのビデオ専用ファイル内の最初のパケットと 2 番目のパケットの間に長い時間ギャップがある場合など、さまざまな場合に発生する可能性があります。 この問題を回避するには、ファイルにサイレント オーディオ ストリームを挿入します。

 

認証

サーバーへの認証は、プッシュ シンク オブジェクトによって自動的に処理されます。 ただし、アプリケーションで資格情報を指定する必要がある場合があります。 これは、 次のように IWMCredentialCallback コールバック インターフェイスを介して行われます。

  1. アプリケーションに IWMStatusCallback インターフェイスと IWMCredentialCallback インターフェイスを実装します。
  2. IWMRegisterCallback インターフェイスのプッシュ シンク オブジェクトに対してクエリを実行します。
  3. アプリケーション の IWMStatusCallback インターフェイスへのポインターを使用して IWMRegisterCallback ::Advise を呼び出します。
  4. プッシュ シンクがアプリケーションから資格情報を取得する必要がある場合は、IWMCredentialCallback インターフェイスの IWMStatusCallback ポインターに対してクエリを実行し、IWMCredentialCallback::AcquireCredentials を呼び出します。 この方法の詳細については、「 認証」を参照してください。
  5. 完了したら、 IWMRegisterCallback::Unadvise を呼び出して、プッシュ シンクからのイベント通知の取得を停止します。

ネットワーク経由での ASF データの送信

ライター シンクの操作

ライター プッシュ シンク オブジェクト