(57)【特許請求の範囲】
【請求項１】
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)におけるイベント通知のための方法であって、前記方法は、
ネットワークサーバからクライアントへ、メッセージボックスを、セグメントファイルにおいて送信するステップであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアントからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、送信するステップと、
DASHイベントを取得するためのメディアプレゼンテーションディスクリプション(MPD)をリロードするために、前記クライアントにメッセージハンドリング記述子を送信するステップと、
前記MPDのためのユニバーサルリソースロケータ(URL)を前記クライアントから受信するステップであって、前記URLは、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて構成されている、受信するステップと、
前記MPDを前記クライアントに送信するステップと
を含み、
前記メッセージハンドリング記述子は、前記メッセージングスキームを識別する@schemeIdUri属性を含むMessageHandler要素を含む方法。
【請求項２】
前記メッセージボックスは、
前記メッセージボックスがmessage_idフィールドから暗号化されていることを示すように設定されたis_encryptedフィールドと、
前記メッセージボックスを識別する前記message_idフィールドと、
前記メッセージボックスの暗号化ステートを示すIsEncryptedフィールドと、
初期化ベクトルのサイズを示すIV_sizeフィールドと、
暗号化のために使用される鍵を識別するKIDフィールドと、
前記初期化ベクトルを示すInitializationVector[IV_size]フィールドと、
暗号化されたときの前記メッセージボックスのMD5和を示すmd5sumフィールドと、
スケジューリングされたコールバックのためのタイミング情報を示すntp_timeフィールドと、
前記メッセージボックスにおける前記引数の数を示すargcフィールドと、
前記引数を含むargvフィールドと
を含む1又は2以上のフィールドの組み合わせを含む、請求項1に記載の方法。
【請求項３】
フィールドの前記組み合わせは、
前記メッセージボックスの前記メッセージングスキームを識別するmessage_scheme_URIフィールドと、
前記メッセージングスキームのバージョンを識別するmessage_scheme_versionフィールドと、
所定の識別子(ID)に対するコールバックはキャンセルされることを示すように設定されたis_cancelledフィールドと、
情報をスケジューリングすることを示すスケジュールフィールドと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記スケジュールフィールドは、
前記クライアントから前記ネットワークサーバへの即時のコールバックを示すために0に設定され、
前記クライアントからのコールバックが、前記ntp_timeフィールドに示される所定時刻前に完了するようにスケジューリングされることを示すために1に設定され、又は、
所定時刻が、前記ntp_timeフィールドに示される前記時刻と前記メッセージボックスの現在時刻との和に等しくなる前に、前記クライアントからのコールバックがスケジューリングされることを示すために2に設定される、請求項3に記載の方法。
【請求項５】
もし前記スケジュールフィールドが0と等しくない場合、前記ntp_timeフィールドは、前記メッセージボックスに追加される、請求項3に記載の方法。
【請求項６】
もし前記メッセージボックスが暗号化されていることを前記is_encryptedフィールドが示す場合、前記IsEncryptedフィールドと、前記IV_sizeフィールドと、前記KIDフィールドと、前記InitializationVector[IV_size]フィールドと、前記md5sumフィールドとが、前記メッセージボックスに追加される、請求項2に記載の方法。
【請求項７】
前記MessageHandler要素は、
前記メッセージングスキームのバージョンを識別する@schemeVersion属性と、
前記クライアントからのコールバックURLに対するテンプレートを示す@messageCallbackUrTemplate属性と、
前記メッセージボックスを暗号化するために使用される鍵を取り出すためにURLに対するテンプレートを示す@messageKeyUrlTemplate属性と、
スキーム固有情報を示す@value属性と
を含む1又は2以上の属性をさらに含む、請求項1に記載の方法。
【請求項８】
前記MessageHandler要素における前記@schemeVersion属性の欠如は、前記メッセージングスキームの任意のバージョンが受け入れられることを示す、請求項7に記載の方法。
【請求項９】
前記メッセージハンドリング記述子は、前記クライアントによる前記MPDの前記リロードをトリガするための前記クライアントに既知である所定のユニフォームリソース名(URN)を含む、請求項1に記載の方法。
【請求項１０】
前記MPDは、非同期イベントのためであり、かつ、
前記非同期イベントは、宣伝イベント、緊急通知、停電警告、又はターゲット広告である、請求項1に記載の方法。
【請求項１１】
前記クライアントに、標準化機構(ISO)ベースメディアファイルフォーマット(BMFF)を有する前記DASHイベントの1又は2以上のセグメントを送信するステップをさらに含む、請求項1に記載の方法。
【請求項１２】
前記1又は2以上の引数は、SCTE-35セグメンテーション記述子にマッピングされる、請求項1に記載の方法。
【請求項１３】
前記1又は2以上の引数は、動作又は機能をトリガするURLにマッピングされる、請求項1に記載の方法。
【請求項１４】
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)におけるイベント通知のための方法であって、前記方法は、
ネットワーク構成要素からのセグメントファイルにおいて、メッセージボックスをクライアント端末で受信するステップであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアント端末からのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、受信するステップと、
DASHイベントを取得するためのメディアプレゼンテーションディスクリプション(MPD)をリロードするために、メッセージハンドリング記述子を受信するステップと、
前記メッセージボックスと前記メッセージハンドリング記述子とを用いて、前記MPDのためのユニバーサルリソースロケータ(URL)を構成するステップと、
前記MPDのための前記URLを送信するステップと、
前記DASHイベントのための前記MPDを受信するステップと
を含み、
前記メッセージハンドリング記述子は、前記メッセージングスキームを識別する@schemeIdUri属性を含むMessageHandler要素を含む方法。
【請求項１５】
前記MPDに対応する非同期イベントの1又は2以上のセグメントを受信するステップであって、前記非同期イベントは、宣伝イベント、緊急通知、停電警告、又はターゲット広告である、ステップをさらに含む、請求項14に記載の方法。
【請求項１６】
前記メッセージハンドリング記述子におけるMessageHandler要素の@schemeIdUri属性を、前記メッセージボックスにおけるmessage_scheme_URIフィールドにマッチングすることによって、前記メッセージハンドリング記述子を、前記メッセージボックスにマッチングするステップをさらに含む、請求項14に記載の方法。
【請求項１７】
前記message_scheme_URIフィールドと異なる@schemeIdUri属性を含む少なくとも1つの他のメッセージハンドリング記述子を受信するステップであって、前記他のメッセージハンドリング記述子は、前記メッセージボックスにマッチングされない、ステップをさらに含む、請求項16に記載の方法。
【請求項１８】
前記MPDをリロードする前記URLを構成するために前記メッセージハンドリング記述子に示されるMessageHandler要素のコールバックURLテンプレートを、前記URLにおいて使用するステップであって、前記@messageCallbackUrTemplate属性は、$MessageID$変数と、$KeyID$変数と、$Argv[N]$変数とを含む1又は2以上の変数の組み合わせに基づく、ステップをさらに含む、請求項16に記載の方法。
【請求項１９】
もし、前記$MessageID$変数が前記コールバックURLテンプレートに存在する場合、前記$MessageID$変数を、前記受信されたメッセージボックスにおけるmessage_idフィールドの値に置き換えるステップと、
前記値を前記URLに送信するステップと
をさらに含む、請求項18に記載の方法。
【請求項２０】
もし、前記$KeyID$変数が前記コールバックURLテンプレートに存在する場合、前記$KeyID$変数を、前記受信されたメッセージボックスにおけるKIDフィールドの値に置き換えるステップと、
前記値を前記URLに送信するステップと
をさらに含む、請求項18に記載の方法。
【請求項２１】
もし、前記$KeyID$変数が前記コールバックURLテンプレートに存在する場合、前記$Argv[N]$変数を、前記受信されたメッセージボックスにおける引数の文字列からN番目の引数の値に置き換えるステップであって、Nは整数である、ステップと、
前記値を前記URLに送信するステップと
をさらに含む、請求項18に記載の方法。
【請求項２２】
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)におけるイベント通知をサポートするネットワーク構成要素であって、前記ネットワーク構成要素は、
プロセッサと、
前記プロセッサによって実行するためのプログラムを記憶しているコンピュータ可読記憶媒体と
を備え、前記プログラムは、
クライアントへ、メッセージボックスをセグメントファイルにおいて送信することであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアントからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、送信することと、
DASHイベントを取得するためのメディアプレゼンテーションディスクリプション(MPD)をリロードするために、前記クライアントにメッセージハンドリング記述子を送信することと、
前記MPDのためのユニバーサルリソースロケータ(URL)を前記クライアントから受信することであって、前記URLは、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて構成されている、受信することと、
前記MPDを前記クライアントに送信することと
の命令を含み、
前記メッセージハンドリング記述子は、前記メッセージングスキームを識別する@schemeIdUri属性を含むMessageHandler要素を含む、ネットワーク構成要素。
【請求項２３】
前記メッセージボックスは、
前記メッセージボックスがmessage_idフィールドから暗号化されていることを示すように設定されたis_encryptedフィールドと、
前記メッセージボックスを識別する前記message_idフィールドと、
前記メッセージボックスの暗号化ステートを示すIsEncryptedフィールドと、
初期化ベクトルのサイズを示すIV_sizeフィールドと、
暗号化のために使用される鍵を識別するKIDフィールドと、
前記初期化ベクトルを示すInitializationVector[IV_size]フィールドと、
暗号化されたときの前記メッセージボックスのMD5和を示すmd5sumフィールドと、
スケジューリングされたコールバックのためのタイミング情報を示すntp_timeフィールドと、
前記メッセージボックスにおける前記引数の数を示すargcフィールドと、
前記引数を含むargvフィールドと
を含む1又は2以上のフィールドの組み合わせを含む、請求項22に記載のネットワーク構成要素。
【請求項２４】
前記フィールドの前記組み合わせは、
前記メッセージボックスの前記メッセージングスキームを識別するmessage_scheme_URIフィールドと、
前記メッセージングスキームのバージョンを識別するmessage_scheme_versionフィールドと、
所定の識別子に対するコールバックはキャンセルされることを示すように設定されたis_cancelledフィールドと、
情報をスケジューリングすることを示すスケジュールフィールドと
をさらに含む、請求項23に記載のネットワーク構成要素。
【請求項２５】
前記MessageHandler要素は、
前記メッセージングスキームのバージョンを識別する@schemeVersion属性と、
前記クライアントからのコールバックURLに対するテンプレートを示す@messageCallbackUrTemplate属性と、
前記メッセージボックスを暗号化するために使用される鍵を取り出すためにURLに対するテンプレートを示す@messageKeyUrlTemplate属性と、
スキーム固有情報を示す@value属性と
を含む1又は2以上の属性をさらに含む、請求項22に記載のネットワーク構成要素。
【請求項２６】
前記メッセージハンドリング記述子は、前記クライアントによる前記MPDの前記リロードをトリガするための前記クライアントに既知である所定のユニフォームリソース名(URN)を含む、請求項22に記載のネットワーク構成要素。
【請求項２７】
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)におけるイベント通知をサポートするユーザデバイスであって、前記ユーザデバイスは、
プロセッサと、
前記プロセッサによって実行するためのプログラムを記憶しているコンピュータ可読記憶媒体と
を備え、前記プログラムは、
ネットワーク構成要素から、メッセージボックスをセグメントファイルにおいて受信することであって、前記メッセージボックスは、暗号化のために構成可能であり、前記ユーザデバイスからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、受信することと、
DASHイベントを取得するためのメディアプレゼンテーションディスクリプション(MPD)をリロードするために、メッセージハンドリング記述子を受信することと、
前記メッセージボックスと前記メッセージハンドリング記述子とを用いて、前記MPDのためのユニバーサルリソースロケータ(URL)を構成することと、
前記MPDのための前記URLを送信することと、
前記DASHイベントのための前記MPDを受信することと
の命令を含み、
前記メッセージハンドリング記述子は、前記メッセージングスキームを識別する@schemeIdUri属性を含むMessageHandler要素を含む、ユーザデバイス。
【請求項２８】
前記メッセージボックスは、
前記メッセージボックスがmessage_idフィールドから暗号化されていることを示すように設定されたis_encryptedフィールドと、
前記メッセージボックスを識別する前記message_idフィールドと、
前記メッセージボックスの暗号化ステートを示すIsEncryptedフィールドと、
初期化ベクトルのサイズを示すIV_sizeフィールドと、
暗号化のために使用される鍵を識別するKIDフィールドと、
前記初期化ベクトルを示すInitializationVector[IV_size]フィールドと、
暗号化されたときの前記メッセージボックスのMD5和を示すmd5sumフィールドと、
スケジューリングされたコールバックのためのタイミング情報を示すntp_timeフィールドと、
前記メッセージボックスにおける前記引数の数を示すargcフィールドと、
前記引数を含むargvフィールドと
を含む1又は2以上のフィールドの組み合わせを含む、請求項27に記載のユーザデバイス。
【請求項２９】
前記フィールドの前記組み合わせは、
前記メッセージボックスの前記メッセージングスキームを識別するmessage_scheme_URIフィールドと、
前記メッセージングスキームのバージョンを識別するmessage_scheme_versionフィールドと、
所定の識別子に対するコールバックはキャンセルされることを示すように設定されたis_cancelledフィールドと、
情報をスケジューリングすることを示すスケジュールフィールドと
をさらに含む、請求項28に記載のユーザデバイス。
【請求項３０】
前記MessageHandler要素は、
前記メッセージングスキームのバージョンを識別する@schemeVersion属性と、
前記ユーザデバイスからのコールバックURLに対するテンプレートを示す@messageCallbackUrTemplate属性と、
前記メッセージボックスを暗号化するために使用される鍵を取り出すためにURLに対するテンプレートを示す@messageKeyUrlTemplate属性と、
スキーム固有情報を示す@value属性と
を含む1又は2以上の属性をさらに含む、請求項27に記載のユーザデバイス。
【請求項３１】
前記メッセージハンドリング記述子は、前記ユーザデバイスによる前記MPDの前記リロードをトリガするための前記ユーザデバイスに既知である所定のユニフォームリソース名(URN)を含む、請求項27に記載のユーザデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアストリーミングの分野に関し、特に標準化機構(ISO)ベースメディアファイルフォーマットに基づく適応ストリーミングについてのセキュアな非同期イベント通知のためのシステム及び方法の態様に関する。
【０００２】
本願は、2012年4月5日にAlexander Giladiによって出願された、発明の名称を“System and Method for Secure Asynchronous Event Notification for Adaptive Streaming Based on ISO Base Media File Format”とする米国非仮出願第13/857,907号と、2012年4月5日にAlexander Giladiによって出願された、発明の名称を“System and Method for Secure Asynchronous Event Notification for Adaptive Streaming”とする米国仮出願第61/620,810号との優先権を主張するとともに、参照により、その全体が再現されるようにここに組み込まれる。
【背景技術】
【０００３】
スケジュールされていない、又は予期しないイベント(以下、非同期イベントと称す)は、例えばインターネット又は他のインターネットプロトコル(IP)ベースネットワーク上における、メディアストリーミング又はダウンローディングの場合に発生しうる。非同期イベントは、ライブ放送若しくはライブストリーミングのとき、又は、ビデオオンデマンド(VoD)コンテンツダウンローディングのときに発生しうる。非同期イベントは、例えば宣伝のためのようなデジタル番組掲載のために使用され、かつ、さらに例えば緊急メッセージ及び停電管理のようなアプリケーションのために使用されてもよい。ターゲット広告は、インターネット上及びケーブル/ITテレビ(IPTV)環境の中の両方において、現在のエンターテインメントエコシステムでの収入源である。前記ケーブル/IPTV環境において、ターゲット広告掲載は、(マークアップ(mark-up)を介する)SCTE-35と、(広告サーバ対話(advertisement server interaction)を介する)SCTE-30/130とを介して標準化されており、複数のベンダから入手可能である。
【０００４】
スケジュール変更は、ライブイベントにおいて発生することがある。例えば、フォーミュラワンレースの2011年カナダGP(Grand Prix)のときには激しい暴風雨がサーキットに直撃し、そのレースは、スタートから約30分で中断され、2時間以上の後再スタートされた。そのような状況では、放送局による、例えば宣伝又は他の非同期イベントを挿入するためのスケジュール変更が引き起こる。前記放送局は、予期しない遅延の間又はメイン放送イベントの中止の後に、代替番組(例えば、宣伝)を実行してもよい。別の例においては、サッカー又はホッケー試合が引き分けである場合、その試合は延長戦に突入する。延長戦は、(いくらかの休憩を伴って)数分及び数時間もの間続くことがあり、さらに、スケジュールされたコンテンツは、遅延又は中止されることがある。例えば、宣伝、緊急メッセージ、又は停電警告を挿入するような、そのような状況における非同期イベントを処理するための効率的な適応ストリーミングスキームが必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００５】
一態様において、
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)におけるイベント通知のための方法であって、前記方法は、ネットワークサーバからクライアントへ、メッセージボックスを、セグメントファイルにおいて送信するステップであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアントからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、送信するステップを含む。さらに、前記方法は、DASHイベントを取得するためのメディアプレゼンテーションディスクリプション(MPD)をリロードするために、前記クライアントにメッセージハンドリング記述子を送信するステップと、前記MPDのためのユニバーサルリソースロケータ(URL)を前記クライアントから受信するステップであって、前記URLは、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて構成されている、受信するステップと、前記MPDを前記クライアントに送信するステップとを含む。
【０００６】
別の態様において、DASHにおけるイベント通知のための方法であって、前記方法は、ネットワーク構成要素からのセグメントファイルにおいて、メッセージボックスをクライアント端末で受信するステップであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアントからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、受信するステップを含む。さらに前記方法は、DASHイベントを取得するためのMPDをリロードするために、メッセージハンドリング記述子を受信するステップと、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて、前記MPDのためのURLを構成するステップと、前記MPDのための前記URLを送信するステップと、前記DASHイベントのための前記MPDを受信するステップとを含む。
【０００７】
別の態様において、
DASHにおけるイベント通知をサポートするネットワーク構成要素であって、プロセッサと、前記プロセッサによって実行するためのプログラムを記憶しているコンピュータ可読記憶媒体とを備える。前記プログラムは、クライアントへ、メッセージボックスをセグメントファイルにおいて送信することであって、前記メッセージボックスは、暗号化のために構成可能であり、前記クライアントからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、送信することと、DASHイベントを取得するためのMPDをリロードするために、前記クライアントにメッセージハンドリング記述子を送信することと、前記MPDのためのURLを前記クライアントから受信することであって、前記URLは、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて構成されている、受信することと、前記MPDを前記クライアントに送信することとの命令を含む。
【０００８】
さらに別の態様において、
DASHにおけるイベント通知をサポートするユーザデバイスであって、プロセッサと、前記プロセッサによって実行するためのプログラムを記憶しているコンピュータ可読記憶媒体とを備える。前記プログラムは、ネットワーク構成要素から、メッセージボックスをセグメントファイルにおいて受信することであって、前記メッセージボックスは、暗号化のために構成可能であり、前記ユーザデバイスからのコールバックをスケジューリングし、かつ、前記メッセージボックスのメッセージングスキームに基づく1又は2以上の引数を有する、受信することと、DASHイベントを取得するためのMPDをリロードするために、メッセージハンドリング記述子を受信することと、前記メッセージボックスと前記メッセージハンドリング記述子とを用いて、前記MPDのためのユニバーサルリソースロケータ(URL)を構成することと、前記MPDのための前記URLを送信することと、前記DASHイベントのための前記MPDを受信することとの命令を含む。
【図面の簡単な説明】
【０００９】
本発明と、その利点をより完全に理解するために、添付図面とともに以下の説明を参照されたい。
【図１】DASHアーキテクチャの実施例である。
【図２】DASHを用いた適応ストリーミングに関するセキュアな非同期イベント通知のための実施方法のフローダイアグラムである。
【図３】様々な実施形態を実施するために使用されることが可能な処理システムの概略図である。
【発明を実施するための形態】
【００１０】
本発明の好適な実施形態の構成及び使用が、以下に詳細に説明される。なお、本発明は、多種多様な具体的な状況において実施され得る多くの適用可能な発明概念を提供することが理解されるべきである。説明される特定の実施形態は、本発明の範囲を限定するものではなく、本発明を構成し使用するための単なる特定の方法の例示に過ぎない。
【００１１】
ハイパーテキスト転送プロトコル上のダイナミック適応ストリーミング(DASH)は、MPEG-DASHとしても知られており、従来のハイパーテキスト転送プロトコル(HTTP)ウェブサーバから配信されたインターネット上のメディアコンテンツの高品質ストリーミングを可能にするために開発された。図1は、メディア(例えば、ビデオ、音楽、ゲーム、及びアプリケーション等)を、クライアント(例えば、加入者又は一般ユーザ)にストリーミングするためのDASHアーキテクチャ100の実施例を示している。前記メディアは、ライブ放送イベント若しくは番組、オンデマンドコンテンツ若しくはビデオ、又はその両方を含んでもよい。さらに、前記メディアは、宣伝、緊急メッセージング、停電警告、又はその他のイベントのような非同期イベントを含んでもよい。
【００１２】
前記DASHアーキテクチャ100は、例えば標準化機構(ISO)ベースメディアファイルフォーマット(BMFF)に基づくセグメントファイルの形式でメディアコンテンツを提供する1又は2以上のメディアサーバ110を含む。前記DASHアーキテクチャ100は、例えば、セットトップボックス(STB)、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、又は任意の他のタイプのモバイル/パーソナルデバイスのようなユーザ装置又はデバイスを含む1又は2以上のクライアント120を含む。前記クライアント120は、DASHに基づいて、例えば、インターネット、無線ローカルエリアネットワーク(WLAN)、WiFiネットワーク若しくはホットスポット、セルラーネットワーク、ケーブルインフラストラクチャ、光ファイバ回線若しくはアクセスネットワーク、又はそれらの組み合わせのような、任意のアクセスネットワーク130上で前記サーバ110からメディアコンテンツを受信するように構成される。HTTPを用いてコンテンツを受信するために、前記クライアント120は、まず前記コンテンツを要求する必要がある。
【００１３】
前記DASHアーキテクチャ100において、前記サーバ110におけるオリジナルコンテンツは、異なるレートで、メディアストリーム(例えば、ビデオストリーム)に符号化されてもよい。ビデオ又は他のメディアコンテンツは、アクセスネットワーク130上で、サーバ110からクライアント120に個別に、かつ独立してストリーミングされうる複数のセグメントに分割されてもよい。前記サーバ110はさらに、例えば、ビデオ又はプログラムのセグメントファイルの各グループに対するビデオ/メディアファイルに対応するメディアプレゼンテーションディスクリプション(MPD)を提供する。前記サーバ110はさらに、前記サーバ110又はネットワーク130における前記MPDファイルの位置を示す、前記MPDファイルのためのユニバーサルリソースロケータ(URL)を提供する。
【００１４】
前記MPDは、サーバ110から前記クライアント120へ送信され、かつ、利用可能なコンテンツ(例えば、コンテンツセグメント)のマニフェスト(例えば、リスト)、その様々な代替手段、URLアドレス(例えば、コンテンツセグメント)、及びその他の特徴を記述する。前記MPDは、コンテンツを再生するために、DASHクライアント120によって取得される。前記MPDは、HTTPを用いて、コンテンツサーバ110から、前記クライアント120に配信されてもよい。前記MPDを解析することによって、前記クライアント120は、コンテンツ(例えば、プログラム)タイミングと、コンテンツ若しくはメディア利用可能性と、メディアタイプと、解像度と、最小及び最大帯域幅と、マルチメディア構成要素の様々な符号化された代替手段の存在と、アクセシビリティ機能及び必要なデジタル著作権管理(DRM)と、ネットワーク上のメディアコンポーネント位置と、その他のコンテンツ特徴とについて学習する。例えばオンデマンドビデオ又は放送番組のような前記メディアコンテンツは、別々に転送されうるアドレス指定された複数のセグメントに分割され、それぞれが前記コンテンツのチャンク又は部分を表し、かつ、前記メディアコンテンツは、対応するURLと、MPDに示される持続時間(duration)とを有する。
【００１５】
前記MPDにおける情報を用いて、前記クライアント120は、適切な符号化された代替手段を選択し、かつ、HTTP GET要求を用いてコンテンツのセグメントをフェッチすることによって、前記コンテンツをストリーミングし始める。例えば、前記情報は、前記サーバ110及び/又はネットワーク130における前記ファイル/セグメントの位置を含む。前記クライアント120は、前記MPD情報から、前記クライアント120に対するネットワーク状況に基づくビデオレートを決定してもよい(例えば、適切なダウンロードレートにマッチするいずれのセグメントファイルが取得されるべきかを決定する)。
【００１６】
さらに、前記クライアント120は、周期的に、又はメディアダウンロード又はストリーミングレートを調整する必要があるときに、前記MPDファイルを取得してもよい。非同期イベントを実行するために、前記MPDにおけるマニフェストは、前記クライアント120にリロードされる。コンテンツリロードは、サーバ-サイドイベントハンドリング(例えば、サーバ110が宣伝を挿入する)によって、かつ、前記掲載されたイベントを取得する前記クライアントサイドのセグメントURLを使用することによって、提供されてもよい。DASHは、(前記クライアント-サイドから)ポーリング(polling)することによって前記マニフェストをリロードするために同時に使用されうる前記MPD位置URL及びアップデート頻度を提供する。しかし、前記MPD位置URLをリロードするための前記DASHアプローチは、不必要な遅延又は望ましくはない頻繁なリロードの試みを発生させる。前記DASHは、ISOファイルフォーマットラベル“lseg”を定義し、セグメントファイルにおける“styp”ボックスの中に存在するとき、前記MPDのピリオドの最後のセグメントを識別する。前記“styp”ボックスは、サーバ110からクライアント120に送信されるセグメントファイルの中のコード(例えば、シンタックス(syntax))であってもよい。前記MPDは、複数のピリオドを含み、1ピリオドは、プログラム、又は時間軸に沿ったコンテンツインターバルである。それぞれのピリオドは、開始時間と持続時間(duration)とを含む。例えば、1宣伝セグメント又は複数の宣伝セグメントは、1ピリオド又はそれ以上のピリオドとして挿入されてもよい。検出されたとき、前記ピリオドは、事実上終了し、かつ、次のピリオドが開始してもよい。もし追加のピリオドが存在しない場合、ついで、MPDリロード又はアップデートがトリガされる。
【００１７】
このDASHアプローチは、いくつかの目的に対しては十分である一方で、いくつかの問題を有する。一つ目の問題は、前記MPD URLが変化しないことが原因で、MPDが常に同一のURL(同一の位置)からフェッチされるということである。さらに、“lseg”によって指定される任意のイベントは、即時であり、2つの第2セグメント(two-second segments)と予期されたスケジュール変更とを有することを意味している。そのようなイベントに対しては、クライアントが、アナウンスを聞くことが可能となるために、前記MPDを更新するまで2秒である。これは、(そのような高い周波数のために)要求の氾濫(flood)を生成し、遅延又はネットワーク混雑を引き起こしうる。別の問題は、可能なイベント(例えば、宣伝、スケジュール変更、停電、緊急警告、又はその他)の2以上のタイプが存在しうることである。例えば宣伝及び緊急メッセージのような、前もって知られているイベントを処理することは、追加のMPDリロードを必要としてもよい。さらに別の問題は、個人向けコンテンツの場合、クライアント-固有MPDが、スケーラビリティを制限することである。さらに、上記のDASHアプローチは、クライアント120に対して、同時に複数のイベントをストリーミングし又はダウンロードすることを許可しない。
【００１８】
Micorsoft TMによるDASHベースDECE CSF提案は、メッセージボックス‘mesg’を前記セグメントファイルに(例えば、前記セグメントの初めに)追加することによってこれら上記のいくつかの問題に対処している。前記‘mesg’ボックスは、固有(unique)なメッセージスキーム(又は構造)とメッセージID(identification)を有する。前記クライアントにおける’mesg’ボックスの解釈は、前記MPDが古くなり、従って、新たなURLを用いて前記MPDをリロード又はアップデートすることを実現させるために、前記クライアントをトリガしてもよい。前記提案はさらに、強制的にMPDリロードをさせ、かつ、さらに追加の新たなMPD URLを提供する追加のスキームを加える。しかし、この提案は、幾つかの問題を有してもいる。まず、メッセージタイミングと、例えば、クライアントがメッセージスキームを知っている場合を除いて前記クライアントがメッセージを処理できないような未定義の処理(handling)とを残している。これは、クライアントがコンテンツを再生することができるが、例えば、前記コンテンツを有する緊急メッセージを表示することができないという可能性を発生させる。第二の問題は、異なるエンティティによって挿入された複数のイベントを区別することが困難であるということである。さらに、このアプローチにおいては、前記MPD URLアップデートメッセージは、有効なURLを悪意のあるURLに置き換えることによるシンプルな攻撃を認めてしまっている。
【００１９】
システム及び方法の実施形態は、DASHを用いた適応ストリーミングに対して提供される。前記実施形態は、適応ストリーミングにおける非同期イベントハンドリングフレームワークを提供する。前記実施形態は、ユニフォームの暗号化と、スケジューリングと、引数インターフェースとを追加することによって、前記メッセージボックス‘mesg’の構文(syntax)を拡張することを含む。メッセージタイプ及びスキームの明示的なクライアント知識なしで、リッチ表象状態転送(rich representational state transfer(REST))アプリケーションプログラミングインターフェース(APIs)の実施を認める付加的なMPD機能性が追加される。これは、前記クライアントは、動作としてサーバ-サイドに解釈されうるURLを構成するために、‘mesg’ボックスの中の情報を使用できるということを意味している。前記メッセージボックスを拡張し、かつ、このMPD機能性を追加することは、DASH MPD及びISO BMFFで汎用非同期ストリームイベントハンドリングを可能にする。ISO BMFFは現在、そのような機能性を有していない。これらの特徴はさらに、イベントハンドリング構造と、DASHクライアントによって再生されるコンテンツを強制的に変更するための機能性とに対する一般的な攻撃からのセキュリティ及び保護を追加している。前記追加された機能性は、例えば、ケーブル/IPTV/通信システム、コンテンツ配信ネットワーク(CDN)、DASHシステム、又はその他の適切なシステムにおいて、宣伝挿入、ターゲット広告、緊急メッセージ、停電対処、及び/又はその他のイベントを実施するために使用されてもよい。
【００２０】
一実施形態において、汎用イベント通知メッセージの構造は、以下のようにメッセージボックスに対するISOファイルフォーマットを拡張することによって構成される。
【００２１】
Box Type:  ‘mesg’
Container: ‘tfdt’
Mandatory:  No
Quantity:   0以上
シンタックス
aligned(8) class MessageBox
extends FullBox('mesg', version = 0, flags = 0)
{
string            message_scheme_URI;
unsigned int(16)  message_scheme_version;
unsigned int(1)   is_encrypted;
unsigned int(1)   is_cancelled;
unsigned int(3)   schedule;
unsigned int(11)  reserved;
if ( is_encrypted == 0x01 )
{
unsigned int(24)            IsEncrypted;
unsigned int(8)          IV_size;
unsigned int(8)[16] KID;
unsigned int(8)     IV[IV_size];
unsigned int(8)[16]   md5sum;
}
unsigned int(8)[16] message_id;
// 暗号化はここから開始してもよい
if ( schedule != 0x00 )
{
unsigned int(64) ntp_time;
}
unsigned int(8)      argc;  
string argv[argc];   
}
【００２２】
上述の前記拡張された‘mesg’ボックスは、以下のパラメータ又はフィールドを含む。
message_scheme_URI:これは、前記メッセージボックスのためのメッセージングスキーム又は構造の固有の識別子である。この識別子は、以下に説明されるように前記メッセージボックスのための正確なメッセージハンドラを見出すために使用される。
message_scheme_version:このフィールド又はパラメータは、上記スキームのバージョンである。
is_encrypted:もしこのフィールドが1に設定されている場合、メッセージ情報が、message_idフィールドからを始まりとして暗号化される。
is_cancelled:このフィールドは、所定のメッセージ識別子(message_id)を有する(クライアントからサーバ/ネットワークへの)メッセージコールバックがキャンセルされることを示す。もしmessage_idを有するアクティブメッセージが存在しない場合、前記コールバックメッセージ情報は破棄される。前記コールバックが完了するまで、コールバックメッセージはアクティブとみなされる。
schedule:このフィールドは、以下の表1に示されるように構成可能なスケジューリング情報を示す。
message_id:これは、所定のメッセージボックスの固有の識別子である。
IsEncrypted:このフィールドは、例えばISO/IEC 23001-7に定義されるような、暗号化ステートを示す。
IV_size:このフィールドは、例えばISO/IEC 23001-7に定義されるような初期化ベクトルサイズである。
KID:これは、前記メッセージボックスの暗号化のために使用される鍵の識別子である。
InitializationVector[IV_size]:これは、初期化ベクトルである。
md5sum:このフィールドは、暗号化されたメッセージのMD5和を示す。復号化されたメッセージの正しさを保証するために必要とされうる。
ntp_time:これは、表1に示されるように、スケジューリングされたメッセージコールバックのためのコールバックタイミングを示し、前記スケジュールフィールドに基づいて使用される。
【００２３】
【表１】
0005974392.tif 000002
argc:これは、引数の数である。
argv:このフィールドは、前記メッセージボックスに追加される引数を含み、スキーム-固有であってよい。
【００２４】
さらに、MessageHandler要素が構成され、かつ、前記クライアントにおいて上記‘mesg’ボックスを適切に処理するために使用される。前記’mesg’ボックスを処理することは、暗号化された‘mesg’ボックスをさらに復号化すること含んでおり、かつ追加的に、‘mesg’ボックスに提供されていない特定のメッセージスキーム情報を示している。前記MessageHandler要素は、複数の属性を含み、かつ、前記クライアント/ネットワークから前記クライアントへ(以下に示される記述子において)送信され、かつ、前記‘mesg’ボックスとともに前記クライアントによって処理され、(前記イベントに基づいて)適切なMPD URLを生成する。MessageHandler要素を含む記述子を処理し、かつサーバからクライアントへ送信される2以上のメッセージが存在してもよい。前記クライアントにおいて受信される‘mesg’ボックスのための正確な記述子は、前記メッセージハンドラの@schemeIdUri属性の値を、前記‘mesg’ボックスにおけるmessage_scheme_URIフィールドの値とマッチングすることによって見出される。表2は、MessageHandler要素において使用される属性を示している。
【００２５】
【表２】
0005974392.tif 000003
【００２６】
前記メッセージハンドラの@messageCallbackUrTemplate属性は、$MessageID$、$KeyID$、及び$Argv[N]$のテンプレート変数の少なくとも一つに基づいてもよく(前記メッセージハンドリング記述子において)、クライアントで前記MPDをリロードし、又はアップデートするMPD URLを構成するために、クライアントによって使用されてもよい。前記テンプレート変数は、表３に説明されるように、‘mesg’ボックスにおけるフィールドから、(前記クライアントで)割り当てられた値であってよい。
【００２７】
【表３】
0005974392.tif 000004
【００２８】
一実施形態において、DASHクライアントによって再生されるコンテンツの強制的に変更するために、以下のユニフォームリソース名(URN):“urn:mpeg:dash:mpdupdate”で、MessageHandler要素又は記述子において(例えば、メッセージにおいて)、前記クライアントへのサーバ又はネットワークによって定義されたMPDアップデート又はリロードが使用されている。対応する(‘mesg’ボックスを処理するための)MessageHandler要素は、@messageCallbackUrTemplate属性を含むが、@value属性を含まない。messageCallbackUrTemplate属性から構成されたURLに対するHTTP GET要求は、有効なMPDを返送する。ISO/IEC 23009-1 sec. 5.4と同様のルールは、このURLを介したMPDアップデートを採用する。
【００２９】
例えば、強制的なMPDアップデートを規定するために、‘mesg’ボックスのコンテンツは、以下を含む。
mesg.message_scheme_URI = “urn:mpeg:dash:mpdupdate”
mesg.message_scheme_version = 0;
mesg.is_encrypted = 0;
mesg.is_signed = 0;
mesg.schedule = 0;
クライアントへのメッセージハンドラを示す対応する記述子のコンテンツは、<MessageHandler schemeIdUri=“urn:mpeg:dash:mpdupdate” messageCallbackUrTemplate =https://cdn1.example.com/mpd/$MessageID$ />. を含む。前記クライアントは、‘mesg’ボックスからの値を、テンプレート変数に割り当てた後に、MPD URLを生成するために示されたテンプレートを使用する。前記生成されたMPD URLは、前記MPDをフェッチするために使用される。例えば、結果として生じるURLは、https://cdn1.example.com/mpd/184834bc76a04825bb57d6bc0e1d35d3である。
【００３０】
一実施形態において、‘mesg’ボックスにおける引数は、以下のように、SCTE-35セグメンテーション記述子にマッピングされてよい。
mesg.arg[0] = <segmentation descriptor id> 
mesg.arg[1] = segmentation_event_id; 
mesg.arg[2] = segmentation_type_id;
mesg.arg[3] = segment_num;
mesg.arg[4] = segments_expected;
mesg.arg[5] = segmentation_upid_type,  segmentation_upid(); 
mesg.arg[6] = segmentation_duration; (if not present)
【００３１】
別の実施形態において、以下のように、‘mesg’ボックスにおける引数とメッセージ記述子との間においてより簡易な(かつ、おそらく効率が低い)マッピングが規定されてもよい。
mesg.arg[0] 
=https://cdn1.example.com/mpd/segmentation?event_id=0x12345678&type_id=0x10& [...]、 @messageCallbackUrlTemplateは、変数“$Arg[0]$を含む。このような場合には、悪意を持って構成されたURL又はHTTPクエリをもたらしうる攻撃(例えば、中間者攻撃)を防ぐために、メッセージ暗号化が推奨される。
【００３２】
図2は、DASHを用いた適応ストリーミングに関するセキュアな非同期イベント通知のための一実施方法200を示している。ステップ201において、サーバ又はネットワーク210は、クライアント220に、拡張された‘mesg’ボックスを送信する。前記拡張された‘mesg’ボックスは、暗号化されてもよく、かつ、上述したような1又は2以上の引数を含むフィールドを含む。ステップ202において、サーバ又はネットワーク210は、前記クライアント220に、MessageHandler要素とともに記述子を送信する。前記MessageHandler要素は、リロードMPDのために前記クライアント220をトリガしてもよく、かつ、上述したような前記MPD URLを構成するための変数を示す。前記サーバ/ネットワーク210は、例えば異なるメッセージングスキームのために、複数のMessageHandler要素を送信してもよい。ステップ203において、前記クライアント220は、前記MPD URLを適切に構成するためにメッセージハンドラ記述子に示される属性及び変数(表2及び表3のような)を使用して、‘mesg’ボックスを処理する。前記クライアント220は、前記MessageHandler要素における@schemeIdUriと、’mesg’ボックスにおけるmessage_scheme_URIフィールドとを用いて前記MessageHandler要素を‘mesg’ボックスにマッチングする。ステップ204において、前記クライアント220は、前記MPD URLを使用して、サーバ又はネットワークからの新たなMPD(非同期イベントのために)を要求する。ステップ205において、前記クライアント220は、非同期イベントのための前記MPDを受信する。ステップ206において、前記クライアントは、(例えば、前記MPDにおける、前記URLとその他のタイミング及びレート情報とを用いて)前記MPDに示されるようなセグメントを要求する。ステップ207において、前記クライアント220は、非同期イベントセグメントを受信する。
【００３３】
図3は、様々な実施形態を実施するために使用されうる処理システム300の概略図である。特定のデバイスは、示される全ての構成要素を利用してもよく、又は一部の構成要素のみを利用してもよく、統合のレベルは、デバイスごとに異なってもよい。さらに、デバイスは、例えば、多重処理ユニット、プロセッサ、メモリ、トランスミッタ、レシーバ等のような構成要素の複数のインスタンスを含んでもよい。前記処理システム300は、例えば、ネットワークインターフェース、ストレージインターフェース等のような1又は2以上の入力/出力デバイスを備えた処理ユニット301を備えてもよい。前記処理ユニット301は、中央処理装置(CPU)310、メモリ320、マスストレージデバイス330、及びバスに接続されたI/Oインターフェース360を備えてもよい。前記バスは、メモリバス若しくはメモリコンテナ、又は周辺機器用バス等を備えるいくつかのバスアーキテクチャの1又は2以上の任意のタイプであってもよい。
【００３４】
前記CPU310は、任意のタイプの電子データプロセッサを備えてもよい。前記メモリ320は、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、読み出し専用メモリ(ROM)、又はそれらの組み合わせ等のような、任意のタイプのシステムメモリを備えてもよい。一実施形態において、前記メモリ320は、boot-upでの使用のためのROMと、プログラムを実行するときに使用するためのプログラム及びデータストレージのためのDRAMとを備えてもよい。実施形態において、メモリ320は、非一時的である。前記マスストレージデバイス330は、データ、プログラム、及びその他の情報を記憶し、かつデータ、プログラム、及びその他の情報を、バスを介してアクセス可能にするように構成された任意のタイプの記憶デバイスを備えてもよい。前記マスストレージデバイス330は、例えば、半導体ドライブ、ハードディスクドライブ、磁気ディスクドライブ、又は光ディスクドライブ等の1又は2以上を備えてもよい。
【００３５】
前記処理ユニット301はまた、例えばイーサネット（登録商標）ケーブル等のような有線リンク、及び/又は、ノード又は1若しくは2以上のネットワーク380にアクセスするための無線リンクを備えうる1又は2以上のネットワークインターフェース350を備えてもよい。前記ネットワークインターフェース350は、前記処理ユニット301がネットワーク380を介してリモートユニットと通信することを許可している。例えば、ネットワークインターフェース350は、1又は2以上のトランスミッタ/送信アンテナと1又は2以上のレシーバ/受信アンテナとを介した無線通信を提供してもよい。一実施形態において、前記処理ユニット301は、例えば、他の処理ユニット、インターネット、又はリモートストレージ装置等のようなデータ処理及びリモートデバイスとの通信のためにローカルエリアネットワーク又は広域ネットワークに接続される。
【００３６】
本発明は、例示的な実施形態を参照して説明したが、この説明は限定的な意味に解釈されることを意図されない。様々な修正および例示的な実施形態の組み合わせることは、本発明の他の実施形態と同様に、説明を参照すれば当業者には明らかとなる。したがって、添付の特許請求の範囲が任意のそのような修正または実施形態を網羅していることは意図される。
【符号の説明】
【００３７】
１００  DASHアーキテクチャ
１１０  メッセージサーバ
１２０  クライアント
１３０  アクセスネットワーク
２００  セキュアな非同期イベント通知方法
２１０  サーバ／ネットワーク
２２０  クライアント
３００  処理システム
３０１  処理ユニット
３１０  ＣＰＵ
３２０  メモリ
３３０  マスストレージ
３５０  ネットワークインターフェース
３６０  Ｉ／Ｏインターフェース
３８０  ネットワーク
【図１】
0005974392.tif 000005
【図２】
0005974392.tif 000006
【図３】
0005974392.tif 000007