本発明の実施形態について、図面を参照しながら説明する。本実施形態において、コンテンツ配信装置20は、インターネット等の通信ネットワークを介して、動画のコンテンツを、端末10(クライアント)に対して配信する。また、コンテンツ配信装置20は、必要時に、イベント用メタデータを、端末10に対して配信する。イベント用メタデータは、タイミングに関連付けられたイベントとして扱うことができ、「タイムドイベント」と呼ばれる場合がある。タイムドイベントは、通信ネットワークを介して、端末10に対して伝達される。「タイムドイベント」のデータの実体が、時刻のデータを含んでいてもよいし、含んでいなくてもよい。タイムドイベントのデータが時刻のデータを含んでいない場合であっても、そのメタデータが送信される時刻が、そのイベントに関連する時刻を表す場合がある。本実施形態において、通信ネットワークを介して配信されるタイムドイベントは、MTE(メディアタイムドイベント)と呼ばれる。以下では、動画コンテンツの配信中にメディアタイムドイベントを挿入する場合を説明する。
メディアタイムドイベントを挿入する方法として、2種類の方法を挙げられる。第1の方法は、MPEG―DASHのMPDに代表されるようなマニュフェストファイルにイベントを記述するアウトオブバンド手法である。第2の方法は、MP4のような動画のセグメントファイルにイベントを記述するインバンド手法がある。
動画コンテンツの配信の、基本的な処理の流れは、次の通りである。第1段階として、ユーザーが使用する端末10が、視聴プレイヤーなどの機能により、動画コンテンツのリクエストをコンテンツ配信装置20(配信サーバー)に送る。第2段階として、コンテンツ配信装置20は、リクエストされた動画コンテンツを、コンテンツデータ管理装置30(コンテンツサーバー)にリクエストする。第3段階として、コンテンツデータ管理装置30は、レスポンスとして、リクエストされたコンテンツを、コンテンツ配信装置20に渡す。第4段階として、コンテンツ配信装置20は、第1段階でリクエストされたコンテンツを、ユーザーの端末10へのレスポンスとして、送信する。
動画配信がライブ配信である場合には、メディアタイムドイベントの挿入方法がインバンド手法であっても、リアルタイムにセグメントが順次生成され、端末10に対しては最新のセグメントが送信される。したがって、配信サーバーでは、動画セグメントは、実時間に対応したファイルとして管理される。ライブ配信においてメディアタイムドイベントを挿入したい場合には、直近のセグメント内への挿入を行うことによって、所望のタイミングでのメディアタイムドイベントの挿入を行うことができる。一方で、ビデオオンデマンド配信である場合には、該当するコンテンツデータのセグメントファイルが、コンテンツデータ管理装置30上、またはコンテンツ配信装置20上に、既に存在している。端末10は、通信回線の速度に応じた速度で、それらのセグメントファイルをダウンロードすることが可能である。ライブ配信の場合と同様のタイミングでコンテンツデータにメディアタイムドイベントを挿入しようとしても、既に端末10へのダウンロードが完了しているファイルに対してメディアタイムドイベントを挿入することはできない。つまり、ビデオオンデマンド配信でメディアタイムドイベントを挿入したい場合には、ビデオオンデマンド配信に応じた方法で挿入のタイミング(位置)を制御する必要がある。
図1は、本実施形態に係るコンテンツ配信システムの構成の一例を示すブロック図である。図1に示すように、コンテンツ配信システム1は、端末10と、コンテンツ配信装置20と、コンテンツデータ管理装置30と、イベントデータ生成装置40と、イベント用メタデータ生成装置50とを備える。端末10、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40及びイベント用メタデータ生成装置50は、いずれもネットワークNWに接続されている。ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等を含む。
端末10は、例えば、スマートフォンや、タブレット型端末や、ウェアラブル端末や、パーソナルコンピューター(PC)や、コンテンツ受信用のスティック型端末や、その他の情報機器である。端末10は、ビデオオンデマンドに供されるコンテンツを視聴するために使用される。図1に示すように、端末10は、要求データ送信部11と、コンテンツデータ受信部12と、判定部13と、挿入有無データ生成部14と、挿入有無データ送信部15とを備える。
コンテンツ配信装置20は、例えば、サーバー型コンピューターを用いて実現される。コンテンツ配信装置20は、端末10にコンテンツデータを配信するために使用される。図1に示すように、コンテンツ配信装置20は、要求データ受信部21と、コンテンツデータ取得部22と、送信時間調整部23と、挿入タイミング決定部24と、コンテンツデータ配信部25と、挿入有無データ受信部26とを備える。
コンテンツデータ管理装置30は、コンテンツデータを管理し、保持する。コンテンツデータ管理装置30は、例えば、サーバー型コンピューター等を用いて実現される。それぞれのコンテンツデータは、例えばコンテンツIDといった情報によって識別可能なように管理される。コンテンツデータ管理装置30は、コンテンツ配信装置20からのコンテンツIDを伴う要求を受信する。コンテンツデータ管理装置30は、要求されたコンテンツデータを記憶手段(例えば、ハードディスク装置等)から読み出し、要求元のコンテンツ配信装置20に送信する。コンテンツデータ管理装置30が提供するコンテンツデータは、例えば、マニュフェストファイルと、セグメントファイル(MP4形式、M4S形式等)とで構成される。
イベントデータ生成装置40は、イベントデータを生成する装置である。イベントデータ生成装置40は、例えば、コンピューターを用いて実現される。イベントデータ生成装置40は、生成したイベントデータを、イベント用メタデータ生成装置50に渡す。
イベント用メタデータ生成装置50は、イベント用メタデータを生成し、コンテンツ配信装置20に渡す。イベント用メタデータの例は、前述の通り、メディアタイムドイベントである。具体的には、イベント用メタデータ生成装置50は、イベントデータ生成装置40から、イベントデータを受け取る。イベント用メタデータ生成装置50は、受け取ったイベントデータを用いて、メディアタイムドイベントのデータを生成する。イベント用メタデータ生成装置50は、生成したメディアタイムドイベントのデータを、コンテンツ配信装置20に送信する。イベント用メタデータ生成装置50は、メディアタイムドイベントをコンテンツ配信装置20に渡す際に、当該イベントを挿入すべきタイミングの情報(日付および時刻)を指定する。
以下の説明では、ビデオオンデマンドに供されるコンテンツが動画である場合を例に挙げて説明する。ただし、当該コンテンツは、動画以外のコンテンツ、例えば、音声であってもよい。
要求データ送信部11は、ビデオオンデマンドに供されるコンテンツデータの配信を要求する要求データをコンテンツ配信装置20に送信する。要求データにより要求されるコンテンツデータは、例えば、端末10に搭載されているタッチパネルディスプレイが操作されることにより選択される。
コンテンツデータ受信部12は、コンテンツ配信装置20から送信されるデータを受信する。コンテンツデータ受信部12がコンテンツ配信装置20から受信するデータは、コンテンツのデータである。コンテンツデータ受信部12は、コンテンツデータの、マニュフェストファイルや、セグメントファイル(セグメントファイルのフラグメント)を受信する。フラグメントについては、後述する。コンテンツデータ受信部12が受信するデータには、メディアタイムドイベントが付加されている場合がある。
判定部13は、コンテンツデータ受信部12が受信したデータについての判定を行う。判定部13は、受信されたデータが、コンテンツのフラグメントであるか否かを判定する。また、判定部13は、受信されたデータが、メディアタイムドイベントを含むものであるか否かを判定する。前述の通り、メディアタイムドイベントは、コンテンツのデータに付加されている場合がある。具体的には、メディアタイムドイベントは、マニュフェストファイル内に記述されていたり、セグメントファイル内に記述されていたりする。また、判定部13は、コンテンツ配信装置20から受信したコンテンツデータに挿入されていたタイムドイベントに応じた処理を実行したか否かを判定する。
挿入有無データ生成部14は、挿入有無データ(フラグ)を生成する。挿入有無データは、コンテンツデータ受信部12が受信したデータに、メディアタイムドイベントが挿入されていたか否かを示すデータである。なお、挿入有無データを、コンテンツデータ受信部12が受信したデータにメディアタイムドイベントが挿入されていて、且つ、端末10がそのメディアタイムドイベントに対応する処理を適切に完了した、か否かを示すデータとしてもよい。また、コンテンツデータ受信部12が受信したデータに、メディアタイムドイベントが挿入されていた場合にのみ、挿入有無データ生成部14が、挿入有無データを生成するようにしてもよい。また、コンテンツデータ受信部12が受信したデータに、メディアタイムドイベントが挿入されていて、且つ、端末10がそのメディアタイムドイベントに対応する処理を適切に完了した、場合にのみ、挿入有無データ生成部14が、挿入有無データを生成するようにしてもよい。挿入有無データ生成部14は、上記の判定部13が判定(受信したコンテンツデータに挿入されていたタイムドイベントに応じた処理を実行したか否かを判定)した結果を示す挿入有無データを生成する。
挿入有無データ送信部15は、挿入有無データ生成部14が上記の挿入有無データを生成した場合に、その挿入有無データを、コンテンツデータの送信元であるコンテンツ配信装置20に対して送信する。これにより、コンテンツ配信装置20は、端末10がメディアタイムドイベントを受信したこと、あるいは端末10がメディアタイムドイベントを受信してその処理を適切に完了したこと、を少なくとも認識することができる。
コンテンツデータは、ビデオオンデマンドに供される動画を端末10で再生するためのデータである。コンテンツデータのダウンロード及び再生に関するプロトコルとしては、例えば、HLS(HTTP Live Streaming)、MPEG-DASH(MPEG Dynamic Adaptive Streaming over HTTP)が挙げられる。また、コンテンツデータは、マニュフェストファイル及び少なくとも一つのセグメントファイルを含んでいる。
マニュフェストファイルは、セグメントファイルに関する設定、機能等の事項が記載されているテキストデータであり、例えば、MPD形式のデータである。また、マニュフェストファイルは、データ量がセグメントファイルよりも少ないため、端末10に送信するために必要な時間がセグメントファイルよりも短い。
セグメントファイルは、動画そのもののデータであり、例えば、MP4形式のデータである。また、コンテンツデータは、セグメントファイルがMP4形式のデータである場合、MPEG-4に準拠して符号化されている。また、セグメントファイルは、少なくとも一つのフラグメントから構成されている。フラグメントは、セグメントファイルがネットワークNWを経由して端末10に送信される場合におけるデータの伝送の単位である。言い換えれば、フラグメントは、通信によってセグメントファイルを配信する際の論理的な単位である。通常は、複数のフラグメントが、1つのセグメントファイルを構成する。つまり、セグメントファイルは、セグメントファイルを構成するさらに細かいデータの単位であるフラグメントの系列として成るものである。フラグメントは、例えば、通信プロトコルの所定の階層におけるパケットと同一の単位であってもよい。また、フラグメントは、複数のパケットに対応する単位であってもよい。また、フラグメントとパケットとは、1対1または1対N(Nは整数)には対応しないものであってもよい。なお、以下の説明では、セグメントファイルをセグメントと呼ぶ場合がある。なお、ここで、動画のデータは、音声をも含むものであってもよい。
要求データ受信部21は、上述した要求データを端末10から受信する。要求データ受信部21は、受信した要求データに基づいて、コンテンツデータ取得部22がコンテンツデータを取得し、コンテンツデータ配信部25がそのコンテンツデータを配信するよう、指示する。
コンテンツデータ取得部22は、要求データにより要求されているコンテンツデータをコンテンツデータ管理装置30から取得する。つまり、コンテンツデータ取得部22は、端末10側から配信を要求されたコンテンツデータを取得する。具体的には、コンテンツデータ取得部22は、要求データにより要求されているコンテンツデータを送信するようコンテンツデータ管理装置30に要求し、コンテンツデータ管理装置30から当該コンテンツデータを受信する。コンテンツデータ管理装置30は、例えば、サーバーであり、上述したコンテンツデータを保存している。
送信時間調整部23は、挿入タイミング決定部24によりイベント用メタデータが挿入されるタイミングが決定される前に、セグメントの少なくとも一部を端末10に送信する速度を低下させることによりセグメントを端末10に送信する時間を延ばす。当該時間は、例えば、コンテンツデータに含まれているセグメントがネットワークNWを経由して端末10に送信されるために費やされる時間である。つまり、送信時間調整部23は、セグメントファイルが端末10側で再生される際のフラグメントの再生タイミングに基づいて、セグメントファイルを構成するフラグメントを送出するタイミングを遅延させる。
挿入タイミング決定部24は、イベント用メタデータ生成装置50からメディアタイムドイベントの挿入の指示を受けた際に、メディアタイムドイベントを挿入すべきタイミングを決定する。コンテンツデータのセグメントファイルが複数のフラグメントで構成されている場合、挿入タイミング決定部24は、メディアタイムドイベントを挿入すべきフラグメントの位置を決定する。つまり、挿入タイミング決定部24は、イベント用メタデータ生成装置50からタイムドイベントのタイミングの指示を受ける。そして、挿入タイミング決定部24は、配信するコンテンツデータを構成するセグメント内においてタイムドイベントを挿入すべき位置を、当該セグメントが端末10側で再生される際のタイムドイベントのタイミングの位置に基づいて決定する。なお、挿入タイミング決定部24は、タイムドイベントのタイミングの位置に該当して再生される(セグメントファイル内の)フラグメントの位置を求めて、当該フラグメントの位置を、タイムドイベントを挿入すべき位置として決定するようにしてよい。
なお、上記の送信時間調整部23が上記フラグメントの送出タイミングを決定する(遅延させる、調整する)場合には、挿入タイミング決定部24は、そのフラグメントの送出タイミングに基づいて、タイムドイベントのタイミングの位置に該当するフラグメントの位置を求めて、当該フラグメントの位置を、タイムドイベントを挿入すべき位置として決定する。
コンテンツデータ配信部25は、コンテンツデータを、端末10に送信する。具体的には、コンテンツデータ配信部25は、マニュフェストファイルとセグメントファイルとを端末10に送信する。また、コンテンツデータ配信部25は、挿入タイミング決定部24が決定したタイミング(位置)に、コンテンツデータにメディアタイムドイベントを挿入して、コンテンツデータを端末10に送信する。具体的には、コンテンツデータ配信部25は、セグメントファイルを構成する特定のフラグメント(挿入タイミング決定部24が決定した位置のフラグメント)に、メディアタイムドイベントを挿入する。つまり、コンテンツデータ配信部25は、挿入タイミング決定部24により決定された挿入すべき位置にタイムドイベントを挿入し、タイムドイベントが挿入されたコンテンツデータを端末10に配信するものである。なお、コンテンツデータ配信部25は、例えば、コンテンツデータを構成するセグメントファイルを、フラグメントの単位で順次、端末10に配信するものである。
なお、コンテンツデータ配信部25が配信済みのタイムドイベントに応じた処理を端末10側で実行したことを示す挿入有無データを、挿入有無データ受信部26が、所定の期間内に受信しなかった場合には、挿入タイミング決定部24は、前記タイムドイベントを再挿入すべき位置を再度決定する。つまり、処理されなかったタイムドイベントを再送できるようにする。この再送の場合にも、コンテンツデータ配信部25は、挿入タイミング決定部24が決定した再挿入すべき位置に、タイムドイベントを挿入し、タイムドイベントが挿入されたコンテンツデータを端末に配信する、ものである。
挿入有無データ受信部26は、端末10から送信される挿入有無データを受信する。挿入有無データについては、既に説明したとおりである。挿入有無データ受信部26は、挿入有無データを受信したことにより、次のいずれかの状況を認識する。1)端末10がメディアタイムドイベントを受信したこと、2)端末10がメディアタイムドイベントを受信し、且つ、端末10がそのメディタイムドイベントに対応する処理を完了したこと、3)端末10がメディアタイムドイベントを受信しなかったこと、4)端末10がメディアタイムドイベントを受信したこと、および、端末10がそのメディタイムドイベントに対応する処理を完了したことの、少なくともいずれかができなかったこと。なお、挿入有無データ受信部26がこれらの状況のうちのどれを認識するかは、端末10との間での取り決めに依存する。メディアタイムドイベントについての端末10側での処理が確認できない場合には、コンテンツ配信装置20は、メディアタイムドイベントを再送する制御を行うことができる。
つまり、挿入有無データ受信部26は、挿入されていたタイムドイベントに応じた処理を端末10側で実行したか否かを示す挿入有無データを、端末10から受信するものである。
イベント用メタデータは、ビデオオンデマンドに供される動画に同期するイベントを発生させる目的でコンテンツデータに挿入されるデータである。イベント用メタデータとしては、例えば、メディアタイムドイベントが挙げられる。メディアタイムドイベントは、既存の技術であり、前記の非特許文献1にも記載されている。
メディアタイムドイベントは、データ項目名と、当該データ項目名と対応付けられているデータ項目値とを含むテキストデータである。データ項目名は、例えば、スキーム識別子、バリュー、イベント識別子、提示時刻デルタ、タイムスケール、イベント継続時間、メッセージデルタ、コンポーネントタグ、メッセージグループ識別子、メッセージ識別子、メッセージバージョン及びプライベートデータである。データ項目値は、これらのデータ項目名の具体的な内容を示す数字、英字及び記号の少なくとも一つから構成される文字列である。
イベントは、端末10又はこれと連携している機器が端末10により受信されたイベント用メタデータに基づいて実行する処理である。イベントの例としては、例えば、端末10のディスプレイに表示されている動画に時刻、天気予報、気温、紫外線情報、緊急地震速報、緊急ニュース、ポップアップ等を重ねて表示する処理、スポーツ中継の動画にゴール等があったことを示す画像や動画を重ねて表示する処理が挙げられる。イベントの具体的な内容は、イベントデータにより規定されている。イベントデータは、図1に示したイベントデータ生成装置40により生成され、図1に示したイベント用メタデータ生成装置50に送信される。イベント用メタデータ生成装置50は、当該イベントデータに対応するイベント用メタデータを生成してコンテンツ配信装置20に送信する。
次に、図2、図3、図4、図5、および図6を参照しながら、コンテンツ配信装置20がメディアタイムドイベントを挿入するタイミングについて説明する。なお、図2から図6までにおいて示す、セグメント長(1セグメントの再生時の時間長)や、1セグメントあたりのフラグメント数や、1フラグメントをコンテンツ配信装置20から端末10に伝送するために要する時間(例えば、20ミリ秒)などといった値は、いずれも、例である。これらの実際の数値は、ここに例示する数値とは異なっていてもよい。
図2は、コンテンツ配信装置20が配信するコンテンツデータの配信タイミングと、端末10側でそのコンテンツデータを再生するタイミングとの関係を示すタイミングチャートである。同図において、横軸は、時間方向である。同図(A)は、コンテンツ配信装置20が、コンテンツデータを構成する複数のセグメントファイルを配信するタイミングを示す。同図(B)は、端末10が、コンテンツ配信装置20から送信されたセグメントファイルを再生するタイミングを示す。本例では、1セグメントの長さは、2.0秒である。つまり、同図(B)において、1つのセグメントファイルの再生の時間の長さは2.0秒である。なお、1セグメントの長さは、2.0秒以外の他の長さであってもよい。また、本例では、1つのセグメントファイルを配信するために要する時間は、200ミリ秒である。この時間は、通信回線の速度や、通信ネットワークのトラフィックの混み具合や、コンテンツ配信装置20の処理能力や、端末10の処理能力などの要因に依存するものである。1つのセグメントファイルを配信するために要する時間が、200ミリ秒以外であってもよい。なお、ここでは、便宜的に、セグメントファイルおよび時刻に、符号を付与している。本例では、時刻T0、T1、T2が、それぞれ、セグメントファイルS1、S2、S3の再生の開始の時刻である。なお、時刻T3以後も、継続して、繰り返し、セグメントファイルの配信と再生が行われる。本実施形態で要求される事項は、同図(B)の「MTE」と記載されたタイミング(矢印の位置)に、メディアタイムドイベントを挿入することである。「MTE」と記載されたタイミングは、セグメントファイルS1の再生の途中(60%完了時)である。言い換えれば、この「MTE」と記載されたタイミングが所定のイベントのタイミングであることを、端末10が認識できるようにすることが望まれる。メディアタイムドイベントを考慮せずにセグメントファイルを配信してしまうと、この「MTE」と記載されたタイミングが実際に到来した時には、コンテンツ配信装置20側では既にセグメントファイルS1の配信を終えてしまっている。
図3は、本実施形態の第1方式によって、コンテンツ配信装置20がメディアタイムドイベントを挿入する方法を示すタイミングチャートである。同図においても、横軸方向は、時間に対応する。この第1方式では、コンテンツ配信装置20の挿入タイミング決定部24は、再生の際のメディアタイムドイベントの位置を基に、配信の際にメディアタイムドイベントを挿入すべき位置を計算によって求め、決定する。つまり、例えば、セグメントファイルS1の再生の60%が完了した時点(即ち、2.0秒のセグメントファイルS1の再生時間のうちの、1.2秒分の再生が完了した時点)に、メディアタイムドイベントを挿入することを、コンテンツ配信装置20の挿入タイミング決定部24は、決定する。挿入タイミング決定部24が決定する挿入位置は、同図(A)において「MTE」と記載されている箇所(矢印位置)である。この図3の配信タイミングを拡大して次の図で示す。
図4は、図3(A)のセグメントファイルS1の部分を、横軸方向に拡大した、タイミングチャートである。同図においても、横軸方向は、時間に対応する。図3(A)にも示した通り、セグメントファイルS1の配信に要する時間の長さは200ミリ秒である。本例では、セグメントファイルS1は、10個のフラグメントから構成されるものであることを想定する。これら10個のフラグメントを、便宜的に、F1、F2、・・・、F10と呼ぶ。図4では、F1およびF10の符号を示し、F2からF9までの符号を省略している。ここで、コンテンツ配信装置20の挿入タイミング決定部24は、セグメントファイルS1の再生が60%完了した時点にメディアタイムドイベントが挿入されるように、挿入位置を決定する。本例では、挿入タイミング決定部24は、フラグメントF6の中、またはフラグメントF7の中に、メディアタイムドイベントを挿入することを決定する。また、コンテンツデータ配信部25は、決定されたこの位置に、メディアタイムドイベントを挿入して、このセグメントファイルS1を配信する。
つまり、図3および図4に示したように、本実施形態の第1方式においては、挿入タイミング決定部24は、メディアタイムドイベントのタイミングの位置に該当して再生されるフラグメントの位置(上の例では、フラグメントF6またはF7)を求めて、当該フラグメントの位置を、メディアタイムドイベントを挿入すべき位置として決定する。
図5は、本実施形態の第2方式によって、コンテンツ配信装置20がメディアタイムドイベントを挿入する方法を示すタイミングチャートである。同図においても、横軸は、時間方向である。第2方式の特徴は、コンテンツ配信装置20の送信時間調整部23が、コンテンツデータの送信時間を調整することである。同図(A)は、コンテンツ配信装置20が、コンテンツデータを構成する複数のセグメントファイルを配信するタイミングを示す。同図(B)は、端末10が、コンテンツ配信装置20から送信されたセグメントファイルを再生するタイミングを示す。第1方式においては、コンテンツ配信装置20が1個のセグメントフィルを送信するのに要する時間の長さは、200ミリ秒であった。それに対して、図5に示す第2方式では、1個のセグメントフィルを送信するのに要する時間の長さは、2.0秒である。つまり、同図(A)において、時刻0.000秒(T0の位置)から送信し始めるセグメントファイルS1の配信が完了するのは、時刻2.000秒(T1の位置)である。この第2方式において、挿入タイミング決定部24が決定するメディアタイムドイベントの挿入位置は、同図(A)において「MTE」と記載されている箇所(矢印位置)である。この図5の配信タイミングを拡大して次の図で示す。
図6は、図5(A)のセグメントファイルS1の部分を、横軸方向に拡大した、タイミングチャートである。同図においても、横軸方向は、時間に対応する。図5(A)にも示した通り、セグメントファイルS1の配信に要する時間の長さは2.0秒である。本例では、セグメントファイルS1は、10個のフラグメントF1、F2、・・・、F10から構成される。図6では、時刻0.000秒から2.000秒までの間の、一部の期間を省略して示している。具体的には、時刻0.200秒から1.200秒までの期間と、時刻1.400秒から1.800秒までの期間とを、省略して示している。言い換えれば、図6では、フラグメントF1、F7、およびF10のみを示し、その他のフラグメントF2、F3、F4、F5、F6、F8、F9を省略している。コンテンツ配信装置20の送信時間調整部23は、セグメントファイルS1の全体を2.0秒かけて配信するために、セグメントファイルS1を構成する各フラグメントの配信開始時刻を調整する。言い換えれば、送信時間調整部23は、各フラグメントの配信開始時刻を待たせる調整を行う。つまり、この第2方式では、フラグメントF1の配信を開始する時刻は、時刻0.000秒である。フラグメントF2の配信を開始する時刻は、時刻0.200秒である。以下同様であり、例えばフラグメントF7の配信を開始する時刻は、時刻1.200秒である。また、最後のフラグメントF10の配信を開始する時刻は、時刻1.800秒である。なお、各フラグメントそのものを送信するのに要する時間は、図4に示した場合と同様の条件であれば、約20ミリ秒である。
ここで、コンテンツ配信装置20の挿入タイミング決定部24は、セグメントファイルS1の再生が60%完了した時点にメディアタイムドイベントが挿入されるように、位置を決定する。つまり、本例では、フラグメントF7の位置に、メディアタイムドイベントを挿入することを決定する。図6のタイミングチャート上では、例えば、フラグメントF7の送信開始の位置(時刻1.200秒の位置)を、メディアタイムドイベントの挿入位置として決定する。また、コンテンツデータ配信部25は、決定されたこの位置に、メディアタイムドイベントを挿入して、このセグメントファイルS1を配信する。
つまり、図5および図6に示したように、本実施形態の第2方式においては、送信時間調整部23は、セグメントファイルが端末10側で再生される際のフラグメントの再生タイミングに基づいて、セグメントファイルを構成するフラグメントを送出するタイミングを遅延させる。また、挿入タイミング決定部24は、メディアタイムドイベントのタイミングの位置に該当して再生されるフラグメントの位置(上の例では、フラグメントF7の先頭の位置)を求めて、当該フラグメントの位置を、メディアタイムドイベントを挿入すべき位置として決定する。
なお、送信時間調整部23は、端末10へのセグメントの送信時間を調整する場合に、必ずしも、図5および図6に示すように再生時刻にちょうど合わせるように(言い換えれば、ライブ配信の場合の配信タイミングに合わせるように)フラグメントのタイミングを調整することを要しない。つまり、送信時間調整部23がフラグメントの送信を遅延させることによって時間の調整を行う場合、メディアタイムドイベントを所望の精度で挿入できる程度であれば、フラグメントのタイミングが多少ずれていてもよい。ただし、送信時間調整部23は、フラグメントの端末10への到着が遅延して再生処理が一時的に停止(停滞)ししてしまわないように、十分に早めにフラグメントを送れるように、送信時間を調整することが望ましい。一例として、図6におけるフラグメントF7の送信のタイミングとして、時刻1.190秒から時刻1.210秒の間に20ミリ秒をかけて、フラグメントのF7を送信するようにしてもよい。ライブ配信に供されるセグメントを端末10に送信する時間と同じ時間に延ばす必要はない。すなわち、送信時間調整部23は、端末10にセグメントを送信する時間を延ばす場合、イベント用メタデータの所望の精度で所望のタイミングに挿入することができる程度の時間まで当該時間を延ばせばよい。ただし、送信時間調整部23は、ビデオオンデマンドに供される動画を端末10で滞り無く再生させる必要があるため、ビデオオンデマンドに供される動画のコンテンツデータを端末10に送信する時間は、ライブ配信に供される動画のコンテンツデータが端末10に送信される時間以下であることが好ましい。
挿入タイミング決定部24は、イベント用メタデータ生成装置50からイベント用メタデータを取得する。そして、挿入タイミング決定部24は、コンテンツデータに含まれているセグメントを構成しており、イベント用メタデータにより通知されるイベントと同期するコンテンツを端末10で再生するためのフラグメントが端末10に送信される前のタイミングにイベント用メタデータを挿入するよう決定する。
さらに、挿入タイミング決定部24は、コンテンツデータにより再生されるコンテンツの内容及びコンテンツデータを送信する方式の少なくとも一方に応じて、コンテンツデータにおいてイベント用メタデータが送信されるタイミングを決定してもよい。また、挿入タイミング決定部24は、コンテンツデータにより再生されるコンテンツの内容及びコンテンツデータを送信する方式の少なくとも一方に応じて、コンテンツデータにおいてイベント用メタデータをセグメントに挿入する場合とイベント用メタデータをコンテンツデータのマニュフェストファイルに挿入する場合とを切り替えてもよい。
コンテンツデータ配信部25は、挿入タイミング決定部24により決定されたタイミングにイベント用メタデータを挿入し、イベント用メタデータが挿入されたコンテンツデータをネットワークNW経由で端末10に配信する。
ここで、インバンド方式でメディアタイムドイベントを挿入するための前述の第1方式および第2方式について、整理する。
第1方式では、セグメントファイルを構成するフラグメントの再生のタイミングを計算して、所望の位置に(所望のフラグメントの位置)に、メディアタイムドイベントを挿入するよう、決定する。
第2方式では、コンテンツデータのダウンロード速度が、ライブ配信の場合と同等(即ち、コンテンツの再生の速度と同期する速度)となるように、実効伝送速度を調整する。この第2方式の場合には、送信時間調整部23が、コンテンツデータのダウンロード時間を調整する。言い換えれば、この第2方式の場合には、送信時間調整部23が、コンテンツデータの伝送速度を調整する。そのために、送信時間調整部23は、セグメントのデータの送信を適宜遅延させ、タイミングを調整する。言い換えれば、送信時間調整部23は、セグメントを構成するフラグメントの送信を適宜遅延させ、タイミングを調整する。第2方式での調整を行う場合、コンテンツの実行ダウンロード速度が、ライブ配信の場合と同等になり、端末10側での再生速度と同期する(またはそれに近い)速度となる。
なお、コンテンツ配信装置20は、ライブ配信の場合にはメディアタイムドイベントを挿入し、ビデオオンデマンド配信の場合にはメディタイムドイベントを挿入しないように、してもよい。
また、コンテンツ配信装置20は、ライブ配信の場合とビデオオンデマンド配信の場合とで、メディアタイムドイベントの挿入方法を切り替えてもよい。例えばサッカーのようなスポーツの試合をライブ配信している場合には、所定の事象(例えばサッカーにおけるゴール)をメディアタイムドイベントで端末10に伝達するため、メディアタイムドイベントをインバンド方式で挿入してもよい。一方、同様のスポーツの試合をビデオオンデマンド配信する場合には、上記の事象(サッカーにおけるゴール等)が生じるタイミングは既知であるため、メディアタイムドイベントをアウトオブバンド方式で挿入してもよい。即ち、コンテンツ配信装置20は、ライブ配信であるかビデオオンデマンド配信であるかに応じて、インバンド方式でメディアタイムドイベントを挿入するか、アウトオブバンド方式でメディアタイムドイベントを挿入するかを、切り替えてよい。
コンテンツ配信装置20がメディアタイムドイベントを挿入しても、何らかの不具合によって端末10ではそのイベントが発火しない場合もあり得る。そのため、例えば、コンテンツ配信装置20が、同一のイベントを表すメディアタイムドイベントを、複数回連続で挿入するようにしてもよい。この場合、端末10側では、同一のイベントを表すメディアタイムドイベントに対しては、1度だけ発火するように制御する。即ち、端末10は、発火済みのイベントを表すメディアタイムドイベントを受信した場合には、そのメディアタイムドイベントを無視する。
上記のように、コンテンツ配信装置20が複数回のメディアタイムドイベントを連続して送信するようにすると、通信帯域を圧迫してしまうことも考えられる。また、複数回のメディアタイムドイベントを、端末10がすべて処理せずに済ませてしまう場合も考えられる。その対策として、端末10のコンテンツ視聴プレイヤーは、メディアタイムドイベントを受信して、イベントに応じた処理を実施した場合は、処理完了を表すデータ(挿入有無データ)をコンテンツ配信装置20側に返す。コンテンツ配信装置20は、メディアタイムドイベントを送信してから所定の時間内に処理完了を表すデータが端末10側から返ってこない場合には、メディアタイムドイベントを再送出するようにしてもよい。これにより、メディアタイムドイベントの、コンテンツ配信装置20から端末10への伝送の確実性が増す。
なお、コンテンツ配信装置20は、イベント用メタデータにより発生させるイベントに速報性が要求されている場合、例えば、イベントが緊急地震速報、緊急ニュース等の表示である場合、ビデオオンデマンドに供される動画の全てのセグメントについて端末10に送信する時間を延ばしてからイベント用メタデータを挿入することが好ましい。なぜなら、このような場合、全てのセグメントについて、所望のタイミングにイベント用メタデータを挿入することができるように準備をしておく必要があるためである。
また、コンテンツ配信装置20は、イベント用メタデータにより発生させるイベントに速報性が要求されている場合、コンテンツデータにインバンドでイベント用メタデータを挿入することが好ましい。なぜなら、端末10にフラグメントが送信されている時間の方が端末10にマニュフェストファイルが送信されている時間よりも長く、イベントデータ生成装置によりイベントデータが生成されてから短時間のうちに当該イベントデータに対応するイベント用メタデータをコンテンツデータに挿入することができるからである。
一方、コンテンツ配信装置20は、イベント用メタデータにより発生させるイベントに速報性が要求されない場合、例えば、イベントが時刻、天気予報、気温、紫外線情報等の表示である場合、ビデオオンデマンドに供される動画の一部のセグメントについて端末10に送信する時間を延ばしてからイベント用メタデータを挿入してもよい。また、このような場合、イベント用メタデータが挿入されるセグメント及びイベント用メタデータが挿入されるタイミングは、周期的に出現することが多い。
コンテンツデータ受信部12は、イベント用メタデータが挿入されたコンテンツデータをコンテンツ配信装置20から受信する。判定部13は、コンテンツ配信装置20から受信したコンテンツデータにイベント用メタデータが挿入されているか否かを判定する。挿入有無データ生成部14は、判定部13が判定した結果を示す挿入有無データを生成する。挿入有無データ送信部15は、挿入有無データをコンテンツ配信装置20に送信する。
挿入有無データ受信部26は、コンテンツデータにイベント用メタデータが挿入されているか否かを示す挿入有無データを端末10から受信する。コンテンツ配信装置20は、コンテンツデータにイベント用メタデータが挿入されていないことが挿入有無データにより示されている場合、次の処理を実行する。すなわち、コンテンツ配信装置20は、コンテンツデータにおいてイベント用メタデータが挿入されるタイミングを再度決定し、コンテンツデータにイベント用メタデータを再度挿入し、イベント用メタデータが挿入されたコンテンツデータを端末に再度配信する。その後、端末10は、再度、判定部13による処理、挿入有無データ生成部14による処理及び挿入有無データ送信部15による処理を実行してもよい。
図7は、コンテンツ配信装置20が行う主要な処理の手順を示すフローチャートである。このフローチャートは、コンテンツ配信装置20がコンテンツデータの配信要求を受け付け、その要求に沿ってコンテンツデータを配信する処理を示す。以下では、このフローチャートに沿って、コンテンツ配信装置20の処理の手順を説明する。
なお、このフローチャートは、メディアタイムドイベントの挿入位置の決定方法の第1方式(図3および図4を参照)および第2方式(図5および図6)の両方に共通のものである。
ステップS81では、コンテンツ配信装置20の要求データ受信部21は、端末10から、コンテンツデータの配信要求のデータを受け付ける。この配信要求は、端末10側での「GET」のメソッド(「手続き」等と呼んでもよい)の発行により、コンテンツ配信装置20に対して送信されるものである。コンテンツの配信要求データは、コンテンツデータを特定する情報(コンテンツID等)を含む。
ステップS82では、コンテンツ配信装置20のコンテンツデータ取得部22は、コンテンツデータ管理装置30から、コンテンツデータを取得する。ここで取得するコンテンツデータは、ステップS81の配信要求のデータの中に記述されたコンテンツID等の情報に対応するものである。コンテンツデータは、例えば、マニュフェストファイルと、多数のセグメントファイルとから構成される。
ステップS83からS91までの処理では、コンテンツ配信装置20は、ステップS82で取得したコンテンツデータのセグメントファイルを順次、端末10に送信する。なお、コンテンツ配信装置20は、当該コンテンツデータのマニュフェストファイルを、別途、端末10に送信する。
ステップS84では、コンテンツ配信装置20のコンテンツデータ配信部25は、送信すべき1件のセグメントファイルを特定する。コンテンツデータ配信部25は、必要に応じて、そのセグメントファイルを、複数のフラグメントに分割する。あるいは、コンテンツデータ配信部25は、必要に応じて、そのセグメントファイルを構成する分割済みのフラグメントを認識する。
ステップS85では、コンテンツ配信装置20の挿入タイミング決定部24は、そのセグメントファイルの期間内にメディアタイムドイベントを挿入するか否かを決定する。タイムドイベントを挿入すべきか否かは、次の要因によって決定される。第1に、イベント用メタデータ生成装置50が生成したメディアタイムドイベントが示すイベントのタイミングが、当該セグメントファイルの再生期間内に含まれている場合には、挿入タイミング決定部24は、当該セグメントファイルにメディアタイムドイベントを挿入することを決定する。第2に、送信済みのメディアタイムドイベントに応じた処理が正しく実行されたことを示す情報が、所定期間内に端末10側から返されなかったと判定されている場合で、且つ、当該セグメントファイルの期間に挿入して再送することを必要とすべき場合に、挿入タイミング決定部24は、当該セグメントファイルにメディアタイムドイベントを挿入することを決定する。なお、第2の場合において、メディアタイムドイベントを再送するか否かは、イベントの種類や属性等に応じて決めてよい。
ステップS86では、メディアタイムドイベントを挿入することがステップS85で決定された場合に、コンテンツ配信装置20の挿入タイミング決定部24は、その挿入位置を決定する。メディアタイムドイベントの挿入位置の決定方法については、その第1方式および第2方式のそれぞれについて、図2から図6までを参照しながら既に説明したとおりである。
ステップS87からS90までの処理では、コンテンツ配信装置20は、ステップS84で特定されたセグメントファイルを構成するフラグメントを、順次、端末10に送信する。なお、コンテンツ配信装置20は、メディアタイムドイベントを挿入する位置においては、メディアタイムドイベントを端末10に対して送信する。
ステップS88では、コンテンツデータ配信部25は、現在の位置がメディアタイムドイベントを挿入すべき位置である場合(ステップS86において決定された位置である場合)、メディアタイムドイベントを挿入する。なお、コンテンツデータ配信部25は、メディアタイムドイベントを、セグメントファイルを構成するフラグメントとは別々に端末10に送信してもよいし、フラグメントに付ける形で端末10に送信してもよい。
ステップS89では、コンテンツデータ配信部25は、現在のフラグメントを送信する。
ステップS90では、コンテンツ配信装置20は、次のフラグメントの処理に、制御を移す。あるセグメントファイルを構成するすべてのフラグメントを送信し終えた場合には、コンテンツ配信装置20は、そのセグメントファイルに属するフラグメントの処理を終了する。
ステップS91では、コンテンツ配信装置20は、次のセグメントファイルの処理に、制御を移す。
図8は、端末10が行う主要な処理の手順を示すフローチャートである。このフローチャートは、端末10がコンテンツデータの配信を受ける処理を示す。このフローチャートに示す処理の前提として、端末10は、特定のコンテンツデータの配信を、コンテンツ配信装置20に対して要求済みである。つまり、端末10の要求データ送信部11は、コンテンツデータを特定した情報(コンテンツID)を含んだ要求データを送信済みである。なお、端末10が受信するコンテンツデータには、メディアタイムドイベントが挿入されている場合がある。以下では、このフローチャートに沿って、端末10の処理の手順を説明する。
ステップS101では、端末10は、コンテンツデータの受信の処理を終了するか否かを判定する。コンテンツデータの受信の処理を終了する場合(ステップS101:YES)には、本フローチャート全体を終了する。コンテンツデータの受信の処理を終了しない場合(ステップS101:NO)には、次のステップS102に進む。
ステップS102では、端末10のコンテンツデータ受信部12は、コンテンツ配信装置20から送信されるデータを受信する。ここで受信するデータとして想定されるものは、コンテンツデータを構成するフラグメントのデータ、または、メディアタイムドイベントである。なおコンテンツデータ受信部12が受信したデータが、フラグメントのデータであるか、メディアタイムドイベントのデータであるか、あるいはその他のデータであるかは、受信した電文の制御情報の領域を参照することにより判別可能である。
ステップS103では、端末10の判定部13は、ステップS102で受信したデータがメディアタイムドイベントであるか否かを判定する。そのデータがメディアタイムドイベントである場合(ステップS103:YES)には、次のステップS104に進む。そのデータがメディアタイムドイベントではない場合(ステップS103:NO)には、ステップS105に飛ぶ。
ステップS104に進んだ場合には、同ステップにおいて、端末10の判定部13は、受信したメディアタイムドイベントに対応する処理を行うよう、端末10を制御する。メディアタイムドイベントに対応する処理とは、例えば、所定の情報を端末10の画面等に提示する処理や、端末10から制御可能な外部の機器(いわゆるIoT機器等)を制御する処理や、その他の処理である。そして、受信したメディアタイムドイベントに対応する処理を端末10が実行し終えた場合には、挿入有無データ生成部14がコンテンツ配信装置20への応答(挿入有無データ)を生成し、挿入有無データ送信部15がその応答(挿入有無データ)をコンテンツ配信装置20に対して送信する。本ステップの処理が完了すると、次のステップS105に進む。
なお、挿入有無データが表す意味については、既に説明したとおりである。
ステップS105では、端末10の判定部13は、ステップS102で受信したデータがコンテンツデータを構成するフラグメントであるか否かを判定する。そのデータがコンテンツデータを構成するフラグメントである場合(ステップS105:YES)には、次のステップS106に進む。そのデータがコンテンツデータを構成するフラグメントではない場合(ステップS105:NO)には、次のデータの受信に移るために、ステップS101に戻る。
ステップS106に進んだ場合には、同ステップにおいて、端末10のコンテンツデータ受信部12は、受信したフラグメントに基づくコンテンツの再生処理を行う。つまり、端末10は、フラグメントのデータに基づき、コンテンツ(動画および音声)の復号を行い、そのコンテンツを端末10が持つ画面(動画の映像)やスピーカー等(音声)から出力する。なお、コンテンツデータ受信部12は、必要に応じて、受信したフラグメントを蓄積して再生処理を行うために必要なデータの単位を復元する処理を行ってもよい。また、コンテンツデータ受信部12は、受信したフラグメントに関して必要なその他の処理を行ってもよい。ステップS106の処理が終了すると、次のデータの受信に移るために、ステップS101に戻る。
以上、実施形態に係るコンテンツ配信システム1について説明した。端末10は、コンテンツデータの配信を要求する要求データをコンテンツ配信装置20に送信する。コンテンツ配信装置20は、イベント用メタデータにより通知されるイベントと同期するコンテンツを端末で再生するためのフラグメントが端末に送信される前のタイミングにイベント用メタデータを挿入するよう決定する。そして、コンテンツ配信装置20は、挿入タイミング決定部24により決定されたタイミングにイベント用メタデータを挿入し、イベント用メタデータが挿入されたコンテンツデータを端末10に配信する。
これにより、コンテンツ配信装置20は、ビデオオンデマンドに供される動画のコンテンツデータの所望のタイミングにイベント用メタデータを挿入することができる。
また、コンテンツ配信装置20は、挿入タイミング決定部24によりイベント用メタデータが挿入されるタイミングが決定される前に、セグメントの少なくとも一部を端末10に送信する速度を低下させることによりセグメントを端末10に送信する時間を延ばす。
これにより、コンテンツ配信装置20は、ビデオオンデマンドに供されるコンテンツデータが端末10に送信される時間が短いことにより所望のタイミングにイベント用メタデータを挿入することが難しい場合であっても、当該所望のタイミングに比較的容易にイベント用メタデータを挿入することができる。
また、端末10は、コンテンツ配信装置20から受信したコンテンツデータにイベント用メタデータが挿入されていないと判定した場合、コンテンツデータにイベント用メタデータが挿入されていないことを示す挿入有無データをコンテンツ配信装置20に送信する。そして、コンテンツ配信装置20は、当該挿入有無データを端末10から受信した場合、コンテンツデータにおいてイベント用メタデータが挿入されるタイミングを再度決定し、コンテンツデータにイベント用メタデータを再度挿入し、イベント用メタデータが挿入されたコンテンツデータを端末10に再度配信する。
これにより、端末10は、コンテンツデータにイベント用メタデータが挿入されていない場合であっても、イベント用メタデータが挿入されているコンテンツデータを受信し、当該イベント用メタデータに基づいてイベントを発生させることができる。また、これにより、コンテンツ配信装置20は、コンテンツデータにイベント用メタデータが挿入されていない場合であっても、イベント用メタデータが挿入されているコンテンツデータを端末10に送信し、端末10で再生されているコンテンツにおいてイベントを発生させることができる。
コンテンツ配信装置20は、コンテンツデータにより再生されるコンテンツの内容及びコンテンツデータを送信する方式の少なくとも一方に応じて、コンテンツデータにおいてイベント用メタデータが送信されるタイミングを決定する。
これにより、コンテンツ配信装置20は、端末10でコンテンツデータにより再生されるコンテンツの適切な位置でイベントを発生させることができる。
コンテンツ配信装置20は、コンテンツデータにより再生されるコンテンツの内容及びコンテンツデータを送信する方式の少なくとも一方に応じて、コンテンツデータにおいてイベント用メタデータをセグメントに挿入する場合とイベント用メタデータをコンテンツデータのマニュフェストファイルに挿入する場合とを切り替える。
これにより、コンテンツ配信装置20は、コンテンツの内容及びコンテンツデータを送信する方式の少なくとも一方に応じて、インバンド及びアウトオブバンドのうち適切な手法を選択することができる。
なお、上述した実施形態では、コンテンツデータにイベント用メタデータが挿入されていないことを示している挿入有無データが端末10から受信された場合に、挿入タイミング決定部24による処理及びコンテンツデータ配信部による処理が再度実行される場合を例に挙げたが、これに限定されない。
例えば、コンテンツ配信装置20は、挿入有無データが端末10により所定の時間を超えて受信されていない場合に、挿入タイミング決定部24による処理及びコンテンツデータ配信部による処理を再度実行してもよい。
これにより、コンテンツ配信装置20は、挿入有無データが所定の時間を超えて端末10から受信していない場合であっても、イベント用メタデータが挿入されているコンテンツデータを端末10に送信し、端末10で再生されているコンテンツにおいてイベントを発生させることができる。
また、上述した実施形態では、端末10が判定部13による処理、挿入有無データ生成部14による処理及び挿入有無データ送信部15による処理を実行し、コンテンツデータ配信部25が挿入有無データ受信部26による処理を実行する場合を例に挙げたが、これに限定されない。端末10は、判定部13による処理、挿入有無データ生成部14による処理及び挿入有無データ送信部15による処理を実行しなくてもよい。また、この場合、コンテンツ配信装置20は、挿入有無データ受信部26による処理を実行しない。
また、端末10、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40又はイベント用メタデータ生成装置50が有する機能の少なくとも一部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)等の回路部(circuitry)を含むハードウェアにより実現されてもよい。
また、端末10、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40又はイベント用メタデータ生成装置50が有する機能の少なくとも一部は、これらのハードウェアとプログラム(ソフトウェア)との協働により実現されてもよい。
当該ソフトウェアは、例えば、非一過性の記憶媒体を備える記憶装置に格納されており、端末10、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40又はイベント用メタデータ生成装置50により読み出され、実行されてもよい。当該記憶装置は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)である。
或いは、当該ソフトウェアは、着脱可能な非一過性の記憶媒体を備える記憶装置に格納されており、端末10、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40又はイベント用メタデータ生成装置50により読み出され、実行されてもよい。当該記憶装置は、例えば、DVD、CD-ROMである。
また、上述した実施形態では、コンテンツ配信装置20と、コンテンツデータ管理装置30と、イベントデータ生成装置40と、イベント用メタデータ生成装置50とが別々の装置である場合を例に挙げて説明したが、これに限定されない。例えば、コンテンツ配信装置20、コンテンツデータ管理装置30、イベントデータ生成装置40及びイベント用メタデータ生成装置50のうちの少なくとも二つが一体の装置として構成されていてもよい。また、コンテンツ配信装置20が有する機能の一部を実現する装置、コンテンツデータ管理装置30が有する機能の一部を実現する装置、イベントデータ生成装置40が有する機能の一部を実現する装置及びイベント用メタデータ生成装置50有する機能の一部を実現する装置のうちの少なくとも二つが一体の装置として構成されていてもよい。
以上説明したように、本実施形態によれば、コンテンツ配信装置20は、前述の第1方式あるいは第2方式のいずれかにより、所望のタイミングで、タイムドイベントを挿入してコンテンツデータを配信することができる。また、本実施形態によれば、タイムドイベントが何らかの理由によって端末10側(例えば、端末10上で稼働するコンテンツ視聴用プレイヤー)で正しく処理されない場合にも、コンテンツ配信装置20がタイムドイベントを再送する仕組みが実現される。これにより、タイムドイベントが端末10に伝送され、タイムドイベントに応じた処理が為される確実性が向上する。本実施形態によれば、ライブ配信であっても、ビデオオンデマンド配信であっても、それらの配信形態の際を吸収して、タイムドイベントを用いた制御を確実に行うことが可能となる。
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲内において種々の組み合わせ、変形、置換及び設計変更の少なくとも一つを加えることができる。