(57)【特許請求の範囲】
【請求項１】
１つの動画から複数の動画を生成できる動画配信装置から、前記複数の動画の情報を含むプレイリストを受信し、前記プレイリストから選択された前記動画を前記動画配信装置から受信して再生する動画再生装置であって、
前記動画の第一表示形態と異なる第二表示形態を指定する指示を受付ける受付手段と、前記第二表示形態を示す情報が受信した前記プレイリストに含まれていない場合、前記第二表示形態を示す前記情報を前記動画配信装置に送信する送信手段と、
前記動画配信装置から、前記第二表示形態を示す前記情報を含む前記プレイリストを受信する受信手段と、
を備えることを特徴とする動画再生装置。
【請求項２】
前記送信手段は、前記動画再生装置の通信帯域情報を前記動画配信装置に送信することを特徴とする請求項１に記載の動画再生装置。
【請求項３】
前記動画は単位時間ごとに分割した複数の分割動画を含み、前記送信手段は、前記第二表示形態を指定する前記指示を受けた時に、前記動画の再生位置情報を前記動画配信装置に送信することを特徴とする請求項１又は２に記載の動画再生装置。
【請求項４】
前記第二表示形態を示す前記情報を含むプレイリスト取得要求を生成する生成手段をさらに備え、前記送信手段は生成された前記プレイリスト取得要求を前記動画配信装置に送信することを特徴とする請求項１に記載の動画再生装置。
【請求項５】
前記第二表示形態を示す前記情報を含むプレイリストを生成する生成手段をさらに備え、前記送信手段は生成された前記プレイリストを前記動画配信装置に送信することを特徴とする請求項１に記載の動画再生装置。
【請求項６】
前記動画配信装置から受信した前記プレイリストより、前記動画配信装置から受信する前記動画を選択する動画選択手段と、を備え、
前記動画選択手段は、前記第二表示形態を示す情報及び前記動画再生装置の通信帯域情報に基づいて前記動画を選択することを特徴とする請求項１に記載の動画再生装置。
【請求項７】
前記動画配信装置から前記第二表示形態に対応する動画を動画配信装置が生成する生成時間を受信した場合、受信した前記時間を表示する表示手段をさらに備えることを特徴とする請求項１に記載の動画再生装置。
【請求項８】
再生中の前記動画の情報を表示する動画情報表示手段をさらに備えることを特徴とする請求項１乃至７の何れか１項に記載の動画再生装置。
【請求項９】
前記第二表示形態では、前記第一表示形態の前記動画の表示領域における特定領域を拡大して表示することを特徴とする請求項１乃至８の何れか１項に記載の動画再生装置。
【請求項１０】
前記第二表示形態を指定する指示は、前記特定領域の座標情報及び、拡大表示した後の座標情報又は拡大倍率を特定することによって行われることを特徴とする請求項９に記載の動画再生装置。
【請求項１１】
１つの動画から生成された複数の動画を格納し、前記複数の動画の情報を含むプレイリストを動画再生装置に送信し、前記動画再生装置によって選択された前記動画を前記動画再生装置に送信する動画配信装置であって、
送信した前記動画の第一表示形態と異なる第二表示形態の情報を前記動画再生装置から受信する受信手段と、
前記第二表示形態に対応する動画が前記動画配信装置に格納されていない場合は、前記第二表示形態に対応する前記動画を生成する動画生成手段と、
前記動画生成手段によって生成された前記動画の情報を含むプレイリストを生成するプレイリスト生成手段と、
生成した前記プレイリストを前記動画再生装置に送信する送信手段と、
を備えることを特徴とする動画配信装置。
【請求項１２】
前記動画生成手段によって生成された前記動画を格納する動画格納手段と、格納された前記動画の情報を検索する動画管理手段とをさらに備えることを特徴とする請求項１１に記載の動画配信装置。
【請求項１３】
前記プレイリスト生成手段によって生成された前記プレイリストを格納するプレイリスト格納手段と、格納された前記プレイリストの情報を管理し、検索するプレイリスト管理手段とをさらに備えることを特徴とする請求項１１に記載の動画配信装置。
【請求項１４】
前記動画生成手段の前記第二表示形態に対応する前記動画を生成する生成時間を計算する生成時間予測手段をさらに備え、
前記動画再生装置に送信した前記動画は単位時間ごとの区間に分割した複数の分割動画を含み、前記動画再生装置から前記動画の再生位置情報を前記動画再生装置から受信した場合、前記動画生成手段は、受信された前記動画の前記再生位置情報と前記生成時間予測手段によって計算された前記生成時間とに基づいた、前記動画の生成中に再生が完了しないと予測される区間の開始位置から、前記第二表示形態に対応する前記分割動画を生成することを特徴とする請求項１１に記載の動画配信装置。
【請求項１５】
前記生成時間予測手段によって計算された前記生成時間を前記動画再生装置に送信することを特徴とする請求項１４に記載の動画配信装置。
【請求項１６】
前記動画再生装置の通信帯域の情報を前記動画再生装置から受信した場合、前記動画生成手段は、前記通信帯域に対応する動画を生成することを特徴とする請求項１１に記載の動画配信装置。
【請求項１７】
前記動画再生装置から受信した前記第二表示形態の前記情報は、プレイリストである場合、前記プレイリスト生成手段は、受信した前記プレイリストを用いて前記動画再生装置に送信する前記プレイリストを更新することを特徴とする請求項１１に記載の動画配信装置。
【請求項１８】
前記第二表示形態は、前記第一表示形態の前記動画の表示領域における特定領域を拡大して表示することを特徴とする請求項１１乃至１７の何れか１項に記載の動画配信装置。
【請求項１９】
前記動画再生装置から受信した前記第二表示形態の前記情報は、拡大表示する前記特定領域の座標情報及び、拡大表示した後の表示領域の座標情報又は拡大倍率を含むことを特徴とする請求項１８に記載の動画配信装置。
【請求項２０】
前記第二表示形態は、前記第一表示形態の前記動画の色やコントラストの補正、白黒変換またはセピア変換、表示領域の回転又は反転の何れかであることを特徴とする請求項１２乃至１７の何れか１項に記載の動画配信装置。
【請求項２１】
１つの動画から複数の動画を生成できる動画配信装置から、前記複数の動画の情報を含むプレイリストを受信し、前記プレイリストから選択された前記動画を前記動画配信装置から受信して再生する動画再生装置の動画再生方法であって、
前記動画の第一表示形態と異なる第二表示形態を指定する指示を受付ける受付工程と、前記第二表示形態を示す情報が受信した前記プレイリストに含まれていない場合、前記第二表示形態を示す前記情報を前記動画配信装置に送信する送信工程と、
前記動画配信装置から、前記第二表示形態を示す前記情報を含む前記プレイリストを受信する受信工程と、
を備えることを特徴とする動画再生方法。
【請求項２２】
１つの動画から生成された複数の動画を格納し、前記複数の動画の情報を含むプレイリストを動画再生装置に送信し、前記動画再生装置によって選択された前記動画を前記動画再生装置に送信する動画配信装置の動画配信方法であって、
送信した前記動画の第一表示形態と異なる第二表示形態の情報を前記動画再生装置から受信する受信工程と、
前記第二表示形態に対応する動画が前記動画配信装置に格納されていない場合は、前記第二表示形態に対応する前記動画を生成する動画生成工程と、
前記動画生成工程によって生成された前記動画の情報を含むプレイリストを生成するプレイリスト生成工程と、
生成した前記プレイリストを前記動画再生装置に送信する送信工程と、
を備えることを特徴とする動画配信方法。
【請求項２３】
コンピュータを請求項１乃至９の何れか１項に記載された動画再生装置として機能させるためのプログラム。
【請求項２４】
コンピュータを請求項１１乃至１９の何れか１項に記載された動画配信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画を配信する動画配信装置及び動画配信方法、プログラム並びに、動画を再生する動画再生装置及び動画再生方法、プログラムに関する。
【背景技術】
【０００２】
ユーザが動画配信サービスを利用し、ネットワークを介して動画ファイルを取得し視聴する機会が増えている。動画配信サービスを構成する動画配信サーバは、ディスプレイの解像度や回線速度の異なる様々な動画再生クライアントに対して最適な動画ファイルを提供するために、同一の動画ファイルに対して複数のバリエーションの動画ファイルを生成する場合がある。
【０００３】
そして、近年、動画再生クライアントが同一の動画ファイルのバリエーションのリストを動画配信サーバから取得し、リストの中から動画再生クライアントに最適な動画ファイルを選択し取得する動画配信方法の規格がＭＰＥＧ−ＤＡＳＨ等で策定されている。非特許文献１および非特許文献２は、規格に基づいた動画ファイルのバリエーションのリスト（以下、プレイリストとも記載する）を用いた動画配信方法の一例である。具体的には、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）、Ｃｈｒｏｍｅ（登録商標）やＳａｆａｒｉ（登録商標）を用いて動画を再生する場合に、プレイリストを使った動画配信が行われている。
【０００４】
また、近年、４Ｋなどの高解像度での動画の撮影に対応した動画撮影機器が登場しており、４Ｋなどの高解像度で撮影された動画から、高精細で表示するために必要な解像度を保ったまま特定領域を拡大した動画を作成することが可能である。
【０００５】
特許文献１ではユーザが指示した領域を拡大した動画ファイルをサーバが新規に作成し、クライアントに配信する技術を開示している。具体的には、クライアントが動画の拡大要求をサーバに送信し、サーバが拡大要求に従って拡大動画を生成する。拡大動画の生成が完了すると、サーバがクライアントに対して拡大動画を送信する。クライアントが送信する拡大要求は、拡大対象の領域の座標情報と、拡大開始時間と拡大終了時間の情報を含む。拡大開始時間及び拡大終了時間は、動画の先頭からの経過時間で表現する。
【０００６】
また、特許文献２ではクライアントから動画の拡大指示があった場合に、サーバでの拡大動画の生成速度を向上させるための技術を開示している。具体的には、拡大動画の基となる高解像度の動画を事前に複数の領域に分けて保存しておく。そして、拡大動画の生成の際には、高解像度の動画の領域の中からユーザが指定した拡大領域を形成するために必要な領域を合成することで拡大動画の生成を高速化する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２８９２２４
【特許文献２】特開２０１２−７５０３０
【非特許文献】
【０００８】
【非特許文献１】Ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（参考ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｉｓｏ．ｏｒｇ／ｉｓｏ／ｉｓｏ＿ｃａｔａｌｏｇｕｅ／ｃａｔａｌｏｇｕｅ＿ｔｃ／ｃａｔａｌｏｇｕｅ＿ｄｅｔａｉｌ．ｈｔｍ？ｃｓｎｕｍｂｅｒ＝５７６２３）
【非特許文献２】Ａｐｐｌｅ  ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ（参考ＵＲＬ：  ｈｔｔｐｓ：／／ｄｅｖｅｌｏｐｅｒ．ａｐｐｌｅ．ｃｏｍ／ｓｔｒｅａｍｉｎｇ／）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ユーザがプレイリストを用いた動画配信サービスを利用して動画を視聴する際には、ユーザが動画の視聴中に動画に対して拡大などの指示を行うことが考えられる。
【００１０】
しかしながら、特許文献１及び特許文献２は、非特許文献１及び非特許文献２のようなプレイリストを用いた動画配信装置又は動画配信システムに対しては、ユーザが動画の視聴中に行った拡大等の指示を反映したプレイリストを生成していなかった。
【００１１】
本発明は上述した問題を解決するためになされたものであり、ユーザが動画の視聴中に行った拡大などの指示に対応した動画を動画配信サーバが生成する。そして、動画再生クライアントが生成された拡大動画を受信して再生を切り替えることのできる動画再生装置、その方法及びプログラムを提供することを目的とする。また、上記動画再生装置に対応する動画配信装置、その方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための一態様による動画再生装置は以下の構成を備える。すなわち、オリジナル動画から複数の動画を生成できる動画配信装置から、前記複数の動画の情報を含むプレイリストを受信し、前記プレイリストから選択された前記動画を前記動画配信装置から受信して再生する動画再生装置であって、前記動画の第一表示形態と異なる第二表示形態を指定する指示を受付ける受付手段と、前記第二表示形態を示す情報が受信した前記プレイリストに含まれていない場合、前記第二表示形態を示す前記情報を前記動画配信装置に送信する送信手段と、前記動画配信装置から、前記第二表示形態を示す前記情報を含む前記プレイリストを受信する受信手段とを備えることを特徴とする。
【発明の効果】
【００１３】
以上の構成からなる本発明によれば、ユーザがプレイリストを用いた動画配信サービスを利用して動画を視聴する際には、ユーザが動画の視聴中に動画に対して行った拡大などの指示に対応したプレイリストを動画配信サーバが生成し、動画再生クライアントが生成されたプレイリストを用いて拡大動画を受信して再生をすることができる。
【図面の簡単な説明】
【００１４】
【図１】システム構成の一例
【図２】動画再生クライアント及び動画配信サーバのハードウェア構成の一例
【図３】プレイリストの例
【図４】動画配信サーバの構成の一例
【図５】動画管理テーブルの一例
【図６】動画変換指示の一例
【図７】プレイリスト管理テーブルの一例
【図８】動画再生クライアントの構成の一例
【図９】実施形態１におけるユーザインタフェースの一例
【図１０】実施形態１のユーザインタフェースにおける拡大候補領域の表示例
【図１１】実施形態１における動画再生クライアントの動画再生処理の流れを説明するフローチャート
【図１２】実施形態１において動画再生クライアントが取得するプレイリスト
【図１３】実施形態１において動画再生クライアントが取得するプレイリスト
【図１４】実施形態１における動画配信サーバのプレイリスト返却処理の流れを説明するフローチャート
【図１５】実施形態１における動画配信サーバのプレイリスト作成処理の流れを説明するフローチャート
【図１６】実施形態１における動画配信サーバの動画ファイル返却処理の流れを説明するフローチャート
【図１７】実施形態２において動画再生クライアントが取得するプレイリスト
【図１８】実施形態２における動画再生クライアントの動画再生処理の流れを説明するフローチャート
【図１９】実施形態２における動画配信サーバのプレイリスト作成処理の流れを説明するフローチャート
【図２０】実施形態３のユーザインタフェースにおけるプレイリスト取得完了までの残り時間の表示
【図２１】実施形態３における動画配信サーバのプレイリスト作成処理の流れを説明するフローチャート
【図２２】実施形態３のユーザインタフェースにおけるプレイリストが含む表示形態の表示
【図２３】実施形態４におけるプレイリストの構成要素
【図２４】実施形態２における動画配信サーバの構成
【発明を実施するための形態】
【００１５】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１６】
＜実施形態１＞
図１は、本実施形態のシステム構成を図示したものである。本実施形態の動画配信システムは、動画再生クライアント１０１と動画配信サーバ１０２から構成される。動画再生クライアント１０１と動画配信サーバ１０２はネットワーク１０３を介して相互に通信が可能である。動画再生クライアント１０１は動画を再生する動画再生装置である。動画配信サーバ１０２は動画を配信する動画配信装置である。
【００１７】
動画配信サーバ１０２には、オリジナル動画に対応する動画のバリエーションを記述したプレイリスト及びオリジナル動画やバリエーション動画の動画ファイルが格納されている。動画再生クライアント１０１は動画再生のために、プレイリスト及び動画ファイルを動画配信サーバ１０２から取得する。動画再生クライアント１０１と動画配信サーバ１０２は、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのプロトコルを用いて通信を行うものとする。なお、図１では、動画再生クライアント１０１と動画配信サーバ１０２の台数はともに１台としているが、この台数に限るものではない。
【００１８】
図２は、本実施形態の動画再生クライアント１０１と動画配信サーバ１０２の代表的なハードウェア構成を示したものである。動画再生クライアント１０１のハードウェアは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３を備える。さらに、ＮＥＴＩＦ（Ｎｅｔｏｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ）２０４、表示装置２０５、入力装置２０６、バス２０７を備える。
【００１９】
動画配信サーバ１０２のハードウェアは、ＣＰＵ２０８、ＲＯＭ２０９、ＲＡＭ２１０を備える。さらに、ＮＥＴＩＦ２１１、表示装置２１２、入力装置２１３、バス２１４を備える。
【００２０】
ＣＰＵ２０１は、バス２０７に接続された各装置の制御を行う。また、ＣＰＵ２０１は、動画再生クライアント１０１の後述の各種処理を実行する。ＣＰＵ２０８は、バス２１４に接続された各装置の制御を行う。また、ＣＰＵ２０８は、動画配信サーバ１０２の後述の各種処理を実行する。
【００２１】
ＲＯＭ２０２には、コンピュータの基本制御を行うオペレーティングシステムや動画再生クライアント１０１の動作プログラムなどが格納される。ＲＯＭ２０９には、コンピュータの基本制御を行うオペレーティングシステムや動画配信サーバ１０２の動作プログラムなどが格納される。
【００２２】
ＲＡＭ２０３及びＲＡＭ２１０は、ＣＰＵ２０１のワークメモリとして、動作プログラム自身や動作プログラムに必要なデータを格納する。
【００２３】
ＮＥＴＩＦ２０４及びＮＥＴＩＦ２１１は、ネットワークを介して接続される外部装置との情報のやり取りを制御する。ＮＥＴＩＦ２０４とＮＥＴＩＦ２１１を通して動画再生クライアント１０１と動画配信サーバ１０２がデータの送受信を行う。
【００２４】
表示装置２０５及び表示装置２１２は、ＣＰＵ２０１またはＣＰＵ２０８の処理結果を表示するためのものであり、液晶ディスプレイなどにより構成される。
【００２５】
入力装置２０６及び入力装置２１３は、ユーザからの入力を物理的に受け付けるためのものであり、キーボードやマウスまたはタッチパネルにより構成される。
【００２６】
なお、動画再生クライアント１０１が外部の表示装置または入力装置を使用する場合は、動画再生クライアント１０１は表示装置２０５及び入力装置２０６を持たない構成となる。同様に、動画配信サーバ１０２が外部の表示装置または入力装置を使用する場合は、動画配信サーバ１０２は表示装置２１２及び入力装置２１３を持たない構成となる。
【００２７】
図３は、本実施形態のプレイリストの例を示したものである。プレイリストはＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述され、一つの動画に対する表示形態の異なる複数の動画の情報をＶａｒｉａｔｉｏｎタグとして含む。表示形態に関する情報は、例えば、動画表示領域の一部を切り出して拡大表示するための情報、又は動画の色やコントラストの補正、白黒変換またはセピア変換、表示領域の回転又は反転させるための情報である。
【００２８】
本実施形態では、オリジナル動画に対応する表示形態の異なる動画のバリエーションをバリエーション動画と呼ぶ。プレイリストは、少なくとも一つのバリエーション動画の情報またはオリジナル動画の情報から構成される。Ｖａｒｉａｔｉｏｎタグは動画のＭｏｖｉｅ  ＩＤと属性情報及びＶａｒｉａｔｉｏｎを一意に識別するためのｉｄを属性として含む。Ｍｏｖｉｅ  ＩＤは動画ファイルを一意に識別するためのものである。
【００２９】
動画の属性情報として、動画の画面解像度を表すｗｉｄｔｈ及びｈｅｉｇｈｔを含む。また、各バリエーション動画を途切れずに再生するために最低限必要な通信帯域をｂａｎｄｗｉｄｔｈとして含む。さらに、ユーザが指定した表示形態に対応した情報として、バリエーション動画が動画全画面のどの領域を表示する又は拡大して表示するのかを表すｒｅｇｉｏｎを含む。
【００３０】
ｒｅｇｉｏｎは、全領域を表すＡＬＬや右上領域を表すＵＰＰＥＲ＿ＲＩＧＨＴのように予め定義された値を用いても良いし、表示領域の対角線の端点として始点と終点を表す２点の座標情報を用いても良い。
【００３１】
動画再生クライアント１０１はプレイリストに含まれる動画の属性情報または表示形態に基づいて、再生に適したバリエーション動画を自動的に選択することができる。例えば、図３のプレイリストにおいて、ユーザが右上領域の拡大を指定した場合には、ＵＰＰＥＲ＿ＲＩＧＨＴのｒｅｇｉｏｎに対応したｉｄが３または４のバリエーション動画を再生候補の動画とすることができる。
【００３２】
そして、再生候補の動画の中から、動画再生クライアント１０１の画面解像度や動的に変わる通信帯域に応じて再生する動画を自動的に選択することができる。
【００３３】
なお、プレイリストは図３に示した以外の要素を含んでも良い。例えば、プレイリストのフォーマットを規定する情報や各バリエーション動画に共通の属性を含んで良い。また、プレイリストに有効期限が設定されている場合は、動画再生クライアント１０１は有効期限を過ぎるとプレイリストを再取得しなければならない。また、プレイリストは、動画のバリエーションが記述され、動画再生クライアント１０１で解釈が可能であればその形式は問わない。
【００３４】
プレイリストは図２のようなＸＭＬまたはＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）などの構造化形式のフォーマットを用いることができる。また、構造化されていないテキストファイルとして記述しても良い。
【００３５】
図４は、本実施形態の動画配信サーバ１０２（動画配信装置）の構成を示すブロック図である。動画配信サーバ１０２は、動画管理部４０１、動画生成部４０２、動画ストレージ４０３、プレイリスト管理部４０４、プレイリスト生成部４０５、プレイリストストレージ４０６を備える。プレイリストストレージ４０６はプレイリストを格納するプレイリスト格納部である。
【００３６】
さらに、動画配信サーバ１０２は通信部４０７と表示形態取得部４１１を備える。動画管理部４０１は動画管理テーブル５００を用いて動画ファイルごとの属性情報を保管する。動画ストレージ４０３は動画を格納する動画格納部である。通信部４０７は動画再生クライアント１０１からプレイリスト取得要求等のリクエストを受信する受信部及び、動画配信サーバ１０２から配信する動画を動画再生クライアント１０１に送信する送信部の両方の機能を備える。
【００３７】
図５に動画管理テーブル５００のスキーマ及び格納値の例を示す。動画管理テーブル５００が持つ情報は、動画ファイルを一意に識別するｍｏｖｉｅ  ＩＤ、動画ファイルの名前を表すＮａｍｅ、動画ファイルのサイズ情報を表すＷｉｄｔｈ及びＨｅｉｇｈｔを少なくとも含む。
【００３８】
さらに、バリエーション動画については、オリジナル動画を表すＯｒｉｇｉｎａｌ  ＭｏｖｉｅＩＤや、オリジナル動画のどの領域を表示するかを表すＲｅｇｉｏｎを含む。なお、動画管理テーブル５００は、図４に示した以外の属性情報をさらに含んでも良い。例えば、動画のフレームレートやアスペクト比などをさらに含んでも良い。
【００３９】
また、動画管理部４０１は動画ファイル登録指示を受け取り、動画ファイルの登録を行う。動画ファイル登録指示は、動画ファイルと動画ファイルの属性情報を含む。動画を登録する際には、動画ファイル登録指示の中の動画ファイルを動画ストレージ４０３に格納し、動画の属性情報を動画管理テーブル５００に追加する。なお、動画登録指示は、動画ストレージ４０３上の動画ファイルのファイルパスと動画ファイルの属性情報としても良い。その場合は、動画を登録する前に動画ストレージ４０３に動画を格納しておく。
【００４０】
また、動画管理部４０１は、動画検索クエリを受け取り動画の検索を行う。動画検索クエリは、動画管理テーブル５００が格納する項目に対応するものである。そして、動画検索クエリに合致する動画ファイルを返却する。
【００４１】
また、動画管理部４０１は、動画管理テーブル５００に対して登録済み動画の削除や修正を行い、動画ストレージ４０３に格納された動画ファイルの削除を行う。削除や修正の際には、対象の動画を識別するためのＭｏｖｉｅ  ＩＤを受信する。修正の際には、動画の修正内容を表す情報をさらに受信する。
【００４２】
動画生成部４０２は、動画変換指示を受け取り、動画管理部４０１から取得した変換元の動画ファイルに対して動画変換指示に応じた動画ファイルを新規に生成し、生成した動画ファイルを動画管理部４０１に登録する。動画生成部４０２が受け取る動画変換指示は、変換元となるオリジナル動画のＭｏｖｉｅ  ＩＤ及び変換内容を含む。
【００４３】
図６は、Ｍｏｖｉｅ  ＩＤが００００−００００−００００−０００１のオリジナル動画ファイルに対して右上領域の切り出しを行う場合の動画変換指示の一例である。図６の動画変換指示により、図５のＭｏｖｉｅ  ＩＤが００００−００００−００００−０００４のバリエーション動画ファイルが生成される。図６の動画変換指示は、変換元となるオリジナル動画を表すＯｒｉｇｉｎａｌ  Ｍｏｖｉｅ  ＩＤ、拡大対象の領域を表すＲｅｇｉｏｎを含む。さらに、変換後の動画のサイズを表すＴａｒｇｅｔ  ｗｉｄｔｈとＴａｒｇｅｔ  ｈｅｉｇｈｔ、変換後の動画の名前を表すＮａｍｅを含む。なお、拡大対象の領域を指定するためにＲｅｇｉｏｎではなく座標などを用いて動画内の矩形を指示しても良い。
【００４４】
動画ストレージ４０３は、動画ファイルを格納するためのストレージである。
【００４５】
プレイリスト管理部４０４は、プレイリスト管理テーブル７００を用いて動画のバリエーションを記述したプレイリストを管理する。図７に、プレイリスト管理テーブル７００のスキーマ及び格納値の例を示す。プレイリストは、オリジナル動画と関連付けて保管される。プレイリスト管理テーブル７００は、プレイリストを一意に識別するためのＰｌａｙｌｉｓｔ  ＩＤ、プレイリストに対応するオリジナル動画のＭｏｖｉｅ  ＩＤを含む。
【００４６】
そして、プレイリストが特定の領域を表示するバリエーション動画を含む場合には、Ｒｅｇｉｏｎの項目に領域を表す値が格納される。なお、一つのプレイリストが特定の領域を表示するバリエーション動画を複数含む場合は、複数のＲｅｇｉｏｎの値を格納して良い。
【００４７】
また、プレイリスト管理部４０４はプレイリスト登録指示を受け取り、プレイリストの登録を行う。プレイリスト登録指示は、プレイリストとオリジナル動画のＭｏｖｉｅ  ＩＤを含む。プレイリストを登録する際には、プレイリスト登録指示の中のプレイリストをプレイリストストレージ４０６に格納し、プレイリストの属性情報をプレイリスト管理テーブル７００に追加する。なお、プレイリスト登録指示は、プレイリストストレージ４０６上のプレイリストのファイルパスとオリジナル動画のＭｏｖｉｅ  ＩＤとしても良い。その場合は、プレイリストを登録する前にプレイリストストレージ４０７にプレイリストを格納しておく。
【００４８】
また、プレイリスト管理部４０４はプレイリストの検索を行う。受信したプレイリスト検索クエリにＭｏｖｉｅ  ＩＤが含まれ、Ｍｏｖｉｅ  ＩＤに該当するプレイリストをプレイリスト管理テーブル７００から検索する。プレイリスト検索クエリにＲｅｇｉｏｎが含まれている場合はＭｏｖｉｅ  ＩＤとＲｅｇｉｏｎの両方に該当するプレイリストを検索する。そして、プレイリスト検索クエリに合致するプレイリストを返却する。
【００４９】
また、プレイリスト管理部４０４は、登録済みプレイリストの削除や修正を行う。削除や修正の際には、対象のプレイリストを識別するためのＰｌａｙｌｉｓｔ  ＩＤを受信する。修正の際には、プレイリストの修正内容を表す情報をさらに受信する。
【００５０】
プレイリスト生成部４０５は、プレイリスト生成指示を受け取りプレイリストの生成を行う。プレイリスト生成指示は２種類のＭｏｖｉｅ  ＩＤを含む。２種類のＭｏｖｉｅ  ＩＤとは、オリジナル動画とバリエーション動画のＭｏｖｉｅ  ＩＤである。バリエーション動画のＭｏｖｉｅ  ＩＤは複数指定することができる。
【００５１】
プレイリスト生成部４０５は、バリエーション動画の属性情報を動画管理部４０１から取得し、取得したバリエーション動画の属性情報を含むプレイリストを生成する。プレイリストの生成時に、バリエーション動画を途切れずに再生するために最低限必要な通信帯域をバリエーション動画のファイルサイズを基に算出し、Ｂａｎｄｗｉｄｔｈとしてプレイリストに含める。なお、プレイリスト生成部４０５は、プレイリストストレージ４０６に格納されているプレイリストを更新して新しいプレイリストを生成してもいい。
【００５２】
プレイリストストレージ４０６は、プレイリストを格納するためのストレージである。
【００５３】
なお、動画ストレージ４０３及びプレイリストストレージ４０６は同一のストレージを用いても良いし、動画配信サーバ１０２とは異なる外部のマシンが提供するストレージの機能を用いても良い。
【００５４】
通信部４０７は、動画再生クライアント１０１からネットワーク１０３を介して送信されたリクエストを処理する機能を有する。例えば、動画配信サーバ１０２の動画管理部４０１やプレイリスト管理部４０４の機能を動画再生クライアント１０１に提供するための機能を有し、そのための動画配信サーバ１０２のエンドポイントを公開する。
【００５５】
本実施形態では、サーバのＵＲＬをｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｃｏｍとする。この場合、例えば、プレイリスト管理部４０４の機能を利用するためのエンドポイントは、ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｐｌａｙｌｉｓｔｓとなる。そして、プレイリスト管理部４０４に送信するプレイリスト検索クエリを生成するために必要な情報はＵＲＬのクエリパラメータとして、プレイリスト管理部４０４の機能を利用するためのエンドポイントに付与する。
【００５６】
通信部４０７は表示形態取得部４１１を用いて、通信部４０７が受信したクエリパラメータから表示形態を特定する情報を取得する。そして、取得した表示形態を特定する情報を含むプレイリスト検索クエリを生成する。動画再生クライアント１０１からのリクエストに応じて、動画配信サーバ１０２の通信部４０７は動画管理部４０１またはプレイリスト管理部４０４へ処理を送信し、処理結果を動画再生クライアント１０１に返却する。なお、動画再生クライアント１０１が動画配信サーバ１０２に送信する処理の内容を表すクエリは、動画再生クライアント１０１の動画配信サーバ１０２に対するリクエストを示す情報を含んでいれば良く、ＵＲＬ以外の形式で表現しても良い。
【００５７】
図８は、本実施形態の動画再生クライアント１０１（動画再生装置）の構成を示すブロック図である。動画再生クライアント１０１は、ユーザ操作受付部８０１、プレイリスト取得部８０２、動画再生部８０７、通信部８０６を備える。動画再生部８０７はさらに動画選択部８０３、動画取得部８０４、動画表示部８０５、表示形態設定部８１１を備える。
【００５８】
ユーザ操作受付部８０１は、ユーザからの操作を受け付けるための手段である。ユーザからの操作として、再生する動画の選択、動画の再生開始、動画の再生停止を受け付ける。さらに、再生中の動画に対する特定領域の拡大などの表示形態の指定を受け付ける。
【００５９】
ユーザが特定領域の拡大表示を指示する場合には、図１０の動画表示部９０１に重畳して表示される拡大候補領域の中から拡大を希望する領域をユーザが選択する。ユーザ操作受付部８０１はユーザの拡大候補領域の選択結果を表示形態設定部８１１に送信する。ユーザが拡大候補領域を選択する方法として、動画拡大指示ボタン９０４をクリックして、表示された拡大候補領域から任意の拡大候補領域をクリックして選択することができる。
【００６０】
表示形態設定部８１１は受信した拡大領域の選択結果に基づいて拡大する領域を決定する。例えば、右上領域１００７が選択されると、表示形態設定部８１１は動画の拡大を示すｒｅｇｉｏｎの値として右上領域１００７に対応したＵＰＰＥＲ＿ＲＩＧＨＴをユーザが指定した拡大表示の拡大領域を属性情報としてプレイリスト取得部８０２設定する。ここでは、右上領域１００７に対応した属性情報の例としてＵＰＰＥＲ＿ＲＩＧＨＴを挙げたが、右上領域１００７の大きさや相対的な座標情報を取得又は特定できる方法であれば、これに限定する必要はない。
【００６１】
なお、ユーザが指定する拡大領域は予め設定された動画の拡大候補領域の中から選択しても良いし、任意の領域を指定しても良い。ユーザが任意の領域を拡大領域として指定した場合は、ユーザ操作受付部８０１はユーザによって指定された領域の座標を取得する。ユーザが拡大候補領域を指定した場合は、動画内の座標と表示領域の対応関係を表す拡大候補領域の定義は、動画再生クライアント１０１と動画配信サーバ１０２間で予め共有されているものとする。例えば、右上領域を表すＵＰＰＥＲ＿ＲＩＧＨＴなどの定数で拡大する領域が表現されるものとする。
【００６２】
また、ユーザによって指定された拡大領域を拡大した後の表示領域の大きさは、本実施形態では全画面とするが、全画面としなくてもよい。例えば、拡大倍率を可変とした場合は、拡大後の表示領域は拡大倍率によって変わる。その場合は、拡大後の表示領域の大きさや座標を取得又は特定する必要がある。
【００６３】
なお、表示形態設定部８１１は、拡大表示以外に、ユーザの指定した他の表示形態の属性情報をプレイリスト取得部８０２に設定することもできる。
【００６４】
プレイリスト取得部８０２は非図示のプレイリスト取得要求を生成する生成部を備える。ユーザ操作受付部８０１によって再生する動画が指定された場合や表示形態設定部８１１によって表示形態が指定された場合に、動画や指定された表示形態の属性情報に応じたプレイリスト取得要求を生成する。生成したプレイリスト取得要求を動画配信サーバ１０２に送信し、動画配信サーバ１０２から取得したいプレイリストを取得する。なお、プレイリスト取得要求を生成する生成部はプレイリスト取得部８０２に含まれず、独立した構成にしてもよい。
【００６５】
プレイリスト取得要求は動画配信サーバ１０２のインタフェースに則した形式で表現され、本実施形態ではＵＲＬで表現するものとする。なお、取得したプレイリストに有効期限が設定されている場合は、有効期限を超過した際にプレイリスト取得部８０２が再びプレイリストを取得する。
【００６６】
プレイリスト取得要求に表示形態に関する属性情報のほかに、動画再生クライアント１０１の通信帯域情報を含むこともできる。
【００６７】
動画選択部８０３は、プレイリストに含まれる動画のバリエーションの中から再生に適した動画を選択する。動画の選択は、通信帯域やディスプレイ解像度等のクライアントの状態や表示形態設定部８１１によって設定される動画に対する表示形態の指定に基づいて行われる。
【００６８】
動画取得部８０４は、動画選択部８０３によって決定されたバリエーション動画ファイルを動画配信サーバ１０２から取得し、動画表示部８０５を用いて動画を表示する。
【００６９】
動画表示部８０５は、動画のフォーマットに応じた再生処理を行い、動画を表示装置２０５に動画を出力する。
【００７０】
図９および図１０は本実施形態の動画配信システムがユーザに提供するユーザインタフェースの例を示したものである。ユーザインタフェースは図８の動画表示部８０５に対応する部分である。動画表示部８０５はさらに、動画表示部分９０１、動画コントロール部分９０２、動画情報表示部分９０３から構成される。また、動画コントロール部分９０２は動画拡大指示ボタン９０４をさらに含む。
【００７１】
動画表示部分９０１は、動画再生クライアント１０１の動画表示部８０５によって再生される動画を表示するためのインタフェースである。
【００７２】
動画コントロール部分９０２は、ユーザが動画に対する操作を行う部分であり、動画の再生や停止、早送りや巻き戻し、音量の調整、拡大等の表示形態の指示などの操作が可能である。動画再生クライアント１０１のユーザ操作受付部８０１が動画コントロール部分９０２で行われたユーザの操作を受付ける。なお、図１０には、拡大表示に対応する拡大指示ボタン９０４しか表示していないが、他の表示形態を指示するメニュー又はボタンを含んでもいい。他の表示形態として、例えば、色やコントラストの補正、白黒変換またはセピア変換、表示領域の回転又は反転等がある。
【００７３】
動画情報表示部分９０３は、動画の属性情報を表示するためのインタフェースであり、プレイリストに含まれる動画の属性情報の一部又は全部を表示する。拡大動画の属性情報が表示されていれば、その拡大動画を取得できることが分かる。
【００７４】
また、動画コントロール部分９０２内の動画拡大指示ボタン９０４が押下されると、図１０のように拡大候補領域が動画表示部分９０１に重畳して表示される。図１０では、左上領域１００５、左下領域１００６、右上領域１００７、右下領域１００８、の４つの拡大候補領域が表示されている。なお、拡大候補領域のサイズ、形状や個数は任意に設定できるものとする。
【００７５】
ユーザは、動画表示部分９０１に表示された拡大候補領域の中から、拡大表示を希望する領域を選択する。例えば、動画拡大指示ボタン９０４を押下した状態で、拡大候補領域の右上領域１００７を選択すると、ユーザが動画の右上領域１００７の拡大を指示したことになる。拡大候補領域の選択は、例えば、マウスポインタを何れの拡大候補領域に移動させて、クリックして選択できる。また、拡大候補領域に対応する選択ボタンを設けて選択することもできる。
【００７６】
ユーザが拡大表示を希望する領域を選択すると、拡大動画をサーバから取得して、選択した領域を拡大した動画の再生が開始される。拡大した動画の再生中は、拡大前の動画のどの領域を拡大しているかを示すナビゲータを表示しても良い。なお、拡大した動画の再生中に、動画拡大指示ボタン９０４を押下すると、拡大表示が解除され、拡大する前の動画を再生する。
【００７７】
なお、ユーザインタフェースは図９および図１０で示した以外の要素を含んで良い。また、ユーザインタフェースの各部を表示するための情報は、動画再生クライアント１０１と動画配信サーバ１０２のどちらが保持しても良い。
【００７８】
図１１のフローチャートを用いて、動画再生クライアント１０１が動画再生中のユーザの操作に対応した動画を取得し再生する処理の流れについて説明する。以下、フローチャートは、ＣＰＵが制御プログラムを実行することにより実現されるものとする。なお、この処理に先立ってユーザ操作受付部８０１などによって再生する動画がすでに選択されているものとする。そして、ここでは再生する動画として選択された動画のＭｏｖｉｅ  ＩＤを００１とする。
【００７９】
ステップＳ１１０１において、動画配信サーバ１０２からプレイリストを取得する。動画再生クライアント１０１はプレイリストを取得するために動画配信サーバ１０２に対してプレイリスト取得要求としてのクエリパラメータ、オリジナル動画を示すＭｏｖｉｅ  ＩＤ＝００１をクエリパラメータとして含めたリクエストを送信する。このクエリパラメータを含んだリクエストＵＲＬは、ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｐｌａｙｌｉｓｔｓ？ｍｏｖｉｅＩｄ＝００１となる。このリクエストＵＲＬは、プレイリストを取得するためのリクエストであるので、ｍｏｖｉｅＩｄはオリジナル動画を特定するための情報である。
【００８０】
このリクエストＵＲＬを送信することによって、動画再生クライアント１０１はＭｏｖｉｅ  ＩＤ＝００１のオリジナル動画に関するバリエーション動画の情報を記載したプレイリストを動画配信サーバ１０２から取得する。また、ステップＳ１１０１で取得したプレイリストの例を図１２に示す。図１２の例はＭｏｖｉｅ  ＩＤ＝００１のオリジナル動画について、解像度の異なる２種類のバリエーション動画を含んでいる。２種類のバリエーション動画をそれぞれｍｏｖｉｅＩＤ＝００００−００００−００００−０００２とｍｏｖｉｅＩＤ＝００００−００００−００００−０００３とを用いて特定できる。
【００８１】
次に、ステップＳ１１０２において、取得したプレイリストに含まれる動画のバリエーションの中から、再生に適した動画のバリエーションを選択する。例えば、動画再生クライアント１０１は自身の通信帯域などから再生すべき動画のバリエーションを選択する。ここでは、動画再生クライアント１０１の現在の通信帯域が３００ＫＢ／Ｓであるとし、図１２のプレイリストの中からＭｏｖｉｅ  ＩＤが００００−００００−００００−０００３のバリエーション動画を選択するものとする。
【００８２】
次に、ステップＳ１１０３において、ステップＳ１１０２で選択した動画のバリエーションのＭｏｖｉｅ  ＩＤをステップＳ１１０４で動画ファイルを取得するために記憶する。
【００８３】
次に、ステップＳ１１０４において、セットされたＭｏｖｉｅ  ＩＤの動画ファイルを取得して動画を再生する。この動画ファイルを取得するためのリクエストＵＲＬはｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｍｏｖｉｅｓ／００００−００００−００００−０００３となる。このリクエストＵＲＬは、バリエーション動画を取得するためのリクエストであるので、セットされたＭｏｖｉｅ  ＩＤはオリジナル動画を特定するための情報である。
【００８４】
そして、動画の再生は、ステップＳ１１１０において動画再生が終了したと判断されるまで繰り替えし行われる。なお、ユーザによる動画の再生停止操作または動画の終端までの再生が完了すると、動画再生が終了したと判断される。
【００８５】
また、ステップＳ１１０５において、動画再生中にユーザ操作受付部８０１よって拡大または拡大解除指示が入力されると、ステップＳ１１０６において拡大または拡大解除指示に対応したｒｅｇｉｏｎの値をプレイリスト取得部８０２に設定する。ここでは、ユーザが動画の右上領域１００７の拡大を指示したものとし、ｒｅｇｉｏｎの値はＵＰＰＥＲ＿ＲＩＧＨＴとする。この際に、動画再生クライアント１０１はプレイリストを取得するために動画配信サーバ１０２に対してプレイリスト取得要求としてクエリパラメータ、Ｍｏｖｉｅ  ＩＤ＝００１とＲｅｇｉｏｎ＝ＵＰＰＥＲ＿ＲＩＧＨＴを送信する。
【００８６】
このクエリパラメータを含んだリクエストＵＲＬは、ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｐｌａｙｌｉｓｔｓ？ｍｏｖｉｅＩｄ＝００１＆ｒｅｇｉｏｎ＝ＵＰＰＥＲ＿ＲＩＧＨＴとなる。また、プレイリスト取得要求は、クエリパラメータを含んだここで挙げたリクエストに限らず、プレイリストを更新するための情報を全て含んでもいい。また、動画再生クライアント１０１において生成したプレイリストの情報を全て含んでもいい。
【００８７】
ステップＳ１１０７とステップＳ１１０８において、動画配信サーバ１０２からプレイリストを取得できるまで、プレイリストの取得を繰り返し実行する。ステップＳ１１０７によって取得されたプレイリストの例を図１３に示す。なお、ここで説明した処理は一例であり、プレイリストの取得を繰り返し実行しなくてもよい。
【００８８】
図１３のプレイリストは、図１２のプレイリストが持つバリエーション動画に加え、ステップＳ１１０６でセットしたｒｅｇｉｏｎを表示するバリエーション動画をさらに含んでいる。プレイリストの取得が完了すると、ステップＳ１１０９において、ＲｅｇｉｏｎがＵＰＰＥＲ＿ＲＩＧＨＴに該当する動画のバリエーションを選択し、Ｍｏｖｉｅ  ＩＤをセットする。
【００８９】
また、Ｍｏｖｉｅ  ＩＤをセットする際には、動画の先頭から何秒の位置を再生中かを一時的にＲＡＭ２０２に記憶する。そして、ステップＳ１１０４において新しくセットされたＭｏｖｉｅ  ＩＤの動画ファイルを取得し、ステップＳ１００９において記憶した再生位置から再生する。
【００９０】
図１４のフローチャートを用いて、動画配信サーバ１０２が動画再生クライアント１０１からのリクエストに応じてプレイリストを返却する処理の流れについて説明する。図１４の処理は、図１１の動画再生クライアント１０１の処理におけるステップＳ１１０１やステップＳ１１０７に対応した処理である。
【００９１】
ステップＳ１４０１において、プレイリスト管理部４０４に対して、送信されたプレイリスト検索クエリに合致するプレイリストがすでに作成されているかどうかを確認する。プレイリストがすでに作成されていた場合は、ステップＳ１４０２において、プレイリストストレージ４０６から対象のプレイリストを取得する。そして、ステップＳ１４０３において、プレイリスト検索クエリを送信した動画再生クライアント１０１に対してプレイリストを送信する。
【００９２】
また、プレイリストが作成されておらず、ステップＳ１４０４においてプレイリスト検索クエリが拡大する領域を示す属性情報ｒｅｇｉｏｎを含まない場合は、ステップＳ１４０５において動画再生クライアント１０１に対してエラーメッセージを送信する。ステップＳ１４０５で送信するエラーメッセージは、プレイリスト検索クエリに該当するプレイリストが動画配信サーバ１０２上に存在しないことを示すものである。エラーメッセージは、ＨＴＴＰで規定された４０４  ＮＯＴ  ＦＯＵＮＤのようなステータスコードをレスポンスのヘッダに付加しても良いし、プレイリストが動画配信サーバ１０２上に存在しないことを表すメッセージをレスポンスのボディに記述しても良い。
【００９３】
また、プレイリストがすでに作成されておらず、ステップＳ１４０４においてプレイリスト検索クエリがｒｅｇｉｏｎを含む場合は、ステップＳ１４０６においてプレイリスト検索クエリに合致するプレイリストを新たに作成する。ステップＳ１４０６の処理については後述する。なお、ステップＳ１４０４は、プレイリスト検索クエリがｒｅｇｉｏｎを含むかどうかではなく、プレイリストを作成するかどうかを示すパラメータがプレイリスト検索クエリに含まれているかに基づいて判断しても良い。
【００９４】
図１５を用いて動画配信サーバ１０２のステップＳ１４０６におけるプレイリスト作成処理について説明する。ここでは、動画再生クライアント１０１からプレイリスト検索クエリとして、Ｍｏｖｉｅ  ＩＤ＝００００−００００−００００−０００１とＲｅｇｉｏｎ＝ＵＰＰＥＲ＿ＲＩＧＨＴが送信されたものとする。
【００９５】
ステップＳ１５０１において、動画管理部４０１に対してプレイリスト検索クエリに合致するバリエーション動画が作成済みかどうかを確認する。バリエーション動画がすでに作成されている場合は、ステップＳ１５０４においてプレイリストを生成する。バリエーション動画が作成されていない場合は、受信したプレイリスト検索クエリを用いてステップＳ１５０２において動画変換指示を生成する。
【００９６】
次にステップＳ１５０３において、動画生成部４０２を用いて、ステップＳ１５０２で生成した動画変換指示に従ってバリエーション動画を生成する。そして、生成したバリエーション動画を動画管理部４０１に登録する。
【００９７】
ステップＳ１５０４において、作成されたバリエーション動画の属性情報を使用して、プレイリストを新たに生成する。ステップＳ１５０４では、Ｍｏｖｉｅ  ＩＤが００００−００００−００００−０００１に対応付けられたプレイリストに対して、作成されたバリエーション動画を追加したプレイリストを新規に生成し、プレイリスト管理部４０４に登録指示を送信する。
【００９８】
プレイリスト管理部４０４に送信するプレイリスト登録指示は、動画再生クライアント１０１からプレイリスト検索クエリとして送信されたＭｏｖｉｅ  ＩＤおよび動画の拡大表示の対象領域を表すＲｅｇｉｏｎの値を含む。なお、バリエーション動画の生成においては、動画配信サーバ１０２にあらかじめ設定された解像度ごとにバリエーション動画を生成しても良い。例えば、低解像度と高解像度のバリエーション動画の両方を生成しても良い。また、ステップＳ１１０１を実行した動画再生クライアント１０１の通信帯域や画面解像度に応じて作成するバリエーション動画を選択しても良い。
【００９９】
図１６のフローチャートを用いて、動画配信サーバ１０２が動画再生クライアント１０１からの動画ファイル取得リクエストに応じて動画ファイルを返却する処理の流れについて説明する。動画再生クライアント１０１が送信する動画ファイル取得リクエストはＭｏｖｉｅ  ＩＤを含む。図１６の処理は、図１１の動画再生クライアント１０１の処理におけるステップＳ１１０４に対応した処理である。
【０１００】
ステップＳ１６０１において、動画管理部４０１に対して、送信されたＭｏｖｉｅ  ＩＤに合致する動画ファイルが存在するかどうかを確認する。動画ファイルが存在する場合は、ステップＳ１６０２において、動画ストレージ４０３から対象の動画ファイルを取得する。そして、ステップＳ１６０３において、動画ファイル取得リクエストを送信した動画再生クライアント１０１に対して動画ファイルを送信する。また、送信されたＭｏｖｉｅ  ＩＤに合致する動画ファイルが存在しない場合は、Ｓ１４０５において動画再生クライアント１０１に対してエラーメッセージを送信する。
【０１０１】
以上のように、本実施形態の動画配信システムによれば、ユーザが動画再生中に行った拡大指示に応じた動画を動画配信サーバ１０２が作成する。そして、拡大指示に応じた動画を含んだプレイリストを作成し、動画再生クライアント１０１に作成したプレイリストを返却する。そのため、プレイリストを用いた動画配信方式において、ユーザが動画の視聴中に行った拡大指示に対応した動画をリアルタイムに作成し、作成した拡大動画に再生を切り替えることができる。したがって、ユーザは目的の動画をすぐに視聴することができる。
【０１０２】
＜実施形態２＞
実施形態１では、動画再生クライアント１０１から動画の拡大指示が送信された場合に、動画配信サーバ１０２で拡大対象の動画の全ての区間の拡大動画を作成する例を示した。本実施形態では、動画配信サーバ１０２が動画再生クライアント１０１の拡大動画の視聴に合わせて拡大動画を区間ごとに逐次作成する例を示す。本実施形態は、基本的には実施形態１を前提としているため、以下では、実施形態１との差分について説明する。
【０１０３】
本実施形態では、一つの動画ファイルを単位時間ごとの区間に分割して複数の分割動画として管理する。そのため、動画管理テーブル５００に各分割動画に対応する区間を表す項目が追加される。なお、本実施形態では単位時間を３０秒とするが、単位時間は任意に設定して良く、さらに区間ごとに可変にしても良いものとする。
【０１０４】
図１７は、本実施形態におけるプレイリストに含まれる要素を説明したものである。図１７は、９０秒の動画に対するバリエーション動画が３種類含まれる場合のプレイリストの例を示している。各バリエーション動画は単位時間である３０秒ごとに分割され、計９個の動画ファイルがプレイリストに含まれている。図１７のプレイリストでは各分割動画ファイルがどの区間を表示するかを、ＳｔａｒｔおよびＥｎｄとして表している。なお、Ｓｔａｒｔ及びＥｎｄは分割元の動画の先頭からの経過秒数を表すものである。
【０１０５】
図１８を用いて、動画再生クライアント１０１が動画再生中のユーザの操作に応じて動画を取得し再生する処理の流れについて説明する。ステップＳ１８０１において、動画の再生位置をセットする。再生位置は再生対象の動画の先頭からの経過秒数で表される。
【０１０６】
ステップＳ１８０１では、動画の先頭からの再生がユーザから指示され、再生位置として０がセットされたものとする。なお、ユーザが動画の途中からの再生を指定した場合は０以外の値がセットされることとなる。
【０１０７】
次に、ステップＳ１８０２において、取得したプレイリストに含まれる動画のバリエーションの中から、再生に適した動画のバリエーションを選択する。ステップＳ１８０２では、ステップＳ１８０１でセットした再生位置に従って動画のバリエーションを選択する。
【０１０８】
次に、ステップＳ１８０３において、現在の再生位置を取得し、セットする。ステップＳ１８０３では、現在の再生位置として動画表示部８０５が現在表示している動画の位置を取得する。そして、ステップＳ１１１０において、動画再生が終了していないと判断された場合は、ステップＳ１８０２において動画のバリエーションを再び選択し、動画の再生を繰り返し実行する。
【０１０９】
図２４は本実施形態のサーバの構成である。実施形態１のサーバの構成に加えて、区間動画生成制御部２４０１と区間動画生成時間予測部２４０２をさらに備える。区間動画生成制御部２４０１は各区間の動画生成を行うべきかを判定する。区間動画生成時間予測部は、各区間の動画を生成するために必要な時間を予測する。
【０１１０】
図１９を用いて、動画配信サーバ１０２が動画再生中のユーザの操作に応じて拡大動画及びプレイリストを逐次作成する処理の流れについて説明する。図１９の処理は図１４のステップＳ１４０６のプレイリスト作成として実行される。
【０１１１】
ステップＳ１９０１において、拡大対象の動画の区間数Ｎを求める。区間数Ｎは、拡大対象の動画の長さを区間の単位時間で除算することで求める。例えば、１８０秒の長さの動画に対して、単位時間が３０秒の場合は、区間数Ｎは６となる。ステップＳ１９０２、ステップＳ１９１０、ステップＳ１９１１において、拡大対象の動画の各区間に対して繰り返し処理を行う。
【０１１２】
ステップＳ１９０３において、ｉ番目の区間の動画が作成済みかどうか動画管理部４０１に対して確認する。ｉ番目の区間の動画がすでに作成されている場合は、ステップＳ１９０９においてプレイリストを生成する。ｉ番目の区間の動画がすでに作成されていない場合は、ステップＳ１９０４に進む。
【０１１３】
ステップＳ１９０４において、動画再生クライアント１０１での現在の動画の再生位置情報を取得する。動画再生クライアント１０１での現在の動画の再生位置情報は、動画再生クライアント１０１がどの区間の動画ファイルを取得済みか動画管理部４０１に問い合わせて判断する。または、動画再生クライアント１０１が図１１のステップＳ１１０５において送信するプレイリスト取得リクエストに現在の動画の再生位置を含めても良い。現在の動画の再生位置情報として、例えば動画再生クライアント１０１で既に再生した区間Ｐとすることができる。区間ＰがＰ番目の分割動画に対応するとすれば、Ｐ番目の分割動画が現在再生中であることを示す。なお、区間の替わりに時間を用いて示すこともできる。
【０１１４】
ステップＳ１９０５において、現在の再生位置Ｐと区間ｉの開始位置を比較する。なお、再生位置Ｐと区間ｉの開始位置は、どちらも同一の動画の先頭から経過秒数で表されているため、大小の比較が可能である。現在の再生位置Ｐよりも区間ｉの開始位置が小さい場合は、区間ｉの動画ファイルはすでに動画再生クライアント１０１で再生が完了しているため、区間ｉの動画は生成せず、ステップＳ１９１０に進む。現在の再生位置Ｐよりも区間ｉの開始位置が大きい場合はステップＳ１９０６に進む。
【０１１５】
ステップＳ１９０６において、区間動画生成時間予測部２４０２が区間ｉの動画の生成に必要な時間を算出する。動画の生成に必要な時間は、区間ｉの動画の秒数、解像度、フレームレートなどに基づいて算出する。ステップＳ１９０７において、現在の再生位置Ｐと区間ｉの動画の生成に必要な時間Ｑの合計と、区間ｉの開始位置を比較する。現在の再生位置Ｐと区間ｉの動画の生成に必要な時間Ｑの合計よりも区間ｉの開始位置が小さい場合は、動画の生成中に動画再生クライアント１０１での区間ｉの動画の再生が完了してしまうため、区間ｉの動画は生成せずステップＳ１９１０に進む。現在の再生位置Ｐと区間ｉの動画の生成に必要な時間Ｑの合計よりも区間ｉの開始位置が大きい場合は、ステップＳ１９０８に進む。
【０１１６】
ステップＳ１９０８において、区間ｉの動画を生成する。以上のような区間ｉの動画を生成すべきかの判断を区間動画生成制御部２４０１が実行する。ステップＳ１９０９において、ステップＳ１９０８で生成した動画を追加したプレイリストを生成する。ステップＳ１９０９が完了した時点で、動画再生クライアント１０１にプレイリストを返却しても良いし、全ての区間のプレイリストの生成が完了した時点でプレイリストを返却してもよい。ステップＳ１９０９が完了した時点で動画再生クライアント１０１にプレイリストを返却する場合は、プレイリストの有効期限を設定することで動画再生クライアント１０１のプレイリストの再取得を促すことができる。ここで設定するプレイリストの有効期限は、例えば、区間ｉ＋１の動画の生成が完了する予定の時間とすることができる。
【０１１７】
以上のように、本実施形態の動画配信システムによれば、動画配信サーバ１０２がユーザの拡大指示に応じた拡大動画を生成する際に動画再生クライアント１０１で既に再生された区間（再生済み）の拡大動画を生成しない。まだ再生されていない可能性の高い区間の拡大動画のみを作成する。そのため、動画再生クライアント１０１が動画のどの位置を視聴しているかの情報（再生中の分割動画の情報）を動画配信サーバ１０２に送信し、動画配信サーバ１０２が拡大指示に応じた動画の各区間の生成にどのくらいの時間が必要かを計算する。その結果、動画配信サーバ１０２が動画再生クライアント１０１で再生済みの区間及び再生済みの可能性の高い区間の動画を生成せず、動画配信サーバ１０２の動画生成にかかる負荷や、動画の保管コストの軽減が実現できる。
【０１１８】
＜実施形態３＞
実施形態１では、本実施形態の動画配信システムが提供するユーザインタフェースに関して、ユーザが拡大指示を入力する際の操作の例を示した。本実施形態では、本実施形態の動画配信システムが提供するユーザインタフェースに関して、ユーザに対する通知の表示についての例を示す。本実施形態は、基本的には実施形態１を前提としているため、以下では、実施形態１との差分について説明する。
【０１１９】
図２０は、動画再生クライアント１０１がステップＳ１１０７において、動画の拡大表示のためのプレイリストを取得している間に表示されるユーザインタフェースの例である。図２０では、プレイリストが取得されるまでの残り時間表示領域２００１が拡大を指示した左上領域１００５内に表示され、ユーザに通知される。
【０１２０】
図２１は、動画再生クライアント１０１からステップＳ１１０７のリクエストを受信した動画配信サーバ１０２の処理の流れを示したものである。図２１の処理は図１４のステップＳ１４０６のプレイリスト作成として実行される。ステップＳ２１０１において、ステップＳ１１０３のバリエーション動画の生成に必要な時間を算出し、動画再生クライアント１０１に返却する。動画再生クライアント１０１は動画配信サーバ１０２から取得した残り時間に応じて残り時間表示領域２００１の残り時間の表示を行う。
【０１２１】
また、動画再生クライアント１０１がステップＳ１１０１において取得したプレイリストが、図１３のように、すでに特定の領域を拡大したバリエーション動画を含んでいた場合は、図２２のように、拡大可能領域を表示する。図２２は、左上領域１００５の拡大が可能であり、左上領域１００５内に拡大可能であることを示す拡大済み動画表示ボタン２２０１が表示される。ユーザが拡大済み動画表示ボタン２２０１を押下すると、左上領域１００５を拡大した動画が再生される。また、動画再生クライアント１０１がステップＳ１００１において取得したプレイリストが特定の領域を拡大したバリエーション動画を含んでいた場合は、動画拡大指示ボタン９０４が押下された際に拡大済み動画表示ボタン２２０１を表示しても良い。
【０１２２】
以上のように、本実施形態の動画配信システムによれば、ユーザが入力した拡大指示に応じた拡大動画が再生されるまでの待ち時間が表示される。そのため、ユーザの動画配信システム操作時のストレスを軽減することができる。また、本実施形態の動画配信システムによれば、取得したプレイリストに含まれる拡大済み動画が存在することがユーザに通知される。そのため、ユーザがバリエーション動画を閲覧する機会が増加し、ユーザにとって動画閲覧の使い勝手を向上することができる。
【０１２３】
＜実施形態４＞
実施形態１では、ユーザが動画に対して領域の拡大を指示する場合の処理の例を示した。本実施形態では、ユーザが動画に対して動画の編集や加工を指示する際の処理についての例を示す。本実施形態は、基本的には実施形態１を前提としているため、以下では、実施形態１との差分について説明する。
【０１２４】
本実施形態では、ユーザが動画に対して、色やコントラストの補正、白黒またはセピア変換、回転や反転、モザイク付与などの画像の編集や加工を指示するものとする。ユーザ操作受付部８０１は、ユーザによる指示を非図示の指示メニューを介して受付けることができる。
【０１２５】
図２３は本実施形態におけるプレイリストの例を示したものである。本実施形態のプレイリストは、画像の編集や加工によって生成されたバリエーション動画を含んでおり、各バリーション動画の編集や可能の情報をＥｄｉｔ  Ｔｙｐｅとして含んでいる。
【０１２６】
例えば、Ｍｏｖｉｅ  ＩＤが００００−００００−００００−０００２のバリエーション動画は、白黒変換を施した動画であり、Ｍｏｖｉｅ  ＩＤが００００−００００−００００−０００３のバリエーション動画は、時計回りに９０°回転した動画である。本実施形態では、ユーザの動画の編集や加工に応じたプレイリスト取得要求を動画再生クライアント１０１が生成し、動画配信サーバ１０２に送信する。表示形態設定部８１１が、ユーザ操作受付部８０１が受け付けたユーザの操作に応じた表示形態の属性情報を設定する。
【０１２７】
例えば、ユーザが動画に対して時計回りに９０°回転することを指示した場合は、動画の編集や加工を表すｅｄｉｔＴｙｐｅに時計回り９０°回転を示すＲｏｔａｔｅ９０ＣＷを設定する。設定した表示形態の属性情報をプレイリスト取得部８０２に送信する。
【０１２８】
プレイリスト取得要求を受信した動画配信サーバ１０２は、プレイリスト取得要求に含まれる動画の編集や加工に応じたバリエーション動画を生成する。そして、生成したバリエーション動画を含むプレイリストを動画再生クライアント１０１に返却する。なお、動画配信サーバ１０２が持つ動画の編集や加工機能をあらかじめ動画再生クライアント１０１に通知し、動画配信サーバ１０２が持つ加工機能の中からユーザに動画の編集や加工の内容を選択させても良い。つまり、動画再生クライアント１０１は、ｅｄｉｔＴｙｐｅとして設定可能な値の候補を動画配信サーバ１０２から前もって取得しても良い。
【０１２９】
以上のように、本実施形態の動画配信システムによれば、ユーザが入力した動画の編集や加工指示に応じたバリエーション動画をユーザに提供することができる。
【０１３０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１３１】
１０１  動画再生クライアント
８０１  ユーザ操作受付部
８１１  表示形態設定部
１０２  動画配信サーバ
４１１  表示形態取得部
４０２  動画生成部
４０５  プレイリスト生成部
【図１】
0006324238.tif 000002
【図２】
0006324238.tif 000003
【図３】
0006324238.tif 000004
【図４】
0006324238.tif 000005
【図５】
0006324238.tif 000006
【図６】
0006324238.tif 000007
【図７】
0006324238.tif 000008
【図８】
0006324238.tif 000009
【図９】
0006324238.tif 000010
【図１０】
0006324238.tif 000011
【図１１】
0006324238.tif 000012
【図１２】
0006324238.tif 000013
【図１３】
0006324238.tif 000014
【図１４】
0006324238.tif 000015
【図１５】
0006324238.tif 000016
【図１６】
0006324238.tif 000017
【図１７】
0006324238.tif 000018
【図１８】
0006324238.tif 000019
【図１９】
0006324238.tif 000020
【図２０】
0006324238.tif 000021
【図２１】
0006324238.tif 000022
【図２２】
0006324238.tif 000023
【図２３】
0006324238.tif 000024
【図２４】
0006324238.tif 000025