(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-01
(45)【発行日】2024-10-09
(54)【発明の名称】視聴端末及びプログラム
(51)【国際特許分類】
H04N 21/44 20110101AFI20241002BHJP
【FI】
H04N21/44
(21)【出願番号】P 2020104209
(22)【出願日】2020-06-17
【審査請求日】2023-05-01
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100121119
【氏名又は名称】花村 泰伸
(72)【発明者】
【氏名】黒住 正顕
(72)【発明者】
【氏名】山本 正男
(72)【発明者】
【氏名】西村 敏
【審査官】富樫 明
(56)【参考文献】
【文献】特許第6336083(JP,B2)
【文献】国際公開第2017/042938(WO,A1)
【文献】国際公開第2012/153434(WO,A1)
【文献】特開2014-150408(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
ウェブブラウザー上で動画視聴プログラムが動作することで、ユーザが視聴する複数の動画を再生する視聴端末において、
当該視聴端末に備えた時計の時刻を基準時刻
として取得する基準時刻取得部と、前記複数の動画のそれぞれに対応する複数の同期処理部と、前記複数の動画のそれぞれに対応する複数の動画再生部と、を備え、前記複数の同期処理部のそれぞれと前記複数の動画再生部のそれぞれとが対応
しており、前記動画が映像及び音声からなるものとして、
前記複数の同期処理部のそれぞれは、
対応する前記動画再生部により再生されている前記動画の再生時刻を示す現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記基準時刻に所定のしきい値を加算して加算時刻を求めると共に、前記基準時刻から前記しきい値を減算して減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較し、前記現在時刻が進んでいる、遅れている、または進んでおらずかつ遅れていないことを判定する現在時刻比較部と、
対応する前記動画再生部により再生されている前記動画の前記現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記現在時刻と前記基準時刻との間の差を時刻ずれ量として算出し、
所定時間が経過すると前記時刻ずれ量が0となる場合の前記所定時間を予め設定された補正時間として、前記時刻ずれ量を前記予め設定された補正時間で除算することで、再生レート補正値を求める補正値算出部と、
前記補正値算出部により求めた前記再生レート補正値を入力し、前記現在時刻比較部により前記現在時刻が進んでいると判定された場合、
所定の基準再生レートから前記再生レート補正値を減算することで、前記基準再生レートよりも低いレートを再生レートとして求め、前記現在時刻が遅れていると判定された場合、前記基準再生レートに前記再生レート補正値を加算することで、前記基準再生レートよりも高いレートを前記再生レートとして求め、前記現在時刻が進んでおらずかつ遅れていないと判定された場合、前記基準再生レートを前記再生レートとして求める再生レート補正部と、を備え、
前記複数の動画再生部のそれぞれは、
対応する前記同期処理部から前記再生レートを入力し、前記再生レートに基づいて、対応する前記動画
の前記映像及び前記音声を再生する、ことを特徴とする視聴端末。
【請求項2】
ユーザが視聴する複数の動画を再生する視聴端末において、
所定の基準時刻を取得する基準時刻取得部と、前記複数の動画のそれぞれに対応する複数の同期処理部と、前記複数の動画のそれぞれに対応する複数の動画再生部と、を備え、前記複数の同期処理部のそれぞれと前記複数の動画再生部のそれぞれとが対応している場合に、
前記複数の同期処理部のそれぞれは、
対応する前記動画再生部により再生されている前記動画の再生時刻を示す現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記基準時刻に所定のしきい値を加算して加算時刻を求めると共に、前記基準時刻から前記しきい値を減算して減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較し、前記現在時刻が進んでいる、遅れている、または進んでおらずかつ遅れていないことを判定する現在時刻比較部と、
前記現在時刻比較部により前記現在時刻が進んでいると判定された場合、所定の基準再生レートよりも低いレートを再生レートとして求め、前記現在時刻が遅れていると判定された場合、前記基準再生レートよりも高いレートを前記再生レートとして求め、前記現在時刻が進んでおらずかつ遅れていないと判定された場合、前記基準再生レートを前記再生レートとして求める再生レート補正部と、を備え、
前記複数の動画再生部のそれぞれは、
対応する前記同期処理部から前記再生レートを入力し、前記再生レートに基づいて、対応する前記動画を再生
し、
前記複数の動画再生部のそれぞれがHTMLMediaElementにより前記動画を再生する場合に、前記HTMLMediaElementにより前記現在時刻が更新されたときに発火するtimeupdateイベントのタイミングにて、
対応する前記同期処理部の前記現在時刻比較部は、前記現在時刻及び前記基準時刻を入力して前記加算時刻及び前記減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較して判定し、前記再生レート補正部は、前記再生レートを求める、ことを特徴とする視聴端末。
【請求項3】
請求項1または2に記載の視聴端末において、
前記しきい値を、前記動画が表示される表示部におけるリフレッシュ周期の時間に対して1/2以下の所定値とする、ことを特徴とする視聴端末。
【請求項4】
コンピュータを、請求項1から
3までのいずれか一項に記載の視聴端末として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが視聴する複数の動画を再生する視聴端末及びプログラムに関する。
【背景技術】
【0002】
従来、視聴端末において動画(映像及び音声)を再生するためのプログラムの要素として、例えば、ウェブページを構成する部品である「HTMLMediaElement」が使用される(例えば、非特許文献1~4を参照)。
【0003】
このHTMLMediaElementは、動画を再生するための要素であり、ウェブブラウザー上で動作させるために、HTML(HyperText Markup Language:ハイパーテキストマークアップランゲージ)にて記述される。
【0004】
視聴端末は、HTMLMediaElementが記述されたHTMLファイルを実行することにより、画面上の所定位置に、所定の動画を再生することができる(例えば、非特許文献5を参照)。
【先行技術文献】
【非特許文献】
【0005】
【文献】“HTMLMediaElement”、[online]、[令和2年5月12日検索]、インターネット<URL:https://developer.mozilla.org/ja/docs/Web/API/HTMLMediaElement>
【文献】“4.8.12 Media elements”、[online]、[令和2年5月12日検索]、インターネット<URL:https://html.spec.whatwg.org/multipage/the-video-element.html#htmlmediaelement>
【文献】“4.7.10 Media elements”、[online]、[令和2年5月12日検索]、インターネット<URL:https://www.w3.org/TR/html50/embedded-content-0.html#htmlmediaelement>
【文献】“4.8.10.11.3 ASSIGNING A MEDIA CONTROLLER DECLARATIVELY”、[online]、[令和2年5月12日検索]、インターネット<URL:https:// http://www.w3.org/TR/2012/CR-html5-20121217/embedded-content-0.html#attr--media-mediagroup>
【文献】“HTML5 Video Events and API”、[online]、[令和2年5月12日検索]、インターネット<URL:https://www.w3.org/2010/05/video/mediaevents.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、視聴端末が複数のHTMLMediaElementを同時に用いて複数の動画を再生する場合、ウェブブラウザーには、現在のところ複数の動画を同期させる仕組みが実装されていない。
【0007】
従来、HTML5で定義されたmediaGroup属性により、複数のHTMLMediaElementをグループ化し、1つのHTMLMediaElementに対して再生開始または再生停止を行うと、グループ化した他のHTMLMediaElementも同期して再生開始または再生停止を行うことができる。つまり、mediaGroup属性により、HTMLMediaElementをグループ化することを前提として、再生開始及び再生停止の同期を実現することができる。
【0008】
しかしながら、例えば1つのHTMLMediaElementにて再生中の動画があり、それを停止することなく他のHTMLMediaElementにて動画を再生する場合には、これらの動画を同期させることができない。尚、mediaGroup属性によるこのような機能は、HTML5が改訂された後のHTML5.1において削除された。
【0009】
また、例えばネットワークが混雑したり、視聴端末の処理に負荷変動が発生したりする外部要因に起因して、1つのHTMLMediaElementにおいて一時的なフリーズが発生することある。この場合、1つのHTMLMediaElementと他のHTMLMediaElementとの間で再生時刻にずれが生じるため、異なるHTMLMediaElement間の動画を同期した状態で再生することができない。
【0010】
前述の外部要因により異なるHTMLMediaElement間で再生時刻にずれが生じる。その際、再生時刻のずれの時間がディスプレイのリフレッシュ周期の時間未満であれば、動画の視覚的な不具合は目立たない。しかし、再生時刻のずれの時間がディスプレイのリフレッシュ周期の時間以上であると、動画フレームの表示タイミングがずれるため、再生時刻のずれが視覚的に目立ってしまうという問題があった。
【0011】
さらに、異なるブラウザー上で動作するHTMLMediaElementの動画再生、または異なる視聴端末上で動作するブラウザー上のHTMLMediaElementの動画再生においても、それぞれの動画をディスプレイのリフレッシュ周期の時間精度で同期させて再生することができない。
【0012】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、複数の動画再生要素によりそれぞれの動画を再生しているときに再生時刻がずれたとしても、その再生時刻のずれを訂正し、動画再生の同期を実現可能な視聴端末及びプログラムを提供することにある。
【課題を解決するための手段】
【0013】
前記課題を解決するために、請求項1の視聴端末は、ウェブブラウザー上で動画視聴プログラムが動作することで、ユーザが視聴する複数の動画を再生する視聴端末において、当該視聴端末に備えた時計の時刻を基準時刻として取得する基準時刻取得部と、前記複数の動画のそれぞれに対応する複数の同期処理部と、前記複数の動画のそれぞれに対応する複数の動画再生部と、を備え、前記複数の同期処理部のそれぞれと前記複数の動画再生部のそれぞれとが対応しており、前記動画が映像及び音声からなるものとして、前記複数の同期処理部のそれぞれが、対応する前記動画再生部により再生されている前記動画の再生時刻を示す現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記基準時刻に所定のしきい値を加算して加算時刻を求めると共に、前記基準時刻から前記しきい値を減算して減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較し、前記現在時刻が進んでいる、遅れている、または進んでおらずかつ遅れていないことを判定する現在時刻比較部と、対応する前記動画再生部により再生されている前記動画の前記現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記現在時刻と前記基準時刻との間の差を時刻ずれ量として算出し、所定時間が経過すると前記時刻ずれ量が0となる場合の前記所定時間を予め設定された補正時間として、前記時刻ずれ量を前記予め設定された補正時間で除算することで、再生レート補正値を求める補正値算出部と、前記補正値算出部により求めた前記再生レート補正値を入力し、前記現在時刻比較部により前記現在時刻が進んでいると判定された場合、所定の基準再生レートから前記再生レート補正値を減算することで、前記基準再生レートよりも低いレートを再生レートとして求め、前記現在時刻が遅れていると判定された場合、前記基準再生レートに前記再生レート補正値を加算することで、前記基準再生レートよりも高いレートを前記再生レートとして求め、前記現在時刻が進んでおらずかつ遅れていないと判定された場合、前記基準再生レートを前記再生レートとして求める再生レート補正部と、を備え、前記複数の動画再生部のそれぞれが、対応する前記同期処理部から前記再生レートを入力し、前記再生レートに基づいて、対応する前記動画の前記映像及び前記音声を再生する、ことを特徴とする。
【0014】
また、請求項2の視聴端末は、ユーザが視聴する複数の動画を再生する視聴端末において、所定の基準時刻を取得する基準時刻取得部と、前記複数の動画のそれぞれに対応する複数の同期処理部と、前記複数の動画のそれぞれに対応する複数の動画再生部と、を備え、前記複数の同期処理部のそれぞれと前記複数の動画再生部のそれぞれとが対応している場合に、前記複数の同期処理部のそれぞれが、対応する前記動画再生部により再生されている前記動画の再生時刻を示す現在時刻を入力すると共に、前記基準時刻取得部により取得された前記基準時刻を入力し、前記基準時刻に所定のしきい値を加算して加算時刻を求めると共に、前記基準時刻から前記しきい値を減算して減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較し、前記現在時刻が進んでいる、遅れている、または進んでおらずかつ遅れていないことを判定する現在時刻比較部と、前記現在時刻比較部により前記現在時刻が進んでいると判定された場合、所定の基準再生レートよりも低いレートを再生レートとして求め、前記現在時刻が遅れていると判定された場合、前記基準再生レートよりも高いレートを前記再生レートとして求め、前記現在時刻が進んでおらずかつ遅れていないと判定された場合、前記基準再生レートを前記再生レートとして求める再生レート補正部と、を備え、前記複数の動画再生部のそれぞれが、対応する前記同期処理部から前記再生レートを入力し、前記再生レートに基づいて、対応する前記動画を再生し、前記複数の動画再生部のそれぞれがHTMLMediaElementにより前記動画を再生する場合に、前記HTMLMediaElementにより前記現在時刻が更新されたときに発火するtimeupdateイベントのタイミングにて、対応する前記同期処理部の前記現在時刻比較部が、前記現在時刻及び前記基準時刻を入力して前記加算時刻及び前記減算時刻を求め、前記現在時刻と前記加算時刻及び前記減算時刻とを比較して判定し、前記再生レート補正部が、前記再生レートを求める、ことを特徴とする。
【0015】
また、請求項3の視聴端末は、請求項1または2に記載の視聴端末において、前記しきい値を、前記動画が表示される表示部におけるリフレッシュ周期の時間に対して1/2以下の所定値とする、ことを特徴とする。
【0017】
さらに、請求項4のプログラムは、コンピュータを、請求項1から3までのいずれか一項に記載の視聴端末として機能させることを特徴とする。
【発明の効果】
【0018】
以上のように、本発明によれば、複数の動画再生要素によりそれぞれの動画を再生しているときに再生時刻がずれたとしても、その再生時刻のずれを訂正し、動画再生の同期を実現することができる。
【図面の簡単な説明】
【0019】
【
図1】本発明の実施形態による視聴端末が実行する動画視聴プログラムの概略構成例を説明する図である。
【
図2】本発明の実施形態による視聴端末の構成例を示すブロック図である。
【
図3】第一例の同期処理部の構成例を示すブロック図である。
【
図4】第一例の同期処理部の処理例を示すフローチャートである。
【
図5】第二例の同期処理部の構成例を示すブロック図である。
【
図6】補正値算出部の処理例を示すフローチャートである。
【
図7】2台の視聴端末で再生されている複数の動画の同期を説明する図である。
【発明を実施するための形態】
【0020】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、複数の動画を再生する際のそれぞれの動画について、再生時刻を示す現在時刻と、基準時刻に所定のしきい値を加減算して求めた加算時刻及び減算時刻とを比較し、比較結果に応じて再生レートを求め、当該再生レートにて動画を再生することを特徴とする。
【0021】
具体的には、本発明は、現在時刻が進んでいる場合、所定の基準再生レートよりも低いレートを再生レートとして求め、現在時刻が遅れている場合、基準再生レートよりも高いレートを再生レートとして求め、現在時刻が進んでおらず、かつ遅れていない場合、基準再生レートを再生レートとして求める。
【0022】
複数の動画を再生しているときに、いずれかの動画の再生時刻がずれたとしても、その再生時刻のずれを訂正し、動画再生の同期を実現することができる。
【0023】
〔動画視聴プログラム〕
まず、本発明の実施形態による視聴端末が実行する動
画視聴プログラムの概略構成について説明する。
図1は、動画視聴プログラムの概略構成例を説明する図であり、4つの動画を再生する場合の例を示している。
図1には、本発明に直接関連する構成部のみを示しており、直接関連しない構成部は省略してある。
【0024】
この動画視聴プログラムは、4つの動画を再生するプログラムであり、画面構成プログラム100及びデータ制御プログラム101により構成される。画面構成プログラム100は、それぞれの動画を再生するための要素であるHTMLMediaElementの動画再生部12-1~12-4等がHTMLにて記述されたプログラムであり、画面に表示されるデータ及びその位置が定義される。
【0025】
データ制御プログラム101は、基準時刻取得部10、現在時刻比較部20及び再生レート補正部21等がJavaScript(登録商標)(ジャバスクリプト)にて記述されたプログラムであり、当該動画視聴プログラムにて扱うデータに関する処理が定義される。
【0026】
画面構成プログラム100のHTMLファイルの実行に伴い、動画再生部12-1~12-4によりそれぞれの動画が再生される(例えば、後述する
図7に示す視聴端末1aの画面を参照)。そうすると、HTMLMediaElementにより所定のタイミングにて所定のイベントが発火し、データ制御プログラム101の現在時刻比較部20が呼び出されて動作する。
【0027】
現在時刻比較部20は、発火したイベントに対応する動画再生部12-1~12-4のいずれかから、動画の再生時刻を示す現在時刻(currentTime)を入力すると共に、基準時刻取得部10から基準時刻を入力する。基準時刻は、当該動画視聴プログラムを実行する視聴端末が管理する時刻であり、4つの動画は、この基準時刻に従って同期することとなる。そして、現在時刻比較部20は、現在時刻と、基準時刻に所定のしきい値THを加減算して求めた加算時刻及び減算時刻とを比較する。
【0028】
再生レート補正部21は、その比較結果に基づいて再生レート(playbackRate)を求め、当該再生レートを、発火したイベントに対応する動画再生部12-1~12-4へ出力する。発火したイベントに対応する動画再生部12-1~12-4は、再生レート補正部21から再生レートを入力し、当該再生レートにて動画を再生する。
【0029】
〔視聴端末〕
次に、本発明の実施形態による視聴端末について説明する。この視聴端末は、
図1に示した動画視聴プログラムを実行する端末である。
【0030】
図2は、本発明の実施形態による視聴端末の構成例を示すブロック図である。この視聴端末1は、基準時刻取得部10、同期処理部11-1~11-4(以下、総称して「同期処理部11」という。)、動画再生部12-1~12-4(以下、総称して「動画再生部12」という。)及び表示部13を備えている。視聴端末1は、4つの動画を同期させた状態で再生する。
【0031】
同期処理部11-1及び動画再生部12-1は対応しており、第1の動画が再生される。同期処理部11-2~11-4及び動画再生部12-2~12-4のそれぞれも対応しており、第2~4の動画がそれぞれ再生される。
【0032】
尚、視聴端末1は、スマートフォン等の携帯端末、パーソナルコンピュータ、テレビ等であり、ウェブブラウザー上で動画視聴プログラムが動作する端末であって、視聴端末1を操作するユーザにより動画の視聴が行われる端末であれば何でもよい。
【0033】
基準時刻取得部10は、視聴端末1において4つの動画が同期する際の基準時刻を取得し、これを同期処理部11に出力する。ここで、基準時刻は、動画視聴プログラムが動作している視聴端末1の内部時刻であってもよい。この場合、基準時刻取得部10は、図示しない時計(視聴端末1に備えた時計)から時刻情報を取得し、これを基準時刻として用いる。
【0034】
尚、基準時刻取得部10は、動画再生部12-1~12-4のうちのいずれかから出力された現在時刻を、基準時刻として取得するようにしてもよい。
【0035】
同期処理部11は、対応する動画再生部12においてHTMLMediaElementによるtimeupdateイベントの発火に伴い、動画再生部12から発火したことを示す信号を入力する。そうすると、同期処理部11は、動画再生部12から現在時刻を入力すると共に、基準時刻取得部10から基準時刻を入力する。
【0036】
同期処理部11は、現在時刻と、基準時刻に所定のしきい値THを加減算して求めた加算時刻及び減算時刻とを比較し、比較結果に応じて再生レートを求め、再生レートを動画再生部12に出力する。同期処理部11の詳細については後述する。
【0037】
動画再生部12は、HTMLMediaElementにより動画を再生する。動画再生部12は、動画の再生時刻を示す現在時刻が更新されたときに、HTMLMediaElementによりtimeupdateイベントが発火し、発火したことを示す信号を対応する同期処理部11に出力する。
【0038】
timeupdateイベントは、現在時刻が更新されたときに、少なくとも250ms以内に発火する。現在時刻は、動画が再生されているときに逐次更新され、動画が停止しているときは更新されない。
【0039】
動画再生部12は、HTMLMediaElementにおける現在時刻を取得し、現在時刻を対応する同期処理部11に出力する。また、動画再生部12は、対応する同期処理部11から再生レートを入力し、HTMLMediaElementにより当該再生レートにて動画を表示部13に出力することで、動画を再生する。
【0040】
表示部13は、動画再生部12-1~12-4からそれぞれ動画を入力し、入力したそれぞれの動画を画面表示する。これにより、それぞれの動画は、動画再生部12-1~12-4が対応する同期処理部11-1~11-4から入力した再生レートにて再生される。
【0041】
このように、4つの動画のそれぞれについて、timeupdateイベントが発火する毎に、基準時刻に対する動画の現在時刻に応じて、現在時刻が基準時刻に近づくように、厳密には基準時刻±しきい値THの範囲に近づくように、動画の再生レートが更新される。基準時刻±しきい値THの範囲とは、(基準時刻-しきい値TH)の時刻から(基準時刻+しきい値TH)の時刻までの間の範囲をいう。
【0042】
次に、
図2に示した同期処理部11について詳細に説明する。以下に説明する第一例の同期処理部11は、現在時刻と、基準時刻に所定のしきい値を加減算して求めた加算時刻及び減算時刻とを比較し、比較結果に応じて、基準再生レートに所定の再生レート補正値を加減算等することで、再生レートを求める例である。また、第二例の同期処理部11は、第一例の同期処理部11において、現在時刻と基準時刻との間の差である時刻ずれ量dに応じて、再生レート補正値を求める例である。
【0043】
(同期処理部11/第一例)
まず、第一例の同期処理部11について説明する。
図3は、第一例の同期処理部11の構成例を示すブロック図であり、
図4は、第一例の同期処理部11の処理例を示すフローチャートである。この同期処理部11aは、現在時刻比較部20及び再生レート補正部21を備えている。
【0044】
現在時刻比較部20は、timeupdateイベントが発火したことを示す信号を入力したか否かを判定する(ステップS401)。現在時刻比較部20は、ステップS401において、timeupdateイベントが発火したことを示す信号を入力していないと判定した場合(ステップS401:N)、当該信号を入力するまで待つ。
【0045】
現在時刻比較部20は、ステップS401において、timeupdateイベントが発火したことを示す信号を入力したと判定した場合(ステップS401:Y)、後述するステップS402~S409の処理を行い、ステップS401へ戻る。つまり、現在時刻比較部20は、timeupdateイベントが発火する毎に、ステップS402~S409の処理を繰り返す。
【0046】
現在時刻比較部20は、ステップS401(Y)から移行して、対応する動画再生部12から現在時刻を入力すると共に(ステップS402)、基準時刻取得部10から基準時刻を入力する(ステップS403)。また、現在時刻比較部20は、予め設定されたしきい値THを入力する。
【0047】
現在時刻比較部20は、基準時刻にしきい値THを加算して加算結果の時刻(加算時刻)を求め、現在時刻と加算時刻とを比較し、現在時刻が加算時刻よりも進んでいるか否かを判定する(ステップS404)。
【0048】
現在時刻比較部20は、ステップS404において、現在時刻が加算時刻よりも進んでいると判定した場合(ステップS404:Y)、現在時刻が進んでいることを示す比較結果を再生レート補正部21に出力し、ステップS406へ移行する。
【0049】
一方、現在時刻比較部20は、ステップS404において、現在時刻が加算時刻よりも進んでいないと判定した場合(ステップS404:N)、ステップS405へ移行する。
【0050】
現在時刻比較部20は、ステップS404(N)から移行して、基準時刻からしきい値THを減算して減算結果の時刻(減算時刻)を求め、現在時刻と減算時刻とを比較し、現在時刻が減算時刻よりも遅れているか否かを判定する(ステップS405)。
【0051】
現在時刻比較部20は、ステップS405において、現在時刻が減算時刻よりも遅れていると判定した場合(ステップS405:Y)、現在時刻が遅れていることを示す比較結果を再生レート補正部21に出力し、ステップS407へ移行する。
【0052】
一方、現在時刻比較部20は、ステップS405において、現在時刻が減算時刻よりも遅れていないと判定した場合(ステップS405:N)、現在時刻が進んでおらず、かつ遅れていないことを示す比較結果を生成する。そして、現在時刻比較部20は、比較結果を再生レート補正部21に出力し、ステップS408へ移行する。この場合の現在時刻は、基準時刻±しきい値THの範囲にあることとなる。
【0053】
ステップS404,S405のしきい値THとしては、R/2以下の値が用いられる。Rは、視聴端末1の動画視聴プレーヤーが動作する表示部13のディスプレイのリフレッシュ周期の時間である。
【0054】
これは、動画再生部12-1~12-4における全てのHTMLMediaElementを同期させるには、それぞれの現在時刻のずれ(すなわち基準時刻に対する±しきい値THの範囲(2×TH))を、最大及び最小を含めてリフレッシュ周期の時間R以下に収める必要があるからである。この場合の基準時刻に対する現在時刻のずれは、リフレッシュ周期の時間Rにおいて-1/2~1/2の範囲となる。
【0055】
つまり、しきい値THとしてR/2の値を用いることにより、リフレッシュ周期の時間R以内で動画フレームの表示タイミングのずれを補正することができる。
【0056】
例えばしきい値THは、リフレッシュ周期の時間Rの1/4程度の値、すなわちR/4が望ましい。これにより、現在時刻のずれが最大及び最小を含めてリフレッシュ周期の時間Rの1/2程度に収めることができる。この場合の基準時刻に対する現在時刻のずれは、リフレッシュ周期の時間Rにおいて-1/4~1/4の範囲となる。
【0057】
再生レート補正部21は、現在時刻比較部20から比較結果を入力すると共に、予め設定された再生レート補正値を入力する。再生レート補正部21は、ステップS404(Y)から移行して、比較結果が現在時刻が進んでいることを示している場合、基準再生レートである1から再生レート補正値を減算し、減算結果を再生レートに設定する(ステップS406)。基準再生レートは、動画が通常速度で再生されているときのレートを示す。
【0058】
これにより、現在時刻が基準時刻に対してしきい値THを超えるずれがあり、かつ進んでいる場合には、現在時刻が基準時刻に近づくように、基準再生レートよりも低いレートが再生レートとして設定される。
【0059】
ここで、再生レート補正値としては、動画が再生されているときに視覚的に再生レートの変化が目立たない範囲の値を用いることが望ましい。再生レート補正値は、例えば、リフレッシュ周期の時間であるRが用いられる。このとき、現在時刻が基準時刻に対してR秒ずれている場合、1秒かけて補正が行われ、現在時刻が基準時刻に近づくこととなる。
【0060】
また、再生レート補正部21は、ステップS405(Y)から移行して、比較結果が現在時刻が遅れていることを示している場合、基準再生レートである1に再生レート補正値を加算し、加算結果を再生レートに設定する(ステップS407)。
【0061】
これにより、現在時刻が基準時刻に対してしきい値THを超えるずれがあり、かつ遅れている場合には、現在時刻が基準時刻に近づくように、基準再生レートよりも高いレートが再生レートとして設定される。
【0062】
また、再生レート補正部21は、ステップS405(N)から移行して、比較結果が現在時刻が進んでおらず、かつ遅れていないことを示している場合、基準再生レートである1を再生レートに設定する(ステップS408)。
【0063】
これにより、現在時刻が基準時刻に対してしきい値THを超えるずれがない場合、すなわち現在時刻が進んでおらず、かつ遅れていない場合には、現在時刻が基準時刻に対してずれていない状態を継続するように、基準再生レートが再生レートとして設定される。つまり、再生レートは、通常速度である基準再生レートに戻る。
【0064】
再生レート補正部21は、ステップS406~S408から移行して、再生レートを対応する動画再生部12に出力する(ステップS409)。
【0065】
これにより、動画再生部12により再生中の動画の現在時刻が進んでいる場合、基準再生レートよりも低い再生レートにて動画が再生されることで、現在時刻は通常よりも遅くカウントされ、現在時刻が基準時刻に近づくようになる。
【0066】
また、動画再生部12により再生中の動画の現在時刻が遅れている場合、基準再生レートよりも高い再生レートにて動画が再生されることで、現在時刻は通常よりも速くカウントされ、現在時刻が基準時刻に近づくようになる。
【0067】
また、動画再生部12により再生中の動画の現在時刻が進んでおらず、かつ遅れていない場合、基準再生レートと同じ再生レートにて動画が再生されることで、現在時刻は通常速度でカウントされ、現在時刻が基準時刻に近い状態で再生が継続する。
【0068】
(同期処理部11/第二例)
次に、第二例の同期処理部11について説明する。
図5は、第二例の同期処理部11の構成例を示すブロック図である。この同期処理部11bは、現在時刻比較部20、再生レート補正部21及び補正値算出部22を備えている。
【0069】
図3に示した第一例の同期処理部11aとこの第二例の同期処理部11bとを比較すると、両同期処理部11a,11bは、現在時刻比較部20及び再生レート補正部21を備えている点で共通する。一方、同期処理部11bは、補正値算出部22を備えている点で、補正値算出部22を備えていない同期処理部11aと相違する。
図5において、
図3と共通する部分には
図3と同一の符号を付し、その詳しい説明は省略する。
【0070】
補正値算出部22は、動画再生部12から現在時刻を入力すると共に、基準時刻取得部10から基準時刻を入力し、現在時刻と基準時刻との間の差である時刻ずれ量dに応じて、再生レート補正値を求める。そして、補正値算出部22は、再生レート補正値を再生レート補正部21に出力する。補正値算出部22の詳細については後述する。
【0071】
再生レート補正部21は、現在時刻比較部20から比較結果を入力すると共に、補正値算出部22から再生レート補正値を入力する。そして、再生レート補正部21は、ステップS406,S407において、補正値算出部22から入力した再生レート補正値を用いて再生レートを求める。または、再生レート補正部21は、ステップS408において再生レートを求める。再生レート補正部21は、再生レートを対応する動画再生部12に出力する。
【0072】
図6は、補正値算出部22の処理例を示すフローチャートである。補正値算出部22は、対応する動画再生部12から現在時刻を入力すると共に(ステップS601)、基準時刻取得部10から基準時刻を入力する(ステップS602)。
【0073】
補正値算出部22は、現在時刻と基準時刻との間の差(の絶対値)である時刻ずれ量dを算出し(ステップS603)、時刻ずれ量dを予め設定された補正時間aで除算し(d/a)、再生レート補正値を求める(ステップS604)。補正時間aは、動画の時刻ずれ量dを補正するための時間を示す。つまり、再生レート補正値としてd/aを用いることで、動画の時刻ずれ量dは、補正時間aが経過すると0となる。
【0074】
補正値算出部22は、再生レート補正値が予め設定された上限値よりも大きいか否かを判定する(ステップS605)。補正値算出部22は、ステップS605において、再生レート補正値が上限値よりも大きいと判定した場合(ステップS605:Y)、再生レート補正値に上限値(例えば1/4)を設定し(ステップS606)、ステップS609へ移行する。
【0075】
一方、補正値算出部22は、ステップS605において、再生レート補正値が上限値よりも大きくないと判定した場合(ステップS605:N)、ステップS607へ移行する。
【0076】
補正値算出部22は、ステップS605(N)から移行して、再生レート補正値が予め設定された下限値よりも小さいか否かを判定する(ステップS607)。
【0077】
補正値算出部22は、ステップS607において、再生レート補正値が下限値よりも小さいと判定した場合(ステップS607:Y)、再生レート補正値に下限値(例えば1/60)を設定し(ステップS608)、ステップS609へ移行する。
【0078】
一方、補正値算出部22は、ステップS607において、再生レート補正値が下限値よりも小さくないと判定した場合(ステップS607:N)、ステップS609へ移行する。
【0079】
補正値算出部22は、ステップS606、ステップS607(N)またはステップS608から移行して、再生レート補正値を再生レート補正部21に出力する(ステップS609)。
【0080】
これにより、再生レート補正値として、時刻ずれ量dを補正時間aで除算した値(d/a)を用いるようにしたから、時刻ずれ量dが小さいほど、再生レートは基準再生レートである1に近い値となる。また、時刻ずれ量dが大きいほど、再生レートは1から離れた値となる。さらに、補正時間aが小さいほど、時刻ずれ量dが0となるまでの時間が短くなり、補正時間aが大きいほど、時刻ずれ量dが0となるまでの時間が長くなる。
【0081】
ここで、動画の現在時刻にずれがあるときに、再生レートを即座に0に変更したり、大きい値に変更したりする手法が想定される。しかし、本発明の実施形態の手法を用いることにより、再生レートの変化を抑えることができるから、再生レートの変化を視覚的に目立たないようにすることができる。
【0082】
また、再生レート補正部21に出力される再生レート補正値は、予め設定された下限値から上限値までの間の値となる。再生レート補正値であるd/aが上限値よりも大きい場合、上限値に抑えるようにしたから、再生レートの変化を一層視覚的に目立たないようにすることができる。
【0083】
また、再生レート補正値であるd/aが下限値よりも小さい場合、下限値に抑えるようにしたから、再生レート補正値に基づいて求めた再生レートは、動画再生を制御可能なレートとすることができる。
【0084】
以上のように、本発明の実施形態の視聴端末1によれば、第一例の同期処理部11aにおいて、現在時刻比較部20は、対応する動画再生部12のHTMLMediaElementのtimeupdateイベントが発火したときに、基準時刻に予め設定されたしきい値THを加減算して加算時刻及び減算時刻を求める。そして、現在時刻比較部20は、現在時刻と加算時刻及び減算時刻とを比較する。
【0085】
再生レート補正部21は、比較処理により現在時刻が進んでいると判定された場合、基準再生レートから予め設定された再生レート補正値を減算して、再生レートを求める。また、再生レート補正部21は、現在時刻が遅れていると判定された場合、基準再生レートに再生レート補正値を加算して、再生レートを求める。また、再生レート補正部21は、現在時刻が進んでおらず、かつ遅れていないと判定された場合、基準再生レートを再生レートとして求める。
【0086】
同期処理部11aに対応する動画再生部12は、再生レート補正部21により求めた再生レートにて動画を再生する。
【0087】
これにより、再生中の動画の現在時刻が進んでいると判定された場合、基準再生レートよりも低速の再生レートにて動画が再生され、現在時刻が遅れていると判定された場合、基準再生レートよりも高速の再生レートにて動画が再生され、現在時刻が進んでおらず、かつ遅れていないと判定された場合、基準再生レートにて動画が再生される。
【0088】
このような処理が、同時に再生されている全ての動画に対してtimeupdateイベントが発火する毎に行われることで、全ての動画の現在時刻を、基準時刻±しきい値THの範囲に収めることができる。つまり、全ての動画の現在時刻は、基準時刻を中心としたしきい値TH前の時刻からしきい値TH後の時刻までの時間範囲内、すなわちTH×2の時間範囲内に収めることができる。
【0089】
したがって、複数のHTMLMediaElementである動画再生要素によりそれぞれの動画を再生しているときに再生時刻がずれたとしても、その再生時刻のずれを訂正し、動画再生の同期を実現することができる。
【0090】
特に、しきい値THを、表示部13のディスプレイのリフレッシュ周期の時間Rに対して1/2の値(R/2)とすることにより、全ての動画の現在時刻のずれを、リフレッシュ周期の時間R以内に収めることができる。
【0091】
また、本発明の実施形態の視聴端末1によれば、第二例の同期処理部11bにおいて、補正値算出部22は、動画の現在時刻と基準時刻との間の差である時刻ずれ量dを算出し、時刻ずれ量dを予め設定された補正時間aで除算し(d/a)、除算結果を再生レート補正値とする。
【0092】
再生レート補正部21は、現在時刻比較部20の比較処理の結果に応じて、補正値算出部22により算出された再生レート補正値を用いて、再生レートを求め、動画再生部12は、再生レート補正部21により求めた再生レートにて動画を再生する。
【0093】
これにより、時刻ずれ量d及び補正時間aに応じて再生レート補正値を求め、再生レート補正値を再生レートに反映するようにしたから、再生レートの変化を、視覚的に目立たないようにすることができる。
【0094】
また、本発明の実施形態の視聴端末1によれば、複数の動画を同期させることができ、さらに、複数の視聴端末1を用いることにより、複数の視聴端末1にて再生される全ての動画を同期させることができる。
【0095】
図7は、2台の視聴端末1で再生されている複数の動画の同期を説明する図である。
図2に示した視聴端末1が2台存在する場合において、1台目の視聴端末1を視聴端末1aとし、2台目の視聴端末1を視聴端末1bとする。視聴端末1aは、ウェブブラウザー110上に、動画再生部12-1~12-4により合計4つの動画111~114を再生するものとする。また、視聴端末1bは、ウェブブラウザー120上に、動画再生部12-1~12-4により合計4つの動画121~124を再生するものとする。
【0096】
ここで、視聴端末1a,1bの基準時刻取得部10は、当該視聴端末1a,1bの時計から時刻を取得し、これを基準時刻とし、視聴端末1a,1bの時計は、世界標準時等に同期しているものとする。
【0097】
これにより、視聴端末1a,1bにおける合計8つのHTMLMediaElementを同期させることができる。つまり、視聴端末1a,1bにて再生される合計8つの動画を同期させることができる。
【0098】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0099】
例えば
図2に示した視聴端末1は、動画再生部12においてHTMLMediaElementによりtimeupdateイベントが発火する毎に、同期処理部11が同期処理を行って再生レートを求めるようにした。本発明は、同期処理部11による同期処理のタイミングを、timeupdateイベントが発火する250ms以内のタイミングに限定するものではなく、他のイベントが発火するタイミングであってよく、他の時間間隔のタイミングであってもよい。要するに、同期処理部11による同期処理のタイミングは、所定周期のタイミングであれば何でもよい。
【0100】
また、
図2に示した視聴端末1は、動画再生部12において、HTMLMediaElementである動画再生要素を用いて動画を再生するようにしたが、他の動画再生要素を用いるようにしてもよい。
【0101】
また、
図1、
図2及び
図7に示した視聴端末1,1a,1bは、4つの動画を再生するようにしたが、4つ以外の複数の動画を再生するようにしてもよい。この場合、視聴端末1,1a,1bは、再生する動画と同じ数の同期処理部11及び動画再生部12を備える。
【0102】
尚、本発明の実施形態による視聴端末1のハードウェア構成としては、通常のコンピュータを使用することができる。視聴端末1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【0103】
視聴端末1に備えた基準時刻取得部10、同期処理部11-1~11-4、動画再生部12-1~12-4及び表示部13の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
【0104】
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【0105】
1 視聴端末
10 基準時刻取得部
11,11a,11b,11-1,11-2,11-3,11-4 同期処理部
12,12-1,12-2,12-3,12-4 動画再生部
13 表示部
20 現在時刻比較部
21 再生レート補正部
22 補正値算出部
100 画面構成プログラム
101 データ制御プログラム
110,120 ウェブブラウザー
111,112,113,114,121,122,123,124 動画
TH しきい値
d 時刻ずれ量
a 補正時間