(57)【特許請求の範囲】
【請求項１】
ライブビデオストリームを配信するシステムであって、前記システムは
アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスであって、前記デバイスは
ライブビデオストリームの一部をコンテツソースから受け取り、
前記受け取ったビデオストリームの一部を複数のエンコードされたビデオファイルにエンコードするものであり、前記エンコードされたビデオファイルの各々は異なるビットレートストリームに関連付けられるものであり、
ネットワークからアクセス可能なストレージ装置を中継して前記複数のエンコードされたビデオファイルの各々を１もしくはそれ以上のネットワークデバイスに利用可能にする
よう構成されたものである、前記アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスと、
パブリッシュポイント中継部であって、
前記複数のエンコードされたビデオファイルを前記ＡＢＲエンコーディングデバイスから前記ストレージ装置にコピーされる都度取得し、
前記エンコードされたビデオファイルを前記パブリッシュポイント中継部から転送する先のエッジ・パブリッシュ・ポイントを、当該パブリッシュポイント中継部に登録されている１以上のエッジ・パブリッシュ・ポイントのリストであって、あるエッジ・パブリッシュ・ポイントから応答の無いときに当該リストからそのエッジ・パブリッシュ・ポイントの削除を行うことにより動的にアップデートされるものである、当該リストから決定し、
前記パブリッシュポイント中継部によって受け取られた前記エンコードされたビデオファイルの各々を決定されたエッジ・パブリッシュ・ポイントの各々へと、各ファイルが前記ＡＢＲエンコーディングデバイスから受け取られ次第逐次転送し、
新しいビデオファイルを前記ストレージ装置において取得する都度古いビデオファイルを前記ストレージ装置上から削除することによりスライディングウィンドウを維持する
よう構成されたものである、前記パブリッシュポイント中継部と、
複数のエッジ・パブリッシュ・ポイントであって、その各々は
前記パブリッシュポイント中継部から転送されたエンコードされたビデオファイルを受け取って格納し、
前記格納された複数のエンコードされたビデオファイルの１つをリクエストするＨＴＴＰ  ＧＥＴリクエストをＨＴＴＰクライアントから受け取り、
それらのＨＴＴＰ  ＧＥＴ  リクエストへの応答としてリクエストされたエンコードされたビデオファイルをリクエスト元のＨＴＴＰクライアントに転送する
よう構成された前記複数のエッジ・パブリッシュ・ポイントと
を有し、
前記ＡＢＲエンコーディングデバイスは、前記ストレージ装置にビデオファイルを書き込み、
前記パブリッシュポイント中継部は１つ以上のビデオファイルが前記ストレージ装置で利用可能である旨の示唆（ｉｎｄｉｃａｔｉｏｎ）を受け取るものである
システム。
【請求項２】
請求項１に記載のシステムであって、前記パブリッシュポイント中継部はさらに、前記パブリッシュポイント中継部に登録された前記エッジ・パブリッシュ・ポイントのリストを、サービスのダウンタイムに影響を与えることなく動的にアップデートするよう構成された、システム。
【請求項３】
請求項２に記載のシステムであって、前記パブリッシュポイント中継部は、当該パブリッシュポイント中継部に登録されるエッジ・パブリッシュポイントのファイル転送プロトコルアドレスを受け取り、前記エッジ・パブリッシュ・ポイントのリストを、受け取ったファイル転送プロトコルアドレスを含むようにアップデートするよう構成された、システム。
【請求項４】
請求項３に記載のシステムであって、前記パブリッシュポイント中継部は当該パブリッシュポイント中継部のリストに登録されているエッジ・パブリッシュ・ポイントの内の一つの識別を受け取り、前記エンコードされたビデオを受け取るために当該パブリッシュポイント中継部に登録されたエッジ・パブリッシュポイントのリストから識別されたエッジ・パブリッシュポイントを削除するよう構成されたシステム。
【請求項５】
請求項１から４のいずれか一つに記載のシステムであって、さらに第２のパブリッシュポイント中継部を含み、前記ＡＢＲエンコーディングデバイスは、さらに前記エンコードされたビデオファイルの各々を前記パブリッシュポイント中継部および第２のパブリッシュポイント中継部の双方に転送するよう構成されているものである、システム。
【請求項６】
請求項５に記載のシステムであって、前記第２のパブリッシュポイント中継部は前記パブリッシュポイント中継部にフェイルオーバーの機能を提供するものである、システム。
【請求項７】
請求項１から６のいずれか一つに記載のシステムであって、前記ビデオストリームの一部からエンコードされた前記複数のビデオファイルの各々は、同一時間のビデオストリームを各々が異なるビットレートを有する複数の個別のファイルにエンコードするものである、システム。
【請求項８】
請求項１から７のいずれか一つに記載のシステムであって、前記エッジ・パブリッシュ・ポイントの少なくとも１つは前記受け取ったビデオファイルの各々のコピーを格納し、後々のｎＰＶＲ再生のためのビデオストリームのライブ取り込みを提供するよう構成され、キャッチ・アップ・ＴＶ（Ｃａｔｃｈ  Ｕｐ  ＴＶ）および同様の拡張されたサービスを提供するものである、システム。
【請求項９】
ビデオストリームを配信する方法であって、
パブリッシュポイント中継部において、アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスから前記ビデオストリームの一部からエンコードされた複数のビデオファイルを受け取るものであり、当該パブリッシュポイント中継部に対してストレージ装置からアクセス可能であり、
新しいビデオファイルが前記ストレージ装置に書き込まれる都度逐次古いビデオファイルを前記ストレージ装置上、パブリッシュポイント中継部上及びエッジ・パブリッシュ・ポイント上から削除することによりスライディングウィンドウを維持し、
前記エンコードされたビデオファイルの各々は異なるビットレートを有し、
前記ビデオストリームを配信するために当該パブリッシュポイント中継部に登録されている１以上のエッジ・パブリッシュ・ポイントのリストであって、あるエッジ・パブリッシュ・ポイントから応答の無いときに当該リストからそのエッジ・パブリッシュ・ポイントの削除を行うことにより動的にアップデートされるものである、当該リストから１以上のエッジ・パブリッシュ・ポイントを特定し、
前記パブリッシュポイント中継部によって受け取られたエンコードされたビデオファイルの各々を前記特定されたエッジ・パブリッシュ・ポイントの各々にビデオファイルが前記ＡＢＲエンコーディングデバイスから受け取られる都度逐次転送し、
複数のエッジ・パブリッシュ・ポイントを提供するものであり、当該複数のエッジ・パブリッシュ・ポイントの各々は、
前記パブリッシュポイント中継部からの送信されたエンコードされたビデオファイルを受信して保存し、
ＨＴＴＰクライアントからの保存されたエンコードされたビデオファイルの一つについてのＨＴＴＰ  ＧＥＴリクエストを受信し、
それらのＨＴＴＰ  ＧＥＴ  リクエストへの応答としてリクエストされたエンコードされたビデオファイルを送信するものであり、
前記パブリッシュポイント中継部において受け取る前記エンコードされた複数のビデオファイルについては、
ビデオファイルが前記ストレージ装置に書き込まれた旨の個々の示唆（ｉｎｄｉｃａｔｉｏｎ）を受け取り
前記パブリッシュポイント中継部が各々のビデオファイルを前記ストレージ装置から取得
するものである、
方法。
【請求項１０】
請求項９に記載の方法であって、さらに前記パブリッシュポイント中継部において前記エンコードされたビデオファイルの転送先であるエッジ・パブリッシュ・ポイントのリストを維持するものである方法。
【請求項１１】
請求項１０に記載の方法であって、エッジ・パブリッシュポイントの前記リストの維持は、
前記パブリッシュポイント中継部に登録されるエッジ・パブリッシュ・ポイントのＩＰアドレスおよびポートを受け取り、
前記複数の登録されたエッジ・パブリッシュ・ポイントのリストを新たなエッジ・パブリッシュ・ポイントを含むようアップデートするものである、
方法。
【請求項１２】
請求項１１に記載の方法であって、前記エッジ・パブリッシュ・ポイントのリストの維持は、さらに
前記パブリッシュポイント中継部に登録された前記複数のエッジ・パブリッシュ・ポイントの内の一つの識別を受け取り、
前記識別されたエッジ・パブリッシュ・ポイントを前記パブリッシュポイント中継部に登録された前記複数のエッジ・パブリッシュ・ポイントから削除する、
方法。
【請求項１３】
請求項９から１２のいずれか一つに記載の方法であって、前記パブリッシュポイント中継部における、前記複数のビデオファイルの受け取りは、
前記複数のビデオファイルの各々に対し、前記ビデオファイルがネットワーク・ファイル・システム・ドライブに書き込まれたことの夫々の示唆（ｉｎｄｉｃａｔｉｏｎ）を受け取り、
前記ネットワーク・ファイル・システム・ドライブから前記ビデオファイルの各々を取得するものである
方法。
【請求項１４】
請求項９から１３のいずれか一つに記載の方法であって、さらに
ビデオストリームの一部をＡＢＲエンコーディングデバイスによって受け取り、
前記ビデオストリームの受け取った一部を複数のエンコードされたビデオファイルへとエンコードするものであり、前記エンコードされたビデオファイルの各々は異なるビットレートストリームを有するものであり、
前記パブリッシュポイント中継部が前記複数のエンコードされたビデオファイルの各々を利用可能にする
方法。
【請求項１５】
請求項９から１４のいずれか一つに記載の方法において、少なくとも１つの前記エッジ・パブリッシュ・ポイントを前記パブリッシュポイント中継部に登録し前記エンコードされたビデオファイルを受け取るものである、方法。
【請求項１６】
請求項９から１５のいずれか一つに記載の方法であって、さらに前記エンコードされたビデオファイルの各々を、前記パブリッシュポイント中継部および第２のパブリッシュポイント中継部の双方に転送する方法。
【請求項１７】
ビデオストリームからビデオをストリームすることに用いられるパブリッシュポイント中継部であって、当該パブリッシュポイント中継部は、
命令を実行するプロセッサーと、
命令を格納するメモリであって、前記命令はプロセッサーによって実行された時に当該パブリッシュポイント中継部を
ストレージ装置からアクセス可能である複数のエンコードされたビデオファイルの各々をアダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスから前記ストレージ装置にコピーされる都度取得し、
前記エンコードされたビデオファイルを当該パブリッシュポイント中継部から転送する先のエッジ・パブリッシュ・ポイントを、当該パブリッシュポイント中継部に登録されている１以上のエッジ・パブリッシュ・ポイントのリストであって、あるエッジ・パブリッシュ・ポイントから応答の無いときに当該リストからそのエッジ・パブリッシュ・ポイントの削除を行うことにより動的にアップデートされるものである、当該リストから決定し、
当該パブリッシュポイント中継部によって受け取られた前記エンコードされたビデオファイルの各々を決定されたエッジ・パブリッシュ・ポイントの各々へと、各ファイルが前記ＡＢＲエンコーディングデバイスから受け取られ次第逐次転送し、
新しいビデオファイルを前記ストレージ装置において取得する都度古いビデオファイルを前記ストレージ装置上から削除することによりスライディングウィンドウを維持する
ように設定するものであって、
エッジ・パブリッシュ・ポイントの各々は、
前記パブリッシュポイント中継部から送信されるエンコードされた前記ビデオファイルを受け取って保存し、
ＨＴＴＰクライアントからの保存されたエンコードされたビデオファイルの一つについてのＨＴＴＰ  ＧＥＴリクエストを受信し、
それらのＨＴＴＰ  ＧＥＴ  リクエストへの応答としてリクエストされたエンコードされたビデオファイルを送信するものであり、
前記ＡＢＲエンコーディングデバイスは、前記ストレージ装置にビデオファイルを書き込み、
当該パブリッシュポイント中継部は１つ以上のビデオファイルが前記ストレージ装置で利用可能である旨の示唆（ｉｎｄｉｃａｔｉｏｎ）を受け取るものである
前記パブリッシュポイント中継部。
【請求項１８】
請求項１７に記載のパブリッシュポイント中継部であって、さらに当該パブリッシュポイント中継部に登録されている複数のエッジ・パブリッシュ・ポイントの一つの識別を受け取り、前記パブリッシュポイント中継部に前記エンコードされたビデオを受け取るよう登録された複数のパブリッシュポイントから識別されたエッジ・パブリッシュポイントを削除するよう構成されるものである、パブリッシュポイント中継部。
【請求項１９】
請求項１７または１８に記載のパブリッシュポイント中継部であって、前記複数の取得されたビデオファイルの各々は、同一時間のビデオストリームを各々が異なるビットレートを有する複数の個別のファイルにエンコードされたものである、パブリッシュポイント中継部。
【発明の詳細な説明】
【技術分野】
【０００１】
本説明は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を用いたビデオの配信に関し、特にＨＴＴＰベースのアダプティブ・ビット・レート（ＡＢＲ）ビデオストリーミングをＨＴＴＰライブ・ストリーミング（ＨＬＳ）エンコーダにスケーラブル配信することに関する。
【背景技術】
【０００２】
最適な視聴体験のため、ネットワークを用いたビデオストリーミングは、最適な視聴体験を提供するためにネットワークの現在の状態を考慮すべきであり、それによりビデオストリーミングのパフォーマンスに影響を与えるネットワークのスループットの変化に動的に適応することができる。ＨＬＳエンコーダは、ビデオを複数の異なるビットレートのものもしくはストリームにエンコードし、各エンコード物は小容量のビデオファイルのセットにセグメント化される。一般的に、各ビデオファイルの継続時間は２から１０秒である。ＨＬＳエンコーダからのアウトプットビデオストリーム各々は、例えば低（６４ｋｂ／ｓ）、中（６４０ｋｂ／ｓ）および高（３０００ｋｂ／ｓ）周波数帯エンコード物のようにビットレートの数値でエンコードされ、各々は、例えば各ファイル毎に１０秒の長さのビデオというように、既定の長さのファイルにセグメント化される。クライアントは現在の、もしくは予想されるネットワークの状態に基づいて適したビットレートの最初のファイルをリクエストすることでビデオのストリームをリクエストする。リクエストされたビデオファイルが受信され次第再生され、次のビデオセグメントがリクエストされる。
【０００３】
図１はコンテキスト配信ネットワーク（ＣＤＮ）においてハイパーテキスト転送プロトコル（ＨＴＴＰ）を用い、ネットワークを介してビデオのストリームを行う従来技術におけるシステムを示す。システム１００はビデオストリーム１０２をエンコーダ１０４で受信する。前記エンコーダ１０４は前記ビデオストリーム１０２を受信し、このビデオストリームを複数の異なるビットレートのセグメント化されたファイルへとエンコードする。図１に示されるように、前記エンコーダ１０４は複数のビット・レート・ビデオ・エンコード物１０６ａ、１０６ｂ、１０６ｃ（まとめてビットレートエンコード物１０６と呼ばれる）を作り出す。図示されるように、各ビットレートエンコード物は複数の個別ファイルにセグメント化され、ビットレートエンコード物１０６において個別の四角で表される。各個別のファイルはビデオのある特定のセグメントを表す。各個別ファイルのセグメントの長さは、エンコードされたビットレート全てに亘って同一であることにより、ネットワーク状態の変化に対応してＨＴＴＰクライアントが容易に別のビットレートエンコード物に切り替えることを可能にする。
【０００４】
一般的に、ＨＬＳエンコーダ１０４は、例えば１もしくは２ロケーションのような、ごく限られた数のパブリッシュポイントにのみビットレートエンコード物１０６を出力することができる。エンコーダ１０４が異なるビットレートエンコード物１０６の個別ファイルを作り出すのと同時に、それらは配信ネットワーク１０８に伝達される。このビットレートエンコード物１０６ファイルは、典型的にＨＴＴＰ形式の伝達プロトコルを用いて配信ネットワーク１０８を介して１もしくはそれ以上のパブリッシュポイントに伝達されるが、ファイル・トランスファー・プロトコル（ＦＴＰ）のようなその他のファイル転送用のプロトコルが用いられてもよい。追加的にもしくは代替的に、各ビットレートエンコード物１０６ファイルは、１もしくはそれ以上のパブリッシュポイントによってアクセス可能なネットワーク・ファイル・システム（ＮＦＳ）ストレージディバイスに書き込まれてもよい。配信ネットワーク１０８は、１もしくはそれ以上のクライアントデバイス１１０、１１４、１１８から、例えばＨＴＴＰ  ＧＥＴリクエストのようなＨＴＴＰ形式のリクエストによりビットレートエンコード物の個別ファイルのリクエストを受け取る。当該配信ネットワーク１０８は次にこのリクエストされたファイルセグメントをリクエスト元のクライアントに送信する。このようにして、クライアントデバイスは、前記ＨＴＴＰクライアントで決定されたネットワーク状態の現状に基づいてエンコードされた最適なビットレートを含む時間的に同一間隔のビデオセグメントファイルをリクエストすることで、ストリーム中のビデオのビットレートを変更することが可能となる。図１において、デバイス１１０によってリクエストされたか、デバイスに返された全てのセグメントファイル１１２は、高ビットレートエンコード物として示され、表示デバイス１１４からリクエストされたか返された全てのセグメントファイルは低ビットレートエンコード物として示される。表示デバイス１１８は異なるビットレートエンコード物のセグメントファイルをリクエストし受信しているよう示され、従って、デバイス１１８に表示されているビデオのビットレートは異なる。配信ネットワーク１０８はシングルサーバーとして示されてはいるが、ＨＴＴＰリクエストに応答するために協働する複数のサーバーによって提供されることもあることが理解されよう。理解され得るように、前記エンコーダ１０４は、ビットレートエンコード物１０６を、エッジ・キャッシュ・サーバーからのＨＴＴＰリクエストを受領し応答するするものであるキャッシュゲートウェイに転送する。前記エッジ・キャッシュ・サーバーは次に表示デバイスから受領したＨＴＴＰリクエストに応答する。前記エッジ・キャッシュ・サーバーはファイルセグメントを短時間キャッシュし、別のデバイスが同一のセグメントをリクエストしてきた場合に、当該セグメントのＨＴＴＰリクエストをキャッシュ・ゲート・ウェイに送信する代わりに、キャッシュされたバージョンを提供することができる。キャッシュゲートウェイが十分な周波数帯を有しない場合もしくは異なるキャッシュサーバーから受領したＨＴＴＰリクエストの全てに応答する能力がない場合、キャッシ���ゲートウェイはボトルネックとなる。前記キャッシュゲートウェイはリクエストされた通りの全てのリクエストに応えられない場合、１もしくはそれ以上の追加のキャッシュゲートウェイを追加する必要が生じることもある。追加のキャッシュゲートウェイを追加することは、つまり、追加のキャッシュウェイに対して十分な出力を提供するために１もしくはそれ以上の追加のエンコーダを必要とすることになる。
【０００５】
ＨＴＴＰを介したビデオ配信システムであって、増加した数のビデオストリーミングのリクエストに応えるために追加のビデオエンコーダを必要としないシステムが望ましい。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
（先行技術文献）
（特許文献）
（特許文献１）  国際公開第２０ｌ２／０７４７７７号
（特許文献２）  米国特許出願公開第２０ｌ２／２５４４５６号明細書
（特許文献３）  米国特許出願公開第２００７／２３３８８９号明細書
（特許文献４）  米国特許出願公開第２００９／２２０２ｌ６号明細書
（特許文献５）  米国特許出願公開第２０１３／３０８６９９号明細書
【図面の簡単な説明】
【０００６】
【図１】図１は、ネットワークを介したビデオストリーミングの従来技術のシステムを示したものである。
【図２】図２は、ネットワークを介してライブビデオのストリーミングを配信するシステムを示したものである。
【図３】図３は、ネットワークを介してライブビデオのストリーミングを配信する方法を示したものである。
【図４】図４は、ネットワークを介してライブビデオのストリーミングを配信するシステムの構成要素を示したものである。
【図５】図５は、ネットワークを介してライブビデオのストリーミングを配信する方法を示したものである。
【発明を実施するための形態】
【０００７】
本開示の観点により、ビデオストリームを配信するためのシステムが提供され、当該システムは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ライブストリーミング（ＨＬＳ）アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスを有し、当該エンコーディングデバイスは、コンテンツソースからライブビデオストリームの一部を受け取り、この受け取ったビデオストリームの一部を複数のエンコードされたビデオファイルにエンコードするものであり、各エンコードされたビデオファイルは異なるビットレートストリームに関連付けられているものであり、さらに各複数のエンコードされたビデオを１もしくはそれ以上のネットワークを介してファイルを転送するためのプロトコルを用いるネットワークディバイスに利用可能にするよう構成されたエンコーディングデバイスと；パブリッシュポイント中継部であって、前記複数のエンコードされたビデオファイルの各々を、ファイル転送用のプロトコルを用い、ネットワークを介して前記ＨＬＳ  ＡＢＲエンコーディングデバイスから受け取り、前記パブリッシュポイント中継部から前記エンコードされたビデオファイルを転送する先のエッジ・パブリッシュ・ポイントを決定し、さらに前記パブリッシュポイント中継部によって受け取られたエンコードされたビデオファイルをＨＬＳ  ＡＢＲエンコーディングデバイスに受け取られる都度逐次各決定されたエッジ・パブリッシュ・ポイントへと転送するパブリッシュポイント中継部と；複数のエッジ・パブリッシュ・ポイントであって、各々は：前記パブリッシュポイント中継部から転送された前記エンコードされたビデオファイルを受け取って格納し、１もしくはそれ以上の格納されエンコードされたビデオファイルに対するＨＴＴＰ  ＧＥＴリクエストをＨＴＴＰクライアントから受け取り、リクエストされエンコードされたビデオファイルをＨＴＴＰ  ＧＥＴへの応答を介してリクエスト元のＨＴＴＰクライアントに転送するよう構成された複数のエッジ・パブリッシュ・ポイントとを有するものである。
【０００８】
本開示の観点により、ビデオストリームを配信するための方法が提供され、この方法は：パブリッシュポイント中継部が、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ライブストリーミング（ＨＬＳ）アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスからのビデオストリームの一部からエンコードされた複数のビデオファイルを受け取るものであり、前記エンコードされたビデオファイルの各々は異なるビットレートを有し、前記エンコードされたファイルはファイル転送用のプロトコルを用いて受け取られるものであり；前記パブリッシュポイント中継部に登録されたオーディオ／ビデオストリーム配信用のエッジ・パブリッシュ・ポイント・サーバーを決定し、そして前記パブリッシュポイント中継部によって受け取られた前記エンコードされたビデオファイルの各々を、決定されたエッジ・パブリッシュ・ポイントの各々に各ビデオファイルがＨＬＳ  ＡＢＲエンコーディングデバイスから受け取られる都度逐次中継するものである。
【０００９】
本開示の観点により、ビデオストリームの配信に用いられるデバイスが提供され、当該デバイスは命令を実行するためのプロセッサーと、命令を格納するためのメモリとを有するものであり、前記命令は、プロセッサーによって実行された時に当該デバイスを、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ライブストリーミング（ＨＬＳ）アダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスから複数のエンコードされたビデオファイルの各々をネットワークを介し、ファイルを転送するためのプロトコルを用いて受け取り、前記パブリッシュポイント中継部から前記エンコードされたビデオファイルを転送する先のエッジ・パブリッシュ・ポイントを決定し、前記パブリッシュポイント中継部によって受け取られた各エンコードされたビデオファイルを、各ファイルが前記ＨＬＳ  ＡＢＲエンコーディングデバイスによって受け取られ次第逐次前記決定されたエッジ・パブリッシュ・ポイントに転送するよう構成するものである。
【００１０】
追加のエンコーダを必要とすることなく、多くのデバイスにビデオをエンコードし、ストリームすることが可能であることが、ここにさらに説明される。ＨＴＴＰアダプティブ・ビット・レート（ＡＢＲ）エンコーディングデバイスはビデオストリームを異なるビットレートエンコード物のために複数の個別のファイルにエンコードする。前記エンコーディングデバイスは前記ファイルをパブリッシュポイント中継部に転送し、続いて前記受け取られたファイルは複数のエッジ・パブリッシュ・ポイントに転送される。前記エッジ・パブリッシュ・ポイントはデバイスからのＨＴＴＰリクエストに応答しリクエストされたビデオファイルのセグメントを提供する。前記エッジ・パブリッシュ・ポイントに対しビデオファイルのセグメントをリクエストするデバイスは、ビデオを表示するクライアントデバイスもしくはクライアントデバイスからのリクエストに応えるキャッシュ・エッジ・サーバーでありうる。当該パブリッシュポイント中継部はＨＴＴＰリクエストに対し、キャッシュ・ゲート・ウェイがそうするのと同じように応答する必要がない。代わりに、前記パブリッシュポイント中継部はビデオファイルをエンコーディングデバイスから受け取り、そしてそれらを複数のエッジ・パブリッシュ・ポイントに転送するが、この複数のエッジ・パブリッシュ・ポイントは当該ファイルを格納しＨＴＴＰリクエストに応えるものである。さらにこれは、ＨＬＳ  ＡＢＲエンコーダ中継に加え、エッジデバイスがデータを直接リアルＨＬＳ  ＡＢＲエンコーダから受け取るのと同一の様態で、以下のＩＰＴＶサービスの実施を可能にする：オンデマンドの録画ビデオが複数ユーザの消費に入手可能となった場合には、キャッチ・アップ・ＴＶもしくはネットワークデジタルビデオレコーダー（ＮＤＶＲ）サービスを、オンデマンドの録画ビデオがシングルユーザによる消費のみに制限されている場合には、リモート・ストレージ・デジタル・ビデオ・レコーダ（ＲＳＤＶＲ）もしくはネットワーク・パーソナル・ビデオ・レコーダ（ＮＰＶＲ）を、ライブＴＶ録画がブロードキャストの時間内にリアルタイムで複数ユーザに入手可能となった場合には、ポーズ・ライブ・ＴＶ（Ｐａｕｓｅ  Ｌｉｖｅ  ＴＶ）サービスの提供を実施する。
【００１１】
図２はコンテンツ配信ネットワーク（ＣＤＮ）を介してビデオを配信する例示的なシステムを示す。ＨＬＳ  ＡＢＲエンコーダ１０４は、典型的にＭＰＥＧ−ＴＳスタンダードデフィニション（ＳＤ）もしくはハイデフィニション（ＨＤ）形式で提供されるインプットビデオストリーム１０２を受け取るが、このビデオインプット１０２は別のエンコード物としても提供されうる。
【００１２】
前記ＨＬＳ  ＡＢＲエンコーダ１０４は前記ビデオストリーム１０２を受け取り、このビデオストリームを異なるビットレートの複数のビデオセグメントにエンコードする。３つの異なるビットレートエンコード物１０６ａ、１０６ｂ、１０６ｃが図示されるが、ＨＬＳエンコーダ１０４はより多くのもしくはより少ない数の異なるビットレートエンコード物を生成する。図２において、ビットレートエンコード物１０６の各々のブロックは、既定の長さの時間Ｌ、例えば１０秒、を表すことを意図しているが、異なる長さの時間とすることも可能である。従って、既定の長さのビデオの各ブロックもしくは一部分は、複数の異なるビットレートを有する個別のファイルにエンコードされる。すなわち、時間Ｔから時間Ｔ＋Ｌ秒のビデオのブロックは異なるビットレートを有する複数の異なるファイルにエンコードされる。図２において、ビデオの各時間セグメントは、各々が異なるビットレートエンコード物を有する３つの異なる個別のファイルブロックにエンコードされるよう示される。
【００１３】
前記個別のファイルが前記エンコーディングデバイス１０４によって生成され次第、逐次それらはＣＤＮのパブリッシュポイント中継部２０８に転送される。この個別のビデオファイルは、ネットワークを介してファイルを転送するためのプロトコルを用いてパブリッシュポイント中継部に転送されうる。例えば、１実施形態において、前記エンコーディングデバイス１０４はファイルをパブリッシュポイント中継部にＨＴＴＰを用いて転送するよう構成されてもよいが、その場合エンコーディングデバイスは、個別のファイルをパブリッシュポイント中継部２０８に書き込むためにＨＴＴＰ  ＰＵＴもしくはＨＴＴＰ  ＰＯＳＴコマンドを用いえる。追加的にもしくは代替的に、前記エンコーディングデバイス１０４は個別のファイルをＮＦＳドライブに書き込むよう構成されることも可能であり、その場合、前記パブリッシュポイントはドライブに新しいファイルが書き込まれた旨の通知を受領し、それによりＮＦＳドライブから当該ファイルを回収するものである。エンコーディングデバイスとパブリッシュポイント中継部２０８との間でのファイル転送に用いられるプロトコルに関係なく、前記エンコーディングデバイスはパブリッシュポイント中継部２０８上にビデオファイルのスライディングウィンドウを維持する。すなわち、エンコーディングデバイスが新たなビデオをパブリッシュポイント中継部に転送する都度、逐次パブリッシュポイント中継部にあり、スライディングウィンドウの枠から外れる古いファイルを削除する。
【００１４】
以下にさらに説明されるように、前記パブリッシュポイント中継部２０８が前記ＨＬＳエンコーダのスライディングウィンドウ向けのアップデートを検知すると、このスライディングウィンドウのアップデートをビデオコンテンツを受け取るようパブリッシュポイント中継部に登録された複数のエッジ・パブリッシュ・ポイント２１０、２１４、２１８に自動的に伝達する。すなわち、前記パブリッシュポイント中継部が新たなファイルを受け取るもしくは古いファイルをそこから削除次第、逐次パブリッシュポイント中継部はエッジ・パブリッシュ・ポイント２１０、２１４および２１８に変更を伝達する。図２に示されるように、前記パブリッシュポイント中継部２０８は、異なるビットレートエンコード物の新たなファイルの全てを転送する、すなわち前記パブリッシュポイント中継部は前記異なるビットレートのエンコードされたファイル２１２をエッジ・パブリッシュ・ポイント２１０に転送し、異なるビットレートエンコード物２１６をエッジ・パブリッシュ・ポイント２１４に転送し、異なるビットレートエンコード物２２０をエッジ・パブリッシュ・ポイント２１８に転送する。前記パブリッシュポイント中継部はさらに前記スライディングウィンドウのファイル削除をエッジ・パブリッシュ・ポイント２１０、２１４、２１８に伝達する。その結果として、各エッジ・パブリッシュ・ポイント２１０、２１４、２１８はＨＬＳ  ＡＢＲエンコーダ１０４と同一のスライディングウィンドウを維持する。各エッジ・パブリッシュ・ポイントはＨＬＳ  ＡＢＲエンコーディングデバイス１０４のアウトプット１０６、もしくは当該アウトプット１０６のコピーがエンコードされるのと略リアルタイムで受け取る。すなわち、前記パブリッシュポイント中継部２０８は前記エンコードされたファイルを前記エンコーディングデバイス１０４からそれらが生成され次第逐次受け取り、この受け取ったファイルをパブリッシュポイント中継部がファイルを受け取ら次第逐次自動的に各エッジ・パブリッシュ・ポイントに転送する。同様に、パブリッシュポイント中継部から古いファイルが消され次第、逐次前記エッジ・パブリッシュ・ポイントにおいても削除される。このようにして、前記エンコードされたビデオのセグメントはエッジ・パブリッシュ・ポイントにおいてネットワークを介したファイルの転送による最小の遅滞後に入手可能となる。
【００１５】
１もしくはそれ以上の表示デバイス２２２、２２６、２３０、２３４は、適切なファイルセグメントをリクエストすることにより前記エッジ・キャッシュ・サーバーからエンコードされたライブビデオをストリームできえる。リクエストする適切なファイルのセグメントは再生されるビデオの長さに基づきえるものであり、すなわち適切なファイルのセグメントは、リクエストを出しているクライアントデバイスの現在のネットワークの状態に最適なビットレートエンコード物を有するものとなるものであることが理解されよう。図２に示されるように、デバイス２２２はデバイス２２２に対するネットワーク状態の変化に応じてある一定時間に亘る異なるビットレートの個別のビデオファイルを含むストリーム２２４を受け取る。ストリームデータ２２４は、エッジ・パブリッシュ・ポイント２１０に送信されたＨＴＴＰ  ＧＥＴリクエストを用いてクライアントデバイス２２２に受け取られる。表示デバイス２２６はライブビデオストリームの終盤になってストリーム２２８を受信し始めたこと、すなわち、ライブビデオストリームに遅い時間に参加したことが、短いストリームの長さによって図示される。ビデオストリーム２２８の各ファイルは中ビットレートエンコード物であることが図示される。デバイス２３０は、モバイルデバイスに最適でありえる低ビットレートエンコード物として図示されるビデオストリーム２３２をリクエストし受信する。最後に、テレビジョンもしくはセット・トップ・ボックスであるがゆえに有線もしくは高バンド幅コネクションを有しえるデバイス２３４は、ビデオストリームファイルを高ビットレートエンコード物から受け取るものとして図示される。
【００１６】
図３はネットワークを介してビデオを配信する方法を表したものである。方法３００はオーディオ／ビデオストリーム（３０２）のデータを受け取ることから始まる。このオーディオ／ビデオストリームデータはＨＴＴＰ  ＡＢＲエンコーディングデバイスで受け取られる。このオーディオ／ビデオはスポーツイベント、ニュースキャスト、もしくはその他の録画されたもしくはブロードキャストされるライブイベントから受け取られる。追加的にもしくは代替的に、当該オーディオ／ビデオは予め録画されたイベントもしくは他のオーディオ／ビデオデータから受け取られてもよい。エンコードするのに十分なオーディオ／ビデオストリームの一部が受け取られると、エンコードおよびセグメンテーション処理が開始される（３０４）。前記エンコードにおいてはオーディオ／ビデオデータを当該オーディオ／ビデオのインプットフォーマットおよび所望のアウトプットフォーマットに応じてエンコードもしくはトランスコードする。さらに、前記エンコード物はビデオ／オーディオデータを１もしくはそれ以上の異なるビットレートエンコード物にエンコードする。例えば、前記エンコード物は、高ビットレートエンコード物、中ビットレートエンコード物および低ビットレートエンコード物を生成する。各ビットレートエンコード物は、各々オーディオ／ビデオの同一の長さの小さなファイルにセグメント化される。オーディオ／ビデオデータがエンコードされる間、当該方法はデータが利用可能である旨の通知を待つ（３０６）。前記パブリッシュポイント中継部は、新たなデータが利用可能であることを示す通知データを待つ。当該方法３００は新データの通知を受け取ったかを決定するが（３０８）、もし受け取っていない（３０８においてＮｏである）場合、当該方法は３０６においてデータの通知を待ち続ける。新データの通知は様々な方法で受け取られる。例えば、もしエンコードされた個別のファイルがＮＦＳドライブから読み出される場合、前記新ファイルが書き込まれた時にこのＮＦＳドライブが前記通知を提供する。新データの通知が受け取られた場合（３０８においてＹｅｓ）、エッジ・パブリッシュ・ポイントのリストが読み出される（３１０）。当該パブリッシュポイントのリストは、図示されるもしくはその他の方法によって設定ファイル（３１６）から読み出される。データのエンコードおよび転送とは独立して、前記エッジ・パブリッシュ・ポイントは設定ファイルに追加されるか設定ファイルから削除される（３１４）。前記エッジ・パブリッシュ・ポイントがオーディオ／ビデオを受信するものとして登録されると、当該方法はエンコードされセグメント化されたビデオファイルを各エッジ・パブリッシュ・ポイントに転送する（３１２）。このビデオファイルは各エッジ・パブリッシュ・ポイントにＨＴＴＰを用いて転送される。さらに、それぞれのエッジ・パブリッシュ・ポイントに並行してファイルを転送するために、別々のプロセスが用いられえる。エンコードおよびセグメント化されたビデオは、エッジ・パブリッシュ・ポイントで受け取られると、複数のリクエスト元のデバイスにサービスを提供することが可能である。
【００１７】
図４は、ネットワークを介してビデオを配信するためのシステムの要素を示したものである。システム４００は、エンコーディングデバイス４０２、パブリッシュポイント中継部４２０、および複数のエッジ・パブリッシュ・ポイント４４０ａ、４４０ｂ、４４０ｃ（まとめてエッジ・パブリッシュ・ポイント４４０と呼称される）を含む。エンコーディングデバイス４０２、パブリッシュポイント中継部４２０およびエッジ・パブリッシュ・ポイント４４０は１もしくはそれ以上のネットワークを通して互いに接続され、エンコードされたファイルがエンコードされるのとほぼ同時にエッジ・パブリッシュ・ポイントに通信される。エッジ・パブリッシュ・ポイント４４０はエンコーディングデバイス４０２から転送される個別ファイルに対するリクエストを受け取り応答することができる。
【００１８】
前記エンコーディングデバイス４０２はメディアストリーム４０６を受信するためのインプットインターフェース４０４を有する。前記インプットインターフェース４０４はメディアストリームを受信し、それをエンコーダ４０８に提供する。前記エンコーダはストリームセングメンター４１２によって複数のファイル４１０にセグメント化された受信したメディアストリームから１もしくはそれ以上のビットレートを生成する。セグメント化されたファイル４１０が生成され次第ファイル・トランスファー・コンポーネント４１４は当該ファイルを一式のパブリッシュポイント中継部サーバーの設定ファイル４１６に従って転送することができる。当該ファイルは、当該ファイル４１０が生成された時にパブリッシュポイント中継部に自動的に転送される。
【００１９】
前記パブリッシュポイント中継部４２０は、個別のファイル４１０が生成されエンコーディングデバイスから転送され次第それらを受け取るファイル転送コンポーネント４２２を含む。前記受け取られたファイルは、一時的にストレージデバイス４２４に格納される。新たなファイルもしくは新たなファイルが利用可能である旨の通知が受け取られた時に、ファイル・トランスファー・コンポーネント４２２は中継コントロール４３０にそれを通知する。新たなファイルが利用可能となった時に、前記中継コントロールはどのエッジ・パブリッシュ・ポイント４４０にファイルが転送されるべきかを決定し、当該ファイルをエッジ・パブリッシュ・ポイントに転送する。個別のファイルは各エッジ・パブリッシュ・ポイント４４０に異なるトランスファースレッド４２６ａ、４２６ｂ、４２６ｃを用いて並行して転送されることが可能である。ファイルが転送される先のエッジ・パブリッシュ・ポイント４４０は、設定ファイル４２８もしくはその他のストレージストラクチャのリストから読み出すことができる。中継コントロール４３０はファイル転送先のエッジ・パブリッシュ・ポイントを制御する様々な機能を提供するインターフェース４３２を含む。例えば、当該インターフェースは、エッジ・パブリッシュ・ポイントを設定リスト４３２ａに追加し、ファイルを受け取るようパブリッシュポイント４３２ｂを起動し、個別のファイルを受け取らないようこのパブリッシュポイント４３２ｃを停止し、設定リスト４３２ｄからパブリッシュポイントを削除する機能を含みえる。もしエッジ・パブリッシュ・ポイントが一時的にシャットダウンしている場合、パブリッシュポイント中継部はエッジ・パブリッシュ・ポイントがオフラインであることを通知される必要はない。従って、パブリッシュポイント中継部はビデオファイルをエッジ・パブリッシュ・ポイントに送信し続けえるが、エッジ・パブリッシュ・ポイントがオフラインであるためそれらが受け取られることはない。エッジ・パブリッシュ・ポイントが再起動された時に、パブリッシュポイント中継部が配信し続けるビデオファイルを再度受信し始める。パブリッシュポイント中継部が応答の無いエッジ・パブリッシュ・ポイントに対しビデオファイルを送信し続けることが望ましくないとみなされる場合には、応答の無いエッジ・パブリッシュ・ポイントはビデオファイル転送先のエッジ・パブリッシュ・ポイントのリストから削除されてもよい。
【００２０】
図５はネットワークを介してビデオを配信する方法を示す。当該方法５００は本開示に従ってエッジ・パブリッシュ・ポイントからビデオをストリームするのに必要となるステップを示す。図示されるように、前記方法５００は設定ブロック５０２、データ受信ブロック５１０およびユーザリクエスト処理ブロック５３０の３つの異なるブロックを有する。ブロック５０２、５１０および５３０は順次連結されているように図示されているが、異なるブロック、特にデータ受信ブロック５１０およびユーザリクエスト処理ブロック５３０は、並行して実行され得るものであり、すなわち当該方法はユーザリクエストを処理する間、同時にデータを受け取りえることも考えられる。
【００２１】
方法５００はエッジ・パブリッシュ・ポイントが開始された時にエッジ・パブリッシュ・ポイント５０２を設定することから始まる（５０４）。エッジ・パブリッシュ・ポイントはさらに、ＩＰアドレスおよびポート番号をパブリッシュポイントおよびパブリッシュポイント中継部内において特定することでデスティネーションとして設定される必要がある。このパブリッシュポイント中継部はアドレス情報をエッジ・パブリッシュ・ポイントにビデオを転送するために用いる。
【００２２】
エッジ・パブリッシュ・ポイントがパブリッシュポイント中継部において設定され起動されると、中継されたパブリッシュポイントのファイルを受信し始める。前記エッジ・パブリッシュ・ポイントはパブリッシュポイント中継部から受け取るセグメント化されたオーディオ／ビデオファイルを受け取り格納する（５１２）。視聴に必要な最低限のセグメント化されたビデオファイルが受け取られると、ユーザは、クライアントデバイスによって生成されるＨＴＴＰ  ＧＥＴリクエストを用いてエッジ・パブリッシュ・ポイントからの「ライブフィード（ｌｉｖｅ  ｆｅｅｄ）」を再生する。リクエストが受け取られると、リクエストされたファイルのセグメントは読み込まれ、リクエスト元デバイスに返される（５３４）。上記の説明から、少数のエンコーダを要するのみで多数のユーザデバイスにほぼリアルタイムでのビデオのエンコードとストリームを提供することが可能なことが可能であることが明らかである。前記エンコーダは、エンコードされセグメント化されたファイルを、１もしくはそれ以上、典型的には複数のエッジ・パブリッシュ・ポイントにビデオセグメントファイルを自動的に転送する中継部に転送する。当該エッジ・パブリッシュ・ポイントはその後スケーラブルな様態で受け取られるユーザＨＴＴＰリクエストに応答する。
【００２３】
全ての開示は、説明された特定の実施形態に関係なく、例示的な性質のものであり、限定するものではない。このシステムは図１から５に表されるものより多くの、より少ない、もしくは相違するコンポーネントを有し得る。さらに、システムのコンポーネントの各々は図１から５に表されるものより多くの、より少ない、もしくは相違する要素を有し得る。ソフトウエア、命令、データ、データベース、テーブル、エンティテイーおよびその他のデータ構造は個別に格納され管理されえるものであり、単一のメモリもしくはデータベースに組み込まれ、配信され、もしくは論理的もしくは物理的に多くの異なる様態にオーガナイズされ得る。複数の要素はそれぞれ独立してもしくは同一のプログラムもしくはハードウェアの一部として動作しうる。複数の要素は、取り外し可能な回路基板のような異なるハードウェアの常駐部であるか、もしくは同一のメモリ、もしくはメモリからの命令を実行するためのプロセッサーのような共通の要素を共有するものである。プログラムは単一、複数の個別のプログラム、もしくは複数のメモリおよびプロセッサーに亘って分散されたプログラムの一部である。
【００２４】
図もしくは説明に表される機能、作動、タスクは、コンピュータ可読媒体に格納される論理もしくは命令の１もしくはそれ以上のセットへの応答として実行され得る。機能、作動、タスクは、ある特定の命令セット、非一時的記憶媒体、プロセッサーもしくは処理戦略からは独立したものであり、ソフトウエア、ハードウエア、集積回路、ファームウエア、マイクロコードおよびそのようなものの単独もしくはこれらの組み合わせにより実行され得る。同様に、処理戦略にはマルチプロセス、マルチタスク、並列処理、分散処理および／もしくはその他のいかなるタイプの処理も含み得る。一実施形態において、命令はローカルもしくはリモートシステムによる読み込みのためにリムーバブルメディアデバイスに格納される。他の実施形態において、論理もしくは命令は、通信ネットワークを介した転送のためにリモートロケーションに格納される。また他の実施形態においては、論理もしくは命令は、例えばＣＰＵのような、ある特定のコンピュータ内に格納され得る。
【００２５】
分散ソフトのアップデートのためのシステムおよび方法の様々な実施形態が説明されているが、当分野の技術者には、他に多くの実施形態および実装が本発明の範囲内で可能であることが明らかであろう。従って、当該発明は添付された請求項およびそれらに匹敵するものに照らした以外に制限されるものではない。
【図１】
0006510424.tif 000002
【図２】
0006510424.tif 000003
【図３】
0006510424.tif 000004
【図４】
0006510424.tif 000005
【図５】
0006510424.tif 000006