生成装置、配信サーバ、生成方法、再生装置、再生方法、再生システム、生成プログラム、再生プログラム、記録媒体およびデータ構造
【課題】再生装置が任意の再生位置でトリック再生することを可能にするMPDであって従来よりも配信効率の良いMPDを生成可能な生成装置を実現する。
【解決手段】
配信サーバ300は、コンテンツのライブ配信中にそのコンテンツのMPDをクライアント装置100に定期的に配信する。配信サーバ300は、過去の各ピリオドについてピリオドに属する各メディアセグメント(MS)のURLを含むXMLファイルを生成するメタデータ作成部320を備える。メタデータ作成部320はMPDも作成する。MPDには、コンテンツを構成する複数のMSのうち、過去の各ピリオドに属するMSについてはピリオドのidを含む、XMLファイルのファイル名が記載され、現在のピリオドについてはそのピリオドに属する各MSのURLが記載される。
【解決手段】
配信サーバ300は、コンテンツのライブ配信中にそのコンテンツのMPDをクライアント装置100に定期的に配信する。配信サーバ300は、過去の各ピリオドについてピリオドに属する各メディアセグメント(MS)のURLを含むXMLファイルを生成するメタデータ作成部320を備える。メタデータ作成部320はMPDも作成する。MPDには、コンテンツを構成する複数のMSのうち、過去の各ピリオドに属するMSについてはピリオドのidを含む、XMLファイルのファイル名が記載され、現在のピリオドについてはそのピリオドに属する各MSのURLが記載される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、配信サーバから取得したコンテンツデータを再生する再生装置および再生方法に関する。また、本発明は、コンテンツデータを再生するために再生装置が参照すべきメタデータを生成する生成装置および生成方法に関する。また、本発明は、そのような生成装置および再生装置を含む再生システムに関する。さらに、本発明は、そのような再生装置もしくは生成装置としてコンピュータを動作させる再生プログラムもしくは生成プログラム、並びに、そのような再生プログラムもしくは生成プログラムを記憶している記録媒体に関する。さらに、本発明は、再生装置がコンテンツデータを再生するために参照すべきメタデータのデータ構造に関する。
【背景技術】
【0002】
近年、インターネットに対する需要が急速に高まるにしたがって、テキストや静止画等で構成されたWEBページを見るだけでなく、動画コンテンツを鑑賞するユーザが増えてきている。
【0003】
このような状況を踏まえ、例えば非特許文献1に記載の技術のような、動画コンテンツをストリーミング配信するための様々な技術が開発されているが、そのうちのひとつに、MPEG(Moving Picture Experts Group)にて現在標準化作業が進められているDASH(Dynamic Adaptive Streaming over HTTP)が挙げられる。
【0004】
DASHでは、図14に例示されているようなMPD(Media Presentation Description)データと、図14のMPDデータにおいてtsファイルとして例示されているメディアセグメントとの2つのフォーマットが規定されている。メディアセグメントは、動画コンテンツが時分割された、HTTP伝送の伝送単位である。また、MPDデータは、ストリーミング配信の制御メタデータであり、動画コンテンツがライブ配信されるコンテンツ(ライブコンテンツ)であるかVODコンテンツであるかを示す情報(図14における属性「type」の属性値)を含んでいる。
【0005】
また、MPDデータは、動画コンテンツの再生期間を区切った各ピリオドについて、動画コンテンツの配信開始時間を基準「0」とした場合のそのピリオドの開始時間を示す情報(図14における属性「start」の属性値)とそのピリオドに属する各メディアセグメントのURLを示す情報(図14における要素「BaseURL」の要素値および属性「sourceURL」の属性値)とを含んでいる。さらに、動画コンテンツがライブコンテンツである場合(属性「type」の属性値が“Live”である場合)には、MPDデータには配信サーバにおいて動画コンテンツのストリーミング配信が開始される時刻の情報(図14における属性「availabilityStartTime」の属性値)が含まれるようになっている。
【0006】
MPDデータは、クライアント装置が動画コンテンツの配信を受ける前に、クライアント装置が配信サーバから取得する。クライアント装置は、MPDデータに記載された各メディアセグメントのURLを基に、順次メディアセグメントを取得し、動画コンテンツの再生を行うことができる。また、非特許文献1の技術ではトリック再生を行うことができないが、DASHに準拠したクライアント装置は、MPDデータに取得可能な全てのメディアセグメントの情報が含まれているため、タイムシフト再生や早送り等のトリック再生を行うことができる。
【0007】
ところで、ライブコンテンツには、配信が開始される前から配信終了時刻が確定している音楽番組のようなライブコンテンツと、プロ野球のナイター中継や災害発生時におけるニュース番組のように、配信が開始されてからも配信終了時刻が確定しないライブコンテンツとが存在する。
【0008】
配信サーバは、前者のライブコンテンツを配信する場合には、配信終了時刻(すなわち、全ピリオド)が予め確定しているため、ライブコンテンツを構成する全メディアセグメントのURLを含むMPDデータをクライアント装置に伝送することができる。したがって、クライアント装置は、ライブコンテンツの再生を開始する前に上記MPDデータを1回受信すれば、ライブコンテンツを最後まで再生することができる。
【0009】
一方、配信サーバは、後者のライブコンテンツを配信する場合には、配信終了時刻が確定するまで、最終的に配信されることになる全メディアセグメントのURLを含むMPDデータを生成し、クライアント装置に伝送することができない。したがって、クライアント装置は、配信終了時刻が確定していない時点で受信したMPDデータのみでは、ライブコンテンツを最後まで再生することができない。
【0010】
非特許文献2の技術では、後者のライブコンテンツを配信する場合において、クライアント装置がライブコンテンツを最後まで再生できるように、配信サーバが最新状態に更新されているMPDデータをクライアント装置に定期的に伝送する「MPD Update」と呼ばれる処理が用いられる。なお、「MPD Update」では、タイムシフト再生や早送り等のトリック再生をサポートするか否によって、後述する2種類の処理方法(「更新処理1」、「更新処理2」)が存在する。
〔更新処理1〕
更新処理1では、配信サーバが、MPDデータを更新すべき各時点において前回のMPDデータに対して後続するピリオドの情報を追加し、これにより最新状態に更新されているMPDデータを、クライアント装置に定期的に伝送する。配信サーバのこのような更新処理の具体例について図15を参照して以下に説明する。
【0011】
図15は、配信サーバがクライアント装置に伝送する一部のMPDデータを概略的に例示した図である。図15において、属性「minimumUpdatePeriodMPD」の属性値は、配信サーバがMPDデータを更新する周期を示している。この属性値は、クライアント装置が配信サーバからMPDデータを取得する周期でもあり、図15の例では“10分”である。図15(a)は、配信開始時刻における初期のMPDデータを示している。
【0012】
この例では、配信サーバは、配信開始から10分経過後に、MPDデータに対して開始時間が配信開始20分後である後続のピリオドの情報を1つ追加する最初の更新を行い、その後10分毎に、後続のピリオドの情報を1つ追加する。図15(b)は、配信開始から10分経過後におけるMPDデータを示しており、点線で囲まれた部分は、追加されたピリオドを示している。
【0013】
これに対し、クライアント装置は、ライブコンテンツの再生中、属性「minimumUpdatePeriodMPD」の属性値が示す時間である10分毎に、最新状態のMPDデータを配信サーバから取得するとともに取得したMPDデータに基づいてライブコンテンツの再生を継続する。
【0014】
その後、配信サーバは、配信終了時刻が確定した時点で、残りのピリオドの情報を追加する。図15(c)は、配信終了時刻が確定した時点である配信開始から40分経過後におけるMPDデータを示しており、点線で囲まれた部分は、追加された残りのピリオドを示している。図15(c)に示すように、最終的に確定したMPDデータでは、属性「minimumUpdatePeriodMPD」が削除されている。
【0015】
クライアント装置は、取得したMPDデータに属性「minimumUpdatePeriodMPD」が存在しないことをもって、定期的なMPDデータの取得を終了すべきであると判断する。クライアント装置は、最終的に確定したMPDデータに基づいてライブコンテンツを最後まで再生する。なお、図15(c)を見るとわかるように、最新状態のMPDデータには、常に、最初のピリオドから現在時刻が属するピリオドまでの情報が含まれているため、クライアント装置は、常に、ライブコンテンツの先頭からトリック再生を行うことが可能である。
〔更新処理2〕
更新処理2は、配信サーバが、MPDデータを更新すべき各時点において前回のMPDデータに対して後続するピリオドの情報を追加するとともに最も古いピリオドの情報を削除する処理であり、配信サーバは、これにより最新状態に更新されたMPDデータを、クライアント装置に定期的に伝送する。
【0016】
配信サーバのこのような更新処理2の具体例について図16を参照して以下に説明する。
【0017】
図16は、この「MPD Update」処理において、配信サーバがクライアント装置に伝送する一部のMPDデータを概略的に例示した図である。図16(a)は、配信開始時刻における初期のMPDデータを示している。
【0018】
この例では、配信サーバは、配信開始から10分経過後に、MPDデータに対して開始時間が配信開始20分後である後続のピリオドの情報を1つ追加するとともに開始時間が配信開始時点である最も古いピリオドの情報を削除する最初の更新を行う。図16(b)は、配信開始から10分経過後におけるMPDデータを示している。配信サーバは、その後10分毎に、後続のピリオドの情報を1つ追加するとともにその時点で最も古いピリオドの情報を削除する。そして、配信サーバは、配信終了時刻が確定した時点である40分経過後に、残りのピリオドの情報を追加する。図16(c)は、配信開始から40分経過後におけるMPDデータを示している。
【0019】
クライアント装置は、更新処理2によって更新されたMPDデータを受信する場合も、更新処理1によって更新されたMPDデータを受信する場合と同様にライブコンテンツの再生を行う。なお、図16(c)からわかるように、更新処理2によって更新された最新状態のMPDデータには、常に一定数のピリオドの情報しか含まれていないため、クライアント装置が受信するMPDデータのデータ量は、常に、略一定となる。
【先行技術文献】
【非特許文献】
【0020】
【非特許文献1】“HTTP Live Streaming”、[online]、2011年3月、[2011年6月3日検索]、Apple Inc.、インターネット<http://tools.ietf.org/html/draft-pantos-http-live-streaming-06>
【非特許文献2】“Information technology-MPEG systems technologies - Part6:Dynamic Adaptive streaming over HTTP(DASH)”、[online]、2011年1月28日、[2011年6月3日検索]、ISO/IEC、インターネット<http://www.itscj.ipsj.or.jp/sc29/open/29view/29n11873t.doc>
【発明の概要】
【発明が解決しようとする課題】
【0021】
配信サーバが、定期的に、上記更新処理1によって更新した最新状態のMPDをクライアント装置に伝送する場合には、クライアント装置は、すでに取得済のピリオドに関する情報を何度も受信することになる。また、配信サーバからストリーミング配信されているライブコンテンツを鑑賞しているユーザの多くは鑑賞中に一度もタイムシフト再生機能を使用しないと考えられる。タイムシフト再生を行わない多くのクライアント装置は、そのようなクライアント装置にとっては非常に冗長な情報量を持つMPDデータを受信してしまうことになる。
【0022】
したがって、上記更新処理1によって更新したMPDデータを配信するのは、MPDデータの配信効率が良いとは言えない。
【0023】
一方、配信サーバが、定期的に、上記更新処理2によって更新した最新の状態のMPDデータをクライアント装置に伝送する場合、更新のたびにその時点で最も古いピリオドの情報がMPDデータから削除されてしまうため、クライアント装置は、現在時刻から過去に遡った一定範囲内の再生位置でしかタイムシフト再生を行うことができないという問題がある。
【0024】
本発明は、上記課題に鑑みて成されたものであり、その主な目的は、再生装置が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にするMPDデータ(より一般的にはライブ配信を制御するメタデータ)であって従来よりも配信効率の良い(データ量の小さい)MPDデータ(メタデータ)を生成可能な生成装置および生成方法を実現することにある。
【0025】
また、そのような生成装置によって生成されたMPDデータ(メタデータ)に基づいて、ライブ配信されたコンテンツを再生する再生装置および再生方法を実現すること、および、そのようなMPDデータ(メタデータ)のデータ構造を提供することも本発明の目的の範疇に含まれる。
【課題を解決するための手段】
【0026】
本発明に係る生成装置は、複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成手段と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについて、その所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成手段と、を備えていることを特徴としている。ここで、上記第2の生成手段は、過去に生成した第2のメタデータを編集することによって第2のメタデータを生成してもよいし、過去に生成した第2のメタデータとは独立に第2のメタデータを生成してもよい。
【0027】
上記の構成によれば、本発明に係る生成装置が生成する第2のメタデータには、現在配信されている時分割データの所在を示す第1の資源位置指定子が含まれている。また、上記第2のメタデータには、過去に配信された上記複数の時分割データの各々について、当該時分割データの所在を示す第1の資源位置指定子が含まれているか、あるいは、当該時分割データの所在を示す第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子が含まれている。そして、第2のメタデータを取得した上記再生装置は、現在配信され、あるいは、過去に配信された、任意の時分割データの所在を特定することができる。
【0028】
したがって、本発明に係る生成装置は、ライブコンテンツをライブ再生している再生装置が任意の位置でトリック再生することができるような第2のメタデータを生成することになる。
【0029】
また、一般的に、第2の資源位置指定子のデータサイズは、第2の資源位置指定子により所在が示される第1のメタデータに含まれる各第1の資源位置指定子のデータサイズの総和よりも小さいことは明らかであるので、現在配信され、または、過去に配信された上記複数の時分割データの各々について当該時分割データの第1の資源位置指定子を含むような、従来の装置が生成するメタデータよりも、上記第2のメタデータのデータサイズは小さくなる。さらに、トリック再生を行わない再生装置は、過去に配信された時分割データを取得しないので第1のメタデータを取得することはない。
【0030】
したがって、トリック再生を行わない再生装置にとっては従来よりもメタデータの配信効率が良くなる。
【0031】
以上のことから、本発明に係る生成装置は、再生装置が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にする、ライブ配信されるコンテンツデータに関するメタデータであって従来よりも配信効率の良いメタデータを生成することができる。
【0032】
本発明に係る生成方法は、複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置の生成方法において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成工程と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成工程と、からなる生成工程を繰り返すことを特徴としている。
【0033】
上記の構成によれば、本発明に係る生成方法は、本発明に係る生成装置と同様の作用効果を奏する。
【0034】
なお、上記ライブ配信で用いるメタデータのデータフォーマットおよびメディアセグメントのデータフォーマットは、DASH(Dynamic Adaptive Streaming over HTTP)に準拠したデータフォーマットであり、上記時分割データはメディアセグメントであり、上記第1のメタデータはリモートオブジェクトであって上記第2のメタデータは上記コンテンツデータに関するMPDデータであり、上記第1の資源位置指定子は上記メディアセグメントのURLであって上記第2の資源位置指定子は上記リモートオブジェクトのURLである、ことが望ましい。また、上記コンテンツデータと上記コンテンツデータに関するメタデータとを上記再生装置に配信する配信サーバであって上記生成装置としても機能する配信サーバとして本発明を実現することが望ましい。
【0035】
本発明に係る生成装置は、上記コンテンツデータが、配信開始時刻には配信終了時刻が確定していないコンテンツデータであり、上記第2の生成手段が、上記配信終了時刻が確定した後に上記第2のメタデータを生成する場合には、上記第2のメタデータとして、上記配信開始時刻から上記配信終了時刻までに配信される全時分割データについて上記メタ情報を含むような第2のメタデータを生成することが望ましい。
【0036】
上記の構成によれば、本発明に係る生成装置は、再生装置に配信開始時刻には配信終了時刻が確定していないコンテンツデータを最後まで再生させることができるようなメタデータを生成することができるというさらなる効果を奏する。
【0037】
さらに、本発明に係る生成装置では、上記過去の所定の期間が、上記第2の生成手段が上記第2のメタデータを生成する時点を含む一定期間よりも過去の全期間であることが望ましい。
【0038】
上記の構成によれば、本発明に係る生成装置が繰り返し生成する第2のメタデータには、生成された時点を含む上記一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す第1の資源位置指定子が含まれることになる。換言すれば、本発明に係る生成装置が生成する第2のメタデータのデータサイズは生成の度にそれほど大きく増えるわけではないと言える。
【0039】
したがって、本発明に係る生成装置は、より配信効率の良いメタデータを生成することができるというさらなる効果を奏する。
【0040】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むような、第1のメタデータを取得する第1の取得手段と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を含んでいる第2のメタデータを取得する第2の取得手段と、上記第2のメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、上記再生手段が、取得すべき時分割データの第1の資源位置指定子が上記第2のメタデータに含まれていない場合には、第2の資源位置指定子を参照して当該第1の資源位置指定子を含む第1のメタデータを取得するとともに当該第1の資源位置指定子を参照して当該時分割データを取得する、ことを特徴としている。
【0041】
上記の構成によれば、本発明に係る再生装置が取得する第1のメタデータおよび第2のメタデータは、それぞれ、本発明に係る生成装置が生成する第1のメタデータおよび第2のメタデータと同じものである。また、上記再生装置は、ライブ再生の指示を受け付けた時点で再生のために取得すべき時分割データを第2の資源位置指定子を参照することにより取得することができ、トリック再生の指示を受け付けた時点で再生のために取得すべき時分割データを、第1の資源位置指定子および第2の資源位置指定子のいずれかを参照することにより取得することができる。
【0042】
したがって、本発明に係る再生装置は、本発明に係る生成装置によって生成されたメタデータに基づいて、ライブ配信されたコンテンツを再生することができる。
【0043】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得手段と、上記取得手段がメタデータを取得する度に当該メタデータから新たなメタデータを生成する生成手段と、上記生成手段が直前に生成した新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、上記生成手段が、当該生成手段が直前に生成したメタデータおよび上記取得手段が新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する、ことを特徴としている。
【0044】
上記の構成によれば、本発明に係る再生装置は、過去に取得したメタデータに含まれていたすべての資源位置指定子を含むようなメタデータを新たなメタデータとして生成する。
【0045】
したがって、本発明に係る再生装置は、配信開始時点からコンテンツデータの再生を開始していれば、現在配信され、または、過去に配信されたすべてのメディアセグメントについてその所在を示す資源位置指定子を含むようなメタデータを生成するので、当該メタデータに基づいてライブコンテンツのライブ再生および任意の再生位置でのトリック再生を行うことができる。
【0046】
また、本発明に係る再生装置が取得するメタデータは、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含んでいる。
【0047】
したがって、本発明に係る再生装置は、ライブコンテンツのライブ再生および任意の再生位置でのトリック再生を行うために取得すべきメタデータを従来よりも効率良く取得することができる。
【0048】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置の再生方法において、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得工程と、上記取得工程にてメタデータが取得される度に当該メタデータから新たなメタデータを生成する生成工程と、直前の上記生成工程にて生成された新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生工程と、を含み、上記生成工程は、当該生成工程の直前の生成工程にて生成されたメタデータおよび上記取得工程にて新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する工程であることを特徴としている。
【0049】
上記の構成によれば、本発明に係る再生方法は、本発明に係る再生装置と同様の作用効果を奏する。
【0050】
なお、上記ライブ配信で用いられる上記時分割データはDASH(Dynamic Adaptive Streaming over HTTP)に準拠したメディアセグメントである、ことが望ましい。
【0051】
本発明に係る生成装置と再生装置とを含む再生システムも本発明の範疇に含まれる。
【0052】
また、本発明に係る生成装置または再生装置としてコンピュータを動作させるプログラムであって、コンピュータを上記生成装置または上記再生装置の各手段として機能させることを特徴とするプログラム、および、そのようなプログラムを記録した、コンピュータが読み取り可能な記録媒体も本発明の範疇に含まれる。
【0053】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータのデータ構造において、上記メタデータに含まれる、所定の期間における時分割データ群の所在を特定するためのメタ情報のデータ構造が、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むようなメタデータの所在を示す第2の資源位置指定子を上記メタ情報として含む第1のデータ構造、および、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を上記メタ情報として含む第2のデータ構造のうち、上記コンテンツデータのライブ配信が開始されてからの経過時間に応じて選択されたデータ構造となっていることを特徴とするメタデータのデータ構造に係る発明も本発明の範疇に含まれる。
【発明の効果】
【0054】
以上のように、本発明の生成装置および生成方法は、再生装置が任意の再生位置でトリック再生することを可能にする、ライブ配信されるコンテンツデータに関するメタデータであって従来よりも配信効率の良いメタデータを生成することができる。
【0055】
また、本発明の再生装置および再生方法は、本発明の生成装置によって生成されたMPDデータに基づいてライブコンテンツを再生することができる。
【図面の簡単な説明】
【0056】
【図1】本発明の実施形態に係るクライアント装置および配信サーバの構成を示した図である。
【図2】本発明の実施形態に係る配信システムの全体構成を示した図である。
【図3】図1のクライアント装置が参照するMPD(Media Presentation Description)データの一例を概略的に示した図である。
【図4】図1の配信サーバが備えるメタデータ作成部が定期的にMPDデータを更新する動作の一実施形態を示すフローチャートである。
【図5】図1のクライアント装置が参照するリモートオブジェクトの一例を概略的に示した図である。
【図6】図1のクライアント装置が映像の再生を開始するまでの動作の一実施形態を示すフローチャートである。
【図7】本発明の別の一実施形態に係るクライアント装置および配信サーバの構成を示した図である。
【図8】本発明の別の一実施形態に係る配信システムの全体構成を示した図である。
【図9】図7の配信サーバが図7のクライアント装置に配信するMPDデータおよび図7のクライアント装置が生成するMPDデータの一例を概略的に示した図である。
【図10】図7の配信サーバが備えるメタデータ作成部が定期的にMPDデータを更新する動作の一実施形態を示すフローチャートである。
【図11】図7のクライアント装置が映像の再生を開始するまでの動作の一実施形態を示すフローチャートである。
【図12】図11のフローチャートにおける1ステップについてより詳細な処理の流れに示したフローチャートである。
【図13】図7の配信サーバが映像コンテンツのMPDデータを更新するタイミングと、その映像コンテンツの各ピリオドと、クライアント装置がMPDデータを取得するタイミングと、クライアント装置が各ピリオドの映像を再生する期間と、の時間的関係を模式的に示した図である。
【図14】MPDデータの一例を概略的に示した図である。
【図15】従来技術を示すものであり、MPD Updateにより更新されるMPDデータの一例を概略的に示した図である。
【図16】従来技術を示すものであり、MPD Updateにより更新されるMPDデータの別の一例を概略的に示した図である。
【図17】MPD初期データの一例を示した図である。
【図18】図7のクライアント装置が参照するMPDデータの一例を概略的に示した図である。
【発明を実施するための形態】
【0057】
〔実施形態1〕
本発明の一実施形態に係る配信システムは、配信開始時点では配信終了時刻が確定しないスポーツ中継のような映像コンテンツをクライアント装置にライブストリーミング配信する配信システムである。なお、当該システムでは、メタデータおよびメディアセグメントに前述のDASH規定のデータフォーマットを用いる。
【0058】
本実施形態に係る配信システムについて図1〜図6を参照しながら説明する。
【0059】
図1は、本実施形態に係るクライアント装置および配信サーバの全体構成を示した図であり、図2は、本実施形態に係る配信システム1の全体構成を示した図である。
【0060】
図2に示すように、配信システム1は、クライアント装置100と配信サーバ300とネットワークストレージサーバ(NAS)400とを含むシステムである。また、クライアント装置100および配信サーバ300は、インターネットNWに接続している。
【0061】
以下、クライアント装置100、配信サーバ300、およびNAS400について説明する。
(クライアント装置100)
図1に示すように、クライアント装置100は、ストリーミング制御部110、再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160を備えている。
【0062】
クライアント装置100は、操作部160を介して映像コンテンツの再生指示をユーザから受け付けると、そのライブ再生すべき映像コンテンツ(以下では、再生指示を受け付けた映像コンテンツを「対象映像コンテンツ」とも称する)を、配信サーバ300からメディアセグメント(映像コンテンツの符号化データを一定時間ごとに分割して得られる各単位、以下、「MS」とも称する)単位で受信して再生する。
【0063】
具体的には、クライアント装置100は、再生指示を受け付けた時点で対象映像コンテンツに関するMPDデータ(第2のメタデータ)を配信サーバ300から受信することにより、対象映像コンテンツを再生するために受信すべきMSのURL(第1の資源位置指定子)を特定し、配信開始時刻になると、URLで指定される配信サーバ300からMSを受信して対象映像コンテンツの再生を開始する。また、クライアント装置100は、対象映像コンテンツの再生中にも定期的に配信サーバ300からMPDデータを取得する。そして、クライアント装置100は、対象映像コンテンツの再生中は常に、最後に取得したMPDデータに基づいて、対象映像コンテンツの再生を継続するのに必要なMSを受信する。
(ストリーミング制御部110)
ストリーミング制御部110は、配信サーバ300から定期的にその時点で最新状態のMPDデータを取得する。
【0064】
ストリーミング制御部110は、最新状態のMPDデータおよび必要に応じて後述するリモートオブジェクトを参照することにより、対象映像コンテンツのうち再生対象となる部分を構成する各MSの配信開始時刻を特定する。MPDデータにおける各MSの配信開始時刻は、ライブ再生時における当該MSの再生開始時刻も示していることから、ストリーミング制御部110は、現在時刻(ライブ再生の場合)またはユーザ操作による指定時刻(トリック再生の場合)と各MSについて特定した配信開始時刻とから、再生すべきMSのURLを特定し、そのMSを受信するためのHTTP要求を配信サーバ300に送信する。
【0065】
ストリーミング制御部110は、配信サーバ300から受信したMSを記憶部130にバッファリングする。
(再生部120)
再生部120は、再生すべき時刻の早い順に、記憶部130にバッファリングされているMSを読み出してデコードおよび再生を行うことにより、対象映像コンテンツを表示部150に表示する。
(記憶部130)
記憶部130は、対象映像コンテンツを構成する各MSをバッファリングし、対象映像コンテンツに関するMPDデータを記憶するための記録媒体である。
(ネットワークI/F140)
ネットワークI/F140は、サーバ300との間でデータの送受信を行う。
(表示部150)
表示部150は、対象映像コンテンツを表示するディスプレイである。
(操作部160)
操作部160は、クライアント装置100に対する指示をユーザが行うための操作パネルである。
(配信サーバ300)
配信サーバ300は、配信部310と、メタデータ作成部320と、パラメータ制御部330と、を備えている。
【0066】
映像コンテンツの配信開始時刻になると、対象映像コンテンツを構成する映像をMS単位で順次、ライブエンコーダ(図示せず)がエンコードし、NAS400に記録する。これと並行して、メタデータ作成部320は、その映像コンテンツのMPDデータを繰り返し(本実施形態では10分毎に)生成し、最新状態に更新するとともに後述するリモートオブジェクト(第1のメタデータ)を生成する。
【0067】
パラメータ制御部330は、配信サービス事業者の担当者の指示内容に基づいて、メタデータ作成部320がMPDデータを生成するために参照する各種パラメータを制御する。
【0068】
また、配信部310は、クライアント装置100からMPDデータの要求を受けると、NAS400に記録されているその時点で最新の状態のMPDデータをクライアント装置100に送信する。そして、配信サーバ300は、クライアント装置100からMSのHTTP要求を受けると、NAS400に記録された該MSをクライアント装置100に配信する。
(NAS400)
NAS400は、映像コンテンツを構成する各MS、映像コンテンツに関するMPDデータ、および後述するリモートオブジェクトを保持するネットワークストレージである。
(MPDデータについて)
次に、上述したMPDデータについて図3を参照しながら以下に説明する。図3は、NAS400が保持しており、クライアント装置100が受信すべきMSを特定するために参照するMPDデータの一部を概略的に例示した図である。なお、図3におけるピリオドの開始タグと終了タグとの間に囲まれた範囲の「…」の表記は、当該部分に非特許文献2に記載されているようなグループ、リプレゼンテーション、MS等に関する情報が含まれていることを意味している。すなわち、「…」の部分には相当なバイトサイズのデータが含まれている。
【0069】
図3(a)は、配信開始時刻における初期のMPDデータを示している。また、図3(b)は、配信終了時刻が確定する前である配信開始10分経過後におけるMPDデータを示しており、図3(c)は、配信終了時刻が確定した時点である配信開始40分経過後におけるMPDデータを示している。
【0070】
図3(b)および図3(c)を見るとわかるように、更新後のMPDデータの要素「Period」には、属性値がリモートオブジェクトの所在を示すURL(第2の資源位置指定子)である属性「href」を含んでいるもの(図中において点線の枠で囲まれた部分。以下では、そのような要素「Period」を「外部参照ピリオド」とも称することにする)とそのような属性「href」を含んでおらず、要素値に当該ピリオドを構成するMSの所在を示すURL(第1の資源位置指定子)を含むもの(以下では、そのような要素「Period」を「通常ピリオド」とも称することにする)と、が存在することがわかる。また、外部参照ピリオド(第1のデータ構造)の要素値は空であり、通常ピリオド(第2のデータ構造)に比べ、当該ピリオドに関する情報のデータサイズは非常に小さくなっていることがわかる。
(MPDデータの生成動作について)
次に、メタデータ作成部320が、MPDデータの各更新時において、最新状態のMPDデータを生成する動作について図3〜図5および図17を参照しながら説明する。
【0071】
図4は、メタデータ作成部320の上記動作を示すフローチャート図である。なお、図4の動作フロー開始にあたり、メタデータ作成部320には、パラメータ制御部330から以下のパラメータが入力されるものとする。
update:当該MPDデータの次回更新が必要であれば「true」であり、対象映像コンテンツの配信終了時刻が確定しており、次回更新の必要がなければ「false」である。なお当該パラメータは、例えば、図示しない操作部を介して配信サービス事業者の担当者から配信終了時刻が確定した旨を示す情報を受け取り済みの場合に、falseに設定される。
Dp:1つのピリオドに属する対象映像コンテンツの再生時間(1つのピリオドに含められるMSの総再生時間)。図3のMPDデータを生成する場合、「10分」である。
Ta:対象映像コンテンツの配信開始時刻(対象映像コンテンツのライブ再生開始時刻)。
Tc:当該MPDデータ生成時刻(現在時刻)。
Te:当該MPDデータに含める必要のあるピリオドを決定するための閾値。
【0072】
最初に、図17に示すような、MPD更新により変化しない共通要素のみからなるMPD初期ドキュメントを作成する(S1)。
【0073】
次に、S2において、対象映像コンテンツの配信終了時刻が確定しているか否かを判定する。対象映像コンテンツの配信終了時刻が確定していないと判定した場合には(S2においてYES)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加する(S3)。例えば、メタデータ作成部320は、対象映像コンテンツの配信開始10分経過後に図3(b)のようなMPDデータを作成する場合、その時点では配信終了時刻が確定してないため、属性「minimumUpdatePeriodMPD」を追加し、MPDデータの更新間隔Dpにあたる属性値「PT10M」を設定する。
【0074】
一方、対象映像コンテンツの配信終了時刻が確定したと判定した場合には(S2においてNO)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加せずに、S4に進む。例えば、対象映像コンテンツの配信終了時刻が確定した配信開始40分経過後にMPDデータを更新する際には、図3(c)に示すように更新後のMPDデータにおいて要素「MPD」に属性「minimumUpdatePeriodMPD」は含まれないことになる。
【0075】
S4において、処理対象時刻変数TをTaに初期化するとともに、処理対象ピリオドが対象映像コンテンツの先頭から何番目のピリオドであるかを示す変数Nを1に初期化する。
【0076】
S5において、N番目のピリオドに関する情報を通常のピリオドとして生成し、S6に進む。S6において、メタデータ作成部320は、T<Tcが成立するか否かを判定する。メタデータ作成部320がT<Tcが成立しないと判定した場合(S6においてNO)、S9に進む。
【0077】
一方、T<Tcが成立すると判定した場合(S6においてYES)、S5で生成した通常ピリオドをリモートオブジェクトとしてNAS400に出力し(S7)、S8に進む。なお、N番目のピリオドのリモートオブジェクトは、図5に示す例のように、MPDデータや他のリモートオブジェクトとは別にNAS400に記録される。本動作例では、N番目のピリオドのリモートオブジェクトは、ファイル名が「pN.xml」(Nは数値であり、例えば、N=1の場合「p1.xml」である。以下「pN.xml」の記載を同様の意味で用いる)であるXMLファイルとして記録される。
【0078】
S8において、S7で生成したリモートオブジェクトを参照する外部参照ピリオドを生成し、S9に進む。
【0079】
S9において、N番目のピリオドに関して直近で生成したピリオド情報(直前のステップがS8である場合にはS8において生成した外部参照ピリオドであり、直前のステップがS6である場合にはS5で生成した通常ピリオド)を、生成すべきMPDデータの一部として追加する。
【0080】
S10において、次のピリオドの処理のため、変数TにDpの値を加算するとともに、変数Nに1を加算し、S11に進む。
【0081】
S11において、T<Teが成立するか否かを判定する。T<Teが成立すると判定した場合(S11においてYES)、未処理のピリオドについてピリオド情報を生成するため、S5に戻る。一方、T<Teが成立しないと判定した場合(S11においてNO)、当該MPDデータに記載する必要のあるピリオド情報の生成が完了し、S12に進む。
【0082】
S12において、S1〜S11までの処理によって作成したMPDデータ(すなわち、更新により最新状態となったMPDデータ)をNAS400に記録し、処理を終了する。なお、クライアント装置100から要求されたタイミングに応じて、最新の状態に更新されたMPDデータがNAS400から読み出され配信部310により配信される。
【0083】
以上、メタデータ作成部320が行うMPDデータの更新処理動作について説明したが、以上の更新処理動作により、対象映像コンテンツの配信終了時刻が確定した後に更新されたMPDデータには、対象映像コンテンツを構成するすべてのピリオドについて、外部参照ピリオドまたは通常ピリオドが含まれることになる。したがって、配信サーバ300は、クライアント装置100から要求されたタイミングが配信終了時刻確定後におけるMPDデータの更新後である場合には、対象映像コンテンツを構成するすべてのピリオドのピリオド情報を含むMPDデータをNAS400から読み出して配信することになる。
【0084】
なお、MPDデータを生成する際、MPDの更新間隔をピリオドの再生時間Dpとすることで、TcをN番目のピリオドの再生開始時刻と一致させることができ、外部参照ピリオドとして生成される1〜N−1番目のピリオドだけでなく、通常ピリオドとして生成さるN番目のピリオド以降にもライブ再生に不要なMSのURLは一切含まれない。また、閾値Teを、Updateがtrueの場合には、Te=Tc+2Dpとし、,Updateがfalseの場合には、Te=「当該映像コンテンツの配信終了時刻」とすることで、当該MPDデータには、任意のクライアント装置100が最新のMPDデータを取得した時点から、次回MPDデータの取得までの期間(つまり属性「minimumUpdatePeriodMPD」で示される期間)にライブ配信およびライブ再生されるMSのURLのみを含めることができる。言い換えれば、ライブ再生を行うのに必要な最小限の通常ピリオドを含む配信効率の高いMPDデータを生成することができる。
【0085】
以下では、操作部160を介して再生指示を受け付けたクライアント装置100が、配信サーバ300が配信する対象映像コンテンツを再生するための動作について、図3、図5および図6を参照しながら説明する。
【0086】
図6は、クライアント装置100の上記動作を示すフローチャート図である。なお、図6において、Tsは、操作部160を介したユーザ操作による再生指示によって決定される再生開始位置を示す入力パラメータである。Tsは、再生指示がライブ再生の場合においては現在時刻を示しており、再生指示がトリック再生の場合においては、再生指示に基づく指定時刻を示している。
【0087】
また、Dpは、ピリオドに属する対象映像コンテンツの再生時間(MPDデータの要素「Period」における属性「duration」の属性値として、あるいは、連続する2つの要素「Period」における各属性「start」の属性値の差として得られる)を示しており、Dsは1つのMSが継続して再生される期間(MPDデータの要素「SegmentInfo」における属性「duration」の属性値として得られる)を示している。
【0088】
最初に、ストリーミング制御部110は、再生処理開始に先立ち、処理対象時刻を表す変数TをTsで初期化し、処理対象を示す変数Nを1で初期化する(S21)。
【0089】
S22において、ストリーミング制御部110は、配信サーバ300にMPDデータを要求し、配信サーバ300からMPDデータを受信し、記憶部130に記憶する。S23において、ストリーミング制御部110は、S22で受信され、記憶部130に記憶されたMPDデータの内容を読み出し、S24に進む。
【0090】
S24において、ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在するか否かを判定する。
【0091】
ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在すると判定した場合(S24においてYES)、次回MPDデータを配信サーバ300から取得する時刻を示す変数Tuに変数Tと属性「minimumUpdatePeriodMPD」の属性値との和を代入し(S25)、S27に進む。
【0092】
一方、ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在しないと判定した場合(S24においてYES)、以降MPDデータの更新は不要であるため、変数Tuに、対象映像コンテンツの配信終了時刻以降を示す十分に大きい値(例えば、変数Tが示す時刻の1ヶ月後を示すような値)を設定し(S26)、S27に進む。
【0093】
S27において、ストリーミング制御部110は、N番目のピリオドが再生対象であるか否かを判定する。具体的には、N番目のピリオドの配信開始時刻(およびライブ再生開始時刻)を示す属性「start」の属性値TNを用いて、TN≦T<TN+Dpが成立するか否かを判定する。成立しないと判定した場合、当該ピリオドは再生処理対象外であると判断し(S27においてNO)、ストリーミング制御部110はNに1を加算することで再生処理対象ピリオドを次のピリオドへ切り替え(S28)、S27に戻る。
【0094】
一方、TN≦T<TN+Dpが成立すると判定した場合、当該ピリオドを再生処理対象であると判断し(S27においてYES)、N番目のピリオドについて、属性「href」の有無で、外部参照ピリオドであるか、あるいは、通常ピリオドであるかを判定する(S29)。
【0095】
通常ピリオドと判定された場合(S29においてNO)、S32に進む。一方、外部参照ピリオドと判定された場合(S29においてYES)、ストリーミング制御部110は、N番目のピリオドである外部参照ピリオドにおける属性「href」の属性値を参照することにより、リモートオブジェクトであるXMLファイルpN.xmlを配信サーバ300から受信する(S30)
S30の後、ストリーミング制御部110は、受信したリモートオブジェクトpN.xmlの内容を読み出し(S31)、S32に進む。なお、前述したように、pN.xmlの内容は、N番目のピリオドを示す通常ピリオドである。すなわち、N番目のピリオドに属する各MS(時分割データ群を構成する各時分割データ)の所在を示すURL(第1の資源位置指定子)が含まれている。したがって、クライアント装置100は、pN.xmlに基づいてN番目のピリオドの再生を行うことができる。
【0096】
S32において、ストリーミング制御部110は、当該ピリオドにおける処理対象MSを示す変数Mを1に初期化し(S32)、S33に進む。
【0097】
S33において、ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立するか否かを判定する。ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立すると判定した場合(S33においてYES)、当該MSは再生処理ではないと判断し、Mに1を加算し(S34)、S33に戻る。
【0098】
一方、ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立しないと判定した場合(S33においてNO)、クライアント装置100は、当該MS(N番目のピリオドにおけるM番目のMS)を再生処理対象と判断して再生する(S35)。
【0099】
具体的には、ストリーミング制御部110は、S23で読み出したMPDデータまたはS31にて読み出したリモートオブジェクトに含まれているN番目のピリオドの通常ピリオドを参照したM番目のMSのURLを特定し、特定したURLにアクセスすることによりM番目のMSを受信して記憶部130にバッファリングする。そして、再生部120は、記憶部130にバッファリングされたM番目のMSを再生する。
【0100】
S35の後、ストリーミング制御部110は、処理対象時刻変数Tに、S35で再生されたMSの再生時間に相当するDsの値を加算すると共に、変数Mに1を加算することによって処理対象MSを更新し(S36)、S37に進む。
【0101】
S37において、ストリーミング制御部110は、T<Tuが成立するか否かを判定する。ストリーミング制御部110は、T<Tuが成立しない(すなわち、MPDデータを再度取得すべき時刻になった)と判定した場合(S37においてNO)、S22に戻る。
【0102】
一方、ストリーミング制御部110は、T<Tuが成立すると判定した場合(S37においてYES)、当該ピリオドに再生対象MSが存在するかを判定するため、T<TN+Dpが成立するか否かを判定する(S38)。
【0103】
ストリーミング制御部110は、T<TN+Dpが成立すると判定した場合(S38においてYES)、S35の処理に戻る一方、T<TN+Dpが成立しない(すなわち、次のピリオドのMSを再生すべき時刻となった)と判定した場合(S38においてNO)、変数Nに1を加算する(S39)。
【0104】
S39の後、ストリーミング制御部110は、S23にて読み出したMPDデータの中に、N番目のピリオドが含まれているか否かを判定する(S40)。ストリーミング制御部110は、含まれていると判定した場合(S40においてYES)にはS29に戻る一方、含まれていないと判定した場合(S40においてNO)には処理を終了する。
【0105】
(配信システム1の利点)
以上のように、配信システム1の配信サーバ300は、ライブ再生を行うクライアント装置100が取得すべきMSの所在を特定するためのメタ情報を含んでいるMPDデータを、対象映像コンテンツがライブ配信されている間に繰り返し生成する。
【0106】
配信サーバ300のメタデータ作成部320は、過去のピリオド(過去の所定の期間中に配信され、ライブ再生が終了したピリオド)に属する各MSについて当該MSのURL(時分割データの所在を示す第1の資源位置指定子)を含むリモートオブジェクト(第1のメタデータ)を生成する。
【0107】
また、メタデータ作成部320は、上記複数のMSのうち、過去のピリオドに属する各MSについては当該MSのURLを含むリモートオブジェクトの所在を示すURL(第2の資源位置指定子)を上記メタ情報として含み、その他のピリオドに属する各MSについては当該MSのURLを上記メタ情報として含んでいるMPDデータ(第2のメタデータ)を生成する。
【0108】
また、配信システム1のクライアント装置100では、ストリーミング制御部110が、MPDデータを取得する。取得したMPDデータには、ライブ再生に必要なピリオドに属する各MSについては、当該MSのURLが含まれており、過去のピリオドについては、取得すべきMSのURLが含まれるリモートオブジェクトのURLが含まれており、タイムシフト再生のように過去のピリオドに含まれるMSの再生が必要となる場合には、ストリーミング制御部110が当該リモートオブジェクトを取得する。
【0109】
そして、再生部120は、取得したMPDデータに基づいて、配信サーバ300からMSを順次取得するとともに再生する。取得すべきMSのURLがMPDデータに含まれていない場合には、ストリーミング制御部110がMPDデータに記載されているリモートオブジェクトの所在を示すURLを参照して当該リモートオブジェクトを取得した後、当該リモートオブジェクトに記載されているURLを参照して取得すべきMSを受信し、再生部120が再生する。
【0110】
上記の構成により、配信システム1の配信サーバ300は、クライアント装置100が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にするようなMPDデータであって従来よりも配信効率の良いMPDデータを生成することができる。
【0111】
また、クライアント装置100は、そのようなMPDデータを参照することにより、対象映像コンテンツのライブ再生および任意の再生開始位置からのトリック再生を行うことができる。
【0112】
〔実施形態2〕
本発明の別の一実施形態に係る配信システムについて図7〜図12を参照しながら説明する。
【0113】
本実施形態に係る配信システムでは、配信サーバが、定期的に、古いMPDデータを、ライブ再生に不要なピリオドに関する情報を含まないようなMPDデータ(ライブ再生に必要十分な最低限のピリオドに関する情報を持つMPDデータ)に更新するとともに、更新後のMPDデータをクライアント装置に送信する点で実施形態1の配信サーバ300とは異なっている。また、本実施形態に係る配信システムでは、クライアント装置が、配信サーバから新たに取得したMPDデータと既に配信サーバから取得済または合成済のMPDデータとを合成することにより、対象映像コンテンツの再生を完了するために必要なMPDデータを獲得する点で、実施形態1のクライアント装置100とは異なっている。
【0114】
最初に、本実施形態に係る配信システム1’の構成について図7および図8を参照しながら説明する。
【0115】
図7は、本実施形態に係るクライアント装置および配信サーバの全体構成を示した図であり、図8は、本実施形態に係る配信システム1’の全体構成を示した図である。また、図9は、配信サーバの各更新時における更新処理後のMPDデータと、クライアント装置によるMPDデータの各取得後における合成処理により獲得されるMPDデータと、を例示している。
【0116】
図8に示すように、配信システム1’は、クライアント装置100’と配信サーバ300’とネットワークストレージサーバ(NAS)400とを含むシステムである。また、クライアント装置100’および配信サーバ300’は、インターネットNWに接続している。
【0117】
以下、クライアント装置100’および配信サーバ300’について説明するが、NAS400については実施形態1に係るNAS400と同一であるので、その説明を省略する。
(クライアント装置100’)
図1に示すように、クライアント装置100’は、ストリーミング制御部110’、再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160を備えている。再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160については実施形態1と同一であるので、ストリーミング制御部110’について以下に説明する。
(ストリーミング制御部110’)
ストリーミング制御部110’は、配信サーバ300’によって定期的に更新されるMPDデータを定期的に配信サーバ300’から取得し、既に配信サーバ300から取得済または合成済のMPDデータと合成することにより、対象映像コンテンツに関する最新状態のMPDデータを生成する。
【0118】
ストリーミング制御部110’は、最新状態のMPDデータを参照することにより、対象映像コンテンツのうち再生対象となる部分を構成する各MSを配信サーバ300’が配信する(または、配信した)配信時刻を特定する。MPDデータにおける各MSの配信開始時刻は、ライブ再生時における当該MSの再生開始時刻も示していることから、ストリーミング制御部110’は、現在時刻(ライブ再生の場合)またはユーザ操作による指定時刻(トリック再生の場合)と各MSについて特定した配信時刻とから、再生すべきMSのURLを特定し、そのMSを受信するためのHTTP要求を配信サーバ300’に送信する。
【0119】
ストリーミング制御部110は、配信サーバから受信したそのMSを記憶部130にバッファリングする。
(配信サーバ300’)
配信サーバ300’は、配信部310と、メタデータ作成部320’と、パラメータ制御部330と、を備えている。配信部310およびパラメータ制御部330は、それぞれ、実施形態1の配信部310およびパラメータ制御部330と同一であるので、その説明を省略する。
【0120】
メタデータ作成部320’は、その映像コンテンツのMPDデータを繰り返し(本実施形態では10分毎に)更新する。具体的には、メタデータ作成部320’は、各更新時において、ピリオドに関する情報としてはクライアント装置100’がライブ再生を行うのに必要な最小限のピリオド情報(通常ピリオド)のみを含むようにMPDデータを更新する。
【0121】
以上、本実施形態に係る配信システム1’の構成について説明した。
【0122】
以下では、本実施形態に係るクライアント装置100’および配信サーバ300’の各動作について図9〜図12を参照しながら説明する。
【0123】
最初に、配信サーバ300’におけるメタデータ作成部320’が、MPDデータの各更新時において、古いMPDデータを、新しいMPDデータ(すなわち、クライアント装置100’がライブ再生を行うのに必要な最小限のピリオド情報のみを含むMPDデータ)に更新する動作について図9および図10を参照しながら説明する。
【0124】
図9は、NAS400およびクライアント装置100’の記憶部130が保持するMPDデータの一部を概略的に例示した図である。なお、図9における「…」の表記は、図3における「…」の表記と同様に意味を持っている。
【0125】
また、図9の左上段のMPDデータ5aは、配信開始時刻にNAS400に保持されている初期のMPDデータを示している。また、図9の左中段のMPDデータ5bは、配信終了時刻が確定する前である配信開始10分経過後にNAS400に保持されるMPDデータを示しており、左下段のMPDデータ5cは、配信終了時刻が確定した時点である配信開始40分経過後にNAS400に保持されるMPDデータを示している。
【0126】
さらに、図9の右上段のMPDデータ5a、右中段のMPDデータ5d、右下段のMPDデータ5eは、それぞれ、クライアント装置100’が対応する左段のMPDデータを配信サーバ300’から取得し、必要に応じて合成処理を行った結果として記憶部130に記録される、その時点で最新状態のMPDデータを示している。
【0127】
図10は、メタデータ作成部320’の上記動作を示すフローチャート図である。なお、図10における「Period#N」、Dp、Tc、TaおよびTeは、図4のフローチャート図と同様の意味を持っている。
【0128】
最初に、図17に示すような、MPD更新により変化しない共通要素のみからなるMPD初期ドキュメントを作成する(S41)。
【0129】
次に、S42において、対象映像コンテンツの配信終了時刻が確定しているか否かを判定する。
【0130】
対象映像コンテンツの配信終了時刻が確定していないと判定した場合には(S42においてYES)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加する(S43)。例えば、メタデータ作成部320’は、対象映像コンテンツの配信開始10分経過後に図9(b)のようなMPDデータを作成する場合、その時点では配信終了時刻が確定してないため、属性「minimumUpdatePeriodMPD」を追加し、MPDデータの更新間隔Dpにあたる属性値「PT10M」を設定する。
【0131】
一方、対象映像コンテンツの配信終了時刻が確定したと判定した場合には(S42においてNO)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加せずに、S44に進む。例えば、対象映像コンテンツの配信終了時刻が確定した配信開始40分経過後にMPDデータを更新する際には、図9(c)に示すように更新後のMPDデータにおいて要素「MPD」に属性「minimumUpdatePeriodMPD」は含まれないことになる。
【0132】
S44において、処理対象時刻変数TをTaに初期化するとともに、処理対象ピリオドが対象映像コンテンツの先頭から何番目のピリオドであるかを示す変数Nを1に初期化し、S45に進む。
【0133】
S45において、T<Tcが成立するか否かを判定する。T<Tcが成立すると判定された場合(S45においてYES)、S48に進む。
【0134】
一方、T<Tcが成立しないと判定した場合(S45においてNO)、N番目のピリオドに関する情報を生成するとともに(S46)、MPDデータの一部として追加し(S47)、S48に進む。
【0135】
S48において、変数Tの値にDpを加算するとともに、変数Nの値に1を加算し、S49に進む。
【0136】
S49において、T<Teが成立するか否かを判定する。T<Teが成立すると判定した場合(S49においてYES)、S45の処理に戻る。
【0137】
一方、T<Teが成立しないと判定した場合(S49においてNO)、古いMPDデータをS41〜S49までの処理の結果として得られたMPDデータに更新し、NAS400に記録し、処理を終了する。なお、クライアント装置100’から要求されたタイミングに応じて、最新の状態に更新されたMPDデータがNAS400から読み出され配信部310により配信される。
【0138】
以上、メタデータ作成部320’の動作について説明したが、配信サーバ300’が配信開始時刻から10分経過後にMPDデータ5aをMPDデータ5bに更新する処理を例に挙げて、S45〜S47の処理についてより詳細に説明する。
【0139】
この例では、Tcが配信開始時刻Taから10分経過時点を示す値(Ta+Dp)となる。配信サーバ300’がS45のステップを最初に処理する時には、N=1且つT=Taであるので、T<Tcが成立すると判定する。したがって、更新後のMPDデータ5bには、クライアント装置100’がライブ再生を行うのに不要な1番目のピリオドに関する情報は含まれないことになる。
【0140】
一方、配信サーバ300’がS45のステップを2度目に処理する時には、N=2且つT=Ta+Dpであるので、T<Tcが成立しないと判定する。したがって、その直後のS46、S47の処理の結果、更新後のMPDデータ5bには、クライアント装置100’がライブ再生を行うのに必要な2番目のピリオドに関する情報が含まれることになる。
【0141】
次に、本実施形態に係るクライアント装置100’が、配信サーバ300’が配信する対象映像コンテンツを再生するための動作について、図9、図11および図12を参照しながら以下に説明する。
【0142】
図11は、配信サーバ300’により配信される対象映像コンテンツを再生するためのクライアント装置100’の動作を示すフローチャート図である。また、図12は、図111のフローチャートの1ステップをより詳細に示したフローチャート図である。なお、図11および図12におけるDp、Ds、Ts、TuおよびTNは、図6のフローチャート図と同様の意味を持っている。
【0143】
最初に、ストリーミング制御部110’は、再生処理開始に先立ち、処理対象時刻を表す変数TをTsで初期化し、処理対象ピリオドを表す変数Nを1で初期化する(S61)。
【0144】
S62において、ストリーミング制御部110’は、配信サーバ300’に対象映像コンテンツに関するMPDデータを要求し、配信サーバ300’からMPDデータを受信し、記憶部130に記憶する。S63において、ストリーミング制御部110’は、S62の処理の前からすでに記憶部130に記録されているような、対象映像コンテンツに関するMPDデータ(以下では「既存MPD」とも称する)が存在するか否かを判定する。
【0145】
S63において存在しないと判定された場合、S65に進む。一方、S63において存在すると判定された場合、S64に進む。すなわち、S62にて初期のMPDデータ(例えば、図9の左上段のMPDデータ5a)を受信した場合には、S65に進み、S62にて2度目以降のMPDデータ(例えば、図9の左中段のMPDデータ5bや左下段のMPDデータ5c等)を受信した場合には、S64に進む。
【0146】
ストリーミング制御部110’は、S62で受信され、記憶部130に記憶されたMPDデータ(以下では「新規MPD」とも称する)と、既存MPDとを合成し(S64)、S65の処理に進む。後に述べるように、S64の合成処理の結果として得られるMPDデータには、ライブ再生に必要十分なピリオドに関する情報とそれ以前のすべてのピリオドに関する情報とが含まれることになる。
【0147】
クライアント装置100’は、S65〜S81について、クライアント装置100のS24〜S40と同様の処理を行う。
【0148】
以下では、参照する図面を図9および図12に変えて、S64の合成処理の詳細について説明する。
【0149】
最初に、ストリーミング制御部110’は、新規MPDを読み出し(S641)。新規MPDの先頭から何番目のピリオドであるかを示す変数Lを1で初期化する(S642)。
【0150】
その後、S643において、ストリーミング制御部110’は、新規MPDのL番目のピリオドの属性「id」の属性値と同じ属性値を持つピリオドが既存MPDに含まれているか否かを判定する。例えば、既存MPDが図9のMPDデータ5aであって新規MPDが図9のMPDデータ5bである場合、ストリーミング制御部110’は、Lが1のとき(id=”2”のピリオド)は既存MPDに含まれていると判定し、Lが2のとき(id=”3”のピリオド)は既存MPDに含まれていないと判定する。
【0151】
ストリーミング制御部110’は、そのような情報が既存MPDに含まれていないと判定した場合(S643においてNO)には、新規MPDに含まれているL番目のピリオドに関する情報を既存MPDに追加し(S644)、S645の処理に進む。一方、ストリーミング制御部110’は、そのような情報が既存MPDに含まれていると判定した場合(S643においてYES)には、そのまま、S645の処理に進む。
【0152】
S645において、ストリーミング制御部110’は、Lの値に1を加算し、S646において、新規MPDにL番目のピリオドに関する情報が含まれているか否かを判定する。例えば、既存MPDが図9のMPDデータ5aであって新規MPDが図9のMPDデータ5bである場合、ストリーミング制御部110’は、Lが1あるいは2のときは、当該ピリオドの情報が含まれていると判定し、Lが3のときは当該ピリオドに関する情報が含まれていないと判定する。当該例においては、この時点で、既存MPDが図9のMPDデータ5dのようになっている。
【0153】
ストリーミング制御部110’は、新規MPDにL番目のピリオドに関する情報が含まれていると判定した場合(S646においてYES)、S643の処理に戻る一方、そのような情報が含まれていないと判定した場合(S646においてNO)、S647の処理に進む。
【0154】
S647では、ストリーミング制御部110’は、S641〜S646の処理で得られた合成後のMPDデータの先頭から何番目のピリオドであるかを示す変数Kを1で初期化する。
【0155】
S648において、ストリーミング制御部110’は、K番目のピリオドが有効であるか否かを、新規MPDの属性「timeShiftBufferDepth」の属性値に基づいて判定する。属性「timeShiftBufferDepth」は、ライブストリーミング配信のみで有効な属性であり、配信サーバが各MSについてMSの配信を開始してから破棄するまでの時間を示している。
【0156】
ストリーミング制御部110’は、具体的には、K番目のピリオドの開始時間(属性「start」の属性値)と属性「availabilityStartTime」の属性値とからL番目のピリオドの配信開始時刻を算出する。そして、ストリーミング制御部110’は、現在時刻からK番目のピリオドの配信開始時刻を引いた値が属性「timeShiftBufferDepth」の属性値以下である場合にK番目のピリオドが有効であると判定し、そうでない場合にはK番目のピリオドが無効であると判定する。例えば、既存MPDがMPDデータ5dである場合には、1番目のピリオドから3番目のピリオドまでの各配信開始時刻はいずれも現在時刻から過去7日以内にあるので、3つのピリオドはすべて有効であると判定される。
【0157】
以上のS648の処理によってK番目のピリオドが有効であると判定した場合、ストリーミング制御部110’は、S650の処理に進む。一方、K番目のピリオドが無効であると判定した場合、ストリーミング制御部110’は、K番目のピリオドに関するピリオド情報を削除した上で(S649)、S650の処理に進む。
【0158】
S650において、ストリーミング制御部110’は、Kの値に1を加算し、S651において、既存MPDにK番目のピリオドに関する情報が含まれているか否かを判定する。
【0159】
ストリーミング制御部110’は、上記情報が含まれていると判定した場合(S651においてYES)にはS648の処理に戻り、上記情報が含まれていないと判定した場合(S651においてNO)には、S64の処理を終了し、S65の処理に進む。なお、ストリーミング制御部110’は、S646において「新規MPDにL番目のピリオドに関する情報が含まれていない」と判定した時点以降に新規MPDを破棄しても良い。
【0160】
(配信システム1’の利点)
以上のように、配信システム1’の配信サーバ300’は、対象映像コンテンツのMPDデータをクライアント装置100’に繰り返し配信するが、MPDデータには配信時点を含む一定期間内に配信される各MSについてのみ当該MSのURLが含まれている。
【0161】
また、配信システム1’のクライアント装置100’では、ストリーミング制御部110’が、配信サーバ300’から上記MPDデータを取得する度に、取得したMPDデータから新たなMPDデータを生成し、再生部120が直前に生成したMPDデータに基づいて取得すべきMSを順次取得するとともに再生する。
【0162】
具体的には、ストリーミング制御部110’は、直前に生成したMPDデータ(既存MPD)と新たに取得したMPDデータ(新規MPD)とを合成することにより、新たなMPDデータを生成するが、合成により新たに生成されるMPDデータには、既存MPDおよび新規MPDの少なくとも一方のMPDに含まれている上記URLがすべて含まれることになる。
【0163】
したがって、クライアント装置100’が対象映像コンテンツを配信開始時点からライブ再生する場合には、クライアント装置100’が生成するMPDには、常に、現在配信され、または、過去に配信されたすべてのMSのURLが含まれることになる。
【0164】
以上のことから、配信システム1’では、クライアント装置100’が、対象映像コンテンツのライブ再生および任意の再生開始位置からのトリック再生を行うことができる。
【0165】
〔実施形態の変形例について〕
(変形例1)
実施形態2の配信システム1’では、クライアント装置100’が対象映像コンテンツの先頭のピリオドから始まるすべてのピリオドについてピリオドに関する情報を受信した場合に限り、任意の再生位置から対象映像コンテンツのトリック再生を行うことができる。換言すれば、配信システム1’のクライアント装置100’は、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合、任意の再生位置からトリック再生を行うことができないことがある。具体例について図13を参照しながら説明する。
【0166】
図13は、配信サーバ300’がMPDデータを更新するタイミングと、対象映像コンテンツの各ピリオドと、クライアント装置100’−1、100’−2がMPDデータを取得するタイミングと、クライアント装置100’−1、100’−2が各ピリオドにおける映像を再生する期間とを模式的に示した図である。
【0167】
図13において、水平方向は時間方向を示しており、左端は対象映像コンテンツの配信開始時刻を示している。配信サーバ300’がMPDデータを更新するタイミングは、図中における「配信サーバ」という文字列の水平右方向に位置する下向き矢印により表されている。また、対象映像コンテンツの各ピリオドは、図中における「対象映像コンテンツ」という文字列の水平右方向に位置する双方向矢印により表されている。なお、この双方向矢印の上方および下方のブレースは、各ピリオドに関する情報が含まれているMPDデータを示している。さらに、各クライアント装置がMPDデータを取得するタイミングおよび各クライアント装置が各ピリオドにおける映像を再生する期間は、それぞれ、図中における対応する「クライアント装置」という文字列の水平右方向に位置する下向き矢印および双方向矢印により表されている。
【0168】
図13に示すように、クライアント装置100’−1および100’−2は、両方とも、対象映像コンテンツの配信開始時刻を過ぎてから再生指示を受け、MPDデータを取得している。
【0169】
クライアント装置100’−1は、配信サーバ300’において最初の更新がされる前に再生指示を受けているので、初期のMPDデータ(MPD1)を取得することができている。一方、クライアント装置100’−2は、配信サーバ300’において最初の更新がされた直後に再生指示を受けているので、初期のMPDデータ(MPD1)を取得することができていない。したがって、クライアント装置100’−2は、1番目のピリオドに関する情報を取得できず、1番目のピリオドに属するような再生位置からトリック再生を行うことができない。
【0170】
任意の再生位置でトリック再生を行うことができるように、本発明は、実施形態2のクライアント装置100’と実施形態1の配信サーバ300とを組み合わせた配信システムとして実現してもよい。
【0171】
このように実現された配信システムでは、図12に示したフローチャートに従う実施形態2の方法と略同様の方法で、クライアント装置100’は、配信サーバ300から受信した新規MPDと既存MPDとを合成することになる。
【0172】
その結果、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けたクライアント装置100’が最初に取得するMPDデータには、現在時刻が属するピリオド(「P番目のピリオド」とする)よりも前のピリオドについては外部参照ピリオドが含まれ、それ以降のピリオドについては通常ピリオドが含まれることになる。そして、クライアント装置100’が2度目以降に取得した新規MPDと既存MPDとを合成して得られるMPDデータには、常に、1〜P−1番目のピリオドについては外部参照ピリオドが含まれ、P番目以降のピリオドについては通常ピリオドが含まれることになる。
【0173】
したがって、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合であっても、クライアント装置100’は、実施形態1と同様に、任意の再生位置から対象映像コンテンツのトリック再生を行うことができる。また、実施形態1とは異なり、クライアント装置100’は、トリック再生を開始する再生位置が属するピリオドが先頭からP番目以降のピリオドであれば、常に、リモートオブジェクトを参照することなくトリック再生を開始することができる。
【0174】
(変形例2)
クライアント装置が、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合であっても、任意の再生位置からトリック再生を行うことができるように、以下のような配信システムとして本発明を実施してもよい。
【0175】
すなわち、クライアント装置100’と、対象映像コンテンツのMPDデータに対して定期的に更新処理1を実行していく一方、対象映像コンテンツのMPDデータに対して定期的に更新処理2を実行していくような配信サーバと、を含むような配信システムとして、本発明を実施してもよい。
【0176】
この配信サーバは、具体的には、更新処理1と更新処理2とを同時に行うようになっている。また、この配信サーバは、最初の更新時には、同一内容の2つのMPDデータ(初期のMPDデータ)に対して、それぞれ、更新処理1と更新処理2とを実行するようになっている。
【0177】
配信サーバは、クライアント装置100’からの対象映像コンテンツのMPDデータの要求が初回の要求である場合には、更新処理1によって更新されたMPDデータをクライアント装置100’に返却し、2度目以降の要求である場合には、更新処理2によって更新されたMPDデータをクライアント装置100’に返却する。
【0178】
配信サーバは、クライアント装置100’からのMPDデータの要求が初回の要求であるか2度目以降の要求であるかを以下のように識別することができる。
【0179】
例えば、配信サーバは、クライアント装置100’を特定可能な情報(例えばクライアント装置100’のID情報)を含むようなクッキー情報を、クライアント装置100’に保存させてもよい。すなわち、配信サーバは、クライアント装置100’から上記クッキー情報を受信したか否かを判定し、受信していないと判定した場合には、初回の要求であると判定するとともに、上記クッキー情報をクライアント装置100‘に保存させる。一方、配信サーバは、受信したと判定した場合には、2度目の要求であると判定する。
【0180】
また、例えば、配信サーバは、更新処理1によって更新されるMPDデータのURL情報(URL1)と、更新処理2によって更新されるMPDデータのURL情報(URL2)と、それぞれ、クライアント装置100’に通知してもよい。2つのURL情報は互いに異なっていればよい。すなわち、各MPDデータのファイル名を含むようなURL情報であってもよいし、各MPDデータの保存先を互いに異なるフォルダにすることにより、2つのURL情報を異ならせてもよい。この場合、クライアント装置100’は、対象映像コンテンツのMPDデータを初めて取得する場合には、URL1にアクセスし、取得するのが2度目以降である場合には、URL2にアクセスすればよい。なお、URL1についてはクライアント装置100’に予め通知しておき、URL2については、URL1にアクセスすることによって取得されるMPDデータ内(例えば、図18に例示されているMPDデータ内の点線の枠で囲まれた部分)に要素「Location」の要素値として記述する構成であってもよい。
【0181】
以上のような配信システムによっても、クライアント装置100’は、配信サーバからMPDデータを取得するたびに、S64の合成処理によって任意の再生位置からトリック再生を行うことができるような最新状態のMPDデータを得ることができる。
【0182】
(付記事項1)
以上の各実施形態では、配信サーバが対象映像コンテンツのMPDデータと対象映像コンテンツ自体との両方を配信するものとしたが、MPDデータを配信する配信サーバと、対象映像コンテンツを配信する配信サーバとは異なるサーバであってもよい。また、各実施形態では、MPDデータを配信する配信サーバがMPDデータの更新も行うものとしたが、MPDデータの配信とMPDデータの更新とを異なるサーバが行ってもよい。また、MPDデータの更新を行うサーバ(生成装置)は、通信機能を備えている必要はない。すなわち、配信サービス事業者の担当者が、サーバで更新されたMPDデータを、着脱可能な記録メディアを介して、手作業で、配信サーバに移動してもよく、上記MPDデータを、通信機能を備えた他の装置に手作業で移動した上で、配信サーバにアップロードしてもよい。
【0183】
(その他の付記事項)
メタデータ作成部320は、対象映像コンテンツの配信終了時刻が確定した後に既存のMPDデータを属性「minimumUpdatePeriodMPD」を含まないようなMPDデータに更新した後、MPDデータの定期的な更新を終了してもよいし、そのまま更新を定期的に続けても良い。また、実施形態1では、メタデータ作成部320が、過去のピリオドについてピリオド毎に異なるXMLファイルを生成するものとしたが、過去のピリオドに属する全MSのURL(1つの時分割データ群を構成する各時分割データ)を含むような1つのXMLファイルを生成してもよい。
【0184】
(プログラム、記憶媒体)
クライアント装置100(100’)および配信サーバ300(300’)の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
【0185】
後者の場合、クライアント装置100(100’)および配信サーバ300(300’)は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるクライアント装置100(100’) および配信サーバ300(300’)の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、クライアント装置100(100’) および配信サーバ300(300’)に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0186】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
【0187】
また、上記プログラムコードは、通信ネットワークを介してクライアント装置100(100’)および配信サーバ300(300’)に供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【0188】
なお、ここで開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明だけではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0189】
本発明に係る再生装置および生成装置は、コンテンツ配信システムなどに広く適用することができる。
【符号の説明】
【0190】
5a〜5e MPDデータ
100、100’ クライアント装置(再生装置)
110、110’ ストリーミング制御部(第1の取得手段、第2の取得
手段、取得手段、生成手段)
120 再生部(再生手段)
130 記憶部
140 ネットワーク・I/F
150 表示部
160 操作部
300、300’ 配信サーバ(生成装置)
310 配信部
320、320’ メタデータ作成部(第1の生成手段、第2の生成手段)
330 パラメータ制御部
400 ネットワークストレージサーバ(NAS)
【技術分野】
【0001】
本発明は、配信サーバから取得したコンテンツデータを再生する再生装置および再生方法に関する。また、本発明は、コンテンツデータを再生するために再生装置が参照すべきメタデータを生成する生成装置および生成方法に関する。また、本発明は、そのような生成装置および再生装置を含む再生システムに関する。さらに、本発明は、そのような再生装置もしくは生成装置としてコンピュータを動作させる再生プログラムもしくは生成プログラム、並びに、そのような再生プログラムもしくは生成プログラムを記憶している記録媒体に関する。さらに、本発明は、再生装置がコンテンツデータを再生するために参照すべきメタデータのデータ構造に関する。
【背景技術】
【0002】
近年、インターネットに対する需要が急速に高まるにしたがって、テキストや静止画等で構成されたWEBページを見るだけでなく、動画コンテンツを鑑賞するユーザが増えてきている。
【0003】
このような状況を踏まえ、例えば非特許文献1に記載の技術のような、動画コンテンツをストリーミング配信するための様々な技術が開発されているが、そのうちのひとつに、MPEG(Moving Picture Experts Group)にて現在標準化作業が進められているDASH(Dynamic Adaptive Streaming over HTTP)が挙げられる。
【0004】
DASHでは、図14に例示されているようなMPD(Media Presentation Description)データと、図14のMPDデータにおいてtsファイルとして例示されているメディアセグメントとの2つのフォーマットが規定されている。メディアセグメントは、動画コンテンツが時分割された、HTTP伝送の伝送単位である。また、MPDデータは、ストリーミング配信の制御メタデータであり、動画コンテンツがライブ配信されるコンテンツ(ライブコンテンツ)であるかVODコンテンツであるかを示す情報(図14における属性「type」の属性値)を含んでいる。
【0005】
また、MPDデータは、動画コンテンツの再生期間を区切った各ピリオドについて、動画コンテンツの配信開始時間を基準「0」とした場合のそのピリオドの開始時間を示す情報(図14における属性「start」の属性値)とそのピリオドに属する各メディアセグメントのURLを示す情報(図14における要素「BaseURL」の要素値および属性「sourceURL」の属性値)とを含んでいる。さらに、動画コンテンツがライブコンテンツである場合(属性「type」の属性値が“Live”である場合)には、MPDデータには配信サーバにおいて動画コンテンツのストリーミング配信が開始される時刻の情報(図14における属性「availabilityStartTime」の属性値)が含まれるようになっている。
【0006】
MPDデータは、クライアント装置が動画コンテンツの配信を受ける前に、クライアント装置が配信サーバから取得する。クライアント装置は、MPDデータに記載された各メディアセグメントのURLを基に、順次メディアセグメントを取得し、動画コンテンツの再生を行うことができる。また、非特許文献1の技術ではトリック再生を行うことができないが、DASHに準拠したクライアント装置は、MPDデータに取得可能な全てのメディアセグメントの情報が含まれているため、タイムシフト再生や早送り等のトリック再生を行うことができる。
【0007】
ところで、ライブコンテンツには、配信が開始される前から配信終了時刻が確定している音楽番組のようなライブコンテンツと、プロ野球のナイター中継や災害発生時におけるニュース番組のように、配信が開始されてからも配信終了時刻が確定しないライブコンテンツとが存在する。
【0008】
配信サーバは、前者のライブコンテンツを配信する場合には、配信終了時刻(すなわち、全ピリオド)が予め確定しているため、ライブコンテンツを構成する全メディアセグメントのURLを含むMPDデータをクライアント装置に伝送することができる。したがって、クライアント装置は、ライブコンテンツの再生を開始する前に上記MPDデータを1回受信すれば、ライブコンテンツを最後まで再生することができる。
【0009】
一方、配信サーバは、後者のライブコンテンツを配信する場合には、配信終了時刻が確定するまで、最終的に配信されることになる全メディアセグメントのURLを含むMPDデータを生成し、クライアント装置に伝送することができない。したがって、クライアント装置は、配信終了時刻が確定していない時点で受信したMPDデータのみでは、ライブコンテンツを最後まで再生することができない。
【0010】
非特許文献2の技術では、後者のライブコンテンツを配信する場合において、クライアント装置がライブコンテンツを最後まで再生できるように、配信サーバが最新状態に更新されているMPDデータをクライアント装置に定期的に伝送する「MPD Update」と呼ばれる処理が用いられる。なお、「MPD Update」では、タイムシフト再生や早送り等のトリック再生をサポートするか否によって、後述する2種類の処理方法(「更新処理1」、「更新処理2」)が存在する。
〔更新処理1〕
更新処理1では、配信サーバが、MPDデータを更新すべき各時点において前回のMPDデータに対して後続するピリオドの情報を追加し、これにより最新状態に更新されているMPDデータを、クライアント装置に定期的に伝送する。配信サーバのこのような更新処理の具体例について図15を参照して以下に説明する。
【0011】
図15は、配信サーバがクライアント装置に伝送する一部のMPDデータを概略的に例示した図である。図15において、属性「minimumUpdatePeriodMPD」の属性値は、配信サーバがMPDデータを更新する周期を示している。この属性値は、クライアント装置が配信サーバからMPDデータを取得する周期でもあり、図15の例では“10分”である。図15(a)は、配信開始時刻における初期のMPDデータを示している。
【0012】
この例では、配信サーバは、配信開始から10分経過後に、MPDデータに対して開始時間が配信開始20分後である後続のピリオドの情報を1つ追加する最初の更新を行い、その後10分毎に、後続のピリオドの情報を1つ追加する。図15(b)は、配信開始から10分経過後におけるMPDデータを示しており、点線で囲まれた部分は、追加されたピリオドを示している。
【0013】
これに対し、クライアント装置は、ライブコンテンツの再生中、属性「minimumUpdatePeriodMPD」の属性値が示す時間である10分毎に、最新状態のMPDデータを配信サーバから取得するとともに取得したMPDデータに基づいてライブコンテンツの再生を継続する。
【0014】
その後、配信サーバは、配信終了時刻が確定した時点で、残りのピリオドの情報を追加する。図15(c)は、配信終了時刻が確定した時点である配信開始から40分経過後におけるMPDデータを示しており、点線で囲まれた部分は、追加された残りのピリオドを示している。図15(c)に示すように、最終的に確定したMPDデータでは、属性「minimumUpdatePeriodMPD」が削除されている。
【0015】
クライアント装置は、取得したMPDデータに属性「minimumUpdatePeriodMPD」が存在しないことをもって、定期的なMPDデータの取得を終了すべきであると判断する。クライアント装置は、最終的に確定したMPDデータに基づいてライブコンテンツを最後まで再生する。なお、図15(c)を見るとわかるように、最新状態のMPDデータには、常に、最初のピリオドから現在時刻が属するピリオドまでの情報が含まれているため、クライアント装置は、常に、ライブコンテンツの先頭からトリック再生を行うことが可能である。
〔更新処理2〕
更新処理2は、配信サーバが、MPDデータを更新すべき各時点において前回のMPDデータに対して後続するピリオドの情報を追加するとともに最も古いピリオドの情報を削除する処理であり、配信サーバは、これにより最新状態に更新されたMPDデータを、クライアント装置に定期的に伝送する。
【0016】
配信サーバのこのような更新処理2の具体例について図16を参照して以下に説明する。
【0017】
図16は、この「MPD Update」処理において、配信サーバがクライアント装置に伝送する一部のMPDデータを概略的に例示した図である。図16(a)は、配信開始時刻における初期のMPDデータを示している。
【0018】
この例では、配信サーバは、配信開始から10分経過後に、MPDデータに対して開始時間が配信開始20分後である後続のピリオドの情報を1つ追加するとともに開始時間が配信開始時点である最も古いピリオドの情報を削除する最初の更新を行う。図16(b)は、配信開始から10分経過後におけるMPDデータを示している。配信サーバは、その後10分毎に、後続のピリオドの情報を1つ追加するとともにその時点で最も古いピリオドの情報を削除する。そして、配信サーバは、配信終了時刻が確定した時点である40分経過後に、残りのピリオドの情報を追加する。図16(c)は、配信開始から40分経過後におけるMPDデータを示している。
【0019】
クライアント装置は、更新処理2によって更新されたMPDデータを受信する場合も、更新処理1によって更新されたMPDデータを受信する場合と同様にライブコンテンツの再生を行う。なお、図16(c)からわかるように、更新処理2によって更新された最新状態のMPDデータには、常に一定数のピリオドの情報しか含まれていないため、クライアント装置が受信するMPDデータのデータ量は、常に、略一定となる。
【先行技術文献】
【非特許文献】
【0020】
【非特許文献1】“HTTP Live Streaming”、[online]、2011年3月、[2011年6月3日検索]、Apple Inc.、インターネット<http://tools.ietf.org/html/draft-pantos-http-live-streaming-06>
【非特許文献2】“Information technology-MPEG systems technologies - Part6:Dynamic Adaptive streaming over HTTP(DASH)”、[online]、2011年1月28日、[2011年6月3日検索]、ISO/IEC、インターネット<http://www.itscj.ipsj.or.jp/sc29/open/29view/29n11873t.doc>
【発明の概要】
【発明が解決しようとする課題】
【0021】
配信サーバが、定期的に、上記更新処理1によって更新した最新状態のMPDをクライアント装置に伝送する場合には、クライアント装置は、すでに取得済のピリオドに関する情報を何度も受信することになる。また、配信サーバからストリーミング配信されているライブコンテンツを鑑賞しているユーザの多くは鑑賞中に一度もタイムシフト再生機能を使用しないと考えられる。タイムシフト再生を行わない多くのクライアント装置は、そのようなクライアント装置にとっては非常に冗長な情報量を持つMPDデータを受信してしまうことになる。
【0022】
したがって、上記更新処理1によって更新したMPDデータを配信するのは、MPDデータの配信効率が良いとは言えない。
【0023】
一方、配信サーバが、定期的に、上記更新処理2によって更新した最新の状態のMPDデータをクライアント装置に伝送する場合、更新のたびにその時点で最も古いピリオドの情報がMPDデータから削除されてしまうため、クライアント装置は、現在時刻から過去に遡った一定範囲内の再生位置でしかタイムシフト再生を行うことができないという問題がある。
【0024】
本発明は、上記課題に鑑みて成されたものであり、その主な目的は、再生装置が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にするMPDデータ(より一般的にはライブ配信を制御するメタデータ)であって従来よりも配信効率の良い(データ量の小さい)MPDデータ(メタデータ)を生成可能な生成装置および生成方法を実現することにある。
【0025】
また、そのような生成装置によって生成されたMPDデータ(メタデータ)に基づいて、ライブ配信されたコンテンツを再生する再生装置および再生方法を実現すること、および、そのようなMPDデータ(メタデータ)のデータ構造を提供することも本発明の目的の範疇に含まれる。
【課題を解決するための手段】
【0026】
本発明に係る生成装置は、複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成手段と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについて、その所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成手段と、を備えていることを特徴としている。ここで、上記第2の生成手段は、過去に生成した第2のメタデータを編集することによって第2のメタデータを生成してもよいし、過去に生成した第2のメタデータとは独立に第2のメタデータを生成してもよい。
【0027】
上記の構成によれば、本発明に係る生成装置が生成する第2のメタデータには、現在配信されている時分割データの所在を示す第1の資源位置指定子が含まれている。また、上記第2のメタデータには、過去に配信された上記複数の時分割データの各々について、当該時分割データの所在を示す第1の資源位置指定子が含まれているか、あるいは、当該時分割データの所在を示す第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子が含まれている。そして、第2のメタデータを取得した上記再生装置は、現在配信され、あるいは、過去に配信された、任意の時分割データの所在を特定することができる。
【0028】
したがって、本発明に係る生成装置は、ライブコンテンツをライブ再生している再生装置が任意の位置でトリック再生することができるような第2のメタデータを生成することになる。
【0029】
また、一般的に、第2の資源位置指定子のデータサイズは、第2の資源位置指定子により所在が示される第1のメタデータに含まれる各第1の資源位置指定子のデータサイズの総和よりも小さいことは明らかであるので、現在配信され、または、過去に配信された上記複数の時分割データの各々について当該時分割データの第1の資源位置指定子を含むような、従来の装置が生成するメタデータよりも、上記第2のメタデータのデータサイズは小さくなる。さらに、トリック再生を行わない再生装置は、過去に配信された時分割データを取得しないので第1のメタデータを取得することはない。
【0030】
したがって、トリック再生を行わない再生装置にとっては従来よりもメタデータの配信効率が良くなる。
【0031】
以上のことから、本発明に係る生成装置は、再生装置が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にする、ライブ配信されるコンテンツデータに関するメタデータであって従来よりも配信効率の良いメタデータを生成することができる。
【0032】
本発明に係る生成方法は、複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置の生成方法において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成工程と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成工程と、からなる生成工程を繰り返すことを特徴としている。
【0033】
上記の構成によれば、本発明に係る生成方法は、本発明に係る生成装置と同様の作用効果を奏する。
【0034】
なお、上記ライブ配信で用いるメタデータのデータフォーマットおよびメディアセグメントのデータフォーマットは、DASH(Dynamic Adaptive Streaming over HTTP)に準拠したデータフォーマットであり、上記時分割データはメディアセグメントであり、上記第1のメタデータはリモートオブジェクトであって上記第2のメタデータは上記コンテンツデータに関するMPDデータであり、上記第1の資源位置指定子は上記メディアセグメントのURLであって上記第2の資源位置指定子は上記リモートオブジェクトのURLである、ことが望ましい。また、上記コンテンツデータと上記コンテンツデータに関するメタデータとを上記再生装置に配信する配信サーバであって上記生成装置としても機能する配信サーバとして本発明を実現することが望ましい。
【0035】
本発明に係る生成装置は、上記コンテンツデータが、配信開始時刻には配信終了時刻が確定していないコンテンツデータであり、上記第2の生成手段が、上記配信終了時刻が確定した後に上記第2のメタデータを生成する場合には、上記第2のメタデータとして、上記配信開始時刻から上記配信終了時刻までに配信される全時分割データについて上記メタ情報を含むような第2のメタデータを生成することが望ましい。
【0036】
上記の構成によれば、本発明に係る生成装置は、再生装置に配信開始時刻には配信終了時刻が確定していないコンテンツデータを最後まで再生させることができるようなメタデータを生成することができるというさらなる効果を奏する。
【0037】
さらに、本発明に係る生成装置では、上記過去の所定の期間が、上記第2の生成手段が上記第2のメタデータを生成する時点を含む一定期間よりも過去の全期間であることが望ましい。
【0038】
上記の構成によれば、本発明に係る生成装置が繰り返し生成する第2のメタデータには、生成された時点を含む上記一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す第1の資源位置指定子が含まれることになる。換言すれば、本発明に係る生成装置が生成する第2のメタデータのデータサイズは生成の度にそれほど大きく増えるわけではないと言える。
【0039】
したがって、本発明に係る生成装置は、より配信効率の良いメタデータを生成することができるというさらなる効果を奏する。
【0040】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むような、第1のメタデータを取得する第1の取得手段と、上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を含んでいる第2のメタデータを取得する第2の取得手段と、上記第2のメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、上記再生手段が、取得すべき時分割データの第1の資源位置指定子が上記第2のメタデータに含まれていない場合には、第2の資源位置指定子を参照して当該第1の資源位置指定子を含む第1のメタデータを取得するとともに当該第1の資源位置指定子を参照して当該時分割データを取得する、ことを特徴としている。
【0041】
上記の構成によれば、本発明に係る再生装置が取得する第1のメタデータおよび第2のメタデータは、それぞれ、本発明に係る生成装置が生成する第1のメタデータおよび第2のメタデータと同じものである。また、上記再生装置は、ライブ再生の指示を受け付けた時点で再生のために取得すべき時分割データを第2の資源位置指定子を参照することにより取得することができ、トリック再生の指示を受け付けた時点で再生のために取得すべき時分割データを、第1の資源位置指定子および第2の資源位置指定子のいずれかを参照することにより取得することができる。
【0042】
したがって、本発明に係る再生装置は、本発明に係る生成装置によって生成されたメタデータに基づいて、ライブ配信されたコンテンツを再生することができる。
【0043】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得手段と、上記取得手段がメタデータを取得する度に当該メタデータから新たなメタデータを生成する生成手段と、上記生成手段が直前に生成した新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、上記生成手段が、当該生成手段が直前に生成したメタデータおよび上記取得手段が新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する、ことを特徴としている。
【0044】
上記の構成によれば、本発明に係る再生装置は、過去に取得したメタデータに含まれていたすべての資源位置指定子を含むようなメタデータを新たなメタデータとして生成する。
【0045】
したがって、本発明に係る再生装置は、配信開始時点からコンテンツデータの再生を開始していれば、現在配信され、または、過去に配信されたすべてのメディアセグメントについてその所在を示す資源位置指定子を含むようなメタデータを生成するので、当該メタデータに基づいてライブコンテンツのライブ再生および任意の再生位置でのトリック再生を行うことができる。
【0046】
また、本発明に係る再生装置が取得するメタデータは、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含んでいる。
【0047】
したがって、本発明に係る再生装置は、ライブコンテンツのライブ再生および任意の再生位置でのトリック再生を行うために取得すべきメタデータを従来よりも効率良く取得することができる。
【0048】
本発明に係る再生装置は、上記課題を解決するために、配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置の再生方法において、ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得工程と、上記取得工程にてメタデータが取得される度に当該メタデータから新たなメタデータを生成する生成工程と、直前の上記生成工程にて生成された新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生工程と、を含み、上記生成工程は、当該生成工程の直前の生成工程にて生成されたメタデータおよび上記取得工程にて新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する工程であることを特徴としている。
【0049】
上記の構成によれば、本発明に係る再生方法は、本発明に係る再生装置と同様の作用効果を奏する。
【0050】
なお、上記ライブ配信で用いられる上記時分割データはDASH(Dynamic Adaptive Streaming over HTTP)に準拠したメディアセグメントである、ことが望ましい。
【0051】
本発明に係る生成装置と再生装置とを含む再生システムも本発明の範疇に含まれる。
【0052】
また、本発明に係る生成装置または再生装置としてコンピュータを動作させるプログラムであって、コンピュータを上記生成装置または上記再生装置の各手段として機能させることを特徴とするプログラム、および、そのようなプログラムを記録した、コンピュータが読み取り可能な記録媒体も本発明の範疇に含まれる。
【0053】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータのデータ構造において、上記メタデータに含まれる、所定の期間における時分割データ群の所在を特定するためのメタ情報のデータ構造が、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むようなメタデータの所在を示す第2の資源位置指定子を上記メタ情報として含む第1のデータ構造、および、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を上記メタ情報として含む第2のデータ構造のうち、上記コンテンツデータのライブ配信が開始されてからの経過時間に応じて選択されたデータ構造となっていることを特徴とするメタデータのデータ構造に係る発明も本発明の範疇に含まれる。
【発明の効果】
【0054】
以上のように、本発明の生成装置および生成方法は、再生装置が任意の再生位置でトリック再生することを可能にする、ライブ配信されるコンテンツデータに関するメタデータであって従来よりも配信効率の良いメタデータを生成することができる。
【0055】
また、本発明の再生装置および再生方法は、本発明の生成装置によって生成されたMPDデータに基づいてライブコンテンツを再生することができる。
【図面の簡単な説明】
【0056】
【図1】本発明の実施形態に係るクライアント装置および配信サーバの構成を示した図である。
【図2】本発明の実施形態に係る配信システムの全体構成を示した図である。
【図3】図1のクライアント装置が参照するMPD(Media Presentation Description)データの一例を概略的に示した図である。
【図4】図1の配信サーバが備えるメタデータ作成部が定期的にMPDデータを更新する動作の一実施形態を示すフローチャートである。
【図5】図1のクライアント装置が参照するリモートオブジェクトの一例を概略的に示した図である。
【図6】図1のクライアント装置が映像の再生を開始するまでの動作の一実施形態を示すフローチャートである。
【図7】本発明の別の一実施形態に係るクライアント装置および配信サーバの構成を示した図である。
【図8】本発明の別の一実施形態に係る配信システムの全体構成を示した図である。
【図9】図7の配信サーバが図7のクライアント装置に配信するMPDデータおよび図7のクライアント装置が生成するMPDデータの一例を概略的に示した図である。
【図10】図7の配信サーバが備えるメタデータ作成部が定期的にMPDデータを更新する動作の一実施形態を示すフローチャートである。
【図11】図7のクライアント装置が映像の再生を開始するまでの動作の一実施形態を示すフローチャートである。
【図12】図11のフローチャートにおける1ステップについてより詳細な処理の流れに示したフローチャートである。
【図13】図7の配信サーバが映像コンテンツのMPDデータを更新するタイミングと、その映像コンテンツの各ピリオドと、クライアント装置がMPDデータを取得するタイミングと、クライアント装置が各ピリオドの映像を再生する期間と、の時間的関係を模式的に示した図である。
【図14】MPDデータの一例を概略的に示した図である。
【図15】従来技術を示すものであり、MPD Updateにより更新されるMPDデータの一例を概略的に示した図である。
【図16】従来技術を示すものであり、MPD Updateにより更新されるMPDデータの別の一例を概略的に示した図である。
【図17】MPD初期データの一例を示した図である。
【図18】図7のクライアント装置が参照するMPDデータの一例を概略的に示した図である。
【発明を実施するための形態】
【0057】
〔実施形態1〕
本発明の一実施形態に係る配信システムは、配信開始時点では配信終了時刻が確定しないスポーツ中継のような映像コンテンツをクライアント装置にライブストリーミング配信する配信システムである。なお、当該システムでは、メタデータおよびメディアセグメントに前述のDASH規定のデータフォーマットを用いる。
【0058】
本実施形態に係る配信システムについて図1〜図6を参照しながら説明する。
【0059】
図1は、本実施形態に係るクライアント装置および配信サーバの全体構成を示した図であり、図2は、本実施形態に係る配信システム1の全体構成を示した図である。
【0060】
図2に示すように、配信システム1は、クライアント装置100と配信サーバ300とネットワークストレージサーバ(NAS)400とを含むシステムである。また、クライアント装置100および配信サーバ300は、インターネットNWに接続している。
【0061】
以下、クライアント装置100、配信サーバ300、およびNAS400について説明する。
(クライアント装置100)
図1に示すように、クライアント装置100は、ストリーミング制御部110、再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160を備えている。
【0062】
クライアント装置100は、操作部160を介して映像コンテンツの再生指示をユーザから受け付けると、そのライブ再生すべき映像コンテンツ(以下では、再生指示を受け付けた映像コンテンツを「対象映像コンテンツ」とも称する)を、配信サーバ300からメディアセグメント(映像コンテンツの符号化データを一定時間ごとに分割して得られる各単位、以下、「MS」とも称する)単位で受信して再生する。
【0063】
具体的には、クライアント装置100は、再生指示を受け付けた時点で対象映像コンテンツに関するMPDデータ(第2のメタデータ)を配信サーバ300から受信することにより、対象映像コンテンツを再生するために受信すべきMSのURL(第1の資源位置指定子)を特定し、配信開始時刻になると、URLで指定される配信サーバ300からMSを受信して対象映像コンテンツの再生を開始する。また、クライアント装置100は、対象映像コンテンツの再生中にも定期的に配信サーバ300からMPDデータを取得する。そして、クライアント装置100は、対象映像コンテンツの再生中は常に、最後に取得したMPDデータに基づいて、対象映像コンテンツの再生を継続するのに必要なMSを受信する。
(ストリーミング制御部110)
ストリーミング制御部110は、配信サーバ300から定期的にその時点で最新状態のMPDデータを取得する。
【0064】
ストリーミング制御部110は、最新状態のMPDデータおよび必要に応じて後述するリモートオブジェクトを参照することにより、対象映像コンテンツのうち再生対象となる部分を構成する各MSの配信開始時刻を特定する。MPDデータにおける各MSの配信開始時刻は、ライブ再生時における当該MSの再生開始時刻も示していることから、ストリーミング制御部110は、現在時刻(ライブ再生の場合)またはユーザ操作による指定時刻(トリック再生の場合)と各MSについて特定した配信開始時刻とから、再生すべきMSのURLを特定し、そのMSを受信するためのHTTP要求を配信サーバ300に送信する。
【0065】
ストリーミング制御部110は、配信サーバ300から受信したMSを記憶部130にバッファリングする。
(再生部120)
再生部120は、再生すべき時刻の早い順に、記憶部130にバッファリングされているMSを読み出してデコードおよび再生を行うことにより、対象映像コンテンツを表示部150に表示する。
(記憶部130)
記憶部130は、対象映像コンテンツを構成する各MSをバッファリングし、対象映像コンテンツに関するMPDデータを記憶するための記録媒体である。
(ネットワークI/F140)
ネットワークI/F140は、サーバ300との間でデータの送受信を行う。
(表示部150)
表示部150は、対象映像コンテンツを表示するディスプレイである。
(操作部160)
操作部160は、クライアント装置100に対する指示をユーザが行うための操作パネルである。
(配信サーバ300)
配信サーバ300は、配信部310と、メタデータ作成部320と、パラメータ制御部330と、を備えている。
【0066】
映像コンテンツの配信開始時刻になると、対象映像コンテンツを構成する映像をMS単位で順次、ライブエンコーダ(図示せず)がエンコードし、NAS400に記録する。これと並行して、メタデータ作成部320は、その映像コンテンツのMPDデータを繰り返し(本実施形態では10分毎に)生成し、最新状態に更新するとともに後述するリモートオブジェクト(第1のメタデータ)を生成する。
【0067】
パラメータ制御部330は、配信サービス事業者の担当者の指示内容に基づいて、メタデータ作成部320がMPDデータを生成するために参照する各種パラメータを制御する。
【0068】
また、配信部310は、クライアント装置100からMPDデータの要求を受けると、NAS400に記録されているその時点で最新の状態のMPDデータをクライアント装置100に送信する。そして、配信サーバ300は、クライアント装置100からMSのHTTP要求を受けると、NAS400に記録された該MSをクライアント装置100に配信する。
(NAS400)
NAS400は、映像コンテンツを構成する各MS、映像コンテンツに関するMPDデータ、および後述するリモートオブジェクトを保持するネットワークストレージである。
(MPDデータについて)
次に、上述したMPDデータについて図3を参照しながら以下に説明する。図3は、NAS400が保持しており、クライアント装置100が受信すべきMSを特定するために参照するMPDデータの一部を概略的に例示した図である。なお、図3におけるピリオドの開始タグと終了タグとの間に囲まれた範囲の「…」の表記は、当該部分に非特許文献2に記載されているようなグループ、リプレゼンテーション、MS等に関する情報が含まれていることを意味している。すなわち、「…」の部分には相当なバイトサイズのデータが含まれている。
【0069】
図3(a)は、配信開始時刻における初期のMPDデータを示している。また、図3(b)は、配信終了時刻が確定する前である配信開始10分経過後におけるMPDデータを示しており、図3(c)は、配信終了時刻が確定した時点である配信開始40分経過後におけるMPDデータを示している。
【0070】
図3(b)および図3(c)を見るとわかるように、更新後のMPDデータの要素「Period」には、属性値がリモートオブジェクトの所在を示すURL(第2の資源位置指定子)である属性「href」を含んでいるもの(図中において点線の枠で囲まれた部分。以下では、そのような要素「Period」を「外部参照ピリオド」とも称することにする)とそのような属性「href」を含んでおらず、要素値に当該ピリオドを構成するMSの所在を示すURL(第1の資源位置指定子)を含むもの(以下では、そのような要素「Period」を「通常ピリオド」とも称することにする)と、が存在することがわかる。また、外部参照ピリオド(第1のデータ構造)の要素値は空であり、通常ピリオド(第2のデータ構造)に比べ、当該ピリオドに関する情報のデータサイズは非常に小さくなっていることがわかる。
(MPDデータの生成動作について)
次に、メタデータ作成部320が、MPDデータの各更新時において、最新状態のMPDデータを生成する動作について図3〜図5および図17を参照しながら説明する。
【0071】
図4は、メタデータ作成部320の上記動作を示すフローチャート図である。なお、図4の動作フロー開始にあたり、メタデータ作成部320には、パラメータ制御部330から以下のパラメータが入力されるものとする。
update:当該MPDデータの次回更新が必要であれば「true」であり、対象映像コンテンツの配信終了時刻が確定しており、次回更新の必要がなければ「false」である。なお当該パラメータは、例えば、図示しない操作部を介して配信サービス事業者の担当者から配信終了時刻が確定した旨を示す情報を受け取り済みの場合に、falseに設定される。
Dp:1つのピリオドに属する対象映像コンテンツの再生時間(1つのピリオドに含められるMSの総再生時間)。図3のMPDデータを生成する場合、「10分」である。
Ta:対象映像コンテンツの配信開始時刻(対象映像コンテンツのライブ再生開始時刻)。
Tc:当該MPDデータ生成時刻(現在時刻)。
Te:当該MPDデータに含める必要のあるピリオドを決定するための閾値。
【0072】
最初に、図17に示すような、MPD更新により変化しない共通要素のみからなるMPD初期ドキュメントを作成する(S1)。
【0073】
次に、S2において、対象映像コンテンツの配信終了時刻が確定しているか否かを判定する。対象映像コンテンツの配信終了時刻が確定していないと判定した場合には(S2においてYES)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加する(S3)。例えば、メタデータ作成部320は、対象映像コンテンツの配信開始10分経過後に図3(b)のようなMPDデータを作成する場合、その時点では配信終了時刻が確定してないため、属性「minimumUpdatePeriodMPD」を追加し、MPDデータの更新間隔Dpにあたる属性値「PT10M」を設定する。
【0074】
一方、対象映像コンテンツの配信終了時刻が確定したと判定した場合には(S2においてNO)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加せずに、S4に進む。例えば、対象映像コンテンツの配信終了時刻が確定した配信開始40分経過後にMPDデータを更新する際には、図3(c)に示すように更新後のMPDデータにおいて要素「MPD」に属性「minimumUpdatePeriodMPD」は含まれないことになる。
【0075】
S4において、処理対象時刻変数TをTaに初期化するとともに、処理対象ピリオドが対象映像コンテンツの先頭から何番目のピリオドであるかを示す変数Nを1に初期化する。
【0076】
S5において、N番目のピリオドに関する情報を通常のピリオドとして生成し、S6に進む。S6において、メタデータ作成部320は、T<Tcが成立するか否かを判定する。メタデータ作成部320がT<Tcが成立しないと判定した場合(S6においてNO)、S9に進む。
【0077】
一方、T<Tcが成立すると判定した場合(S6においてYES)、S5で生成した通常ピリオドをリモートオブジェクトとしてNAS400に出力し(S7)、S8に進む。なお、N番目のピリオドのリモートオブジェクトは、図5に示す例のように、MPDデータや他のリモートオブジェクトとは別にNAS400に記録される。本動作例では、N番目のピリオドのリモートオブジェクトは、ファイル名が「pN.xml」(Nは数値であり、例えば、N=1の場合「p1.xml」である。以下「pN.xml」の記載を同様の意味で用いる)であるXMLファイルとして記録される。
【0078】
S8において、S7で生成したリモートオブジェクトを参照する外部参照ピリオドを生成し、S9に進む。
【0079】
S9において、N番目のピリオドに関して直近で生成したピリオド情報(直前のステップがS8である場合にはS8において生成した外部参照ピリオドであり、直前のステップがS6である場合にはS5で生成した通常ピリオド)を、生成すべきMPDデータの一部として追加する。
【0080】
S10において、次のピリオドの処理のため、変数TにDpの値を加算するとともに、変数Nに1を加算し、S11に進む。
【0081】
S11において、T<Teが成立するか否かを判定する。T<Teが成立すると判定した場合(S11においてYES)、未処理のピリオドについてピリオド情報を生成するため、S5に戻る。一方、T<Teが成立しないと判定した場合(S11においてNO)、当該MPDデータに記載する必要のあるピリオド情報の生成が完了し、S12に進む。
【0082】
S12において、S1〜S11までの処理によって作成したMPDデータ(すなわち、更新により最新状態となったMPDデータ)をNAS400に記録し、処理を終了する。なお、クライアント装置100から要求されたタイミングに応じて、最新の状態に更新されたMPDデータがNAS400から読み出され配信部310により配信される。
【0083】
以上、メタデータ作成部320が行うMPDデータの更新処理動作について説明したが、以上の更新処理動作により、対象映像コンテンツの配信終了時刻が確定した後に更新されたMPDデータには、対象映像コンテンツを構成するすべてのピリオドについて、外部参照ピリオドまたは通常ピリオドが含まれることになる。したがって、配信サーバ300は、クライアント装置100から要求されたタイミングが配信終了時刻確定後におけるMPDデータの更新後である場合には、対象映像コンテンツを構成するすべてのピリオドのピリオド情報を含むMPDデータをNAS400から読み出して配信することになる。
【0084】
なお、MPDデータを生成する際、MPDの更新間隔をピリオドの再生時間Dpとすることで、TcをN番目のピリオドの再生開始時刻と一致させることができ、外部参照ピリオドとして生成される1〜N−1番目のピリオドだけでなく、通常ピリオドとして生成さるN番目のピリオド以降にもライブ再生に不要なMSのURLは一切含まれない。また、閾値Teを、Updateがtrueの場合には、Te=Tc+2Dpとし、,Updateがfalseの場合には、Te=「当該映像コンテンツの配信終了時刻」とすることで、当該MPDデータには、任意のクライアント装置100が最新のMPDデータを取得した時点から、次回MPDデータの取得までの期間(つまり属性「minimumUpdatePeriodMPD」で示される期間)にライブ配信およびライブ再生されるMSのURLのみを含めることができる。言い換えれば、ライブ再生を行うのに必要な最小限の通常ピリオドを含む配信効率の高いMPDデータを生成することができる。
【0085】
以下では、操作部160を介して再生指示を受け付けたクライアント装置100が、配信サーバ300が配信する対象映像コンテンツを再生するための動作について、図3、図5および図6を参照しながら説明する。
【0086】
図6は、クライアント装置100の上記動作を示すフローチャート図である。なお、図6において、Tsは、操作部160を介したユーザ操作による再生指示によって決定される再生開始位置を示す入力パラメータである。Tsは、再生指示がライブ再生の場合においては現在時刻を示しており、再生指示がトリック再生の場合においては、再生指示に基づく指定時刻を示している。
【0087】
また、Dpは、ピリオドに属する対象映像コンテンツの再生時間(MPDデータの要素「Period」における属性「duration」の属性値として、あるいは、連続する2つの要素「Period」における各属性「start」の属性値の差として得られる)を示しており、Dsは1つのMSが継続して再生される期間(MPDデータの要素「SegmentInfo」における属性「duration」の属性値として得られる)を示している。
【0088】
最初に、ストリーミング制御部110は、再生処理開始に先立ち、処理対象時刻を表す変数TをTsで初期化し、処理対象を示す変数Nを1で初期化する(S21)。
【0089】
S22において、ストリーミング制御部110は、配信サーバ300にMPDデータを要求し、配信サーバ300からMPDデータを受信し、記憶部130に記憶する。S23において、ストリーミング制御部110は、S22で受信され、記憶部130に記憶されたMPDデータの内容を読み出し、S24に進む。
【0090】
S24において、ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在するか否かを判定する。
【0091】
ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在すると判定した場合(S24においてYES)、次回MPDデータを配信サーバ300から取得する時刻を示す変数Tuに変数Tと属性「minimumUpdatePeriodMPD」の属性値との和を代入し(S25)、S27に進む。
【0092】
一方、ストリーミング制御部110は、読み出したMPDデータの中に属性「minimumUpdatePeriodMPD」が存在しないと判定した場合(S24においてYES)、以降MPDデータの更新は不要であるため、変数Tuに、対象映像コンテンツの配信終了時刻以降を示す十分に大きい値(例えば、変数Tが示す時刻の1ヶ月後を示すような値)を設定し(S26)、S27に進む。
【0093】
S27において、ストリーミング制御部110は、N番目のピリオドが再生対象であるか否かを判定する。具体的には、N番目のピリオドの配信開始時刻(およびライブ再生開始時刻)を示す属性「start」の属性値TNを用いて、TN≦T<TN+Dpが成立するか否かを判定する。成立しないと判定した場合、当該ピリオドは再生処理対象外であると判断し(S27においてNO)、ストリーミング制御部110はNに1を加算することで再生処理対象ピリオドを次のピリオドへ切り替え(S28)、S27に戻る。
【0094】
一方、TN≦T<TN+Dpが成立すると判定した場合、当該ピリオドを再生処理対象であると判断し(S27においてYES)、N番目のピリオドについて、属性「href」の有無で、外部参照ピリオドであるか、あるいは、通常ピリオドであるかを判定する(S29)。
【0095】
通常ピリオドと判定された場合(S29においてNO)、S32に進む。一方、外部参照ピリオドと判定された場合(S29においてYES)、ストリーミング制御部110は、N番目のピリオドである外部参照ピリオドにおける属性「href」の属性値を参照することにより、リモートオブジェクトであるXMLファイルpN.xmlを配信サーバ300から受信する(S30)
S30の後、ストリーミング制御部110は、受信したリモートオブジェクトpN.xmlの内容を読み出し(S31)、S32に進む。なお、前述したように、pN.xmlの内容は、N番目のピリオドを示す通常ピリオドである。すなわち、N番目のピリオドに属する各MS(時分割データ群を構成する各時分割データ)の所在を示すURL(第1の資源位置指定子)が含まれている。したがって、クライアント装置100は、pN.xmlに基づいてN番目のピリオドの再生を行うことができる。
【0096】
S32において、ストリーミング制御部110は、当該ピリオドにおける処理対象MSを示す変数Mを1に初期化し(S32)、S33に進む。
【0097】
S33において、ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立するか否かを判定する。ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立すると判定した場合(S33においてYES)、当該MSは再生処理ではないと判断し、Mに1を加算し(S34)、S33に戻る。
【0098】
一方、ストリーミング制御部110は、TN+(M−1)×Ds<Tが成立しないと判定した場合(S33においてNO)、クライアント装置100は、当該MS(N番目のピリオドにおけるM番目のMS)を再生処理対象と判断して再生する(S35)。
【0099】
具体的には、ストリーミング制御部110は、S23で読み出したMPDデータまたはS31にて読み出したリモートオブジェクトに含まれているN番目のピリオドの通常ピリオドを参照したM番目のMSのURLを特定し、特定したURLにアクセスすることによりM番目のMSを受信して記憶部130にバッファリングする。そして、再生部120は、記憶部130にバッファリングされたM番目のMSを再生する。
【0100】
S35の後、ストリーミング制御部110は、処理対象時刻変数Tに、S35で再生されたMSの再生時間に相当するDsの値を加算すると共に、変数Mに1を加算することによって処理対象MSを更新し(S36)、S37に進む。
【0101】
S37において、ストリーミング制御部110は、T<Tuが成立するか否かを判定する。ストリーミング制御部110は、T<Tuが成立しない(すなわち、MPDデータを再度取得すべき時刻になった)と判定した場合(S37においてNO)、S22に戻る。
【0102】
一方、ストリーミング制御部110は、T<Tuが成立すると判定した場合(S37においてYES)、当該ピリオドに再生対象MSが存在するかを判定するため、T<TN+Dpが成立するか否かを判定する(S38)。
【0103】
ストリーミング制御部110は、T<TN+Dpが成立すると判定した場合(S38においてYES)、S35の処理に戻る一方、T<TN+Dpが成立しない(すなわち、次のピリオドのMSを再生すべき時刻となった)と判定した場合(S38においてNO)、変数Nに1を加算する(S39)。
【0104】
S39の後、ストリーミング制御部110は、S23にて読み出したMPDデータの中に、N番目のピリオドが含まれているか否かを判定する(S40)。ストリーミング制御部110は、含まれていると判定した場合(S40においてYES)にはS29に戻る一方、含まれていないと判定した場合(S40においてNO)には処理を終了する。
【0105】
(配信システム1の利点)
以上のように、配信システム1の配信サーバ300は、ライブ再生を行うクライアント装置100が取得すべきMSの所在を特定するためのメタ情報を含んでいるMPDデータを、対象映像コンテンツがライブ配信されている間に繰り返し生成する。
【0106】
配信サーバ300のメタデータ作成部320は、過去のピリオド(過去の所定の期間中に配信され、ライブ再生が終了したピリオド)に属する各MSについて当該MSのURL(時分割データの所在を示す第1の資源位置指定子)を含むリモートオブジェクト(第1のメタデータ)を生成する。
【0107】
また、メタデータ作成部320は、上記複数のMSのうち、過去のピリオドに属する各MSについては当該MSのURLを含むリモートオブジェクトの所在を示すURL(第2の資源位置指定子)を上記メタ情報として含み、その他のピリオドに属する各MSについては当該MSのURLを上記メタ情報として含んでいるMPDデータ(第2のメタデータ)を生成する。
【0108】
また、配信システム1のクライアント装置100では、ストリーミング制御部110が、MPDデータを取得する。取得したMPDデータには、ライブ再生に必要なピリオドに属する各MSについては、当該MSのURLが含まれており、過去のピリオドについては、取得すべきMSのURLが含まれるリモートオブジェクトのURLが含まれており、タイムシフト再生のように過去のピリオドに含まれるMSの再生が必要となる場合には、ストリーミング制御部110が当該リモートオブジェクトを取得する。
【0109】
そして、再生部120は、取得したMPDデータに基づいて、配信サーバ300からMSを順次取得するとともに再生する。取得すべきMSのURLがMPDデータに含まれていない場合には、ストリーミング制御部110がMPDデータに記載されているリモートオブジェクトの所在を示すURLを参照して当該リモートオブジェクトを取得した後、当該リモートオブジェクトに記載されているURLを参照して取得すべきMSを受信し、再生部120が再生する。
【0110】
上記の構成により、配信システム1の配信サーバ300は、クライアント装置100が任意の再生位置でライブコンテンツのトリック再生を行うことを可能にするようなMPDデータであって従来よりも配信効率の良いMPDデータを生成することができる。
【0111】
また、クライアント装置100は、そのようなMPDデータを参照することにより、対象映像コンテンツのライブ再生および任意の再生開始位置からのトリック再生を行うことができる。
【0112】
〔実施形態2〕
本発明の別の一実施形態に係る配信システムについて図7〜図12を参照しながら説明する。
【0113】
本実施形態に係る配信システムでは、配信サーバが、定期的に、古いMPDデータを、ライブ再生に不要なピリオドに関する情報を含まないようなMPDデータ(ライブ再生に必要十分な最低限のピリオドに関する情報を持つMPDデータ)に更新するとともに、更新後のMPDデータをクライアント装置に送信する点で実施形態1の配信サーバ300とは異なっている。また、本実施形態に係る配信システムでは、クライアント装置が、配信サーバから新たに取得したMPDデータと既に配信サーバから取得済または合成済のMPDデータとを合成することにより、対象映像コンテンツの再生を完了するために必要なMPDデータを獲得する点で、実施形態1のクライアント装置100とは異なっている。
【0114】
最初に、本実施形態に係る配信システム1’の構成について図7および図8を参照しながら説明する。
【0115】
図7は、本実施形態に係るクライアント装置および配信サーバの全体構成を示した図であり、図8は、本実施形態に係る配信システム1’の全体構成を示した図である。また、図9は、配信サーバの各更新時における更新処理後のMPDデータと、クライアント装置によるMPDデータの各取得後における合成処理により獲得されるMPDデータと、を例示している。
【0116】
図8に示すように、配信システム1’は、クライアント装置100’と配信サーバ300’とネットワークストレージサーバ(NAS)400とを含むシステムである。また、クライアント装置100’および配信サーバ300’は、インターネットNWに接続している。
【0117】
以下、クライアント装置100’および配信サーバ300’について説明するが、NAS400については実施形態1に係るNAS400と同一であるので、その説明を省略する。
(クライアント装置100’)
図1に示すように、クライアント装置100’は、ストリーミング制御部110’、再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160を備えている。再生部120、記憶部130、ネットワークI/F140、表示部150、および操作部160については実施形態1と同一であるので、ストリーミング制御部110’について以下に説明する。
(ストリーミング制御部110’)
ストリーミング制御部110’は、配信サーバ300’によって定期的に更新されるMPDデータを定期的に配信サーバ300’から取得し、既に配信サーバ300から取得済または合成済のMPDデータと合成することにより、対象映像コンテンツに関する最新状態のMPDデータを生成する。
【0118】
ストリーミング制御部110’は、最新状態のMPDデータを参照することにより、対象映像コンテンツのうち再生対象となる部分を構成する各MSを配信サーバ300’が配信する(または、配信した)配信時刻を特定する。MPDデータにおける各MSの配信開始時刻は、ライブ再生時における当該MSの再生開始時刻も示していることから、ストリーミング制御部110’は、現在時刻(ライブ再生の場合)またはユーザ操作による指定時刻(トリック再生の場合)と各MSについて特定した配信時刻とから、再生すべきMSのURLを特定し、そのMSを受信するためのHTTP要求を配信サーバ300’に送信する。
【0119】
ストリーミング制御部110は、配信サーバから受信したそのMSを記憶部130にバッファリングする。
(配信サーバ300’)
配信サーバ300’は、配信部310と、メタデータ作成部320’と、パラメータ制御部330と、を備えている。配信部310およびパラメータ制御部330は、それぞれ、実施形態1の配信部310およびパラメータ制御部330と同一であるので、その説明を省略する。
【0120】
メタデータ作成部320’は、その映像コンテンツのMPDデータを繰り返し(本実施形態では10分毎に)更新する。具体的には、メタデータ作成部320’は、各更新時において、ピリオドに関する情報としてはクライアント装置100’がライブ再生を行うのに必要な最小限のピリオド情報(通常ピリオド)のみを含むようにMPDデータを更新する。
【0121】
以上、本実施形態に係る配信システム1’の構成について説明した。
【0122】
以下では、本実施形態に係るクライアント装置100’および配信サーバ300’の各動作について図9〜図12を参照しながら説明する。
【0123】
最初に、配信サーバ300’におけるメタデータ作成部320’が、MPDデータの各更新時において、古いMPDデータを、新しいMPDデータ(すなわち、クライアント装置100’がライブ再生を行うのに必要な最小限のピリオド情報のみを含むMPDデータ)に更新する動作について図9および図10を参照しながら説明する。
【0124】
図9は、NAS400およびクライアント装置100’の記憶部130が保持するMPDデータの一部を概略的に例示した図である。なお、図9における「…」の表記は、図3における「…」の表記と同様に意味を持っている。
【0125】
また、図9の左上段のMPDデータ5aは、配信開始時刻にNAS400に保持されている初期のMPDデータを示している。また、図9の左中段のMPDデータ5bは、配信終了時刻が確定する前である配信開始10分経過後にNAS400に保持されるMPDデータを示しており、左下段のMPDデータ5cは、配信終了時刻が確定した時点である配信開始40分経過後にNAS400に保持されるMPDデータを示している。
【0126】
さらに、図9の右上段のMPDデータ5a、右中段のMPDデータ5d、右下段のMPDデータ5eは、それぞれ、クライアント装置100’が対応する左段のMPDデータを配信サーバ300’から取得し、必要に応じて合成処理を行った結果として記憶部130に記録される、その時点で最新状態のMPDデータを示している。
【0127】
図10は、メタデータ作成部320’の上記動作を示すフローチャート図である。なお、図10における「Period#N」、Dp、Tc、TaおよびTeは、図4のフローチャート図と同様の意味を持っている。
【0128】
最初に、図17に示すような、MPD更新により変化しない共通要素のみからなるMPD初期ドキュメントを作成する(S41)。
【0129】
次に、S42において、対象映像コンテンツの配信終了時刻が確定しているか否かを判定する。
【0130】
対象映像コンテンツの配信終了時刻が確定していないと判定した場合には(S42においてYES)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加する(S43)。例えば、メタデータ作成部320’は、対象映像コンテンツの配信開始10分経過後に図9(b)のようなMPDデータを作成する場合、その時点では配信終了時刻が確定してないため、属性「minimumUpdatePeriodMPD」を追加し、MPDデータの更新間隔Dpにあたる属性値「PT10M」を設定する。
【0131】
一方、対象映像コンテンツの配信終了時刻が確定したと判定した場合には(S42においてNO)、要素「MPD」に属性「minimumUpdatePeriodMPD」を追加せずに、S44に進む。例えば、対象映像コンテンツの配信終了時刻が確定した配信開始40分経過後にMPDデータを更新する際には、図9(c)に示すように更新後のMPDデータにおいて要素「MPD」に属性「minimumUpdatePeriodMPD」は含まれないことになる。
【0132】
S44において、処理対象時刻変数TをTaに初期化するとともに、処理対象ピリオドが対象映像コンテンツの先頭から何番目のピリオドであるかを示す変数Nを1に初期化し、S45に進む。
【0133】
S45において、T<Tcが成立するか否かを判定する。T<Tcが成立すると判定された場合(S45においてYES)、S48に進む。
【0134】
一方、T<Tcが成立しないと判定した場合(S45においてNO)、N番目のピリオドに関する情報を生成するとともに(S46)、MPDデータの一部として追加し(S47)、S48に進む。
【0135】
S48において、変数Tの値にDpを加算するとともに、変数Nの値に1を加算し、S49に進む。
【0136】
S49において、T<Teが成立するか否かを判定する。T<Teが成立すると判定した場合(S49においてYES)、S45の処理に戻る。
【0137】
一方、T<Teが成立しないと判定した場合(S49においてNO)、古いMPDデータをS41〜S49までの処理の結果として得られたMPDデータに更新し、NAS400に記録し、処理を終了する。なお、クライアント装置100’から要求されたタイミングに応じて、最新の状態に更新されたMPDデータがNAS400から読み出され配信部310により配信される。
【0138】
以上、メタデータ作成部320’の動作について説明したが、配信サーバ300’が配信開始時刻から10分経過後にMPDデータ5aをMPDデータ5bに更新する処理を例に挙げて、S45〜S47の処理についてより詳細に説明する。
【0139】
この例では、Tcが配信開始時刻Taから10分経過時点を示す値(Ta+Dp)となる。配信サーバ300’がS45のステップを最初に処理する時には、N=1且つT=Taであるので、T<Tcが成立すると判定する。したがって、更新後のMPDデータ5bには、クライアント装置100’がライブ再生を行うのに不要な1番目のピリオドに関する情報は含まれないことになる。
【0140】
一方、配信サーバ300’がS45のステップを2度目に処理する時には、N=2且つT=Ta+Dpであるので、T<Tcが成立しないと判定する。したがって、その直後のS46、S47の処理の結果、更新後のMPDデータ5bには、クライアント装置100’がライブ再生を行うのに必要な2番目のピリオドに関する情報が含まれることになる。
【0141】
次に、本実施形態に係るクライアント装置100’が、配信サーバ300’が配信する対象映像コンテンツを再生するための動作について、図9、図11および図12を参照しながら以下に説明する。
【0142】
図11は、配信サーバ300’により配信される対象映像コンテンツを再生するためのクライアント装置100’の動作を示すフローチャート図である。また、図12は、図111のフローチャートの1ステップをより詳細に示したフローチャート図である。なお、図11および図12におけるDp、Ds、Ts、TuおよびTNは、図6のフローチャート図と同様の意味を持っている。
【0143】
最初に、ストリーミング制御部110’は、再生処理開始に先立ち、処理対象時刻を表す変数TをTsで初期化し、処理対象ピリオドを表す変数Nを1で初期化する(S61)。
【0144】
S62において、ストリーミング制御部110’は、配信サーバ300’に対象映像コンテンツに関するMPDデータを要求し、配信サーバ300’からMPDデータを受信し、記憶部130に記憶する。S63において、ストリーミング制御部110’は、S62の処理の前からすでに記憶部130に記録されているような、対象映像コンテンツに関するMPDデータ(以下では「既存MPD」とも称する)が存在するか否かを判定する。
【0145】
S63において存在しないと判定された場合、S65に進む。一方、S63において存在すると判定された場合、S64に進む。すなわち、S62にて初期のMPDデータ(例えば、図9の左上段のMPDデータ5a)を受信した場合には、S65に進み、S62にて2度目以降のMPDデータ(例えば、図9の左中段のMPDデータ5bや左下段のMPDデータ5c等)を受信した場合には、S64に進む。
【0146】
ストリーミング制御部110’は、S62で受信され、記憶部130に記憶されたMPDデータ(以下では「新規MPD」とも称する)と、既存MPDとを合成し(S64)、S65の処理に進む。後に述べるように、S64の合成処理の結果として得られるMPDデータには、ライブ再生に必要十分なピリオドに関する情報とそれ以前のすべてのピリオドに関する情報とが含まれることになる。
【0147】
クライアント装置100’は、S65〜S81について、クライアント装置100のS24〜S40と同様の処理を行う。
【0148】
以下では、参照する図面を図9および図12に変えて、S64の合成処理の詳細について説明する。
【0149】
最初に、ストリーミング制御部110’は、新規MPDを読み出し(S641)。新規MPDの先頭から何番目のピリオドであるかを示す変数Lを1で初期化する(S642)。
【0150】
その後、S643において、ストリーミング制御部110’は、新規MPDのL番目のピリオドの属性「id」の属性値と同じ属性値を持つピリオドが既存MPDに含まれているか否かを判定する。例えば、既存MPDが図9のMPDデータ5aであって新規MPDが図9のMPDデータ5bである場合、ストリーミング制御部110’は、Lが1のとき(id=”2”のピリオド)は既存MPDに含まれていると判定し、Lが2のとき(id=”3”のピリオド)は既存MPDに含まれていないと判定する。
【0151】
ストリーミング制御部110’は、そのような情報が既存MPDに含まれていないと判定した場合(S643においてNO)には、新規MPDに含まれているL番目のピリオドに関する情報を既存MPDに追加し(S644)、S645の処理に進む。一方、ストリーミング制御部110’は、そのような情報が既存MPDに含まれていると判定した場合(S643においてYES)には、そのまま、S645の処理に進む。
【0152】
S645において、ストリーミング制御部110’は、Lの値に1を加算し、S646において、新規MPDにL番目のピリオドに関する情報が含まれているか否かを判定する。例えば、既存MPDが図9のMPDデータ5aであって新規MPDが図9のMPDデータ5bである場合、ストリーミング制御部110’は、Lが1あるいは2のときは、当該ピリオドの情報が含まれていると判定し、Lが3のときは当該ピリオドに関する情報が含まれていないと判定する。当該例においては、この時点で、既存MPDが図9のMPDデータ5dのようになっている。
【0153】
ストリーミング制御部110’は、新規MPDにL番目のピリオドに関する情報が含まれていると判定した場合(S646においてYES)、S643の処理に戻る一方、そのような情報が含まれていないと判定した場合(S646においてNO)、S647の処理に進む。
【0154】
S647では、ストリーミング制御部110’は、S641〜S646の処理で得られた合成後のMPDデータの先頭から何番目のピリオドであるかを示す変数Kを1で初期化する。
【0155】
S648において、ストリーミング制御部110’は、K番目のピリオドが有効であるか否かを、新規MPDの属性「timeShiftBufferDepth」の属性値に基づいて判定する。属性「timeShiftBufferDepth」は、ライブストリーミング配信のみで有効な属性であり、配信サーバが各MSについてMSの配信を開始してから破棄するまでの時間を示している。
【0156】
ストリーミング制御部110’は、具体的には、K番目のピリオドの開始時間(属性「start」の属性値)と属性「availabilityStartTime」の属性値とからL番目のピリオドの配信開始時刻を算出する。そして、ストリーミング制御部110’は、現在時刻からK番目のピリオドの配信開始時刻を引いた値が属性「timeShiftBufferDepth」の属性値以下である場合にK番目のピリオドが有効であると判定し、そうでない場合にはK番目のピリオドが無効であると判定する。例えば、既存MPDがMPDデータ5dである場合には、1番目のピリオドから3番目のピリオドまでの各配信開始時刻はいずれも現在時刻から過去7日以内にあるので、3つのピリオドはすべて有効であると判定される。
【0157】
以上のS648の処理によってK番目のピリオドが有効であると判定した場合、ストリーミング制御部110’は、S650の処理に進む。一方、K番目のピリオドが無効であると判定した場合、ストリーミング制御部110’は、K番目のピリオドに関するピリオド情報を削除した上で(S649)、S650の処理に進む。
【0158】
S650において、ストリーミング制御部110’は、Kの値に1を加算し、S651において、既存MPDにK番目のピリオドに関する情報が含まれているか否かを判定する。
【0159】
ストリーミング制御部110’は、上記情報が含まれていると判定した場合(S651においてYES)にはS648の処理に戻り、上記情報が含まれていないと判定した場合(S651においてNO)には、S64の処理を終了し、S65の処理に進む。なお、ストリーミング制御部110’は、S646において「新規MPDにL番目のピリオドに関する情報が含まれていない」と判定した時点以降に新規MPDを破棄しても良い。
【0160】
(配信システム1’の利点)
以上のように、配信システム1’の配信サーバ300’は、対象映像コンテンツのMPDデータをクライアント装置100’に繰り返し配信するが、MPDデータには配信時点を含む一定期間内に配信される各MSについてのみ当該MSのURLが含まれている。
【0161】
また、配信システム1’のクライアント装置100’では、ストリーミング制御部110’が、配信サーバ300’から上記MPDデータを取得する度に、取得したMPDデータから新たなMPDデータを生成し、再生部120が直前に生成したMPDデータに基づいて取得すべきMSを順次取得するとともに再生する。
【0162】
具体的には、ストリーミング制御部110’は、直前に生成したMPDデータ(既存MPD)と新たに取得したMPDデータ(新規MPD)とを合成することにより、新たなMPDデータを生成するが、合成により新たに生成されるMPDデータには、既存MPDおよび新規MPDの少なくとも一方のMPDに含まれている上記URLがすべて含まれることになる。
【0163】
したがって、クライアント装置100’が対象映像コンテンツを配信開始時点からライブ再生する場合には、クライアント装置100’が生成するMPDには、常に、現在配信され、または、過去に配信されたすべてのMSのURLが含まれることになる。
【0164】
以上のことから、配信システム1’では、クライアント装置100’が、対象映像コンテンツのライブ再生および任意の再生開始位置からのトリック再生を行うことができる。
【0165】
〔実施形態の変形例について〕
(変形例1)
実施形態2の配信システム1’では、クライアント装置100’が対象映像コンテンツの先頭のピリオドから始まるすべてのピリオドについてピリオドに関する情報を受信した場合に限り、任意の再生位置から対象映像コンテンツのトリック再生を行うことができる。換言すれば、配信システム1’のクライアント装置100’は、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合、任意の再生位置からトリック再生を行うことができないことがある。具体例について図13を参照しながら説明する。
【0166】
図13は、配信サーバ300’がMPDデータを更新するタイミングと、対象映像コンテンツの各ピリオドと、クライアント装置100’−1、100’−2がMPDデータを取得するタイミングと、クライアント装置100’−1、100’−2が各ピリオドにおける映像を再生する期間とを模式的に示した図である。
【0167】
図13において、水平方向は時間方向を示しており、左端は対象映像コンテンツの配信開始時刻を示している。配信サーバ300’がMPDデータを更新するタイミングは、図中における「配信サーバ」という文字列の水平右方向に位置する下向き矢印により表されている。また、対象映像コンテンツの各ピリオドは、図中における「対象映像コンテンツ」という文字列の水平右方向に位置する双方向矢印により表されている。なお、この双方向矢印の上方および下方のブレースは、各ピリオドに関する情報が含まれているMPDデータを示している。さらに、各クライアント装置がMPDデータを取得するタイミングおよび各クライアント装置が各ピリオドにおける映像を再生する期間は、それぞれ、図中における対応する「クライアント装置」という文字列の水平右方向に位置する下向き矢印および双方向矢印により表されている。
【0168】
図13に示すように、クライアント装置100’−1および100’−2は、両方とも、対象映像コンテンツの配信開始時刻を過ぎてから再生指示を受け、MPDデータを取得している。
【0169】
クライアント装置100’−1は、配信サーバ300’において最初の更新がされる前に再生指示を受けているので、初期のMPDデータ(MPD1)を取得することができている。一方、クライアント装置100’−2は、配信サーバ300’において最初の更新がされた直後に再生指示を受けているので、初期のMPDデータ(MPD1)を取得することができていない。したがって、クライアント装置100’−2は、1番目のピリオドに関する情報を取得できず、1番目のピリオドに属するような再生位置からトリック再生を行うことができない。
【0170】
任意の再生位置でトリック再生を行うことができるように、本発明は、実施形態2のクライアント装置100’と実施形態1の配信サーバ300とを組み合わせた配信システムとして実現してもよい。
【0171】
このように実現された配信システムでは、図12に示したフローチャートに従う実施形態2の方法と略同様の方法で、クライアント装置100’は、配信サーバ300から受信した新規MPDと既存MPDとを合成することになる。
【0172】
その結果、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けたクライアント装置100’が最初に取得するMPDデータには、現在時刻が属するピリオド(「P番目のピリオド」とする)よりも前のピリオドについては外部参照ピリオドが含まれ、それ以降のピリオドについては通常ピリオドが含まれることになる。そして、クライアント装置100’が2度目以降に取得した新規MPDと既存MPDとを合成して得られるMPDデータには、常に、1〜P−1番目のピリオドについては外部参照ピリオドが含まれ、P番目以降のピリオドについては通常ピリオドが含まれることになる。
【0173】
したがって、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合であっても、クライアント装置100’は、実施形態1と同様に、任意の再生位置から対象映像コンテンツのトリック再生を行うことができる。また、実施形態1とは異なり、クライアント装置100’は、トリック再生を開始する再生位置が属するピリオドが先頭からP番目以降のピリオドであれば、常に、リモートオブジェクトを参照することなくトリック再生を開始することができる。
【0174】
(変形例2)
クライアント装置が、配信開始時刻を過ぎてから対象映像コンテンツの再生指示を受け付けた場合であっても、任意の再生位置からトリック再生を行うことができるように、以下のような配信システムとして本発明を実施してもよい。
【0175】
すなわち、クライアント装置100’と、対象映像コンテンツのMPDデータに対して定期的に更新処理1を実行していく一方、対象映像コンテンツのMPDデータに対して定期的に更新処理2を実行していくような配信サーバと、を含むような配信システムとして、本発明を実施してもよい。
【0176】
この配信サーバは、具体的には、更新処理1と更新処理2とを同時に行うようになっている。また、この配信サーバは、最初の更新時には、同一内容の2つのMPDデータ(初期のMPDデータ)に対して、それぞれ、更新処理1と更新処理2とを実行するようになっている。
【0177】
配信サーバは、クライアント装置100’からの対象映像コンテンツのMPDデータの要求が初回の要求である場合には、更新処理1によって更新されたMPDデータをクライアント装置100’に返却し、2度目以降の要求である場合には、更新処理2によって更新されたMPDデータをクライアント装置100’に返却する。
【0178】
配信サーバは、クライアント装置100’からのMPDデータの要求が初回の要求であるか2度目以降の要求であるかを以下のように識別することができる。
【0179】
例えば、配信サーバは、クライアント装置100’を特定可能な情報(例えばクライアント装置100’のID情報)を含むようなクッキー情報を、クライアント装置100’に保存させてもよい。すなわち、配信サーバは、クライアント装置100’から上記クッキー情報を受信したか否かを判定し、受信していないと判定した場合には、初回の要求であると判定するとともに、上記クッキー情報をクライアント装置100‘に保存させる。一方、配信サーバは、受信したと判定した場合には、2度目の要求であると判定する。
【0180】
また、例えば、配信サーバは、更新処理1によって更新されるMPDデータのURL情報(URL1)と、更新処理2によって更新されるMPDデータのURL情報(URL2)と、それぞれ、クライアント装置100’に通知してもよい。2つのURL情報は互いに異なっていればよい。すなわち、各MPDデータのファイル名を含むようなURL情報であってもよいし、各MPDデータの保存先を互いに異なるフォルダにすることにより、2つのURL情報を異ならせてもよい。この場合、クライアント装置100’は、対象映像コンテンツのMPDデータを初めて取得する場合には、URL1にアクセスし、取得するのが2度目以降である場合には、URL2にアクセスすればよい。なお、URL1についてはクライアント装置100’に予め通知しておき、URL2については、URL1にアクセスすることによって取得されるMPDデータ内(例えば、図18に例示されているMPDデータ内の点線の枠で囲まれた部分)に要素「Location」の要素値として記述する構成であってもよい。
【0181】
以上のような配信システムによっても、クライアント装置100’は、配信サーバからMPDデータを取得するたびに、S64の合成処理によって任意の再生位置からトリック再生を行うことができるような最新状態のMPDデータを得ることができる。
【0182】
(付記事項1)
以上の各実施形態では、配信サーバが対象映像コンテンツのMPDデータと対象映像コンテンツ自体との両方を配信するものとしたが、MPDデータを配信する配信サーバと、対象映像コンテンツを配信する配信サーバとは異なるサーバであってもよい。また、各実施形態では、MPDデータを配信する配信サーバがMPDデータの更新も行うものとしたが、MPDデータの配信とMPDデータの更新とを異なるサーバが行ってもよい。また、MPDデータの更新を行うサーバ(生成装置)は、通信機能を備えている必要はない。すなわち、配信サービス事業者の担当者が、サーバで更新されたMPDデータを、着脱可能な記録メディアを介して、手作業で、配信サーバに移動してもよく、上記MPDデータを、通信機能を備えた他の装置に手作業で移動した上で、配信サーバにアップロードしてもよい。
【0183】
(その他の付記事項)
メタデータ作成部320は、対象映像コンテンツの配信終了時刻が確定した後に既存のMPDデータを属性「minimumUpdatePeriodMPD」を含まないようなMPDデータに更新した後、MPDデータの定期的な更新を終了してもよいし、そのまま更新を定期的に続けても良い。また、実施形態1では、メタデータ作成部320が、過去のピリオドについてピリオド毎に異なるXMLファイルを生成するものとしたが、過去のピリオドに属する全MSのURL(1つの時分割データ群を構成する各時分割データ)を含むような1つのXMLファイルを生成してもよい。
【0184】
(プログラム、記憶媒体)
クライアント装置100(100’)および配信サーバ300(300’)の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
【0185】
後者の場合、クライアント装置100(100’)および配信サーバ300(300’)は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるクライアント装置100(100’) および配信サーバ300(300’)の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、クライアント装置100(100’) および配信サーバ300(300’)に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0186】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
【0187】
また、上記プログラムコードは、通信ネットワークを介してクライアント装置100(100’)および配信サーバ300(300’)に供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【0188】
なお、ここで開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明だけではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0189】
本発明に係る再生装置および生成装置は、コンテンツ配信システムなどに広く適用することができる。
【符号の説明】
【0190】
5a〜5e MPDデータ
100、100’ クライアント装置(再生装置)
110、110’ ストリーミング制御部(第1の取得手段、第2の取得
手段、取得手段、生成手段)
120 再生部(再生手段)
130 記憶部
140 ネットワーク・I/F
150 表示部
160 操作部
300、300’ 配信サーバ(生成装置)
310 配信部
320、320’ メタデータ作成部(第1の生成手段、第2の生成手段)
330 パラメータ制御部
400 ネットワークストレージサーバ(NAS)
【特許請求の範囲】
【請求項1】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成手段と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成手段と、を備えていることを特徴とする生成装置。
【請求項2】
上記コンテンツデータは、配信開始時刻には配信終了時刻が確定していないコンテンツデータであり、
上記第2の生成手段は、上記配信終了時刻が確定した後に上記第2のメタデータを生成する場合には、上記第2のメタデータとして、上記配信開始時刻から上記配信終了時刻までに配信される全時分割データについて上記メタ情報を含むような第2のメタデータを生成することを特徴とする請求項1に記載の生成装置。
【請求項3】
上記過去の所定の期間は、上記第2の生成手段が上記第2のメタデータを生成する時点を含む一定期間よりも過去の全期間であることを特徴とする請求項2に記載の生成装置。
【請求項4】
上記時分割データはDASH(Dynamic Adaptive Streaming over HTTP)規定のメディアセグメントであり、上記第1のメタデータはDASH規定のリモートオブジェクトであって上記第2のメタデータは上記コンテンツデータに関するDASH規定のMPDデータであり、
上記第1の資源位置指定子は上記メディアセグメントのURLであって上記第2の資源位置指定子は上記リモートオブジェクトのURLである、ことを特徴とする請求項1から3のいずれか1項に記載の生成装置。
【請求項5】
上記コンテンツデータと上記コンテンツデータに関するメタデータとを上記再生装置に配信する配信サーバであって請求項1から4のいずれか1項に記載の生成装置としても機能することを特徴とする配信サーバ。
【請求項6】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを取得する第1の取得手段と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を含んでいる第2のメタデータを取得する第2の取得手段と、
上記第2のメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、
上記再生手段は、取得すべき時分割データの第1の資源位置指定子が上記第2のメタデータに含まれていない場合には、第2の資源位置指定子を参照して当該第1の資源位置指定子を含む第1のメタデータを取得するとともに当該第1の資源位置指定子を参照して当該時分割データを取得する、ことを特徴とする再生装置。
【請求項7】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、
ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得手段と、
上記取得手段がメタデータを取得する度に当該メタデータから新たなメタデータを生成する生成手段と、
上記生成手段が直前に生成した新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、
上記生成手段は、当該生成手段が直前に生成したメタデータおよび上記取得手段が新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する、ことを特徴とする再生装置。
【請求項8】
上記時分割データはDASH(Dynamic AdaptiveStreaming overHTTP)規定のメディアセグメントである、ことを特徴とする請求項6または7に記載の再生装置。
【請求項9】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置の生成方法において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成工程と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成工程と、からなる生成工程を繰り返すことを特徴とする生成方法。
【請求項10】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置の再生方法において、
ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得工程と、
上記取得工程にてメタデータが取得される度に当該メタデータから新たなメタデータを生成する生成工程と、
直前の上記生成工程にて生成された新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生工程と、を含み、
上記生成工程は、当該生成工程の直前の生成工程にて生成されたメタデータおよび上記取得工程にて新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する工程であることを特徴とする再生方法。
【請求項11】
請求項5に記載の配信サーバと、請求項6に記載の再生装置と、を含んでいる再生システム。
【請求項12】
請求項1から4のいずれか1項に記載の生成装置としてコンピュータを動作させる生成プログラムであって、コンピュータを上記各手段として機能させるための生成プログラム。
【請求項13】
請求項6から8のいずれか1項に記載の再生装置としてコンピュータを動作させる再生プログラムであって、コンピュータを上記各手段として機能させるための再生プログラム。
【請求項14】
請求項12に記載の生成プログラムおよび請求項13に記載の再生プログラムのうちの少なくとも一方のプログラムが記録されているコンピュータ読み取り可能な記録媒体。
【請求項15】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータのデータ構造において、
上記メタデータに含まれる、所定の期間における時分割データ群の所在を特定するためのメタ情報のデータ構造が、
上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むようなメタデータの所在を示す第2の資源位置指定子を上記メタ情報として含む第1のデータ構造、および、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を上記メタ情報として含む第2のデータ構造のうち、上記コンテンツデータのライブ配信が開始されてからの経過時間に応じて選択されたデータ構造となっていることを特徴とするメタデータのデータ構造。
【請求項1】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成手段と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成手段と、を備えていることを特徴とする生成装置。
【請求項2】
上記コンテンツデータは、配信開始時刻には配信終了時刻が確定していないコンテンツデータであり、
上記第2の生成手段は、上記配信終了時刻が確定した後に上記第2のメタデータを生成する場合には、上記第2のメタデータとして、上記配信開始時刻から上記配信終了時刻までに配信される全時分割データについて上記メタ情報を含むような第2のメタデータを生成することを特徴とする請求項1に記載の生成装置。
【請求項3】
上記過去の所定の期間は、上記第2の生成手段が上記第2のメタデータを生成する時点を含む一定期間よりも過去の全期間であることを特徴とする請求項2に記載の生成装置。
【請求項4】
上記時分割データはDASH(Dynamic Adaptive Streaming over HTTP)規定のメディアセグメントであり、上記第1のメタデータはDASH規定のリモートオブジェクトであって上記第2のメタデータは上記コンテンツデータに関するDASH規定のMPDデータであり、
上記第1の資源位置指定子は上記メディアセグメントのURLであって上記第2の資源位置指定子は上記リモートオブジェクトのURLである、ことを特徴とする請求項1から3のいずれか1項に記載の生成装置。
【請求項5】
上記コンテンツデータと上記コンテンツデータに関するメタデータとを上記再生装置に配信する配信サーバであって請求項1から4のいずれか1項に記載の生成装置としても機能することを特徴とする配信サーバ。
【請求項6】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを取得する第1の取得手段と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を含んでいる第2のメタデータを取得する第2の取得手段と、
上記第2のメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、
上記再生手段は、取得すべき時分割データの第1の資源位置指定子が上記第2のメタデータに含まれていない場合には、第2の資源位置指定子を参照して当該第1の資源位置指定子を含む第1のメタデータを取得するとともに当該第1の資源位置指定子を参照して当該時分割データを取得する、ことを特徴とする再生装置。
【請求項7】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置において、
ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得手段と、
上記取得手段がメタデータを取得する度に当該メタデータから新たなメタデータを生成する生成手段と、
上記生成手段が直前に生成した新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生手段と、を備え、
上記生成手段は、当該生成手段が直前に生成したメタデータおよび上記取得手段が新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する、ことを特徴とする再生装置。
【請求項8】
上記時分割データはDASH(Dynamic AdaptiveStreaming overHTTP)規定のメディアセグメントである、ことを特徴とする請求項6または7に記載の再生装置。
【請求項9】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータを、上記コンテンツデータがライブ配信されている間に繰り返し生成する生成装置の生成方法において、
過去の所定の期間内に配信された1以上の時分割データ群の各時分割データ群について、該時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含む、第1のメタデータを生成する第1の生成工程と、
上記複数の時分割データのうち、上記期間内に配信された各時分割データについては当該時分割データの第1の資源位置指定子を含む第1のメタデータについてその所在を示す第2の資源位置指定子を上記メタ情報として含み、その他の各時分割データについては当該時分割データの第1の資源位置指定子を上記メタ情報として含んでいる第2のメタデータを生成する第2の生成工程と、からなる生成工程を繰り返すことを特徴とする生成方法。
【請求項10】
配信サーバにより複数の時分割データに時分割されてライブ配信されるコンテンツデータを再生する再生装置の再生方法において、
ライブ再生するために取得すべき時分割データを少なくとも含む一定期間内に配信される各時分割データについてのみ、当該時分割データの所在を示す資源位置指定子を含むようなメタデータを繰り返し取得する取得工程と、
上記取得工程にてメタデータが取得される度に当該メタデータから新たなメタデータを生成する生成工程と、
直前の上記生成工程にて生成された新たなメタデータに基づいて上記配信サーバから上記時分割データを順次取得するとともに再生する再生工程と、を含み、
上記生成工程は、当該生成工程の直前の生成工程にて生成されたメタデータおよび上記取得工程にて新たに取得したメタデータのうちの少なくとも一方のメタデータに含まれている資源位置指定子をすべて含むようなメタデータを上記新たなメタデータとして生成する工程であることを特徴とする再生方法。
【請求項11】
請求項5に記載の配信サーバと、請求項6に記載の再生装置と、を含んでいる再生システム。
【請求項12】
請求項1から4のいずれか1項に記載の生成装置としてコンピュータを動作させる生成プログラムであって、コンピュータを上記各手段として機能させるための生成プログラム。
【請求項13】
請求項6から8のいずれか1項に記載の再生装置としてコンピュータを動作させる再生プログラムであって、コンピュータを上記各手段として機能させるための再生プログラム。
【請求項14】
請求項12に記載の生成プログラムおよび請求項13に記載の再生プログラムのうちの少なくとも一方のプログラムが記録されているコンピュータ読み取り可能な記録媒体。
【請求項15】
複数の時分割データに時分割されてライブ配信されるコンテンツデータに関するメタデータであってライブ再生を行う再生装置が取得すべき時分割データの所在を特定するためのメタ情報を含んでいるメタデータのデータ構造において、
上記メタデータに含まれる、所定の期間における時分割データ群の所在を特定するためのメタ情報のデータ構造が、
上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を含むようなメタデータの所在を示す第2の資源位置指定子を上記メタ情報として含む第1のデータ構造、および、上記時分割データ群を構成する各時分割データの所在を示す第1の資源位置指定子を上記メタ情報として含む第2のデータ構造のうち、上記コンテンツデータのライブ配信が開始されてからの経過時間に応じて選択されたデータ構造となっていることを特徴とするメタデータのデータ構造。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2013−21574(P2013−21574A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−154349(P2011−154349)
【出願日】平成23年7月12日(2011.7.12)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願日】平成23年7月12日(2011.7.12)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]