JP5666477B2 - ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート - Google Patents

ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート Download PDF

Info

Publication number
JP5666477B2
JP5666477B2 JP2011548428A JP2011548428A JP5666477B2 JP 5666477 B2 JP5666477 B2 JP 5666477B2 JP 2011548428 A JP2011548428 A JP 2011548428A JP 2011548428 A JP2011548428 A JP 2011548428A JP 5666477 B2 JP5666477 B2 JP 5666477B2
Authority
JP
Japan
Prior art keywords
video stream
streaming data
data center
stream
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011548428A
Other languages
English (en)
Other versions
JP2012517160A5 (ja
JP2012517160A (ja
Inventor
ジェン,レイ
ベンツェル,クリストファー,ディラン
カクリジアン,カイル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42397792&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5666477(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Google LLC filed Critical Google LLC
Publication of JP2012517160A publication Critical patent/JP2012517160A/ja
Publication of JP2012517160A5 publication Critical patent/JP2012517160A5/ja
Application granted granted Critical
Publication of JP5666477B2 publication Critical patent/JP5666477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、一般にインターネット等の遠隔通信ネットワーク上で行うビデオコンテンツのストリーミングに関し、詳細には、ライブビデオストリーム等のシームレスな巻戻しおよび再生のためのサーバー側サポートを提供する方法に関する。
ビデオストリーミングシステムは、インターネットベースのブロードキャスト型サービスを通じて、ライブビデオストリームを多数のユーザーに配布できる。従来のビデオストリーミングシステムは、クライアントマシン上で実行されるビデオプレーヤをユーザーに提供する。ビデオプレーヤは、クライアントマシンのローカルメモリ内にライブビデオストリームを受け入れ、バッファーメモリに収納する。ライブビデオストリームを巻き戻してから再生するというユーザーリクエストに応じて、ビデオプレーヤは、ローカルメモリからバッファーメモリに収納されたビデオにアクセスする。ビデオストリームを巻き戻すためのこのクライアント側サポートは、ストリーミングサーバーから受信したビデオストリームを格納するために、そして後続のストリーミングデータパケットの受信を続けながら巻戻しのためのタイミング要件を計算するために、高速中央処理ユニット(CPU)、十分なメモリ、およびディスクスペース等、大量のクライアント側計算リソースを必要とする。その結果、ユーザーは処理の遅れを被り、性能が低下したストリーミングサービスに悩まされるのが常である。
ライブビデオストリームを巻き戻すための、クライアント側サポートの既存の実装が直面する別の問題は、ビデオストリーミングシステムに拡張性を欠くことである。ライブビデオストリームは、一般に、何千人もの視聴者−潜在的には何百万人もの視聴者−に向けて同時にブロードキャストされる。ビデオストリーミングシステムは多数のサブシステムを備えることが多く、各サブシステムには、ライブビデオ/オーディオ入力を受信する多数の着信ストリーミングサーバー、ライブビデオストリームを処理する多数のストリームハンドラ、およびリクエストされたビデオストリームを視聴者に提供する多数のビデオストリーミングサーバーが含まれる。ユーザー体験の質を低下させずに、これら多数のサブシステムを横断してアーカイブ化し、読出すために、更に効率のよい、ビデオストリームのアーカイブ化/読出しおよびビデオストリーミングシステムのサーバー側での拡張性サポートが求められる。
方法、システムおよびコンピュータプログラム製品により、ビデオストリームのシームレスな巻戻しおよび再生のためのサーバー側サポートが提供される。
ビデオストリーミングコンピュータシステムの実施の形態は、複数のストリーミングデータセンターコンピュータシステムを含む。ストリーミングデータセンターコンピュータシステムは、着信ストリーミングサーバーコンピュータシステム、1つ以上のストリームハンドラ、ストリームアーカイビングデータベースシステム、ローカルのインデックスデータベースシステムおよび1つ以上のストリーミングサーバーシステムを備える。ストリーミングデータセンターコンピュータシステムは、各種ビデオ入力から着信ビデオ/オーディオストリームを、ネットワーク接続を経由して収集し、アーカイブ化およびインデックス化するためにストリームハンドラにビデオストリームを配布する。ストリーミングデータセンタは、ユーザーのクライアント装置からもストリーミングリクエストを受信し、リクエストされたサービスをユーザーに提供する。
ストリームアーカイビングデータベースシステムは、ストリーミングデータセンタが提供するビデオストリームインデックス化情報を格納する。一の実施の形態では、ストリーミングデータセンタからのビデオストリーム毎に、ビデオストリームの各GOPのインデックスを格納するGOPレベルインデックスファイルがある。別の実施の形態では、ビデオストリーム毎に、ビデオストリームの各イントラフレームのインデックスを格納するフレームレベルインデックスファイルがある。
方法の一の実施の形態は、クライアント装置からのストリーミングリクエストを受信するステップと、そのリクエストに応じるストリームハンドラを識別するステップとを含む。ビデオストリームをブロードキャストしながら、巻戻しリクエストに応じる際の方法は、巻戻し時間要件を抽出するステップと、巻戻し時間要件に対応するファイルオフセットを計算するステップと、リクエストされたビデオストリームをストリーム出力するステップとを含む。時間要件は、ビデオブロードキャストの開始時間を基準とする巻戻しリクエストから決定する。その時間に対応するビデオ部分のビデオに入るオフセットは、インデックスにより決定する。そのビデオ部分に対応するデータが読出され、クライアント装置にストリーム出力される。
本明細書に記載する特徴および利点はそれらが全てではなく、更に多くの特徴および利点は、図面、明細書および特許請求の範囲により当業者にとって明らかになるであろう。更に、注意すべきは、明細書に使用する用語は、原則として可読性と説明の容易さを目的に選択し、開示する主題を制限または束縛するために選択したものではない。
ライブビデオストリームのシームレスな巻戻しおよび再生のためのサーバー側サポートのストリーミングシステムを有する環境を説明するブロック図である。
ライブビデオストリームのシームレスな巻戻しおよび再生のためのストリーミングデータセンタを示すブロック図である。
ビデオストリームを申し込むストリーミングリクエストを扱うためのストリーミングデータセンタを示すブロック図である。
着信ストリーミングサーバーのブロック図である。
ライブビデオストリームのシームレスな巻戻しおよび再生のためのストリームハンドラのブロック図である。
ストリーミングデータセンタがビデオストリームを処理するフロー図である。
ストリーミングデータセンタがストリーミングリクエストに応じるフロー図である。
強化された拡張性を有する多数のストリーミングデータセンタを横断してビデオストリーミングリクエストに応じるフロー図である。
図面には専ら説明を目的に本発明の様々な実施の形態を示すが、本発明は、図示のこれら実施の形態に制限されるものではない。以下の説明から、当業者には言うまでもなく、本明細書に説明する構造および方法のその他の実施の形態を、本明細書に記載する本発明の原理から逸脱することなく利用できる。
図1は、一の実施の形態による、クライアント(クライアント装置)110からのビデオストリーミングリクエストを受信し、リクエストされたストリーミングデータを送信するストリーミングシステム100を有する環境を説明するブロック図である。システム100は、データセンタ発送コンピュータシステム114(「データセンタ発送部114」)と、共有インデックスデータベースコンピュータシステム118(「共有インデックスデータベース118」)と、1つ以上のストリーミングデータセンターコンピュータシステム200A〜200N(「ストリーミングデータセンタ200」)とを含む。これらコンピュータシステムはそれぞれ、1つ以上のプロセッサと、大規模な高性能ディスク格納アレイ(例えば1Tb)と、利用可能なメモリ(例えば1Gb)とを有する、好ましくはサーバー級コンピュータである1つ以上のコンピュータを備える。クライアント110およびストリーミングデータセンタ200は、インターネット等のコンピュータネットワーク112を経由して相互接続されている。データセンタ発送部114は、クライアント110およびストリーミングデータセンタ200と通信する。各ストリーミングデータセンタ200は、共有インデックスデータベース118にビデオストリームインデックス化情報を書込み、共有インデックスデータベース118からビデオストリームインデックス化情報を取り出し、1つ以上のクライアント110へ各ビデオストリームを提供することにより、複数のビデオストリームを処理する。図を簡単かつ明瞭にするために2つのクライアント110および4つのストリーミングセンタ200だけを図1に示すが、実際には、更に多くのクライアント110が含まれ、ストリーミングデータセンタ200を運用できる。
図示の環境は、ストリーミングデータセンタ200が提供するビデオストリーミングサービスを多数のユーザー/視聴者が申し込んでいる典型的な局面を表す。この局面において、ユーザーは、クライアント110を用いて、ビデオストリーミングサービスリクエストを、データセンタ発送部114を経由してストリーミングデータセンタ200に送信し、リクエストされたサービスをストリーミングデータセンタ200から直接に受信する(すなわち、データセンタ発送部114を通さずに)。データセンタ発送部114は、各ストリーミングデータセンタの負荷等、いくつかの基準に基づいて、ストリーミングデータセンタ200の内の1つにストリーミングサービスリクエストを発送する。データセンタ発送部114により選択されたストリーミングデータセンタ200は、クライアントからのストリーミングサービスリクエストを受信し、ネットワーク112を経由してクライアント110へ、リクエストされたサービスを提供する。
図1に示す個々のエンティティ(実体、装置)に転ずると、ユーザーは各クライアント110を使用してビデオストリーミングサービスをリクエストする。例えば、ユーザーは、クライアント110を用いて、ブロードキャストされるビデオストリームを申し込んで、ビデオストリームを再生したり、ビデオストリームを一時停止したり、またはビデオがまだブロードキャストされている間に、ビデオストリームを指定の時間ポイントまで巻き戻したりする。クライアント110は、パソコン等の任意の種類のコンピュータ装置(例えば、デスクトップ型、ノート型、ラップトップ型)、および、携帯電話、携帯情報端末、IP可能ビデオプレーヤ等の装置であってよい。クライアント110は、典型的には、プロセッサ、ディスプレイ装置(またはディスプレイ装置への出力)、タスク実行の際にユーザーが使用するデータをユーザーが格納するハードディスクドライブまたはフラッシュメモリデバイス等のローカルの記憶装置、およびネットワーク112を経由してシステム100に接続するためのネットワークインターフェースを含む。
クライアント110は、ビデオストリームを再生するためのビデオプレーヤ120(例えば、Adobe System, Inc.のFrash(登録商標)プレーヤまたは独自規格のもの)も有する。ビデオプレーヤ120は、スタンドアロンアプリケーションであっても、ネットワークブラウザ等の別のアプリケーションへのプラグインであってもよい。クライアント110が汎用装置である場合(例えばデスクトップコンピュータや携帯電話)、プレーヤ120は、コンピュータが実行するソフトウエアとして実装されるのが普通である。クライアント110が専用装置(例えば専用ビデオプレーヤ)である場合、プレーヤ120はハードウエアであっても、ハードウエアとソフトウエアとの組合せであってもよい。これらの実装は全て、本発明に関して機能的に均等である。プレーヤ120は、ビデオ送り、開始、停止、およびビデオ送りの巻戻しを選択するためのユーザーインターフェース制御(および対応するアプリケーションプログラミングインターフェース)を含む。プレーヤ120には、そのユーザーインターフェース内に、ビデオストリーミングの進度、例えば、ビデオストリームの全時間(既知であれば)に対する再生の現在時間、を指示するように構成されるタイムラインスライダ(時間系列スライド器)を含めることができる。タイムラインスライダは、それをユーザーインターフェース内でユーザーが直接に操作することにより、ビデオストリームをどれ位(例えば分単位で)巻き戻して以前のブロードキャスト部分を視聴したいのか、指定できるように更に構成できよう。他の種類のユーザーインターフェース制御装置(例えば、ボタン、キーボード制御装置)を用いて、プレーヤ120の再生および巻き戻しの機能を制御できる。
ネットワーク112により、クライアント110とストリーミングデータセンタ200との間の通信が可能になる。一の実施の形態では、ネットワーク112はインターネットであり、クライアント110がストリーミングデータセンタ200との間で通信できるように、既知の、または継続して開発されている標準化された相互ネットワーク通信技術およびプロトコルを使用している。
説明に過ぎないが、ビデオストリームは、インターネット上のストリーミングメディアコンテンツプロバイダによりブロードキャストされる生中継のスポーツ、音楽、ニュース、およびエンターテイメント等のライブビデオ入力からのビデオストリームである。このビデオストリームは、録画されたライブコンサート等の、録画入力からのビデオストリーム、およびインターネット上のストリーミングメディアコンテンツプロバイダによる再ブロードキャストされるTV番組または映画も含む。各ビデオストリームはストリーム識別情報(Identification: ID)で識別される。ビデオストリームは多数のイントラフレーム(Intra: Iフレーム)および予測フレーム(Predictive: Pフレーム)を含み、コーデックに依存して双方向予測フレーム(Bi-directionally predicted: Bフレーム)を含んでもよい。ビデオストリームの多数のビデオフレームは、更に、ピクチャーグループ(Group of Pictures: GOP)にグループ化することができ、各GOPは少なくとも1つのイントラフレームを含む。ビデオストリームはそれぞれが複数のオーディオ/ビデオデータパケットを含む1つ以上の関連ファイルとして、ネットワーク記憶装置に格納される。ビデオの入力/ソース(TV放送局、またはインターネットベースのビデオストリームプロバイダ等)は符号器に接続される。符号器は、受信されたビデオストリームを取得して、2値化し、それを圧縮して、得られたデータを更に処理するためにビデオサーバーに渡す役割を担う。
データセンタ発送部114は、クライアント110から送信されるユーザーのストリームリクエストが、ドメインネームサーバ(Domain Name Server: DNS)の参照を要求する場合に使用されるのが一般的である。例えば、ユーザーからリクエストされたストリームは「http://host.com/stream_id」に置かれる。ユーザーに代わってクライアント110はデータ発送部114と通信することにより、ストリーム「stream_id」をホストしているホストサーバー「host.com」のインターネットプロトコル(IP)アドレスを見つけ出す。データセンタ発送部114は、各ストリーミングデータセンタの負荷等、いくつかの基準に基づいてストリーミングデータセンタ200の内の1つへストリーミングサービスリクエストを発送する。各ストリーミングデータセンタの負荷は、1データセンタあたりの帯域幅使用量および各ストリーミングデータセンタに割当てられた帯域幅容量値に基づいて計算できる。データセンタ発送部114は、帯域幅使用量が全容量に近いストリーミングデータセンタにストリーミングリクエストを送信するのを避けることで負荷をバランスさせる。当業者であれば他の負荷バランス化メカニズムを容易に利用できよう。
共有インデックスデータベース118は、ブロードキャストビデオストリームを巻き戻すためにストリーミングデータセンタ200が提供するビデオストリームインデックス化情報を格納する。一の実施の形態では、ストリーミングデータセンタ200からのビデオストリーム毎に、ビデオストリームの各GOPのインデックスを格納するGOPレベルインデックスファイルがある。具体的には、GOPレベルインデックスファイルが、各GOPの第1イントラフレームのインデックスをタプル(stream_ID、file_offset、time_stamp)内に保持する。別の実施の形態では、ビデオストリーム毎に、ビデオストリームの各イントラフレームのインデックスを格納するフレームレベルインデックスファイルがある。このインデックスは、イントラフレーム毎にタプル(stream_ID、file_offset、time_stamp)を格納する。「stream_ID」によりイントラフレームが属するビデオストリームを識別する。「file_offset」は、ビデオストリームファイルのバイトで見たときのイントラフレームが開始される場所を指示する。「file_offset」の値は、アーカイブされたファイルの開始(すなわちバイト0)からカウントした完全な数値である。「time_stamp」は、ビデオストリームのアーカイブされたファイル内でイントラフレームが開始した時間を指示する。「time_stamp」の値は、ビデオストリームの再生開始時間(すなわち0ミリ秒)からカウントした完全な数値である。
一の実施の形態では、インデックス化情報は、グローバルのビデオストリームインデックスファイルとして格納される。グローバルのビデオストリームインデックスファイルは、ストリーミングデータセンタ200が処理するビデオストリーム毎のインデックスを含む。特定のストリーミングデータセンタ200からのインデックスは、ストリーミングデータセンタ識別情報により更に識別できる。インデックス情報は、拡張性を有する多数のストリーミングデータセンタ200間でユーザーのストリーミングリクエストに応じるために、ストリーミングデータセンタ200により共有される。ストリーミングデータセンタ200および共有ビデオストリームインデックス化データベース118の実施の形態について、図3および図4に関連して更に以下で説明する。
図2Aは、一の実施の形態による、ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポートのストリーミングデータセンタ200を示すブロック図である。ストリーミングデータセンタ200は、着信ストリーミングサーバー210、1つ以上のストリームハンドラ220、ストリームアーカイビングデータベース230、図1の共有データベース118のローカルコピーであるローカルのインデックスデータベース240および1つ以上のストリーミングサーバー250を備える。
図2Aに示すように、着信サーバー210は、それに接続される複数のストリームハンドラ220を有し、各ストリームハンドラ220はストリームハンドラIDを有する。着信ビデオストリーム毎に着信サーバー210は、ストリームハンドラ220の内の1つを選択し、この着信ビデオストリームの全てのデータパケットを、選択したストリームハンドラ220に導く。
ストリーミングデータセンタ200には、クライアントからのストリーミングリクエストを取り扱う複数のストリーミングサーバー250も含まれる。ストリーミングサーバー250は、2種類のストリーミングリクエスト、すなわち、ブロードキャストビデオストリームを申し込むためのリクエストと、ブロードキャストストリームを巻き戻すためのリクエストとを取り扱う。ブロードキャストビデオストリームを申し込むためのストリーミングリクエスト(申込リクエスト)は、巻戻しのタイミング情報を含まない。ブロードキャストストリームを巻き戻すためのストリーミングリクエスト(巻戻しリクエスト)には、ビデオストリームをブロードキャストしながらビデオストリームを巻き戻すための所望の量/オフセットに関するタイミング情報が含まれる。従って、ストリーミングサーバー250は、リクエスト中のタイミング情報の有無により2種類のリクエストを識別する。他の形式のプログラム動作は不要である。
巻戻しリクエストに応じて、ストリーミングサーバー250は、ローカルのインデックスデータベース240をチェックすることにより、リクエストされたタイミング情報に対応する或るファイルオフセット(ファイル内の位置)を調べ、ストリーミングアーカイブデータベース230内に格納されているビデオストリームの当該ファイルオフセットから開始される、リクエストされたビデオストリームのデータパケットを読出す。
例えば、クライアント110のプレーヤ120は、ブロードキャストされているビデオストリームのタイムラインビュー(時間系列表示)をユーザーに提供する。ユーザーは、タイムラインスライダ内の場所をマウスで選択できる。プレーヤ120は、タイムラインスライダ上の選択された場所を、対応するタイミング情報にマッピングする。例えば、ライブブロードキャストビデオの長さが2時間で、開始点と終了点間の丁度中間のタイムラインスライダ上の場所をユーザーが選択したと仮定すると、この場所は1:00にマッピングされる。このタイミング情報は、ビデオストリーミングリクエストに含まれ、処理のためにストリーミングサーバーへ送られる。
例示の巻戻しリクエストは、http://www.hostserver.com/play?id=StreamID&time=timestampのようなURL形式であり、ここで、streamIDは、リクエストされたストリームのストリームIDであり、timestampは、ビデオストリームの始点を基準とした開始時間の時間値を表す数値である。例えば、ユーザーは、以下のURLを有するビデオストリームリクエストを発行してもよい:
「http://www.hostserver.com/lplay?id=Stream12&time=600」
これは、ストリームID番号「Stream12」により識別されるビデオストリームをリクエストし、ビデオストリームを600秒まで巻き戻す(すなわち、10分間の終わり)。タイミング情報(例えばタイムスタンプ値)は、ビデオストリームがライブビデオ入力(例えば、ライブのブロードキャスト)由来か、または録画されたビデオソース(例えば、録画されたライブイベントの再ブロードキャスト)由来かどうかに関わらず、ユーザーの巻戻しリクエストを示す。一の実施の形態では、早送りリクエストはサポートされない。
上記のストリーミングリクエストおよび応答を更に説明するための以下の疑似コードは、ストリーミングリクエスト/応答のデータを格納するストリーミングサーバー250により使用されるデータ構造例を表す。
Figure 0005666477
ブロードキャストビデオストリームを申し込むための申込リクエストは、タイミング情報を含んでいない。各ストリーミングサーバー250は、複数のストリームハンドラ220と直接に通信を行える。クライアントからのストリーミングリクエストはストリームIDを含んでいる。ストリームIDが与えられると、ストリーミングサーバー250は、そのストリームID用のローカルのインデックスデータベース240をチェックすることにより、リクエストされたビデオストリームをどのストリームハンドラ220が受け持つかを調べ、識別されたストリームハンドラ220に申し込み、ビデオストリームの始点から始まるリクエストされたビデオストリームのデータパケットを要求する。図2Bは、上記説明に従って、リクエストされたビデオを直接にストリームハンドラからストリーム出力するためのストリーミングデータセンタを示すブロック図である。
図3に移ると、一の実施の形態では、ストリーミングデータセンタ200の着信ストリーミングサーバー210は、プロトコル解釈モジュール212、データ抽出モジュール214、および負荷バランサ216を備える。着信ストリーミングサーバー210は、ビデオストリーム入力310からのビデオストリームを受信し、モジュール212、214および216によりビデオストリームを処理し、更にインデックス化し、アーカイビングするために選択されたストリームハンドラ220に処理済みのビデオストリームデータ320を送信する。着信ストリーミングサーバー210は、ストリーミングサーバー、例えば、WOWZA(登録商標)のMedia Server(メディアサーバー)またはAdobe(登録商標)のFlash(登録商標) Media Server(Flashメディアサーバー)でもよい。着信ストリーミングサーバー210は、Real Time Streaming Protocol(RTSP)等の標準のビデオストリーミングプロトコル、またはFlash(登録商標) Player(Flashプレーヤ)とストリーミングサーバーとの間のインターネット上のオーディオ/ビデオデータをストリーミングするためのAdobe Systems(登録商標)が開発したReal Time Messaging Protocol(RTMP)等の独自規格プロトコルを用いてビデオストリームを受け入れることができる。
プロトコル解釈モジュール212は、ビデオストリーム内で使用されているストリーミングプロトコルを識別することにより、ビデオストリーム入力310から受け取ったビデオストリームを処理する。例えば、着信ストリーミングサーバー210は、RTMPプロトコルを用いるビデオストリームを受け入れ、フラッシュプレーヤがRTMPプロトコルでビデオストリームを再生することを許容するストリーミングサーバーである。プロトコル解釈モジュール212は、受信したビデオストリーム内のRTMPストリーミングプロトコルを識別し、ビデオストリーム情報の一部としてのプロトコル情報を1つ以上のストリームハンドラ220へ送る。
データ抽出モジュール214は、受信したビデオストリームからオーディオ/ビデオデータを抽出し、抽出したオーディオ/ビデオデータをオーディオ/ビデオデータパケットに変形し、抽出したオーディオ/ビデオデータパケットを1つ以上の複数のストリームハンドラ220へ送る。一の実施の形態では、オーディオ/ビデオパケットは標準のネットワークデータパケットであって、ユーザーデータグラムプロトコル(UDP)を用いてストリームハンドラ220に送信される。他の実施の形態において、受信したビデオストリームを他のインターネットプロトコルを用いるネットワークパケットに抽出してもよい。
負荷バランサ216は、着信ビデオストリームに対して、どのストリームハンドラ220がアーカイブ化およびインデックス化のためにビデオストリームを受信するかを、負荷バランスアルゴリズムを用いて決定する。一の実施の形態では、負荷バランサ216は、各ストリームハンドラ220のトラフィック負荷に基づいて、複数のストリームハンドラ220の中から1つのストリームハンドラ220を着信ビデオストリーム用に選択する。負荷バランサ216は、トラフィック負荷が最も少ないストリームハンドラ220を選択して受信されたビデオストリームを処理してもよい。他の実施の形態では、負荷バランサが、ストリームを区別する番号、プロセッサの利用、またはパケットハンドリングレートの尺度等、他の決定因子を含めることができるようにして、受信ビデオストリームを処理するためのストリームハンドラ220を選択してもよい。
ストリームハンドラ220は、処理を続けるために、着信ストリーミングサーバー210から送られたビデオストリームの複数のオーディオ/ビデオデータパケットを受信する。図4は、図2Aに示すストリームハンドラ220のブロック図である。ストリームハンドラ220は、ストリームアーカイビングモジュール222およびリクエスト処理モジュール224を含む。ストリームアーカイビングモジュール222は、共有インデックスデータベース118にストリームインデックス化情報420を書き込み、ストリームアーカイビングデータベース230に、受信したオーディオ/ビデオデータパケットをアーカイブ/格納する。巻戻しリクエストに対しては、リクエスト処理モジュール224が、巻戻しリクエスト内のタイミング情報に基づいて、ローカルのインデックスデータベース240からファイルオフセット情報を読出し、ストリーミングサーバー250にファイルオフセット情報を送出する。ビデオストリームに申し込むためのストリームリクエストに対しては、処理モジュール224は、着信ストリーミングサーバー210から受信したリクエストビデオストリームのデータパケットを、ストリーミングサーバー250へ直接に送出する。
ストリームアーカイビングモジュール222は、ビデオストリームおよび/またはビデオストリーム情報(例えば、ビデオストリーミングプロトコル)の複数のオーディオ/ビデオデータパケットを受信し、ストリームアーカイビングデータベース230にデータパケットを格納する。一の実施の形態では、1つのビデオストリーム全体を1つのアーカイブファイルとして、ストリームアーカイビングデータベース230に格納する。アーカイブされたビデオストリームは、ストリームIDを介してストリームアーカイビングデータベース230から読出すことができる。所与のビデオストリームに属する全てのデータパケットは、アーカイブおよび読出しのための同一ストリームIDを共有する。
ストリームアーカイビングモジュール222は、共有インデックスデータベース118にアーカイブされたファイルのインデックス化情報を書き込む。アーカイブされたビデオストリームをインデックス化するのは、一の実施の形態では、アーカイビングモジュール222が、ビデオストリームの各イントラフレームのインデックスをインデックスファイルに格納する。インデックスは、イントラフレーム毎にタプル(stream_ID、file_offset、time_stamp)を格納する。例えば、123バイト目に位置し、21,000ミリ秒で再生を開始するイントラフレームでは、インデックスはインデックスファイル内の(stream12, 123, 21000)となる。同様に、345バイト目に位置し、24,000 ミリ秒で再生を開始する同じビデオストリームの別のイントラフレームでは、そのインデックスは(stream12, 345, 24000)となる。ビデオストリーム全体のインデックスファイルは、インデックスリストであり、各インデックスはビデオストリームのイントラフレームに対応する。インデックスは、ビデオストリームのイントラフレームの処理順に従って順番が付けられる。
別の実施の形態では、高速化のために、インデックス化情報は、共有インデックスデータベース118に書き込まれ、ストリームアーカイビングモジュール222が、ビデオストリームの各GOPのインデックスをインデックスファイルに保持する。詳細には、ストリームアーカイビングモジュール222は、(stream_ID、file_offset、time_stamp)のフォーマットで各GOPの最初のイントラフレームのインデックスを保持している。例えば、各GOPが最初のイントラフレームにより表される、5GOPを有するビデオストリームでは、ビデオストリームのインデックスファイルは下表のようになる。
Figure 0005666477
1つのビデオストリームがアーカイビングデータベースに格納する多数の関連ファイルを生成して、各関連ファイルをビデオストリームの一部に対応させることが可能であり、その場合、多数の関連ファイルは同一ストリームIDを共有する。1つのビデオストリームに対して生成された多数のファイルを関連付けるために、各ファイルに、ビデオストリームのこの部分のタイムオフセットを指示するタイムスタンプによるタグを更に付けてもよく、このタイムスタンプは、ビデオストリームの最初のデータパケットの始点から連続的にカウントされる(例えば、ビデオストリーム内の10分)。
ビデオストリームをブロードキャストしたまま、ユーザーが指定したタイムポイントまでビデオストリームを巻き戻すのを支援するために、ビデオストリームのインデックス化は、アーカイビングおよび読出しの効率を高める必要がある。ストリームアーカイビングモジュール222は、ビデオストリーム毎にデータ読出用のインデックス化情報を保持する。一の実施の形態では、ストリームアーカイビングモジュール222は、格納されたビデオファイルのヘッダ内に、ビデオストリームのインデックス化情報を含んでいる。これにより、ストリームアーカイビングモジュール222は、ストリームIDに基づいて、格納されたファイルに先ずアクセスした後、このヘッダを読出すことにより、ユーザーが要求するタイムポイントのファイルに入って、対応する所望のオフセットにアクセスできる。
別の実施の形態では、アーカイビングモジュール222は、アーカイビングデータベース230に格納されている各ビデオストリームのインデックス化情報を、多数のストリーミングデータセンタ200が共有するグローバル記憶装置(例えば、図1の共有インデックスデータベース118)に書き込む。共有インデックスデータベース118は、ストリーミングセンタ識別情報により特定のストリーミングデータセンタからの各インデックス化情報を識別する。ストリーミングセンタが処理するビデオストリームのフレームレベルインデックス化情報は、ビデオストリームのイントラフレーム毎のインデックスのリストである。インデックスは、タプル(DC_ID、stream_ID、file_offset、time_stamp)を持つことができ、ここで、「DC_ID」はストリーミングデータセンタを識別する。共有インデックスデータベース118内のインデックス化情報は、ストリーミングデータセンタ200が受信した新しいインデックス化情報に応じて、定期的に、または要求に応じて更新される。各ストリーミングデータセンタ200は、共有インデックスデータベース118に格納されたインデックス化情報の複製を格納するので、各ストリーミングデータセンタは、他のストリーミングデータセンタに何のビデオストリームがアーカイブされているかを知ることができる。
インデックス化情報の共有は、多数のストリーミングデータセンタ200を横断する拡張可能なビデオストリーミングのために多様な利点をもたらす。インデックス化情報の共有により、多数の因子に基づいて効率的にビデオストリームを配布できるようになる。例えば、ストリーミングシステムは、特定のストリーミングデータセンタ200を指定して人気のない(すなわち、クライアントのリクエストが少ない)ビデオストリームを取り扱い、指定されたストリーミングセンタ200だけに人気のないビデオストリームをアーカイブすることができる。そうすることにより、他のストリーミングデータセンタは、ユーザーリクエストに応えて人気のないビデオストリームを取りに行く場所の必要情報を持ちながら、リクエストが多いビデオストリームを処理するためだけに計算リソースを提供できる。ビデオストリームの人気度判定は設計パラメータである。例えば、ビデオストリームの人気度は、ユーザーの申込数に基づくものであってもよい。
多数のストリーミングデータセンタ200によるインデックス化情報の共有により、ストリーミングデータセンタ200の性能も向上する。ストリーミングデータセンタ200は、どのビデオストリームをアーカイブすべきか、どのビデオストリームが他のストリーミングデータセンタで利用できるかというフレキシビリティを備えるのである。ストリーミングデータセンタ200(サービスするストリーミングデータセンタ)がローカルにアーカイブされていないビデオストリームに対するクライアントからの巻き戻しリクエストを受信した場合、サービスするストリーミングデータセンタは、共有インデックス化情報のローカルの複製から、他のどのストリーミングデータセンタ(ソースのストリーミングデータセンタ)が、そのリクエストされたビデオストリームを扱っているかを判定する。リクエストされたストリームを、ソースのストリーミングデータセンタからサービスするストリーミングデータセンタに、次いでクライアントにストリーム出力する代わりに、サービスするストリーミングデータセンタは、ビデオストリームをローカルにキャッシュして、ローカルキャッシュからビデオストリームをクライアントに送る。このように、データセンタ間の多数のクロスストリーミングが減少し、結果として、全体の性能が向上する。
図4を参照すると、リクエスト処理モジュール224は、ビデオストリーミングサーバー250からストリーミングリクエストを受信し、ストリーミングリクエストを処理し、リクエストされたビデオストリームを読出し、リクエストされたビデオストリームをビデオストリーミングサーバーへ送出する。
図2Bのストリーミングサーバー250に関して既に説明したように、申込リクエストはタイミング情報をもっていないので、クライアントがビデオストリームの初期申込みをリクエストしていることがストリーミングサーバー250に指示される。ストリーミングサーバー250は、ローカルのインデックスデータベース240をチェックして、どのストリームハンドラ220がそのリクエストを処理すべきかを識別し、識別されたストリームハンドラ220にそのリクエストを渡す。識別されたストリームハンドラのリクエスト処理モジュール224は、着信ストリーミングサーバー210から受信したリクエストストリームのデータパケットを、連続的にストリーミングサーバー250へ送出し始める。
巻き戻しリクエストに応えて、ストリーミングサーバー250は、巻き戻しが必要とされているかどうかを判定する。一の実施の形態では、ストリーミングサーバー250は、リクエストからタイミング情報を抽出し、リクエスト内の要求された開始時間の値をチェックする。ストリーミングサーバー250は、処理を続けるために、要求された開始時間およびストリームIDを処理モジュール224に送る。それに応じて、処理モジュール224は、抽出されたタイミング情報に基づいてファイルオフセットを計算する。一の実施の形態では、処理モジュール224は、ローカルのインデックスファイルをチェックすることにより、相対的な開始時間を、対応するファイルオフセットにマッピングして、相対的な開始時間に最も近いtime_stamp値を調べる。代替として、ストリーミングサーバー250は、リクエストからの相対的な開始時間値を、現在時刻を基準とする絶対開始時間値に変換してもよく、その場合、処理モジュール224は、絶対開始時間値を、対応するファイルオフセットにマッピングする。ここで、ストリーミングサーバー250は、ストリーミングサーバー250が使用する現在時刻から相対的な開始時間を減算することにより、絶対時間値を計算する。処理モジュール224は、ローカルのインデックスファイルをチェックして、計算した絶対時間値に基づいてtime_stamp値を見つける。ストリーミングサーバー250は、time_stampに最も近いファイルオフセットのイントラフレームを読出し、クライアント120にそのイントラフレームのデータパケットを送る。
例えば、ストリームハンドラ220のリクエスト処理モジュール224は、次のようなURLでストリーミングリクエストをビデオストリーミングサーバー250から受信する:「http://www.hostserver.com/play?id=Stream12&time=600000」このリクエストには、相対的な開始時間情報、すなわち「時間=600000」が含まれている。要求された開始時間は、600,000ミリ秒の相対的な開始タイミング値である(すなわち、そのビデオストリームの始点から10分)。処理モジュール224は、ローカルのインデックスデータベース240をチェックし、最も近い一致時間値、例えば、(Stream12,900,600000)を持つインデックスレコードを見つける。値「900」は、ここでは、ビデオストリームの開始時間に対する600,000ミリ秒の時間値に対応するイントラフレームのバイトオフセットを示す。代替として、ストリーミングサーバー250は、相対的な開始時間値600,000を現在時刻に対する絶対時間値に変換する。ビデオストリームが1,800,000ミリ秒前(すなわち、30分前)にブロードキャストされたと仮定すると、ストリーミングサーバー250は、現在時刻から巻き戻す絶対時間は1,200,000ミリ秒(20分)であると決定する。処理モジュール224は、ローカルのインデックスデータベース240をチェックし、最も近い一致時間値、例えば、(Stream12,900,600000)を持つインデックスレコードを見つける。ストリーミングサーバー250は、アーカイブされたストリームのファイルオフセット900で開始するイントラフレームのデータパケットを読出し、そのファイルオフセットからのデータパケットのクライアント120への送出を開始する。
別の実施の形態では、クライアント110は、ユーザーリクエスト内のタイミング情報を絶対時間のtime_stampに変換し、ストリーム識別情報と併せて、ストリーミングサーバー250にそのtime_stampを送る。処理モジュール224は、ローカルのインデックスファイルをチェックして、受信した絶対時間のtime_stamp値に最も近いtime_stamp値を見つけ出す。処理モジュール224は、time_stampに最も近いファイルオフセットのイントラフレームを読出し、イントラフレームのデータパケットを送出する。
図5は、ライブストリームを処理するためのストリーミングデータセンタ200の動作フロー図である。最初に、ストリーミングデータセンタ200の着信ストリーミングサーバー210は、ライブ入力からビデオストリームを受信する(510)。着信ストリーミングサーバー210は、プロトコル解釈モジュール212によりビデオストリーム内のストリーミングプロトコルを解釈し(512)、データ抽出モジュール214によりビデオストリームからオーディオ/ビデオデータを抽出する(514)。着信ストリーミングサーバー210は、ビデオストリームの処理を続けるためにストリームハンドラ220を更に識別し(516)、アーカイビングおよびインデックス化のために、抽出したストリームデータをストリームハンドラ220に配布する(518)。
図6は、クライアント装置からのストリーミングリクエストに応えるストリーミングデータセンタの動作フロー図である。最初に、ストリーミングデータセンタ200のストリーミングサーバー250の内の1つが、ユーザーのクライアント装置からストリーミングリクエストを受信する(610)。ストリーミングリクエストには、ユーザーがリクエストするビデオストリームを識別するストリームIDが少なくとも含まれる。タイミング情報を含まないリクエストへの応答に対しては、ストリーミングサーバー250は、どのストリームハンドラ220が、リクエストされたビデオストリームを有するかを、ローカルのインデックスデータベース240に対してストリームIDをチェックすることにより識別し(612)、現在時刻から開始されるリクエストされたストリームのデータパケットを読出す。タイミング情報を含むリクエストへの応答に対しては、ストリームハンドラ220は、リクエスト内容がビデオストリームを巻き戻すためのものかどうかを判定する。リクエストが巻き戻し要求である場合、ストリーミングサーバー250は、リクエストからタイミング情報を抽出し(614)、処理モジュール224が、タイミング情報に対応するファイルオフセットを計算する(616)。ストリーミングサーバー250は、リクエストされたストリームを読出し(618)、得られたファイルオフセットから開始されるビデオストリームをクライアント120へ送出する(620)。
分散したビデオストリーミングシステムの典型的な実装は、図1で説明したように、多数のストリーミングデータセンタを含んでいる。図に、ストリームをブロードキャストしながらのシームレスなビデオストリームの巻戻しのためのサーバー側サポート、および多数のストリーミングデータセンタ200を横断する拡張可能なシステム性能を更に示す。図7は、多数のストリーミングデータセンタ200を横断するビデオストリーミングリクエストに応じるための、つまり強化された拡張性を提供するための動作のフロー図である。先ず、データセンタ発送部114がクライアントからストリーミングリクエストを受信する(710)。発送部114は、利用可能なストリーミングデータセンタ200のトラフィック負荷等、1つ以上の決定因子に基づいてストリーミングデータセンタ200の内の1つにリクエストを発送する(712)。選択されたストリーミングデータセンタ200は、リクエストのストリームIDに基づいてローカルのインデックスデータベースをチェックする。選択されたデータセンタ200のローカルのアーカイブデータベース230内で利用可能なリクエストデータに応答して、ストリーミングデータセンタ200は、図2〜図4に関係して説明したように、ストリーミングリクエストを処理する(720)。ローカルに利用できないリクエストデータに応答して、ストリーミングデータセンタ200は、全てのストリーミングデータセンタが共有するグローバルなインデックスファイルの複製を含むローカルのインデックスデータベース240をチェックする。グローバルのインデックス化ファイルに基づいて、ストリーミングデータセンタ200は、他のどのストリーミングデータセンタ200がリクエストストリームをもっているかを識別する(716)。ストリーミングリクエストが巻戻しリクエストの場合、ストリーミングデータセンタ200は、リクエストストリームの複製を得て、ローカルのキャッシュに格納する(718)。ストリーミングデータセンタ200はストリーミングリクエストの処理を継続する(720)。ストリーミングリクエストの処理は、ストリームハンドラを識別する(612)、巻戻し時間要件を抽出する(614)、アーカイブファイルオフセットを計算する(616)、およびリクエストビデオストリームをストリーム出力する(618)等の、図6に記載する処理ステップを含む。ストリーミングリクエストが申込みである場合、ストリーミングデータセンタ200は、そのリクエストを、識別されたストリーミングデータセンタへリダイレクトする。識別されたストリーミングデータセンタは、そのローカルインデックスデータベース204をチェックして、どのストリームハンドラ220がリクエストされたストリームのデータパケットを扱うかを探し、識別されたそのストリームハンドラ220から、リクエストされたストリームのデータパケットを送出する。

上記説明には好ましい実施の形態の動作の説明が含まれるが、本発明の範囲の限定を意味するものではない。本発明の範囲は、以下の特許請求の範囲によってのみ制限される。上記説明から、本発明の精神および範囲に包含される多くの変形は、当業者には明らかとなろう。
可能性のある一の実施の形態に関係して特に詳細に本発明を説明してきた。当業者には言うまでもなく、本発明を他の実施の形態で実施することもできる。第一に、構成要素に特有なネーミング、用語の大文字使用、属性、データ構造、または何らかの他のプログラミングもしくは構造的な側面は、必須でも重要でもなく、本発明またはその特徴を実施するメカニズムは、異なる名称、フォーマット、またはプロトコルをもっていてもよい。更にシステムは上記のように、ハードウエアとソフトウエアとの組合せを介して実装してもよく、あるいは全体をハードウエア要素で実装してもよい。また、本明細書に記載する各種のシステム構成要素間における機能性の特定な分割は単なる例示であって、必須ではなく、単一のシステム構成要素が実行する機能を、それに代わる多数の構成要素で実行してもよく、多数の構成要素が実行する機能を、それに代わる単一の構成要素で実行してもよい。
上記説明の何ヶ所かは、アルゴリズムの観点から見た本発明の特徴および情報に対する操作を象徴的に表現している。これらのアルゴリズム的な記述および表現は、データ処理分野に精通する者が使用して最も効率的に自らの業務を他に伝えるために使用される手段である。これらの動作は、機能的または論理的に記述されるが、コンピュータプログラムにより実装されることは言うまでもない。更に、モジュールとして、または関数名により、これらの動作の編成を参照することも、一般性を欠くことなく、時々に便利であることが明らかになっている。
上記検討から明らかなように、特に指定の無い限り、ここでの説明を通じて、「処理」、「演算」、「計算」、「判定」または「表示」等の用語を使った検討は、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶装置、通信装置またはディスプレイ装置内の物理量(電子量)として表されるデータを操作し、これを変換するコンピュータシステムまたは類似の電子演算装置の動作およびプロセスを指す。
本発明の特定の態様には、本明細書でアルゴリズム形式にて説明される処理ステップおよび命令が含まれる。注意すべきは、本発明の処理ステップおよび命令は、ソフトウエア、ファームウエアまたはハードウエアで実装でき、ソフトウエアで実装する場合はダウンロードして常駐させ、リアルタイム・ネットワークオペレーティングシステムにより使用される各種のプラットフォームから操作できるという点である。
本発明は、また、ここに記載の操作を実行するための装置にも関する。この装置は、必要な目的のために専ら構築されてもよく、さもなければコンピュータがアクセス可能なコンピュータ読取可能媒体に格納されたコンピュータプログラムにより選択的に起動されるか、または再構成される汎用コンピュータを備えてもよい。このようなコンピュータプログラムは、限定はしないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、光磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気または光カード、特定用途向け集積回路(ASIC)、または、電子命令の格納に適する任意の形式の媒体およびコンピュータシステムバスに接続されるそれぞれの媒体を含む任意の形式のディスク等の、コンピュータ読取可能格納媒体内に格納してもよい。更に、本明細書内で参照するコンピュータは単一プロセッサを含んでもよく、あるいは計算能力を増強するためにマルチプロセッサ設計を利用したアーキテクチャであってもよい。
本明細書で提示するアルゴリズムおよび操作は、いずれの特定のコンピュータにも、その他の装置とも本質的に無関係である。本明細書の教示によるプログラムをもつ各種汎用システムを使用してもよい。あるいは、もっと専用化した装置を構築して、必要な方法ステップを実行するのが便利かもしれない。多様性に富むこれらのシステムに要求される構造は、均等な変更とともに、当業者には明らかであろう。更に、本発明の記述は、何らかの特定のプログラミング言語に準拠しない。各種のプログラミング言語を用いて本明細書で説明したように本発明の教示を実装することができ、特定の言語への何らかの参照は、本発明の可能性および最良の態様を開示するためである。
本発明は、多数のトポロジ上で成り立つコンピュータネットワークシステムに良好に適合する。この分野では、大規模なネットワークの構成および管理に、インターネット等のネットワーク上の異種のコンピュータおよび記憶装置に通信で結合される記憶装置およびコンピュータが含まれる。
最後に、本明細書で使用する言語は、原則として可読性および説明の容易さを目的に選定され、本発明の主題を限定したり、束縛したりするために選定されたものではないことに留意されたい。従って、本発明の開示は本発明の範囲を説明するためのものであり、それを制限するのではなく、その範囲は以下の特許請求の範囲で記述される。

Claims (31)

  1. クライアント装置により受信されるブロードキャストビデオストリームの巻戻しを提供する方法であって、
    コンピュータサーバーによって、ブロードキャストビデオストリームについてのリクエストを前記クライアント装置から受信するステップと、
    前記コンピュータサーバーによって、前記リクエストが前記ブロードキャストビデオストリームを巻き戻すリクエストであることを判定するステップであって、前記リクエストが、前記ブロードキャストビデオストリームのストリーム識別情報と、前記ビデオストリームの巻戻す部分を指示するタイミング情報とを含む、前記ステップと、
    前記コンピュータサーバーによって、1以上の基準に基づいて、前記リクエストに応ずるために複数のストリーミングデータセンタの内の1つを選択するステップであって、該1つのストリーミングデータセンタは、該ストリーミングデータセンタのローカルの記憶装置または別のストリーミングデータセンタのいずれかによって前記リクエストに応ずる、前記ステップと、
    前記選択されたストリーミングデータセンタがローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記コンピュータサーバーによって、該選択されたストリーミングデータセンタの該ローカルの記憶装置から前記リクエストされたビデオストリームを読み出すステップと、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記コンピュータサーバーによって、前記リクエスト内の前記タイミング情報に対応する前記リクエストされたビデオストリーム内のファイルオフセットを決定するステップであって、前記ファイルオフセットは、前記リクエストされたビデオストリーム内の複数のファイルオフセットを前記リクエストされたビデオストリームのタイミング情報に関連付けるインデックスファイルによって決定され、該インデックスファイルは、前記ローカルの記憶装置内に記憶されている、前記ステップと、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記コンピュータサーバーによって、前記決定したファイルオフセットから始まる前記リクエストされたビデオストリームを前記クライアント装置へストリーム出力するステップ、
    を具備する方法。
  2. 前記コンピュータサーバーによって、ビデオソースから前記ビデオストリームを受信するステップを更に具備する、請求項1の方法。
  3. 前記ビデオソースがライブ入力からのものである、請求項2の方法。
  4. 前記ビデオソースが録画されたビデオストリームからのものである、請求項2の方法。
  5. ネットワーク記憶装置システム内に前記ビデオストリームをアーカイブするステップを更に具備し、該アーカイブされたビデオストリームは前記ストリーム識別情報により識別される、請求項1の方法。
  6. 前記ビデオストリームをアーカイブするステップは、前記ビデオストリームのイントラフレーム毎にインデックスを格納するステップを更に含み、前記各イントラフレーム毎 の前記インデックスは、前記ストリーム識別情報と、当該イントラフレームが前記ビデオストリーム内に配置される場所を指示するファイルオフセットと、当該イントラフレームが前記ビデオストリーム内で再生を開始する時間を指示するタイムスタンプとを含む、請求項5の方法。
  7. 前記ビデオストリームをアーカイブするステップは、前記ビデオストリームのピクチャーグループの最初のイントラフレーム毎にインデックスを格納するステップを更に含み、該インデックスは、ストリーム識別情報と、ファイルオフセットと、タイムスタンプとを含む、請求項6の方法。
  8. 前記リクエスト内の前記タイミング情報に対応する前記ファイルオフセットを決定する前記ステップは、前記タイミング情報内の前記時間値に最も近いタイムスタンプを有するインデックスを選択するステップを更に含む、請求項1の方法。
  9. 前記リクエストされたビデオストリームをストリーム出力する前記ステップは、選択したインデックスの前記ファイルオフセットに対応するファイルオフセットを持つイントラフレームを読出すステップを更に含む、請求項1の方法。
  10. クライアント装置により受信されるブロードキャストビデオストリームの巻戻しを提供するためのコンピュータによって実行可能なプログラム命令を記録してなるコンピュータ読取可能な記憶媒体であって、前記コンピュータによって実行可能なプログラム命令は、コンピュータサーバーに、
    ブロードキャストビデオストリームについてのリクエストを前記クライアント装置から受信する手順と、
    前記リクエストが前記ブロードキャストビデオストリームを巻き戻すリクエストであることを判定する手順であって、前記リクエストが、前記ブロードキャストビデオストリームのストリーム識別情報と、前記ビデオストリームの巻戻す部分を指示するタイミング情報とを含む、前記手順と、
    1以上の基準に基づいて、前記リクエストに応ずるために複数のストリーミングデータセンタの内の1つを選択する手順であって、該1つのストリーミングデータセンタは、該ストリーミングデータセンタのローカルの記憶装置または別のストリーミングデータセンタのいずれかによって前記リクエストに応ずる、前記手順と、
    前記選択されたストリーミングデータセンタがローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、該選択されたストリーミングデータセンタの該ローカルの記憶装置から前記リクエストされたビデオストリームを読み出す手順と、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記リクエスト内の前記タイミング情報に対応する前記リクエストされたビデオストリーム内のファイルオフセットを決定する手順であって、前記ファイルオフセットは、前記リクエストされたビデオストリーム内の複数のファイルオフセットを前記リクエストされたビデオストリームのタイミング情報に関連付けるインデックスファイルによって決定され、該インデックスファイルは、前記ローカルの記憶装置内に記憶されている、前記手順と、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記決定されたファイルオフセットから始まる前記リクエストされたビデオストリームを前記クライアント装置へストリーム出力する手順と、
    を実行させることを特徴とするコンピュータ読取可能な記憶媒体。
  11. 前記コンピュータによって実行可能なプログラム命令は、前記コンピュータサーバーに 、更に、ビデオソースから前記ビデオストリームを受信する手順を実行させることを含む、請求項10のコンピュータ読取可能な記憶媒体。
  12. 前記ビデオソースは、ライブ入力からのものである、請求項11のコンピュータ読取可能な記憶媒体。
  13. 前記ビデオソースは、録画されたビデオストリームからのものである、請求項11のコンピュータ読取可能な記憶媒体。
  14. 前記コンピュータによって実行可能なプログラム命令は、前記コンピュータサーバーに、更に、ネットワーク記憶装置システム内の前記ビデオストリームをアーカイブする手順を実行させることを含み、前記アーカイブされたビデオストリームは、前記ストリーム識別情報により識別される、請求項10のコンピュータ読取可能な記憶媒体。
  15. 前記ビデオストリームをアーカイブする前記手順は、前記コンピュータサーバーに前記ビデオストリームのイントラフレーム毎にインデックスを格納する手順を実行させることを含み、前記各イントラフレーム毎の前記インデックスは、前記ストリーム識別情報と、当該イントラフレームが前記ビデオストリーム内に配置されている場所を指示するファイルオフセットと、当該イントラフレームが前記ビデオストリーム内で再生を開始する時間を指示するタイムスタンプとを含む、請求項14のコンピュータ読取可能な記憶媒体。
  16. 前記ビデオストリームをアーカイブする前記手順は、前記コンピュータサーバーに、更に、前記ビデオストリームのピクチャーグループの最初のイントラフレーム毎にインデックスを格納する手順を実行させることを含み、インデックスは、前記ストリーム識別情報と、ファイルオフセットと、タイムスタンプとを含む、請求項15のコンピュータ読取可能な記憶媒体。
  17. 前記コンピュータによって実行可能なプログラム命令は、前記コンピュータサーバーに、更に、前記タイミング情報中の前記時間値に最も近い時間を有するインデックスを選択する手順を実行させることを含む、請求項10のコンピュータ読取可能な記憶媒体。
  18. 前記リクエストされたビデオストリームを前記クライアント装置へストリーム出力する 前記手順は、前記コンピュータサーバーに選択したインデックスの前記ファイルオフセットと対応するファイルオフセットを持つイントラフレームを読出す手順を実行させるこ とを含む、請求項10のコンピュータ読取可能な記憶媒体。
  19. クライアント装置により受信されるブロードキャストビデオストリームの巻戻しを提供するコンピュータシステムであって、
    プロセッサと、
    プロセッサで実行可能なプログラム命令を格納するコンピュータ読取可能な記憶媒体と、
    を備え、前記プログラム命令によって、前記コンピュータシステムが、
    前記ブロードキャストビデオストリームについてのリクエストを前記クライアント装置から受信し、
    前記リクエストが前記ブロードキャストビデオストリームを巻き戻すためのリクエストであることを判定し、ここで、前記リクエストが、前記ブロードキャストビデオストリームのストリーム識別情報と、前記ビデオストリームの巻き戻し部分を指示するタイミング情報とを含み、
    1以上の基準に基づいて、前記リクエストに応ずるために複数のストリーミングデータセンタの内の1つを選択し、ここで、該1つのストリーミングデータセンタは、該ストリーミングデータセンタのローカルの記憶装置または別のストリーミングデータセンタのいずれかによって前記リクエストに応じ、
    前記選択されたストリーミングデータセンタがローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、該選択されたストリーミングデータセンタの該ローカルの記憶装置から前記リクエストされたビデオストリームを読み出し、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記リクエスト内の前記タイミング情報に対応する前記リクエストされたビデオストリーム内のファイルオフセットを決定し、ここで、前記ファイルオフセットは、前記リクエストされたビデオストリーム内の複数のファイルオフセットを前記リクエストされたビデオストリームのタイミング情報に関連付けるインデックスファイルによって決定され、該インデックスファイルは、前記ローカルの記憶装置内に記憶されており、
    前記選択されたストリーミングデータセンタが前記ローカルの記憶装置からの前記ビデオストリームを取り扱うことに応答して、前記決定されたファイルオフセットから開始する前記リクエストされたビデオストリームを、前記クライアント装置へストリーム出力する、
    ように構成されてなる、コンピュータシステム。
  20. ビデオソースか前記ビデオストリームを受信するよう更に構成されてなる、請求項19のシステム。
  21. 前記ビデオソースがライブ入力からのものである、請求項20のシステム。
  22. 前記ビデオソースが録画されたビデオストリームからのものである、請求項20のシステム。
  23. ットワーク記憶装置システム内に前記ビデオストリームをアーカイブするように更に構成され、前記アーカイブされたビデオストリームは前記ストリーム識別情報により識別される、請求項19のシステム。
  24. 記ビデオストリームのイントラフレーム毎のインデックスを格納するよう更に構成され、前記各イントラフレーム毎の前記インデックスは前記ストリーム識別情報と、 イントラフレームが前記ビデオストリーム内に配置された場所を指示するファイルオフセットと、当該イントラフレームが前記ビデオストリーム内で再生を開始する時間を指示するタイムスタンプとを含む、請求項23のシステム。
  25. 記ビデオストリームのピクチャーグループの最初のイントラフレーム毎のインデックスを格納するよう更に構成され、前記インデックスは前記ストリーム識別情報と、ファイルオフセットと、タイムスタンプとを含む、請求項24のシステム。
  26. 記タイミング情報内の前記時間値に最も近いタイムスタンプを有するインデックスを選択するように更に構成されてなる、請求項19のシステム。
  27. ントラフレームのファイルオフセットが前記選択されたインデックスの前記ファイルオフセットに対応するイントラフレームを読出すよう更に構成されてなる、請求項19のシステム。
  28. 前記複数のストリーミングデータセンタの内の1ストリーミングデータセンタが有する 前記ローカルの記憶装置は、前記ビデオストリームを記憶し、且つ、該記憶したビデオス トリームのローカルなインデックス情報と前記複数のストリーミングデータセンタによっ て共有されるグローバルなインデックス情報のコピーとを記憶する、請求項1の方法。
  29. 前記選択されたストリーミングデータセンタが前記ローカルの記憶装置内に前記リクエ ストされたビデオストリームを記憶していないことに応答して、前記コンピュータサーバ ーによって、
    前記選択されたストリーミングデータセンタの前記ローカルの記憶装置内に記憶され たインデックス情報に少なくとも基づいて、前記複数のストリーミングデータセンタの内 どのストリーミングデータセンタが前記リクエストされたビデオストリームを持っている かを判定し、
    前記判定したストリーミングデータセンタから前記リクエストされたビデオストリー ムを取得して、該取得したビデオストリームを前記選択されたストリーミングデータセン タの前記ローカルの記憶装置内に記憶し、
    前記リクエストされたビデオストリームを前記選択されたストリーミングデータセン タから前記クライアント装置へストリーム出力する、
    ステップを更に具備する、請求項1の方法。
  30. 前記選択されたストリーミングデータセンタが前記ローカルの記憶装置内に前記リクエ ストされたビデオストリームを記憶していないことに応答して、前記コンピュータサーバ ーに、
    前記選択されたストリーミングデータセンタの前記ローカルの記憶装置内に記憶され たインデックス情報に少なくとも基づいて、前記複数のストリーミングデータセンタの内 どのストリーミングデータセンタが前記リクエストされたビデオストリームを持っている かを判定し、
    前記判定したストリーミングデータセンタから前記リクエストされたビデオストリー ムを取得して、該取得したビデオストリームを前記選択されたストリーミングデータセン タの前記ローカルの記憶装置内に記憶し、
    前記リクエストされたビデオストリームを前記選択されたストリーミングデータセン タから前記クライアント装置へストリーム出力する、
    手順を更に実行させる、請求項10のコンピュータ読取可能な記憶媒体。
  31. 前記選択されたストリーミングデータセンタが前記ローカルの記憶装置内に前記リクエ ストされたビデオストリームを記憶していないことに応答して、
    前記選択されたストリーミングデータセンタの前記ローカルの記憶装置内に記憶され たインデックス情報に少なくとも基づいて、前記複数のストリーミングデータセンタの内 どのストリーミングデータセンタが前記リクエストされたビデオストリームを持っている かを判定し、
    前記判定したストリーミングデータセンタから前記リクエストされたビデオストリー ムを取得して、該取得したビデオストリームを前記選択されたストリーミングデータセン タの前記ローカルの記憶装置内に記憶し、
    前記リクエストされたビデオストリームを前記選択されたストリーミングデータセン タから前記クライアント装置へストリーム出力する、
    ように更に構成されてなる、請求項19のシステム。
JP2011548428A 2009-02-04 2010-02-04 ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート Active JP5666477B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/365,722 US9538142B2 (en) 2009-02-04 2009-02-04 Server-side support for seamless rewind and playback of video streaming
US12/365,722 2009-02-04
PCT/US2010/023140 WO2010091143A1 (en) 2009-02-04 2010-02-04 Server-side support for seamless rewind and playback of video streaming

Publications (3)

Publication Number Publication Date
JP2012517160A JP2012517160A (ja) 2012-07-26
JP2012517160A5 JP2012517160A5 (ja) 2013-09-19
JP5666477B2 true JP5666477B2 (ja) 2015-02-12

Family

ID=42397792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548428A Active JP5666477B2 (ja) 2009-02-04 2010-02-04 ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート

Country Status (9)

Country Link
US (1) US9538142B2 (ja)
EP (1) EP2394435B1 (ja)
JP (1) JP5666477B2 (ja)
KR (1) KR101410621B1 (ja)
CN (2) CN107071511B (ja)
AU (1) AU2010210639B2 (ja)
BR (1) BRPI1008837B1 (ja)
CA (1) CA2751404C (ja)
WO (1) WO2010091143A1 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057543B2 (en) * 2008-10-31 2018-08-21 Arris Enterprises Llc Digital video recorder having live-off-disk buffer for receiving missing portions of buffered events
US8593570B2 (en) 2008-11-07 2013-11-26 Looxcie, Inc. Video recording camera headset
US20100269147A1 (en) * 2009-04-15 2010-10-21 Echostar Technologies Llc Video stream index generation at a video content transmitter
US11991405B2 (en) * 2009-12-18 2024-05-21 Crossbar Media Group, Inc Systems and methods for automated extraction of closed captions in real time or near real-time and tagging of streaming data for advertisements
US9510029B2 (en) * 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
US9253548B2 (en) 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
JP5628422B2 (ja) * 2010-06-29 2014-11-19 クゥアルコム・インコーポレイテッドQualcomm Incorporated トリックモードビデオ表現のためのビデオサンプルを信号伝達すること
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9215486B2 (en) * 2010-08-13 2015-12-15 Simon Fraser University System and method for multiplexing of variable bit-rate video streams in mobile video systems
KR101182840B1 (ko) * 2010-11-03 2012-09-14 한국전자통신연구원 복합 상황 정보를 이용한 스마트 스트리밍 서비스 제공 장치 및 방법
US9252897B2 (en) * 2010-11-10 2016-02-02 Verizon Patent And Licensing Inc. Multi-feed event viewing
US8737803B2 (en) 2011-05-27 2014-05-27 Looxcie, Inc. Method and apparatus for storing and streaming audiovisual content
US20120303797A1 (en) * 2011-05-27 2012-11-29 Saroop Mathur Scalable audiovisual streaming method and apparatus
US20130212162A1 (en) * 2012-01-12 2013-08-15 Ciinow, Inc. Control structure for content delivery and management
US20150350381A1 (en) * 2013-01-15 2015-12-03 Hewlett-Packard Development Company, L.P. Vertically-Tiered Client-Server Architecture
FR3001353A1 (fr) * 2013-01-24 2014-07-25 Tdf Procede et dispositif de fourniture d’un contenu multimedia, equipement source de diffusion, programme d’ordinateur et medium de stockage correspondants.
CN103067696A (zh) * 2013-01-31 2013-04-24 东方网力科技股份有限公司 面向视频监控的流媒体缓存方法、装置、控制器和系统
CN104010160B (zh) * 2013-02-25 2017-10-13 杭州海康威视系统技术有限公司 视频监控系统的干线管理方法及其装置
CN104038471B (zh) * 2013-03-08 2017-08-11 中国移动通信集团浙江有限公司 一种在互联网中管理idc资源的方法和运营商网络
US20140281559A1 (en) * 2013-03-15 2014-09-18 Marc Trachtenberg Systems and Methods for Distributing, Displaying, Viewing, and Controlling Digital Art and Imaging
CN103220587B (zh) * 2013-03-22 2016-12-28 深圳市同洲电子股份有限公司 一种获取时移内容的方法及装置
FR3005386B1 (fr) * 2013-05-02 2016-10-14 Tdf Procede et dispositif de fourniture d’une partie deja diffusee d’un flux multimedia, terminal utilisateur, programme d’ordinateur et medium de stockage correspondants
US10015222B2 (en) 2013-09-26 2018-07-03 Arris Canada, Inc. Systems and methods for selective retrieval of adaptive bitrate streaming media
US20150156236A1 (en) * 2013-12-02 2015-06-04 International Business Machines Corporation Synchronize Tape Delay and Social Networking Experience
US9584577B2 (en) * 2014-04-03 2017-02-28 Cisco Technology, Inc. Method for enabling use of HLS as a common intermediate format
CN105224546B (zh) * 2014-06-04 2020-10-30 创新先进技术有限公司 数据存储和查询方法及设备
US10057618B2 (en) 2014-06-06 2018-08-21 Microsoft Technology Licensing, Llc System for filtering media manifests using manifest attributes
US20160092037A1 (en) * 2014-09-25 2016-03-31 Osix Corporation Computer-Implemented Methods, Computer Readable Media, And Systems For Distributed Processing
CN105592318B (zh) * 2014-10-21 2020-05-19 中兴通讯股份有限公司 一种实现hls频道回看业务的系统、设备和方法
CA2969721A1 (en) * 2014-12-03 2016-06-09 Fox Broadcasting Company Location agnostic media control room and broadcasting facility
US10750225B2 (en) * 2015-04-29 2020-08-18 Ms45 Srl Method and system for transmitting on demand videos of fitness sessions on fixed and/or mobile electronic devices
WO2016198112A1 (en) * 2015-06-11 2016-12-15 Telefonaktiebolaget Lm Ericsson (Publ) Nodes and methods for handling packet flows
CN106713940B (zh) * 2015-08-04 2019-12-20 杭州海康威视数字技术股份有限公司 视频流的存储方法、读取方法及装置
KR102209782B1 (ko) * 2015-11-02 2021-01-28 에스케이텔레콤 주식회사 스트리밍 서비스 제공 방법 및 이를 위한 장치
US9990349B2 (en) 2015-11-02 2018-06-05 Microsoft Technology Licensing, Llc Streaming data associated with cells in spreadsheets
US10997364B2 (en) 2015-11-02 2021-05-04 Microsoft Technology Licensing, Llc Operations on sound files associated with cells in spreadsheets
KR101998303B1 (ko) * 2015-12-08 2019-10-01 네이버 주식회사 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
CN105657443A (zh) * 2015-12-30 2016-06-08 深圳市云宙多媒体技术有限公司 一种直播时移播放方法和系统
CN106874320A (zh) 2016-06-20 2017-06-20 阿里巴巴集团控股有限公司 分布式流式数据处理的方法和装置
US10841363B2 (en) * 2017-01-09 2020-11-17 International Business Machines Corporation Streaming API subscription without loss of events
US10743087B2 (en) * 2017-06-21 2020-08-11 Z5X Global FZ-LLC Smart furniture content interaction system and method
US10101804B1 (en) * 2017-06-21 2018-10-16 Z5X Global FZ-LLC Content interaction system and method
JP6907104B2 (ja) * 2017-12-07 2021-07-21 キヤノン株式会社 映像配信装置、制御方法及びプログラム
US11838588B2 (en) * 2017-12-29 2023-12-05 Comcast Cable Communications, Llc Performing trick plays of segmented video content
US10805651B2 (en) 2018-10-26 2020-10-13 International Business Machines Corporation Adaptive synchronization with live media stream
US10853308B1 (en) * 2018-11-19 2020-12-01 Xilinx, Inc. Method and apparatus for direct memory access transfers
CN109862398A (zh) * 2019-03-29 2019-06-07 北京奇艺世纪科技有限公司 多媒体数据传输方法、装置及系统
CN111866549B (zh) * 2019-04-29 2023-03-24 腾讯科技(深圳)有限公司 一种视频处理方法及装置、终端、存储介质
US11388060B1 (en) * 2019-11-26 2022-07-12 Xilinx, Inc. Systems and methods for discovery and configuration of a network device
CN112929677B (zh) * 2019-12-06 2023-02-28 北京金山云网络技术有限公司 直播视频的回看方法、装置和服务器
US11317035B1 (en) * 2020-04-29 2022-04-26 Action Streamer, LLC Method and system for synchronized playback of multiple video streams over a computer network
CN111726650B (zh) * 2020-06-30 2022-10-18 广州繁星互娱信息科技有限公司 视频直播方法及装置、计算机存储介质
CN112218165B (zh) * 2020-10-12 2023-07-14 腾讯科技(深圳)有限公司 视频播放的控制方法、装置、电子设备及存储介质
CN114979763A (zh) * 2022-04-13 2022-08-30 深圳市有为信息技术发展有限公司 视频回放时的播放控制方法和装置、视频回放系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0956702A1 (en) 1997-01-30 1999-11-17 Microsoft Corporation Vcr-like functions rendering video on demand
US6128653A (en) * 1997-03-17 2000-10-03 Microsoft Corporation Method and apparatus for communication media commands and media data using the HTTP protocol
JPH11298858A (ja) 1998-04-14 1999-10-29 Oki Electric Ind Co Ltd ビデオサーバシステム
US20010014975A1 (en) 1999-04-16 2001-08-16 Seachange International , Inc. Transmitting viewable data objects
AU2001236571A1 (en) * 2000-01-28 2001-08-07 Williams Communications, Llc Method of utilizing a single uniform resource locator for resources with multiple formats
AU2001249112A1 (en) 2000-03-07 2001-09-17 Yahoo Inc. Information display systems and methods
JP2002199344A (ja) 2000-12-26 2002-07-12 Toshiba Corp マルチメディア情報送信サーバ装置
JP2002330379A (ja) 2001-05-02 2002-11-15 Sony Corp コンテンツ提供装置
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
EP1286349A1 (en) 2001-08-21 2003-02-26 Canal+ Technologies Société Anonyme File and content management
JP4257084B2 (ja) 2001-08-21 2009-04-22 カナル プラス テクノロジーズ ソシエテ アノニム ファイル及びコンテンツ管理
JP3979432B2 (ja) * 2003-08-08 2007-09-19 オンキヨー株式会社 ネットワークavシステム
US20060005224A1 (en) * 2004-06-30 2006-01-05 John Dunning Technique for cooperative distribution of video content
US20060090186A1 (en) 2004-10-21 2006-04-27 Santangelo Bryan D Programming content capturing and processing system and method
JP4312246B2 (ja) 2005-03-18 2009-08-12 富士通株式会社 動画像データ編集装置、動画像データ再生装置、動画像データ編集方法及び動画像データ再生方法
US7634076B2 (en) 2005-08-03 2009-12-15 Indicium Media, Llc Network, system and method for distributing digital media
KR100823732B1 (ko) * 2005-12-08 2008-04-21 한국전자통신연구원 스트리밍 서비스를 위한 컨텐츠 제공 시스템 및 그 방법
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
CN100505696C (zh) 2006-07-19 2009-06-24 华为技术有限公司 在媒体分发网络中实现视频直播的系统、方法和客户端
US20100198977A1 (en) * 2006-09-27 2010-08-05 Adobe Systems Incorporated Automatic live stream trees
CN100544439C (zh) * 2006-11-21 2009-09-23 华为技术有限公司 一种支持多种编码格式的媒体数据的方法及系统
US20080168516A1 (en) * 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
CN101227590B (zh) * 2007-01-19 2013-03-06 北京风行在线技术有限公司 基于p2p协议的媒体文件点播控制方法及装置
CN101202900B (zh) 2007-03-12 2010-09-29 深圳市同洲电子股份有限公司 一种数字电视直播与回放的切换方法及视频服务器
JP4405523B2 (ja) 2007-03-20 2010-01-27 株式会社東芝 コンテンツ配信システム、このコンテンツ配信システムで使用されるサーバ装置及び受信装置
JP2008236390A (ja) 2007-03-20 2008-10-02 Asv:Kk 映像再生システムにおける映像シーク制御方式

Also Published As

Publication number Publication date
CN107071511A (zh) 2017-08-18
AU2010210639B2 (en) 2015-03-26
US9538142B2 (en) 2017-01-03
CN107071511B (zh) 2020-02-14
BRPI1008837B1 (pt) 2021-11-23
WO2010091143A1 (en) 2010-08-12
EP2394435A4 (en) 2013-11-13
CA2751404A1 (en) 2010-08-12
BRPI1008837A2 (pt) 2016-03-15
EP2394435A1 (en) 2011-12-14
US20100195974A1 (en) 2010-08-05
CN102356644A (zh) 2012-02-15
EP2394435B1 (en) 2019-11-27
KR20110116204A (ko) 2011-10-25
AU2010210639A1 (en) 2011-08-18
KR101410621B1 (ko) 2014-06-23
CA2751404C (en) 2017-01-03
JP2012517160A (ja) 2012-07-26

Similar Documents

Publication Publication Date Title
JP5666477B2 (ja) ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート
US10511646B2 (en) System and method for delivering content
US9288250B2 (en) Mobile multimedia real-time transcoding system, apparatus, storage medium and method
US8769139B2 (en) Efficient streaming server
US9088804B2 (en) On-demand selection of transcoding formats for multimedia broadcast streams
US7818355B2 (en) System and method for managing content
JP2020119497A (ja) ライブストリーミングセグメント化方法、装置及びシステム
US20210021655A1 (en) System and method for streaming music on mobile devices
CN113141522B (zh) 资源传输方法、装置、计算机设备及存储介质
WO2017080427A1 (zh) 一种媒体播放方法、终端、系统及计算机存储介质
WO2015042962A1 (en) System and method of a link surfed http live streaming broadcasting system
US20170353753A1 (en) Communication apparatus, communication control method, and communication system
US20090006581A1 (en) Method and System For Downloading Streaming Content
CN100551037C (zh) 一种流媒体内容预览的方法和系统
CN114630143A (zh) 视频流存储方法、装置、电子设备和存储介质
JP2002297494A (ja) データ配信システム、端末装置、シナリオプロキシサーバおよびデータ配信方法
Zimmermann Video Transcode Scheduling for MPEG-DASH in Cloud Environments.
CN112887755A (zh) 用于播放视频的方法和装置
NZ623572B2 (en) Mobile multimedia real-time transcoding system, device, storage medium and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140401

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141210

R150 Certificate of patent or registration of utility model

Ref document number: 5666477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250