JP6346899B2 - メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 - Google Patents

メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 Download PDF

Info

Publication number
JP6346899B2
JP6346899B2 JP2015543067A JP2015543067A JP6346899B2 JP 6346899 B2 JP6346899 B2 JP 6346899B2 JP 2015543067 A JP2015543067 A JP 2015543067A JP 2015543067 A JP2015543067 A JP 2015543067A JP 6346899 B2 JP6346899 B2 JP 6346899B2
Authority
JP
Japan
Prior art keywords
client device
media
variable
bit rate
stream
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.)
Expired - Fee Related
Application number
JP2015543067A
Other languages
English (en)
Other versions
JP2016502803A (ja
Inventor
アルジャン・ラママーシー
アジェイ・ケー・ルスラ
Original Assignee
グーグル・テクノロジー・ホールディングス・エルエルシー
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
Application filed by グーグル・テクノロジー・ホールディングス・エルエルシー filed Critical グーグル・テクノロジー・ホールディングス・エルエルシー
Publication of JP2016502803A publication Critical patent/JP2016502803A/ja
Application granted granted Critical
Publication of JP6346899B2 publication Critical patent/JP6346899B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • 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

Landscapes

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

Description

本開示は、一般に、メディアコンテンツをクライアントデバイスへストリーミングすることに関し、より詳細には、ダウンロードされたメディアコンテンツについて、より迅速な再生開始時間を可能にすることに関する。
最初の画像がインターネット上に掲載された1992年以降、メディアをコンピュータネットワークにわたって配信するための方法が開発されており、それは発展し続けている。今日、映像は、多岐にわたる利用可能なマルチメディア対応デバイスに結合されたより大きなネットワーク帯域幅により、ダウンロードされるメディアの主要な形態のうちの1つとなっている。たとえば、YouTube(登録商標)は、2012年1月時点で、1日当たり40億の映像がそのサイトのみで視聴され、その数が伸び続けていると報告している。
映像ダウンロードをサポートするために使用される、普及している標準は、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)であり、それは、映像が全部受信される前に、クライアントデバイス上で再生を開始することを可能にする。インターネット技術タスクフォース(IETF)のインターネットドラフト文書「HTTP Live Streaming」(Pantos & May;バージョン09;2012年9月22日から2013年3月26日(非特許文献1)、およびすべての後続のバージョン(本明細書では総称してHLS、HLSドラフト仕様、またはHLS標準と呼ぶ))で述べられた通り、HLSは、映像プレゼンテーションを、別々にダウンロードし順次再生することができる個別の塊に分割する、クライアント駆動型のプロトコルである。このアプローチが、映像を見ることに関連する待ち時間のいくらかを取り除く一方、クライアントデバイスは、それでもやはり、チャンネルを変える時、または、そうでなければ、新しい映像ストリームを始める時、開始遅延を経験する。
開始遅延の問題は、途切れない再生をサポートするために、クライアントデバイスとクライアントデバイスがそのバッファ内にコンテンツを記憶する方法とを制御するプロトコルの使用に少なくとも部分的に由来する。現在の技術的努力は、クライアントデバイス内のハードウェア要素および/またはソフトウェア要素を適合させて、可能性のある解決策にたどり着くことに焦点を合わせている。しかしながら、そのようなアプローチは不十分である。
Pantos & May、「HTTP Live Streaming」バージョン09、2012年9月22日から2013年3月26日、インターネット技術タスクフォース(IETF)インターネットドラフト文書 M. Nilsson、「id3v2.4.0-structure.txt」、2000年11月1日 M. Nilsson、「id3v2.4.0-frames.txt」、2000年11月1日
したがって、メディアコンテンツをクライアントデバイスにストリーミングするための新規の方法と装置とに対する要望が存在する。
別々の図を通して、同じ参照番号が同一要素または機能的に同様の要素を参照する添付図面は、以下の詳細な説明と共に本明細書に組み込まれ、かつ本明細書の一部を形成し、特許請求の範囲に係る発明を含む概念の実施形態をさらに解説し、それらの実施形態の様々な原理と長所とを説明する働きをする。
本内容のいくつかの実施形態による、マルチメディアコンテンツをストリーミングするように構成されたネットワークインフラストラクチャのブロック図である。 本内容のいくつかの実施形態による、マルチメディアコンテンツをストリーミングするための方法を説明する論理フローチャートである。 図3Bと共に形成する、本内容のいくつかの実施形態による、マルチメディアコンテンツをストリーミングするための方法を説明する論理フローチャートである。 図3Aと共に形成する、本内容のいくつかの実施形態による、マルチメディアコンテンツをストリーミングするための方法を説明する論理フローチャートである。 本内容のいくつかの実施形態による、メディアコンテンツをストリーミングするための方法を説明する論理フローチャートである。 本内容のいくつかの実施形態による、メディアセグメントファイルの概略図である。
当業者は、図中の要素が単純化と明確化とのために示され、必ずしも正確な縮小率で描かれていないことを理解するであろう。たとえば、図中のいくつかの要素の寸法は、本発明の実施形態をより良く理解する助けとなるために、他の要素に対して大きくされ得る。加えて、説明および図面は、必ずしも例示された順番を必要とするものではない。特定の動作および/またはステップが特定の発生順序で説明または描かれてよいことがさらに理解される一方、当業者は、そのような順序に関する特異性が実際に必要でないことを理解するであろう。
図面中、装置の構成要素および方法の構成要素は、適切な場合、慣習的な記号によって表わされており、本明細書の説明の恩恵を受ける当業者にとって容易に分かる詳細によって本開示を分かり難くしないために、本発明の実施形態の理解に関する具体的な詳細のみを示している。
一般的に言えば、様々な実施形態に従って、本開示は、マルチメディアコンテンツを電子デバイスにストリーミングする時に、効率を高めるための方法と装置とを提供する。これは、普通ならクライアント駆動型であるストリーミング処理に対するいくらかの制御を、HLS対応サーバに可能にする機能を有する、HLS対応サーバを提供することによって達成される。一実施形態では、サーバは、可変(variant)ストリームを要求しているクライアントデバイスを、低符号化ビットレートを有する代替のストリームに向け直して、デバイスの開始時間を短縮する。サーバは、また、クライアントデバイスのための開始時間を、クライアントデバイスが再生を開始するまでクライアントデバイスにより短いデュレーションのメディアセグメントファイルを提供することによって短縮する。別の実施形態では、サーバは、1つまたは複数の、接続が確立されているクライアントデバイスに提供されているネットワーク帯域幅および/または符号化ビットレートを一時的に減らして、新しいクライアントデバイスにメディアコンテンツをより迅速にバッファさせるために、追加のネットワーク帯域幅を解放する。ストリーミングされるコンテンツの再生に関連する開始時間を短縮することによって、電子デバイスのユーザはより楽しいマルチメディア体験を提供される。
本明細書の内容によると、サーバによって実行される、メディアコンテンツをクライアントデバイスにストリーミングするための方法は、第1のクライアントデバイスのために、同じプレゼンテーションの異なる符号化にそれぞれが対応しているが、同じデュレーションを有する同じコンテンツをそれぞれが表わしている、複数の可変ストリームを特定する可変再生リストファイルを提供するステップを備える。方法は、加えて、第1のクライアントデバイスから、第1のクライアントデバイスを、可変再生リストファイルの中の複数の可変ストリームのうちの第1の可変ストリームからの、第1のセットのメディアセグメントに向ける、第1のセットの識別子を提供するように求める第1の要求を受信するステップであって、第1のセットのメディアセグメントが第1の符号化に対応する、受信するステップと、第1の要求に応答して、コンテンツの第1の部分をダウンロードすることに使用するために、第1のクライアントデバイスを第2の符号化に対応する第2のセットのメディアセグメントに向ける、第2のセットの識別子を提供するステップと、を備える。
本明細書の内容によるさらなるものは、メディアストリームを受信するように構成されたインターフェースと、メディアストリームから複数の可変ストリームを生成することであって、複数の可変ストリームからの各可変ストリームが、同じプレゼンテーションの異なる符号化ビットレートに対応する一方で、同じデュレーションを有する同じコンテンツをそれぞれが表わしている、生成することと、複数の可変ストリームのサブセットを特定する可変再生リストを提供すること、とを行うように構成されたサーバとを備える、ストリーミングされるメディアをクライアントデバイスに提供するための装置である。サーバは、第1のクライアントデバイスから、第1のクライアントデバイスを、複数の可変ストリームのサブセットのうちの第1の可変ストリームからの、第1のセットのメディアセグメントに向ける、第1のセットの識別子に対する第1の要求を受信することであって、第1のセットのメディアセグメントが第1の符号化ビットレートに対応する、受信することと、第1の要求に応答して、コンテンツの第1の部分をダウンロードすることに使用するために、第1のクライアントデバイスを、複数の可変ストリームからの第2の可変ストリームからの、第2のセットのメディアセグメントに向ける、第2のセットの識別子を決定することであって、第2の可変ストリームが、第1の符号化ビットレートよりも低い第2の符号化ビットレートに対応する、決定することと、を行うようにさらに構成される。
本明細書の内容によるものは、また、コンピュータを、ストリーミングされるメディアをクライアントデバイスに提供するための方法を実行するようにプログラムするために、その上に記憶されたコンピュータ可読コードを有する非一時的なコンピュータ可読記憶要素である。方法は、第1のクライアントデバイスに、同じプレゼンテーションの異なる符号化ビットレートにそれぞれが対応する一方で、同じデュレーションを有する同じコンテンツをそれぞれが表わしている、複数の可変ストリームを特定する可変再生リストファイルを提供するステップを備える。方法は、第1のクライアントデバイスから、第1のクライアントデバイスを、可変再生リストファイルの中の複数の可変ストリームのうちの第1の可変ストリームからの、第1のセットのメディアセグメントに向ける、第1のセットの識別子を提供するように求める第1の要求を受信するステップであって、第1のセットのメディアセグメントが第1の符号化ビットレートに対応する、受信するステップと、第1の要求に応答して、第1のクライアントデバイスを、可変再生リストファイルの中の複数の可変ストリームのうちの第2の可変ストリームからの、第2のセットのメディアセグメントに向ける、第2のセットの識別子を提供するステップであって、第2のセットのメディアセグメントが、第1の符号化ビットレートよりも低い第2の符号化ビットレートに対応する、提供するステップと、をさらに備える。
図面を参照すると、特に図1では、本内容による実施形態を実装したネットワークインフラストラクチャを備えるシステムが、100において大まかに示されている。100で示されているものは、メディアソース102と、(HLS処理部106とウェブサーバ108とを含む)HLSサーバ104と、HTTP対応ネットワーク128と、リンクまたは接続136〜144と、3つのクライアントデバイス、すなわち、ノートパソコン130と、携帯電話132と、タブレット134とである。HLS処理部106は、同様に、処理要素110とディスク記憶装置118とを備える。加えて、HLS処理部106は、メディアエンコーダ112と、ストリームセグメンタ114と、パッケージ生成部116とを備えるように示され、これらは、実施形態では、HLS処理部106によって実行される機能を論理的に示すものである。限定された数の、システム要素102〜118、システム要素128〜134のみが、説明を容易にするために100に示されているが、追加的なそのような要素をシステム中に含むことができる。さらに、システム100の商用実施形態のために必要な他の要素は、含まれる実施形態の説明を明確にするために、図面から省略されている。
以下に、システム100内の要素の簡単な説明を開始する。一般に、HLSドラフト仕様に準拠して動作するように構成されているHLSサーバ104、およびその複数の構成要素は、残りの図面に関連して以下に詳細に説明する、本開示の実施形態による機能に適応されている。クライアントデバイス130〜134、メディアソース102、およびネットワーク128内のインフラストラクチャ要素もまた、それぞれの機能を実行するように構成されている。本明細書で使用される、「適応された」、「動作可能な」または「構成されている」は、示された要素が、動作可能に結合された、1つまたは複数のメモリデバイス、インターフェース、および/または処理デバイスを使用して実装されていることを意味する。メモリデバイス、インターフェース、および/または処理デバイスは、プログラムされると、これらのシステム要素のための、それらの所望の機能を実装する手段を形成する。
(図示されていないが、システム要素間の図示されている接続136〜144を確立し、維持するために使用される)インターフェースは、システム100の要素間の制御情報、音声メディア、または非音声メディアを含み、本明細書ではメッセージング(たとえば、メッセージ、パッケージ、データグラム、フレーム、スーパーフレームなど)とも呼ぶ信号を伝達するために使用される。特定の要素におけるインターフェースの実装は、要素が接続されるネットワークの特定の種類、すなわち、ワイヤードおよび/またはワイヤレスに依存する。たとえば、クライアントデバイス130〜134は、HTTP対応ネットワーク128に繋がるための(ワイヤレス接続を確立するために使用される)ワイヤレスインターフェースを含み、HLSサーバ104は、ネットワーク128に含まれるインフラストラクチャデバイスに接続するための(ワイヤード接続を確立するために使用される)ワイヤードインターフェースを含むことができる。ワイヤードインターフェースの例は、イーサネット(登録商標)、T1、USBインターフェースなどを含む。ワイヤレスインターフェースの例は、ロングタームエボリューション(LTE)、CDMA、GSM(登録商標)、Wi-Fiなどを含むがこれらに限定されないテクノロジーをサポートする、ワイヤレスプロトコルと関連ハードウェアとを含む。
システム100がワイヤレス通信をサポートする場合、インターフェースは、1つまたは複数の標準ワイヤレスインターフェースまたは独自ワイヤレスインターフェースに従って動作可能な、処理構成要素と、変調構成要素と、送受信構成要素とを含む構成要素を備え、処理要素と変調要素と送受信要素との機能のいくつかは、システム要素のメモリデバイス上に記憶されたソフトウェアアプリケーションまたはファームウェアなどのプログラム可能論理を通じて、またはハードウェアを通じて、1つまたは複数の処理デバイスを用いて実行することができる。特定の実施形態では、インターフェースによって維持される接続136〜144は、インターネットプロトコル(IP)接続である。
システム100の要素によって活用される処理デバイス(たとえば、HLS処理部106および処理要素110)は、部分的にハードウェアで実装されてよく、したがって、たとえば、図2から図5を参照して説明するそれらの機能を実行するための、ソフトウェアもしくはファームウェア論理またはコードを用いてプログラムされてよく、および/または、処理デバイスは、たとえば、状態機械またはASIC(特定用途向け集積回路)として、ハードウェアで完全に実装されてよい。これらのシステム要素によって実装されるメモリ(たとえば、ディスク記憶装置118)は、各要素が機能するために必要な様々な情報の、短期記憶装置および/または長期記憶装置を含むことができる。メモリは、さらに、処理デバイスを、その機能を実行するために必要な論理またはコードを用いてプログラムするための、ソフトウェアまたはファームウェアを記憶することができる。
システム100の要素の詳細説明に再び戻ると、本明細書では同じ意味で「サーバ」と呼ばれる、HLSサーバ104は、メディアコンテンツをクライアントデバイスにストリーミングし、ネットワーク性能を最適化するための、これらの内容を通して説明する方法を管理する。これを達成するために、HLSサーバ104は、本明細書では同じ意味で「コンピュータ」と呼ばれる処理要素110を備え、それは、たとえば、その上に記憶されたコンピュータ可読コードを有する非一時的なコンピュータ可読記憶装置を介してプログラムすることができる。
HLSサーバ104へインターフェース接続しているものは、メディアソース102であり、それは、メディアコンテンツを、接続136を介してHLS処理ユニット106内のメディアエンコーダ112に流す。代替的な実施形態では、メディアエンコーダ112は、HLSサーバ104の外側に置くことができる。メディアソース102は、メディアを特定の形式で流し、その形式は、圧縮(たとえば、ロッシー)または非圧縮(たとえば、ロスレス)のいずれかである。流されたメディアは、それがストリーミングメディアソースによって配信されて(すなわち、ストリーミングされて)いる間に、クライアントデバイスにおいて継続的に受信され、クライアントデバイスによって表示されるメディアである。メディアコンテンツが圧縮されている場合、メディアエンコーダ112は、メディアをある圧縮形式から別の圧縮形式に変換する。メディアコンテンツが圧縮されていない場合、メディアエンコーダ112はメディアストリームを符号化する。特定の実施形態では、メディアソース102から受信するメディアストリームの形式に関係なく、メディアエンコーダ112からの出力ストリームは、MPEG-4メディア圧縮(たとえば、MPEG-4 part 10 Advanced Video Coding (AVC)/H.264 video compression with Advanced Audio Coding (AAC) audio compression)を使用して符号化され、MPEG-2トランスポートストリームコンテナ形式を使用して内包される。しかしながら、このような実施形態は限定するものでなく、他の形式の符号化および/または内包が、本明細書で説明する内容を実装するために使用されてよい。
一実施形態では、メディアエンコーダ112は、それが受信するメディアストリームから、複数の可変ストリームをコード変換または符号化し、各可変ストリームは、異なる符号化ビットレートおよび/または解像度に対応する。本明細書で使用する符号化ビットレートとは、符号化されたメディアストリームまたはメディアファイルの情報密度、特に、再生時間単位当たりのビット数のことを言う。通常、より高い符号化ビットレートは再生品質の向上に対応し、また、ダウンロードするためのより大きな帯域幅および/またはより多くの時間を必要とする、より大きなファイルにも対応する。メディアストリームのための符号化ビットレートは、たとえば、1秒当たりより少ないフレームを符号化すること、フレームサイズを小さくすること、色の数を減らすこと、マルチチャネル音声よりもモノラルで符号化すること、または(復号のためにより大きなクライアント側での処理を必要とし得る)より効率的な圧縮を使用することによって下げることができる。
本明細書で使用する「符号化」という用語は、メディアファイル内またはメディアストリーム内のデータが形式を設定される方法のことを言う。同じコンテンツを表示する2つの可変ストリームは、異なる符号化を有し、それらは異なる符号化ビットレートを有する。同じコンテンツを表示する2つの可変ストリームは、また、符号化ビットレートが同じである、異なる符号化に対応することもできる。これは、たとえば、1つの可変ストリームがより低いレートで表示されるより高い解像度のフレームのために形式設定される一方、他がより高いレートで表示されるより低い解像度のフレームのために形式設定される場合に当てはまり得る。
様々な実施形態について、HLSサーバ104、クライアントデバイス130〜134、およびメディアソース102はすべて、メディアエンコーダ112によって生成される可変ストリームの符号化ビットレートを様々な程度で制御する。一実施形態では、たとえば、標準画質のメディアコンテンツがメディアソース102から受信される場合、メディアエンコーダ112は、符号化ビットレートを2メガビット/秒(Mbps)以下に制限する。高解像度のメディアコンテンツがメディアソース102から受信される時、メディアエンコーダ112は、4Mbps以上の符号化ビットレートを有する可変ストリームを生成することができる。別の実施形態では、処理要素110は、メディアエンコーダ112に、本明細書で説明するHLSサーバ104の機能をHLSサーバ104に実行可能にする、符号化ビットレートを有する可変ストリームを生成するように指示する。さらなる実施形態では、HLSサーバ104内のメディアエンコーダ112は、特定の符号化ビットレートを有する可変ストリームを、クライアントデバイス130〜134から受信する要求に応答して、または管理者またはプログラマによって導入されるパラメータに応答して生成する。
ストリームセグメンタ114は、メディアエンコーダ112によって出力される、複数の可変MPEG-2トランスポートストリームを受信し、各可変MPEG-2トランスポートストリームをより短いデュレーション(通常、1秒から10秒の間であるが、この範囲に含まれないデュレーションも可能である)のメディアセグメントファイルから成るシーケンスに分割または区切る。時に当業で「チャンク」と呼ばれるメディアセグメントファイルは、また、本明細書では「メディアセグメント」とも言う。本明細書で使用する「デュレーション」という用語は、クライアントデバイスによって通常の速さ(すなわち、ストリーミングされているプレゼンテーションの意図された再生スピード)で再生される、メディアセグメントファイルまたはメディアストリーム部分の再生時間として定義される。メディアセグメントファイルは、次いで、ストリームセグメンタ114から、メディアセグメントファイルを特定の配信プロトコルのために整えるパッケージ生成部116に渡される。特定の実施形態では、たとえば、配信プロトコルはHTTPプル型の下のHTTP GET要求をサポートする。
システム100は、パッケージ生成部116からのメディアセグメントファイルをディスク記憶装置118の中に、ウェブサーバ108がアクセスし配信するために記憶する。ディスク記憶装置118は、フラッシュメモリ、半導体デバイス、またはその上にデータがデジタル記録される表面層(たとえば、独立の磁気ハードドライブから成る配列)を有する、1つまたは複数の回転盤を備える記憶デバイスである。図1に示す通り、ディスク記憶装置118は、HLSサーバ104のHLS処理部106の内部に位置する。しかしながら、代替的な実施形態は、HLS処理部106の外でのメディアセグメントファイルの記憶を可能にする。考えられる場所は、ウェブサーバ108内、HLSサーバ104の内側でウェブサーバ108の外側、またはHLSサーバ104の外側を含む。加えて、光学式ドライブおよび他の互換性のあるテクノロジーなどの代替デバイスも、メディアセグメントファイルの記憶のために使用することができる。
ウェブサーバ108は、ディスク記憶装置118に記憶されたメディアセグメントファイルをクライアントデバイス130〜134に配信する(すなわち、出力する)。ウェブサーバ108の機能は、ハードウェア(すなわち、物理的サーバ)、ソフトウェア(すなわち、コンピュータプログラム)、またはその2つの組合せとして実装することができる。さらに、物理的ウェブサーバは、HLSサーバ104の内部(図示)または外部のいずれかに置くことができる。120で示す通り、ウェブサーバ108は可変再生リストファイル(本明細書では可変再生リストとも呼ぶ)を、1つまたは複数のクライアントデバイスにそれをアクセス可能にすることによって、発行(すなわち、ホスト)する。可変再生リストファイル120は、個別の再生リスト122〜126(本明細書では再生リストファイルとも呼ばれる)を指し示す項目を含む要覧としての役割を果たし、再生リスト122〜126は、同様に、可変ストリームからの個別のメディアセグメントファイルを指し示す項目を含んでいる。本明細書で使用する「ポインタ」は、それによって指し示されているソースにウェブサーバ108を向かわせる手段のことを意味する。ポインタの例は、統一資源位置指定子(URL)である。ウェブサーバ108は、URLのパス構成要素を、静的要求についてはローカルなファイルシステムソースにマップし、または動的要求についてはプログラム名にマップすることができる。URLの最初の部分は、ドメイン名サーバによってウェブサーバ108のIPアドレスにマップされるドメイン名を備える。URLの残り(パス構成要素)は、クライアントデバイスのためのユーザエージェントによってHTTP GET要求に変換する、ウェブサーバ108のルートディレクトリに対するパスを備える。
システム100は、ウェブサーバ108によって発行される各個別の再生リストを、特定の符号化ビットレートを有する可変ストリームに関連付ける。たとえば、再生リストA122は、60フレーム/秒で高画質テレビ(HDTV)形式(すなわち、1280x720画素)で符号化された可変ストリームからのメディアセグメントファイルを指し示すURLを含むことができる一方、再生リストB124中のURLは、30フレーム/秒でスーパービデオグラフィックスアレイ(SVGA)形式(すなわち、800x600画素)で符号化された可変ストリームからのメディアセグメントファイルを指し示すことができる。再生リストファイルおよび可変再生リストファイルは、また、情報タグを含むことができ、いくつかの実施形態では、情報タグは、記述されている可変ストリームとメディアセグメントファイルとについての情報を伝達するコメントラインをファイル内に備える。他の実施形態では、メタデータが、たとえば、(id3v2.4.0-structure.txtおよびid3v2.4.0-frames.txt(M. Nilsson、2000年11月1日、およびこれ以降の全バージョン)(非特許文献2、3)という非公式の標準文書によって述べる)ID3などのデータコンテナを使用して、メディアセグメントファイル内に埋め込まれる。メタデータコンテナは、ファイルについての情報をファイル自体の中に記憶することを可能にする。
ライブストリーミングに加えて、本明細書で示す内容は、ビデオオンデマンド(VOD)にも適用することができる。VODでは、メディアプレゼンテーション(すなわち、ビデオ)について、完全なセットのメディアセグメントファイルが、クライアントデバイスがそのプレゼンテーションに対する要求(すなわち、デマンド)を行った時に存在する。この完全なセットのメディアセグメントは、プレゼンテーション全体を完全に符号化したものを表わし、個別のセグメントファイルをクライアントデバイスに流すために使用される再生リストの中で特定することができる。ライブストリーミングでは、それに反して、HLSサーバ104は、それがまだプレゼンテーションを受信し、そのためのメディアセグメントファイルを作成している間に、メディアプレゼンテーションに対するクライアントデバイスの要求を受信する。ライブストリーミング処理中の任意の所与の時間では、メディアセグメントファイルは、すでにHLSサーバ104に流されたメディアプレゼンテーションの部分についてのみ利用可能である。ライブで流されているプレゼンテーションのための再生リストファイルは、利用可能なメディアセグメントを指し示す項目のみを含んでいる。特定の実施形態では、HLSドラフト仕様と一致して、ライブストリームのための再生リストファイルは、固定数のメディアセグメント(たとえば、3つのメディアセグメント)についての項目を含んでいる。HLSサーバによって作成される、各新しいメディアセグメントのための項目が再生リストに追加されるにつれて、より古いメディアセグメントのための項目は削除される。このようにして、再生リストファイルは、再生リストがストリーミングされているライブメディアプレゼンテーションを追跡するにつれて、固定数の「現在の」メディアセグメントファイルをリアルタイムで「フレームに入れる」、「引き違い窓」を表わしている。
128で示すHTTP対応ネットワークは、クライアントデバイス130〜134をHLSサーバ104に伝達的に結合する。それは、HTTPプロトコルスタックを使用して情報の交換を統制するコンピュータネットワークを表わしている。特定の実施形態では、HTTP対応ネットワーク128は、HTTPと、通信制御プロトコル(TCP)と、IPプロトコルとを、そのアプリケーション層と、トランスポート層と、インターネット層とについて、それぞれ使用する(たとえば、インターネット)。HLSサーバ104は、ネットワークパケット(すなわち、データグラム)を中継して伝える接続138を使用して、データとメッセージとを、クライアントデバイス130〜134に送信し、クライアントデバイス130〜134から受信する。136で示す接続は、HLSサーバ104が、データおよび制御信号をメディアソース102に渡し、データおよび制御信号をメディアソース102から受信することを可能にする。
ノートパソコン130、携帯電話132、およびタブレット134は、すべてクライアントデバイスであり、音声ベースのメディアファイルおよび/または映像ベースのメディアファイルの再生をサポートする。クライアントデバイスは記憶機能を有する電子デバイスであり、HLSサーバ104と相互作用してメディアコンテンツをダウンロードし、バッファに格納する。これらの特定のデバイスに加えて、本明細書の内容は、また、メディアファイルをダウンロードし再生することができる、携帯型メディアプレーヤ(PMP)と、ゲーム機と、他の電子デバイスとに適用することができる。一実施形態では、各種類のクライアントデバイスは、機能の異なるセットを有し、それは、画面サイズ、バッファ容量、処理(たとえば、復号)能力、および再生を開始するためにそのバッファの中に記憶されるセグメントの最低数などであるがこれらに限定されない、各種類のクライアントデバイスの再生特性を定義する。
ここで、本明細書の内容に従って、また残りの図面を参照して、システム100の要素の機能の詳細な説明にうつる。図2〜図4は、システム100の個別の要素が一緒にどのように動作して、メディアコンテンツを、130〜134で示す、1つまたは複数のクライアントデバイスにストリーミングするための方法を実行するのかということを示す論理フローチャートである。特に、図2は、HLSサーバ104が、クライアントデバイスのための開始遅延を短縮するために、ビットレート置換を促す方法200をどのように実行するかを示している。202では、HLSサーバ104は、複数の可変ストリームを特定する、第1のクライアントデバイス(たとえば、ノートパソコン130)のための可変再生リスト(たとえば、可変再生リスト120)ファイルを提供する。特定の実施形態では、可変再生リスト120を第1のクライアントデバイスに提供するHLSサーバ104は、可変再生リスト120を発行するウェブサーバ108を備える。可変再生リスト120は、特定のクライアントデバイス、クライアントデバイスから成るグループについて特別に発行することができ、またはHLSサーバ104に接続し、HLSサーバ104から流されるコンテンツを受信することができるすべてのクライアントデバイスにアクセス可能にすることができる。
可変再生リスト120によって特定される複数の可変ストリームのうちの各可変ストリームは、同じプレゼンテーションの異なる符号化に対応する。したがって、各可変ストリームは、同じ内容とデュレーション、すなわち、プレゼンテーションに関連する内容とデュレーションとを有する。プレゼンテーションは、たとえば、それがテレビ局またはラジオ局に関連するライブ放送を表示する場合、オープンエンド(すなわち、未定の)デュレーションを有することができ、または、プレゼンテーションが保管されたフィルムやビデオクリップを表示する場合(すなわち、VOD)などでは、プレゼンテーションは既知の有限のデュレーションであることができる。
一実施形態では、可変再生リスト120は、図1の122〜126で示したものなどの、個別の再生リストを特定する。可変再生リスト120中で特定された各可変ストリームについて、クライアントデバイスを対応する再生リストに向かわせるポインタがリストアップされ、ポインタは、今度は、その可変ストリームに属するメディアセグメントのための識別子を備える。識別子は、特定されるメディアセグメントまたは他のファイルタイプの位置を指定する、URLなどのポインタである。可変再生リスト120の中で特定される可変ストリームから、望ましい符号化をダウンロードするためのクライアント側での選択が行われる。この選択は、たとえば、優先順位、特定の画面解像度に対する要求を指定するユーザ入力、またはクライアント内でのプログラミングからの結果に基づくことができる。本例の目的のために、第1のクライアントデバイスは、第1の符号化ビットレートに対応する第1の可変ストリームを選択する。次いで、クライアントデバイスは、HTTP対応ネットワーク128を使用して、その選択をHLSサーバ104にHTTP GET要求として通信する。204で、HLSサーバ104は、第1のクライアントデバイスから、可変再生リストファイル120の中の複数の可変ストリームのうちの第1の可変ストリームからの、第1のセットのメディアセグメントに、第1のクライアントデバイスを向ける第1のセットの識別子を提供するように求める第1の要求を受信し、第1のセットのメディアセグメントは第1の符号化ビットレートに対応する。「セット」という用語は、本明細書では、1つまたは複数の要素を有しているとして定義される。図1に示した実施形態では、要求は、HLSサーバ104内に置かれたウェブサーバ108によって受信される。したがって、要求に関連する情報は、処理要素110と、本明細書の内容に従って要求を処理する必要のある他の要素とに内部で通信される。
要求を受信するステップに応答して、HLSサーバ104は、206で、コンテンツの第1の部分をダウンロードすることに使用するために、第1のクライアントデバイスを、複数の可変ストリームからの第2の可変ストリームからの、第2のセットのメディアセグメントに向ける代替の(第2の)セットの識別子を決定し、第2の可変ストリームは第2の符号化ビットレートに対応する。クライアントデバイスを代替のセットのメディアセグメントファイルに向けることにより、ストリーミング処理の効率を向上させることができる。これを行う1つの目的は、「電源を入れた」ばかり、または「チャンネルを変えた」ばかりの、ストリーミングされるメディアを要求するデバイスについて、再生の開始遅延を短縮することである。別の目的は、複数のクライアントデバイスが、HLSサーバ104によって提供されるストリーミングされるコンテンツに同時にアクセスしている場合に、ネットワーク帯域幅をより良く管理することである。本明細書で使用するネットワーク帯域幅は、HLSサーバ104がそれに接続されているすべてのクライアントデバイスにメディアをストリーミングするために利用可能な、累積的な帯域幅である。利用可能なネットワーク帯域幅とは、特定のクライアントデバイスに自由に割り当てることができる、ネットワーク帯域幅の一部のことを言う。HLSサーバ104によるメディアセグメントファイルの置換は、一時的なもの、または永続的に行われるかのいずれかであることができる。たとえば、目的が開始遅延を短縮することである特定の実施形態では、HLSサーバ104は、クライアントデバイスが再生を開始するのに十分なコンテンツをバッファしている時、クライアントデバイスを、要求されたメディアストリームからのメディアセグメントファイルに向け直す。ネットワーク帯域幅に対する要求が大きい別の実施形態では、クライアントデバイスは、長時間にわたって代替のメディアセグメントファイルを受信し続ける。
特定の実施形態では、HLSサーバ104はステートフルサーバであり、206における代替のセットの識別子を決定するステップは、以下の、第1のクライアントデバイスのデバイスタイプと、第1のクライアントデバイスのバッファサイズと、サーバ104に接続されているクライアントデバイスの数と、利用可能なネットワーク帯域幅との基準のうちの少なくとも1つを決定するステップと比較検討するステップとから成る。本明細書で使用するステートフルサーバとは、クライアントデバイスとの伝達相互作用から受信したクライアントデータ(すなわち、状態データ)を保持するサーバである。一実施形態では、HLSサーバ104は、接続されているクライアントデバイス130〜134に、それらのハードウェア構成および/またはソフトウェア構成を問い合わせる。別の実施形態では、HLSサーバ104は、クライアントデバイス130〜134によって送信された要求中に組み込まれた構成情報を受動的に受信する。このクライアントデータは、ある要求から次の要求へ累積的に記憶され、HLSサーバ104によってこれらの要求の処理に使用される。
クライアントデータにアクセスすることによって、HLSサーバ104は、第1のクライアントデバイスが所与の種類であることを認識する。たとえば、第1のクライアントデバイスは、15インチ画面を有するノートパソコン130、4インチ画面を有する携帯電話132、または9インチ画面を有するタブレット134であってよい。画面サイズは、第1のクライアントデバイスによって受信される符号化ビットレートを決定付ける、第2のセットの識別子を決定するステップにおいて重要な検討事項である。一般に、より大きな画面サイズが鮮明さのためにより高い解像度を必要とする一方、より小さな画面サイズはより低い解像度でも質の高い画像を提供することができる。代替のセットの識別子を決定するステップにおいて他の基準と共に画面サイズを考慮する時、HLSサーバ104は、考慮される各要因に、その相対的重要性に一致する重みを割り当てることができる。
第1のクライアントデバイスのバッファサイズは、代替のセットのメディアセグメントファイルを決定するステップにおいて、HLSサーバ104によって同様に考慮され得るデバイスタイプの一側面である。バッファの特徴は、第1のクライアントデバイスに関連する開始遅延に直接影響を与えることができる。特定の実施形態では、たとえば、第1のクライアントデバイスは、再生を開始することができる前に、そのバッファの中に3秒分の再生時間をキャッシュしておく必要がある、特定の銘柄と型とを表わしている。HLSサーバ104は、第1のクライアントデバイスを、可変再生リストファイル120の中の複数の可変ストリームのうちの第2の可変ストリームからの、代替のセットのメディアセグメントに向け、代替の可変ストリームは、第1の可変ストリームの第1の符号化ビットレートよりも低い第2の符号化ビットレートで符号化されている。より低い符号化ビットレートを有するメディアセグメントは、より高いビットレートで符号化されたメディアセグメントと比較して、再生時間単位当たりより小さなファイルサイズに対応するため、第1のクライアントデバイスは、204で当初要求されたメディアセグメントファイルのセットをダウンロードするよりも早く、代替のセットのメディアセグメントをダウンロードすることができる。クライアントデバイスは、メディアセグメントを、それが遠隔で保持されている(すなわち、クライアントデバイスから離れている)場所から、クライアントデバイスによって所有されている記憶装置またはメモリにそれがローカルに保持される場所に、それをコピーまたは転送することによってダウンロードする。
さらなる実施形態では、代替のセットのメディアセグメントは、第1のクライアントデバイスに提供される可変再生リストファイル120の中で特定されない、第2の可変ストリームからのものである。代替のセットのメディアセグメントについて再生リストが存在しない場合、HLSサーバ104は、再生リストを、第1のクライアントデバイス専用に、「オンザフライで」または「動的に」作成する。本明細書で使用する「動的に」という用語は、ある事象に応答してある動作が発生することを示す。これにより、その動作が、その事象の時間において存在している条件に基づくことが可能になる。メディアエンコーダ112、ストリームセグメンタ114、およびパッケージ生成部116は一緒に動作して必要なメディアセグメントファイルを作成し、新しく作成された再生リストは、これらのファイルのためのURLとメタデータタグとを追加される。
第2のビットレートで符号化された第2の可変ストリームからの、代替のセットのメディアセグメントを指し示す識別子のセットを決定するステップにおいて、特定の実施形態では、HLSサーバ104は、また、それが接続されているクライアントデバイスの数と、メディアコンテンツをそれらのデバイスにストリーミングするために利用可能なネットワーク帯域幅の容量とを比較検討する。たとえば、限られた容量のネットワーク帯域幅が多数のクライアントデバイスの間で分配されなければならない時、HLSサーバ104にとって、第1のクライアントデバイスを、より小さいファイルサイズを有するより低く符号化されたセグメントに向けることは都合がよい。
HLSサーバ104は、また、206で、決定されたセットの識別子を第1のクライアントデバイスに提供する。これは、いろいろな方法で達成される。第1の要求が、第1の可変ストリームに対応する再生リストファイルを特定するURLを含む、HTTP GET要求を備える一実施形態では、代替のセットの識別子は、代替のセットのメディアセグメントを特定し、第1のクライアントデバイスを代替のセットのメディアセグメントに向ける、URLのセットを備える。たとえば、HLSサーバ104は、クライアントデバイスから、メディアセグメントファイルhigh_01.tsと、high_02.tsと、high_03.tsとを指し示すURLを含む再生リストを特定するURLを有する、第1の要求を受信する。その要求に応答して、HLSサーバ104は、第1のクライアントデバイスに、メディアセグメントファイルmed_01.tsと、med_02.tsと、med_03.tsとを指し示すURLを含む代替再生リストを提供する。
代替的な実施形態では、第2のセットの識別子は、第1のセットのメディアセグメントを特定する一方で、第1のクライアントデバイスを第2のセットのメディアセグメントに向けるURLのセットを備える。たとえば、HLSサーバ104は、この場合もやはり、クライアントデバイスから、メディアセグメントファイルhigh_01.tsと、high_02.tsと、high_03.tsとを指し示すURLを含む第1の再生リストを特定する、URLを有する第1の要求を受信する。要求に応答して、HLSサーバ104は、第1のクライアントデバイスに、メディアセグメントファイルhigh_01.tsと、high_02.tsと、high_03.tsとを特定するURLを含む、指示された再生リストを提供する。しかしながら、この場合では、「high」のトランスポートストリームファイルの中身は、「med」のトランスポートストリームファイルの中身と交換される(すなわち、「med」のファイルが「high」のファイルとして名前を変えられている)。
208では、HLSサーバ104は、第1の要求の後で第1のクライアントデバイスから、第1のクライアントデバイスを、可変再生リストファイル120の中の複数の可変ストリームのうちの第3の可変ストリームからの、第3のセットのメディアセグメントに向ける、第3のセットの識別子を提供するように求める第2の要求を受信し、第3のセットのメディアセグメントは、第1の符号化ビットレートよりも高い第3の符号化ビットレートに対応する。一実施形態では、第1のクライアントデバイスは、HLSサーバ104によって提供された代替のセットのメディアセグメントが、要求された第1の符号化ビットレートよりも低い第2の符号化ビットレートを表わしている、ということを認識していない。予測よりも早いダウンロード時間に応答して、第1のクライアントデバイスは、ストリーミングされるプレゼンテーションの次の部分に対するメディアセグメントを、204で当初要求された第1の符号化ビットレートを超えるビットレートで符号化することを要求する。
210で、208における要求に応答して、HLSサーバ104は、第1のクライアントデバイスを、第1の可変ストリームからの第4のセットのメディアセグメントに向ける、第4のセットの識別子を提供し、第4のセットのメディアセグメントは、第1の符号化ビットレートに対応する。第1のクライアントデバイスが、第1のセットのメディアセグメントがダウンロードされている間、またはそのすぐ後に、ストリーミングされているメディアセグメントについて符号化ビットレートの増加を要求する時、HLSサーバ104は、第1のクライアントデバイスに提供されるメディアセグメントのビットレートを、段階的に徐々に「増加させる」ことによって応答する。これを、図2の残りでさらに説明する。
第1のクライアントデバイスが、212で、第3の符号化ビットレートを有するメディアセグメントに対するその要求を更新する場合、HLSサーバ104は、第1のクライアントデバイスに、第1の符号化ビットレート(より高く)と第3の符号化ビットレート(より低い)との間にある符号化ビットレートを有する、メディアセグメントのセットに対応する識別子のセットを提供することによって応答する。HLSサーバ104が、212で、第1のクライアントデバイスから要求を受信しない場合、サーバ104は、第1のクライアントデバイスに、第1の符号化ビットレートに対応するメディアセグメントを、異なるビットレートのメディアセグメントに対する要求が受信されるまで、またはメディアセグメントに関連するプレゼンテーションが第1のクライアントデバイスに全部ストリーミングされるまで、提供し続ける。
214において第1の符号化ビットレートと第3の符号化ビットレートとの間の符号化ビットレートを有するメディアセグメントを受信した後、216で、第1のクライアントデバイスが、第3の符号化ビットレートを有するメディアセグメントに対する度重なる要求を行う場合、HLSサーバ104は、218で、第3の符号化ビットレートを有するメディアセグメントのセットのための、識別子のセットを最終的に配信する。HLSサーバ104が、216で、第1のクライアントデバイスから要求を受信しない場合、サーバ104は、214で指定された符号化ビットレートに対応するメディアセグメントを提供し続ける。
以下の例は、HLSサーバ104が、第1のクライアントデバイスからのより高いビットレートに対する度重なる要求に応答して、HLSサーバ104が提供するビットレートを徐々に増加させていくステップをさらに説明する。VGA形式で符号化された(640x480画素の)メディアセグメントを受信した後、第1のクライアントデバイスがXGA形式で符号化された(1024x768画素の)メディアセグメントを要求する場合、HLSサーバ104は、第1のクライアントデバイスに、SVGA形式で符号化された(800x600画素の)メディアセグメントを提供することによって応答する。SVGA形式のメディアセグメントを受信した後、第1のクライアントデバイスが解像度(すなわち、符号化ビットレート)のさらなる増加を要求しない場合、それは、SVGA形式のメディアセグメントを受信し続ける。一方、第1のクライアントデバイスがXGA形式のメディアセグメントを要求し続ける場合、HLSサーバ104はそれらを提供する。
第1のクライアントデバイスの要求が、UXGA形式(1600x1200画素)などのさらに高い解像度に対するものである場合には、クライアントデバイスは、それがより高い解像度に対する要求を行い続ける場合、複数段階(VGA形式→SVGA形式→XGA形式→UXGA形式)で「上げ」られる。第1のクライアントデバイスが解像度の増加に対する要求を行うことを止めた時、それは、行われた最後の要求に応答してHLSサーバ104によって提供される解像度を受信し続ける。
代替的な実施形態では、208において受信される第2の要求は、クライアントデバイスを、第1の符号化ビットレートに対応するメディアセグメントのセットに向ける、識別子のセットに対するものである。第2の要求に応答して、HLSサーバ104は、第1のクライアントデバイスに、クライアントデバイスを、204における第1の要求の中で第1のクライアントデバイスによって当初求められた符号化ビットレートである第1の符号化ビットレートに対応する、メディアセグメントのセットに向ける、識別子のセットを提供する(210)。206において第2の符号化ビットレートに対応する識別子のセットを提供した後、HLSサーバ104は、第1の符号化ビットレートに対応する識別子のセットを、1つまたは複数の条件が満たされた後、第1のクライアントデバイスに提供する。これらの条件には、第2の符号化に対応する第1の数のメディアセグメントが第1のクライアントデバイスに提供されていることと、第2の符号化に対応する第1の量の再生時間が第1のクライアントデバイスに提供されていることと、現在のメディアシーケンスタグの値に追加の値を足したものに対応するシーケンス番号を有するメディアセグメントが第1のクライアントデバイスに提供されていることと、第1の容量のネットワーク帯域幅が第1のクライアントデバイスに利用可能になっていること、とを含む。
HLSサーバ104が、ストリーミングされるプレゼンテーションの再生が第1のクライアントデバイスで始まるということを知っている実施形態では、そのデバイスタイプを所与とすると、デバイスが第1の数のメディアセグメントまたは第1の量の再生時間のいずれかをダウンロードした時、HLSサーバ104は、第1のクライアントデバイスを、適切な条件が満たされるまで、第2のセットのメディアセグメントに向ける。第1のクライアントデバイスは、より低い符号化ビットレートに対応するメディアセグメントの数または量を受信して、それが再生を開始することをすぐに可能にし、その後HLSサーバ104は、プレゼンテーションが好ましいレベルの品質で継続することができるように、クライアントデバイスにより高い符号化ビットレートに対応するメディアセグメントを提供する。
別の実施形態は、第1のクライアントデバイスが特定のシーケンス番号を有するメディアセグメントファイルをダウンロードした後、HLSサーバ104が第1のクライアントデバイスをより高い符号化ビットレートに切り替えることを可能にする。シーケンス番号はメディアシーケンスタグから計算することができ、メディアシーケンスタグは、その再生リストの中で現在利用可能な第1のメディアセグメントを指定する、再生リスト内のメタデータタグである。
HLSサーバ104は、また、より多くのネットワーク帯域幅が第1のクライアントデバイスのために利用可能になった場合に、第1のクライアントデバイスをより高い符号化ビットレートに切り替えることができる。帯域幅が十分増加すると、第1のクライアントデバイスはより大きなメディアセグメントでも迅速にダウンロードすることができ、より低い符号化ビットレートで継続することによって得るものはほんのわずかである。
図3は、本内容のいくつかの実施形態による、メディアコンテンツをストリーミングするための方法300を説明する論理フローチャートであり、HLSサーバ104は、第1のクライアントデバイスに、第2のクライアントデバイスによって要求されたメディアセグメントと第2のクライアントデバイスによって受信されたメディアセグメントとの間の符号化ビットレートの差に対応する、プレゼンテーションの部分をダウンロードするためのネットワーク帯域幅を提供する。一実施形態では、このようにしてネットワーク帯域幅を一時的に再分配することで、第2のクライアントデバイスに対して再生の途絶の原因となることなしに、第1のクライアントデバイスのための開始時間を短縮する。別の実施形態では、HLSサーバ104は、第2のクライアントデバイスによって受信されたメディアセグメントの合計デュレーションと、メディアセグメントが受信されてから経過した時間との差に対応する、第2のクライアントデバイスによって保持されている、バッファされているメディアのデュレーション(すなわち、その記憶されている再生時間)を決定し、第2のクライアントデバイスによって保持されている、バッファされているメディアのデュレーションが閾値を超える時、HLSサーバ104は、ネットワーク帯域幅を第2のクライアントデバイスから第1のクライアントデバイスに再配分する。HLSサーバ104内の処理要素を、第2のクライアントデバイスのバッファ中の記憶されている再生時間の量を決定し、記憶されている再生時間が閾値よりも大きい間、第2のクライアントデバイスによって使用されるネットワーク帯域幅を第1のクライアントデバイスに再配分するように構成することによって、第1のクライアントデバイスのバッファ中の再生時間を迅速に閾値時間まで上げることができる。
302において、メディアをクライアントデバイスのセットにストリーミングしている間、HLSサーバ104は、304で、メディアコンテンツに対する要求を第1のクライアントデバイスから受信する。306で、HLSサーバ104は、第1のクライアントデバイスが要求したメディアコンテンツをダウンロードするために利用可能なネットワーク帯域幅が、閾値未満になるかどうかを決定する。閾値は、固定値、またはプログラムによって現在のネットワーク状態に基づいて決定される動的な値であってよい。利用可能なネットワーク帯域幅が閾値以上である場合、HLSサーバ104は、322で、別のクライアントデバイスから割り当てられた帯域幅を使用せずに、要求されたメディアコンテンツを第1のクライアントデバイスに提供し続ける。しかしながら、利用可能なネットワーク帯域幅が閾値未満である場合、HLSサーバ104は、ネットワーク帯域幅を、302においてメディアを受信する、1つまたは複数のクライアントデバイスから「借り」始める。
ネットワーク帯域幅を再配分する処理は、HLSサーバ104が、308で、現在メディアをダウンロードしているクライアントデバイスのセットからのクライアントデバイスのうちの1つを、追加のネットワーク帯域幅の提供者として検討するステップから始まる。310では、HLSサーバ104は、検討中のクライアントデバイスのバッファ中の記憶されている再生時間の量が、第1の閾値時間よりも大きいかどうかを決定する。一実施形態では、第1の閾値時間は、処理要素110によって動かされるアルゴリズムによって、検討中のクライアントデバイスの、減少させた帯域幅で再生を継続する現在の能力に基づいて決定される、動的な値である。代替的な実施形態では、第1の閾値時間は、システム100について管理者またはプログラマによって設定される固定値である。追加的な実施形態では、HLSサーバ104は、クライアントデバイスのバッファ中の記憶されている再生時間を、クライアントデバイスに送信されたメディアセグメントの合計デュレーションと、メディアセグメントが送信されてからの時間との差から決定する。検討中のクライアントデバイスについて、記憶されている再生時間が第1の閾値時間以下である場合、HLSサーバ104は、308で、あるクライアントデバイスが、第1の閾値時間を超える記憶されている再生時間を有していると決定されるまで、他のクライアントデバイスを繰り返し検討する。
312で、HLSサーバ104は、検討中のクライアントデバイスに提供されているメディアコンテンツの符号化ビットレートを低下させ、ネットワーク帯域幅を検討中のクライアントデバイスから第1のクライアントデバイスに再配分する。サーバ104は、次いで、314で、再配分された帯域幅を使用して、メディアコンテンツを第1のクライアントデバイスに提供し始める。特定の実施形態では、検討中のクライアントデバイスが特定の符号化ビットレートのメディアセグメントファイルをダウンロードしている間、HLSサーバ104は、それを、より低いビットレートで符号化された、異なる再生リストからのメディアセグメントに「格下げ」する。検討中のクライアントデバイスに提供されるネットワーク帯域幅と符号化ビットレートとを減少させる(312)ことで、検討中のクライアントデバイスがより少ないネットワーク帯域幅を消費することを可能にする一方、より小さなメディアセグメントファイルをダウンロードしながら途切れのない再生を維持する。第2のクライアントデバイスが受信しているメディアセグメントファイルの符号化ビットレートの低下に対応する、解放されたネットワーク帯域幅の一部は、第1のクライアントデバイスによる使用のために再配分される。追加のネットワーク帯域幅が必要な場合、HLSサーバ104は、また、他のクライアントデバイスを、より低い符号化ビットレートを有するメディアセグメントに向け直すことができる。第1のクライアントデバイスのためにネットワーク帯域幅を増加させることによって、第1のクライアントデバイスは、その最初のメディアセグメントをより早くダウンロードし、再生をより迅速に開始することができる。検討中のクライアントデバイスのためのネットワーク帯域幅および符号化ビットレートは、再生を開始するのに必要な最低数のメディアセグメントが第1のクライアントデバイスに提供された後、回復する(318)。
一例では、HLSサーバ104は、第2のクライアントデバイスが、直近の10秒間のうちに60秒分の再生時間に対応するメディアセグメントファイルをダウンロードしたことを認識している。これから、HLSサーバ104は、第2のクライアントデバイスがそのバッファの中に少なくとも50秒分の蓄えの再生時間を有していると推測する。第1のクライアントデバイス、または他のクライアントデバイスに追加の帯域幅を提供するために、HLSサーバ104は、第2のクライアントデバイスへのネットワーク帯域幅を、第2のクライアントデバイスが、再生時間を受信するよりも早く再生時間を消費するところまで減らす。第2のクライアントデバイスは、これらの条件にもとでの再生をそのバッファの中を利用することによって維持することができる。10秒分の追加の再生時間が第2のクライアントデバイスに、次の30秒間で提供される場合、第2のクライアントデバイスは、その時間の後、そのバッファ中に30秒分を残している。
316で、HLSサーバ104は、検討中のクライアントデバイスのバッファ中の記憶されている再生時間が第1の閾値時間よりも少ないかどうか、または第1のクライアントデバイスのバッファ中の記憶されている再生時間の量が第2の閾値時間よりも大きいかどうかを決定する。特定の実施形態では、第2の閾値時間は、再生を、第1のクライアントデバイスで開始することを可能にする、バッファされたコンテンツのデュレーションである。どちらの条件も満たされない場合、HLSサーバ104は、メディアコンテンツを第1のクライアントデバイスに、検討中のクライアントデバイスから再配分された帯域幅を使用して提供し続ける。しかしながら、いずれかの条件が満たされた場合、HLSサーバ104は、318で、再配分されたネットワーク帯域幅を検討中のクライアントデバイスに戻す。
320で、HLSサーバ104は、第1のクライアントデバイスのバッファ中の記憶されている再生時間の量が第2の閾値時間未満のままであるかどうかを決定する。そうである場合、サーバ104は、308で、ネットワーク帯域幅を「借りる」ことができる他のクライアントデバイスを検討する。代わりに、十分な量のメディアが第1のクライアントデバイスにバッファされている場合、HLSサーバ104は、322で、他のクライアントデバイスから割り当てられたネットワーク帯域幅を使用することなく、追加のメディアコンテンツを第1のクライアントデバイスにストリーミングし始める。
さらなる実施形態では、HLSサーバ104は、複数のクライアントデバイスに、複数のクライアントデバイスから同時に取得した帯域幅を賢く再配分する。処理要素110によって動かされる適切なアルゴリズムを使用して、HLSサーバ104は、提供クライアントデバイスのグループから取得した帯域幅を「プール」する。HLSサーバ104は、上記の説明と一致して、帯域幅を提供グループ中のクライアントデバイスから、デバイスのいくつかをより低い符号化ビットレートを有するメディアセグメントに移すことによって取得する一方、他のデバイスから、それらのバッファされたメディアコンテンツに対して帯域幅を借りる。HLSサーバ104は、開始時間を短縮するために、または、別の方法では必要に応じて、プールした帯域幅を受領クライアントデバイスのグループに分配する。
図4は、本内容のいくつかの実施形態による、マルチメディアコンテンツをストリーミングするための方法400を説明する論理フローチャートであり、第1のクライアントデバイスにHLSサーバ104によって提供される、第2のセットのメディアセグメントからの各メディアセグメントのデュレーションは、第1のクライアントデバイスによって要求された、第1のセットのメディアセグメントからの各メディアセグメントのデュレーションよりも短い。特定の実施形態では、HLSサーバ104は、第1のクライアントデバイスから、可変再生リストファイル(たとえば、可変再生リスト120)の中の複数の可変ストリームのうちの第1の可変ストリームからのメディアセグメントのセットを提供するように求める要求を受信し、メディアセグメントのセットは第1の符号化ビットレートに対応し、その要求に応答して、第1のクライアントデバイスを、第1の可変ストリームからのメディアセグメントのセットに向ける、識別子のセットを提供し、メディアセグメントのセットの第1の部分からのメディアセグメントは、メディアセグメントのセットの第2の部分からのメディアセグメントのデュレーションよりも短いデュレーションを有する。HLSサーバ104は、再生を第1のクライアントデバイス上で開始するのに必要な、メディアセグメントの第1の部分からの最低数のメディアセグメントを提供した後、メディアセグメントの第2の部分を第1のクライアントデバイスに提供する。
より詳細には、HLSサーバ104は、402で、複数の可変ストリームを特定する可変再生リスト120を第1のクライアントデバイスに提供する。404で、HLSサーバ104は、第1のクライアントデバイスから、可変再生リスト120の中の第1の可変ストリームからの、第1のセットのメディアセグメントのための識別子のセットを提供するように求める第1の要求を受信する。第1の要求に応答して、HLSサーバ104は、406で、第1のセットのメディアセグメントのための識別子のセットをクライアントデバイスに提供し、第1のセットの中の各メディアセグメントは第1のデュレーションを有する。408で、HLSサーバ104は、第1のクライアントデバイスから、可変再生リスト120の中の第1の可変ストリームからの、第2のセットのメディアセグメントのための識別子のセットを提供するように求める第2の要求を受信する。第2の要求に応答して、HLSサーバ104は、410で、第2のセットのメディアセグメントのための識別子のセットを提供し、第2のセットの中の各メディアセグメントは、第1のデュレーションよりも長い第2のデュレーションを有する。
別の実施形態では、第1のセットからのメディアセグメントは、その全部が第1のセットに対する目標デュレーションよりも短い、異なるデュレーションを有する。HLSドラフト仕様によって定義される目標デュレーションは、HLSサーバ104が提供するメディアセグメントのデュレーションに付けられる上限である。同様に、第2のセットからのメディアセグメントは、お互いに異なっているが、その全部が、第1のセットに対する目標デュレーションよりも短い、第2のセットに対する目標デュレーションよりも短いデュレーションを有する。
上記で開示した実施形態は、第1のクライアントデバイスが、再生を始めることができる前に、第1の数のメディアセグメントをダウンロードする必要がある場合に利点を有する。3つのメディアセグメントがバッファされた後に再生を開始する例では、第1のクライアントデバイスは、第1のビットレートで符号化された第1の可変ストリームに対応する、第1の再生リストのための識別子を含む要求を行う。HLSサーバ104は、第1のクライアントデバイスを、それぞれが5秒のデュレーションを有する3つのメディアセグメントファイルを指し示す、3つのURLを含む第1の再生リストに向ける。これらの比較的短いメディアセグメントは迅速にダウンロードされ、再生が開始する。HLSサーバ104は、第1のクライアントデバイスからの、ストリーミングされているプレゼンテーションの残りの部分をカバーする、追加のメディアセグメントファイルに対する追加の要求に、第1のクライアントデバイスを、15秒のデュレーションと第1の可変ストリームと同じ符号化ビットレートとを有するメディアセグメントに向けることによって応答する。5秒のメディアセグメントがより迅速な開始時間を可能にする一方、15秒のメディアセグメントはより効率的な符号化を可能にする。
図5は、本内容のいくつかの実施形態による、メディアセグメントファイルの概略図500である。一般に、コンテナと、符号化された映像と、符号化された音声と、場合によると暗号化プロトコルとを備えるメディアセグメントは、別々にダウンロードされ、正しい順番で連続して再生される、ストリーミングされているメディアプレゼンテーションを作っているコンテンツの一部を表わしている。メディアセグメント内の映像情報はフレームから成るシリーズとして符号化され、各フレームは時間におけるスナップショットを表わしている。2つの基本的なフレームの種類がある。他のフレームを参照することなく復号することができる独立フレーム、および前のフレームおよび/または後のフレームを参照することによって復号される従属フレームである。独立フレームとそれに従属するすべてのフレームとを備える、フレームから成るシーケンスは、グループオブピクチャ(GOP)として定義される。各GOPは、それがそれを完全に復号するための全情報を含んでいるという点において自己完結型であり、したがって、他のGOPを参照することなく独立して復号可能である(すなわち、復号することができる)。
具体的には、図5は、A502、B504、C506、およびD508として名前を付けられた4つのメディアセグメントを示している。各メディアセグメントの示されている長さは、そのデュレーションに対応する。メディアセグメントA502およびB504は、たとえば、t2 = 4秒のデュレーションを有し、C506のデュレーションをt1 = 2秒としている。各メディアセグメント内で表示されるピクシレーションの密度はその符号化ビットレートに比例する。各メディアセグメント内の瞬時復号リフレッシュ(IDR)フレームの位置は、ラベル「IDR」によって時間で示されている。IDRフレームは、IDRフレームより後のフレームがIDRフレームより前のフレームを参照することができないということを指定する、特別な種類の独立フレームである。IDRフレームは、その受信によりクライアントデバイスが、前のGOPに関連するフレームの入ったその復号バッファをパージすることができるように、タグ付けされている。示す通り、各メディアセグメントの先頭にIDRフレームを置くことによって、再生は、移行がある種類のメディアセグメントから別の種類のものに行われる時に、途切れなく進むことができる。
メディアセグメントA502は、プレゼンテーションにちょうどアクセスしている第1のクライアントデバイスが図2の204で要求し得る、メディアセグメントファイルを表わしている。それはより長いデュレーションとより高い符号化ビットレートとを有し、より大きなIDRフレーム間の間隔が増加しているのは、より高い符号化性能のために、これらのフレームがより効率的に使用されていることを示している。開始遅延を短縮するために、HLSサーバ104は、206で、第1のクライアントデバイスに、より低い符号化ビットレートおよび/またはより短いデュレーションの代用メディアセグメントを提供する。そのようなメディアセグメントは、504〜506で表わされている。
メディアセグメントB504は、HLSサーバ104が第1のクライアントデバイスに、セグメントA502の代わりに提供し得る代用セグメントである。この場合、要求されたセグメントA502および代用セグメントB504の両方は同じデュレーションを有しているが、セグメントB504はより低い符号化ビットレートを有している。一例として、処理要素110によって提供されるHLSサーバ104内のインテリジェンスは、第1のクライアントデバイスとHLSサーバ104との間のメッセージのやり取りに関連して比較的大きな遅延がある時、セグメントB504がセグメントA502のための最もよい代用であることを決定し得る。HLSサーバ104から「より距離のある」第1のクライアントデバイスでは、データグラムは、より多くの「ウェイポイント」を介して中継されるため、その目的地に到達するまでにより長い期間を費やす。HLSサーバ104は、第1のクライアントデバイスについてのこの伝送遅延を、HLSサーバ104がデータグラムを送信し、返答として確認を受信する間の時間間隔を測定することによって決定する。
メディアプレゼンテーションの一部をより短いデュレーションのメディアセグメントに分割すると、より多くのファイルができる。これにより、第1のクライアントデバイスによってHLSサーバ104に渡される要求がより多く必要になる。複数のファイルに関連する伝達遅延は累積的であるため、短いデュレーションのメディアセグメントを第1のクライアントデバイスに提供することに関連するどのような利点も、より多くの要求を送信する必要性によって無効にされ得る。メディアセグメントA502のための代用としてのメディアセグメントB504の有効性は、それがより低いビットレートで符号化されているという事実のみに依存する。
HLSサーバ104は、再生を開始できる前に、第1のクライアントデバイスが第1の数のメディアセグメントをバッファしなければならない場合、メディアセグメントC506がメディアセグメントA502のための最適な代用であると決定し得る。メディアセグメントB504と同じ符号化ビットレートとその半分のデュレーションとを有して、メディアセグメントC506は、メディアセグメントB504の半分の時間でダウンロードすることができ、メディアセグメントA502に関連する開始遅延を4分の1に短縮し得る。
メディアセグメントD508は、符号化ビットレートをメディアセグメントC506の符号化ビットレートよりもさらに低下させたメディアセグメントを表わしている。一例として、たとえば、両メディアセグメント内のフレームは同じ解像度(たとえば、SVGA形式)を有しているが、メディアセグメントD508は、1秒当たりより少ないフレーム(たとえば、30fps対60fps)で符号化されている。これは、GOP中の所与の数のフレームについて、より大きなIDRフレームを時間においてさらに離すことができるという追加の利点を有する。
前述の明細書では特定の実施形態を説明した。しかしながら、当業者は、以下の特許請求の範囲に明記する本発明の範囲から逸脱せずに、様々な修正および変更を行うことができるということを理解するであろう。したがって、明細書および図は、限定的意味というよりも説明的意味とみなされるものであり、すべてのそのような修正は、本内容の範囲内に含まれるよう意図されている。
利益、利点、課題を解決するための手段、および、何らかの利益、利点、もしくは解決するための手段を生じ得るいかなる要素、またはより明白になり得るいかなる要素も、請求の範囲のいずれか一項または全項の、重要な、必須の、または本質的な特徴または要素とは解釈されない。本発明は、本特許出願の係属中になされる補正と、特許にされる特許請求の範囲のすべての均等物とを含んで、添付の特許請求の範囲によってのみ定められる。
さらに、本明細書では、第1および第2、上および下、などの相対的な用語は、ある存在物または動作を別の存在物または動作と区別するためのみに使用され得、必ずしもそのような存在物または動作の間の、実際のそのような関係または順番を要求または暗示していない。「備える」、「備えている」、「有する」、「有している」、「含む」、「含んでいる」、「包含する」、「包含している」という用語、またはそれらの他の変形形態は、非排他的に含めることを意図し、要素の一覧を備え、有し、含み、包含する処理、方法、品物、または装置は、それらの要素のみを含むわけでなく、一覧に明示的に載っていない他の要素、またはそのような処理、方法、品物、または装置に固有の他の要素も含み得る。「…を備える」、「…を有する」、「…を含む」、または「…を包含する」が後に続く要素は、より多くの制約なしに、その要素を備え、有し、含み、包含する処理、方法、品物、または装置の中の追加的な同一の要素の存在を除外しない。「1つ」という用語は、本明細書で明示的に別のことが述べられない限り、1つまたは複数として定義される。「実質的に」、「本質的に」、「近似的に」、「約」という用語、またはそれらの他のバージョンは、当業者によって理解される通り、近いこととして定義され、ある非限定的な実施形態では、その用語は10%以内、別の実施形態では5%以内、別の実施形態では1%以内、および別の実施形態では0.5%以内であると定義される。本明細書で使用する「結合される」という用語は、必ずしも直接でなく、必ずしも機械的でないが、接続されているとして定義される。特定のやり方で「構成されている」デバイスまたは構造は、少なくともそのやり方で構成されているが、記載されていないやり方でも構成されてよい。
いくつかの実施形態が、マイクロプロセッサ、デジタル信号プロセッサ、特注プロセッサおよびフィールドプログラマブルゲートアレイ(FPGA)などの、1つまたは複数の汎用プロセッサまたは専用プロセッサ(または「処理デバイス」)と、特定の非プロセッサ回路と連動して、本明細書で説明した方法および/または装置の機能のうちの一部、ほとんど、または全部を実装するために1つまたは複数のプロセッサを制御する、(ソフトウェアとファームウェアの両方を含む)固有の、記憶されたプログラム命令とから成り得ることが理解されるであろう。代替的に、一部のまたは全部の機能が、記憶されたプログラム命令を有さない状態機械によって、または各機能またはいくつかの機能のある組合せがカスタム論理として実装されている、1つまたは複数の特定用途向け集積回路(ASIC)で実装されてよい。もちろん、2つのやり方の組合せを使用することができる。
さらに、(たとえば、プロセッサを備える)コンピュータを、本明細書で説明し、特許請求される方法を実行するようにプログラムするために、コンピュータ可読コードが記憶されたコンピュータ可読記憶媒体として、実施形態を実装することができる。そのようなコンピュータ可読記憶媒体の例は、ハードディスクと、CD-ROMと、光学式記憶デバイスと、磁気記憶デバイスと、ROM(リードオンリメモリ)と、PROM(プログラム可能リードオンリメモリ)と、EPROM(消去プログラム可能リードオンリメモリ)と、EEPROM(電気的消去プログラム可能リードオンリメモリ)と、フラッシュメモリとを含むが、これらに限定されない。さらに、できる限り大きな努力と、たとえば、利用可能な時間と、現在のテクノロジーと、経済的考慮とによって動機付けられる設計の選択肢の多さにも関わらず、本明細書で開示した概念と原理とによって導かれた時、当業者は、そのようなソフトウェア命令およびプログラムと、ICとを、最小限の実験を用いて容易に生み出すことができると予測される。
読者が本技術的な開示の本質をすばやく確かめることを可能にするために、要約書を提供する。それは、それが特許請求の範囲またはその意味を解釈または限定するために使用されないという理解のもとに提出された。加えて、前述の発明を実施するための形態では、開示を簡素化する目的のために、様々な特徴が様々な実施形態の中でグループ化されていることを理解することができる。この開示の方法は、特許請求の範囲の実施形態が、各請求項の中で明示的に列挙されたものよりも多くの特徴を必要とするという意図を反映しているものとして解釈されない。むしろ、以下の特許請求の範囲が反映する通り、発明の主題は、1つの開示された実施形態のすべての特徴よりも少ないものの中にある。したがって、以下の特許請求の範囲は、本明細書によって、発明を実施するための形態に組み込まれ、各請求項は、別々に請求される主題として独自の働きをしている。
100 システム
102 メディアソース
104 HLSサーバ
106 HLS処理部
108 ウェブサーバ
110 処理要素
112 メディアエンコーダ
114 ストリームセグメンタ
116 パッケージ生成部
118 ディスク記憶装置
120 可変再生リストファイル
122 再生リスト、再生リストA
124 再生リスト、再生リストB
126 再生リスト、再生リストC
128 HTTP対応ネットワーク
130 クライアントデバイス、ノートパソコン
132 クライアントデバイス、携帯電話
134 クライアントデバイス、タブレット
136 リンク、接続
138 リンク、接続
140 リンク、接続
142 リンク、接続
144 リンク、接続
502 メディアセグメントA
504 メディアセグメントB
506 メディアセグメントC
508 メディアセグメントD

Claims (9)

  1. サーバ(108)によって実行される、メディアコンテンツをクライアントデバイス(130〜134)にストリーミングするための方法であって、
    第1のクライアントデバイス(130〜134)のために、同じプレゼンテーションの異なる符号化にそれぞれが対応する一方で、同じデュレーションを有する同じコンテンツをそれぞれが表わしている、複数の可変ストリーム(122〜126)を特定する可変再生リストファイル(120)を提供するステップ(202)と、
    前記第1のクライアントデバイス(130〜134)から、前記第1のクライアントデバイス(130〜134)を、前記可変再生リストファイル(120)の中の前記複数の可変ストリーム(122〜126)のうちの第1の可変ストリーム(122〜126)からの第1のセットのメディアセグメントに向ける、第1のセットの識別子を提供するように求める第1の要求を受信するステップ(204)であって、前記第1のセットのメディアセグメントが第1の符号化に対応する、受信するステップ(204)と、
    前記第1の要求に応答して、前記コンテンツの第1の部分をダウンロードすることに使用するために、前記第1のクライアントデバイスのデバイスタイプに基づいて、前記第1のクライアントデバイス(130〜134)を、第2の符号化に対応する第2のセットのメディアセグメントに向ける、第2のセットの識別子を提供するステップ(206)と、
    を備える、方法。
  2. 前記第2のセットのメディアセグメントが、前記可変再生リストファイルの中で特定されない第2の可変ストリームからのものである、請求項1に記載の方法。
  3. 前記第2のセットのメディアセグメントが、前記可変再生リストファイルの中の前記複数の可変ストリームのうちの第2の可変ストリームからのものである、請求項1に記載の方法。
  4. 前記第1の可変ストリームを第1の符号化ビットレートで符号化し、前記第2の可変ストリームを、前記第1の符号化ビットレートよりも低い第2の符号化ビットレートで符号化するステップをさらに備える、請求項3に記載の方法。
  5. 第2のクライアントデバイスに、前記第1の符号化ビットレートと前記第2の符号化ビットレートとの間の符号化ビットレートの差に対応するネットワーク帯域幅を、前記プレゼンテーションの一部を前記第2のクライアントデバイスにダウンロードするために提供するステップをさらに備える、請求項4に記載の方法。
  6. 第2のクライアントデバイスによって受信されたメディアセグメントの合計デュレーションと、前記メディアセグメントが前記第2のクライアントデバイスによって受信されてからの経過時間との間の差に対応する、前記第2のクライアントデバイスによって保持されている、バッファされているメディアのデュレーションを決定するステップと、
    前記第2のクライアントデバイスによって保持されている、バッファされているメディアの前記デュレーションが閾値を超える時、ネットワーク帯域幅を前記第2のクライアントデバイスから前記第1のクライアントデバイスに再配分するステップと、
    をさらに備える、請求項1に記載の方法。
  7. 前記第1の符号化が第1の符号化ビットレートを備え、前記方法が、
    前記第1の要求の後に前記第1のクライアントデバイスから、前記第1のクライアントデバイスを、前記第1の可変ストリームからの第3のセットのメディアセグメントに向ける、第3のセットの識別子を提供するように求める第2の要求を受信するステップであって、前記第3のセットのメディアセグメントが前記第1の符号化ビットレートよりも高い第3の符号化ビットレートに対応する、受信するステップと、
    前記第2の要求に応答して、前記コンテンツの第2の部分をダウンロードすることに使用するために、前記第1のクライアントデバイスを前記第3のセットのメディアセグメントに向ける、前記第3のセットの識別子を提供するステップと、
    をさらに備える、請求項1に記載の方法。
  8. 前記第1の符号化が第1の符号化ビットレートを備え、前記方法が、
    前記第1の要求の後に前記第1のクライアントデバイスから、前記第1のクライアントデバイスを、前記可変再生リストファイルの中の前記複数の可変ストリームのうちの第3の可変ストリームからの第3のセットのメディアセグメントに向ける、第3のセットの識別子を提供するように求める第2の要求を受信するステップであって、前記第3のセットのメディアセグメントが、前記第1の符号化ビットレートよりも高い第3の符号化ビットレートに対応する、受信するステップと、
    前記第2の要求に応答して、前記第1のクライアントデバイスを、前記第1の可変ストリームからの第4のセットのメディアセグメントに向ける、第4のセットの識別子を提供するステップであって、前記第4のセットのメディアセグメントが前記第1の符号化ビットレートと前記第3の符号化ビットレートとの間の符号化ビットレートに対応する、提供するステップと、
    をさらに備える、請求項1に記載の方法。
  9. ストリーミングされるメディアをクライアントデバイス(130〜134)に提供するための装置(104)であって、
    メディアストリームを受信するように構成されたインターフェースと、
    前記メディアストリームから複数の可変ストリーム(122〜126)を生成することであって、前記複数の可変ストリーム(122〜126)からの各可変ストリーム(122〜126)が、同じプレゼンテーションの異なる符号化ビットレートに対応する一方で、同じデュレーションを有する同じコンテンツをそれぞれが表わしている、生成すること、
    前記複数の可変ストリームのサブセットを特定する可変再生リスト(120)を提供すること(202)、
    第1のクライアントデバイス(130〜134)から、前記第1のクライアントデバイス(130〜134)を、前記複数の可変ストリーム(122〜126)の前記サブセットのうちの第1の可変ストリーム(122〜126)からの、第1のセットのメディアセグメントに向ける、第1のセットの識別子に対する第1の要求を受信すること(204)であって、前記第1のセットのメディアセグメントが第1の符号化ビットレートに対応する、受信すること(204)、および
    前記第1の要求に応答して、前記コンテンツの第1の部分をダウンロードすることに使用するために、前記第1のクライアントデバイスのデバイスタイプに基づいて、前記第1のクライアントデバイス(130〜134)を、前記複数の可変ストリーム(122〜126)からの第2の可変ストリーム(122〜126)からの、第2のセットのメディアセグメントに向ける、第2のセットの識別子を決定することであって、前記第2の可変ストリーム(122〜126)が、前記第1の符号化ビットレートよりも低い第2の符号化ビットレートに対応する、決定すること、
    を行うように構成されたサーバ(108)と、
    を備える、装置(104)。
JP2015543067A 2012-11-20 2013-10-28 メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置 Expired - Fee Related JP6346899B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/681,835 US9544344B2 (en) 2012-11-20 2012-11-20 Method and apparatus for streaming media content to client devices
US13/681,835 2012-11-20
PCT/US2013/066999 WO2014081529A1 (en) 2012-11-20 2013-10-28 Method and apparatus for streaming media content to client devices

Publications (2)

Publication Number Publication Date
JP2016502803A JP2016502803A (ja) 2016-01-28
JP6346899B2 true JP6346899B2 (ja) 2018-06-20

Family

ID=49584778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015543067A Expired - Fee Related JP6346899B2 (ja) 2012-11-20 2013-10-28 メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置

Country Status (5)

Country Link
US (1) US9544344B2 (ja)
EP (1) EP2923496A1 (ja)
JP (1) JP6346899B2 (ja)
CN (1) CN105308978B (ja)
WO (1) WO2014081529A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1999883A4 (en) 2006-03-14 2013-03-06 Divx Llc FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS
US8510303B2 (en) 2009-01-07 2013-08-13 Divx, Llc Singular, collective and automated creation of a media guide for online content
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9106474B2 (en) * 2012-03-28 2015-08-11 National Instruments Corporation Lossless data streaming to multiple clients
WO2014078805A1 (en) * 2012-11-19 2014-05-22 John Douglas Steinberg System and method for creating customized, multi-platform video programming
US9356981B2 (en) * 2012-11-29 2016-05-31 Broadcom Corporation Streaming content over a network
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) * 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9300710B2 (en) * 2013-03-07 2016-03-29 Qualcomm Innovation Center, Inc. Adaptive bandwidth switching via short-circuitable download
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
TW201513653A (zh) * 2013-05-07 2015-04-01 Vid Scale Inc 視訊應用QOE-知覺WiFi增強
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US10033658B2 (en) * 2013-06-20 2018-07-24 Samsung Electronics Co., Ltd. Method and apparatus for rate adaptation in motion picture experts group media transport
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9621604B2 (en) * 2013-09-11 2017-04-11 Cisco Technology, Inc. Statistical remultiplexing of ABR streams
US20150256600A1 (en) * 2014-03-05 2015-09-10 Citrix Systems, Inc. Systems and methods for media format substitution
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
JP6419848B2 (ja) * 2014-06-30 2018-11-07 ディッシュ テクノロジーズ エル.エル.シー.DISH Technologies L.L.C. 帯域幅最適化のための適応的データセグメント配信調停
US9794604B2 (en) * 2014-11-14 2017-10-17 Panopto, Inc. Systems and methods for transmitting segment-quality units of a streaming video session
US10880357B2 (en) * 2014-12-23 2020-12-29 Adobe Inc. Reducing requests for media segments in streaming of multimedia content
US9756112B2 (en) 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
KR102268856B1 (ko) * 2015-03-11 2021-06-24 한국전자통신연구원 미디어 데이터 송신 방법 및 장치
US9772813B2 (en) * 2015-03-31 2017-09-26 Facebook, Inc. Multi-user media presentation system
WO2017001289A1 (en) * 2015-06-30 2017-01-05 British Telecommunications Public Limited Company Low latency media streaming
US20170041363A1 (en) * 2015-08-03 2017-02-09 Unroll, Inc. System and Method for Assembling and Playing a Composite Audiovisual Program Using Single-Action Content Selection Gestures and Content Stream Generation
US11233758B2 (en) * 2015-11-23 2022-01-25 Verizon Patent And Licensing Inc. Selective screen sharing
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10652166B2 (en) * 2017-06-27 2020-05-12 Cisco Technology, Inc. Non-real time adaptive bitrate recording scheduler
CN109743281A (zh) * 2018-11-19 2019-05-10 视联动力信息技术股份有限公司 一种通信方法及装置
US10868726B2 (en) 2018-12-07 2020-12-15 At&T Intellectual Property I, L.P. Apparatus and method for selecting a bandwidth prediction source
EP3687176A1 (en) 2019-01-22 2020-07-29 InterDigital CE Patent Holdings A client and a method for managing, at the client, a streaming session of a multimedia content
US11490149B2 (en) * 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
US11695817B2 (en) 2019-03-20 2023-07-04 Qualcomm Incorporated Methods and apparatus to facilitate using a streaming manifest including a profile indication
US11611798B2 (en) * 2019-04-05 2023-03-21 Sony Interactive Entertainment LLC IDR fracking for glass to glass latency reduction
US11509949B2 (en) * 2019-09-13 2022-11-22 Disney Enterprises, Inc. Packager for segmenter fluidity
US11831879B2 (en) * 2019-09-20 2023-11-28 Comcast Cable Communications, Llc Methods, systems, and apparatuses for enhanced adaptive bitrate segmentation
US11128688B2 (en) * 2019-10-16 2021-09-21 Disney Enterprises, Inc. Transcoder conditioning for segment fluidity

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249530B1 (en) * 1997-12-22 2001-06-19 Sun Microsystems, Inc. Network bandwidth control
ES2299525T3 (es) 2000-11-28 2008-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Metodo para liberar un equipo de usuario utilizando un procedimiento de busqueda en un sistema de comunicacion celular.
US8200747B2 (en) * 2002-07-12 2012-06-12 Hewlett-Packard Development Company, L.P. Session handoff of segmented media data
CN100405350C (zh) * 2003-04-24 2008-07-23 诺基亚有限公司 预设速率匹配信号通知的方法和装置
US7844727B2 (en) 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
US7562375B2 (en) 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
WO2006091736A2 (en) 2005-02-23 2006-08-31 Arroyo Video Solutions, Inc. Fast channel change with conditional return to multicasting
US8259861B2 (en) * 2005-03-31 2012-09-04 At&T Intellectual Property I, L.P. Methods and systems for providing bandwidth adjustment
US7231213B2 (en) 2005-06-30 2007-06-12 Motorola Inc. Method to detect a user equipment stuck on a dedicated channel
US8176197B2 (en) * 2006-03-30 2012-05-08 Pioneer Corporation Server device in contents transmitting system and contents transmitting method
US7652994B2 (en) 2006-03-31 2010-01-26 Sharp Laboratories Of America, Inc. Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels
US7962637B2 (en) 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
US7779146B2 (en) * 2006-11-09 2010-08-17 Sharp Laboratories Of America, Inc. Methods and systems for HTTP streaming using server-side pacing
JP2008172685A (ja) * 2007-01-15 2008-07-24 Nagoya Institute Of Technology ファイルサーバを利用した高品質ビデオ転送装置
GB0706424D0 (en) * 2007-04-02 2007-05-09 British Telecomm Video streaming
US9705942B2 (en) * 2007-08-31 2017-07-11 Adobe Systems Incorporated Progressive playback
WO2010045289A1 (en) * 2008-10-14 2010-04-22 Ripcode, Inc. System and method for progressive delivery of transcoded media content
WO2010045109A1 (en) * 2008-10-17 2010-04-22 Azuki Systems, Inc. Method and apparatus for efficient http data streaming
CN102282804B (zh) 2008-11-24 2015-08-12 瞻博网络公司 自适应网络内容传送系统
US8621044B2 (en) * 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
WO2010135333A1 (en) 2009-05-19 2010-11-25 Beaumaris Networks Inc. Methods, apparatus and computer readable medium for managed adaptive bit rate for bandwidth reclamation
US8205004B1 (en) * 2009-06-26 2012-06-19 Adobe Systems Incorporated Multi-bit-rate streaming delivery
US9237387B2 (en) * 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
KR101674221B1 (ko) 2010-01-28 2016-11-09 엘지전자 주식회사 무선 통신 시스템에서 로그된 측정 보고 방법 및 장치
US9137278B2 (en) 2010-04-08 2015-09-15 Vasona Networks Inc. Managing streaming bandwidth for multiple clients
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
US8521899B2 (en) * 2010-05-05 2013-08-27 Intel Corporation Multi-out media distribution system and method
US8819269B2 (en) 2010-06-30 2014-08-26 Cable Television Laboratories, Inc. Adaptive bit rate method and system using retransmission and replacement
US20120110628A1 (en) 2010-10-27 2012-05-03 Candelore Brant L Storage of Adaptive Streamed Content
EP2665261A4 (en) * 2011-01-14 2014-10-15 Sharp Kk Content replay, content replay, release system, content replay program, recording medium and data structure
US8996719B2 (en) * 2011-04-03 2015-03-31 Jeremiah Condon System and method of adaptive transport of multimedia data
US8510555B2 (en) * 2011-04-27 2013-08-13 Morega Systems Inc Streaming video server with virtual file system and methods for use therewith
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
EP2724584A1 (en) * 2011-06-21 2014-04-30 Telefonaktiebolaget LM Ericsson (PUBL) Network node and method related to buffer estimation

Also Published As

Publication number Publication date
CN105308978B (zh) 2018-10-23
JP2016502803A (ja) 2016-01-28
CN105308978A (zh) 2016-02-03
US20140143440A1 (en) 2014-05-22
WO2014081529A1 (en) 2014-05-30
EP2923496A1 (en) 2015-09-30
US9544344B2 (en) 2017-01-10

Similar Documents

Publication Publication Date Title
JP6346899B2 (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
JP6404505B2 (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
US10791157B2 (en) Multi-tenant over-the-top multicast
US10116971B2 (en) Method and system for fetching a portion of a live media stream before a first ad finishes playing to detect the subsequent ad indicator for live consecutive ad replacement
US11537562B2 (en) Auxiliary manifest file to provide timed metadata
CN105814900B (zh) 用于在自适应流播环境中管理相邻频道的系统和方法
US8862763B2 (en) Downloading video using excess bandwidth
WO2013008867A1 (ja) 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
US10237322B2 (en) Streaming content delivery system and method
WO2018125590A1 (en) Advanced trick-play modes for streaming video
US10136193B2 (en) Supporting trickplay of streaming DLNA multimedia by HLS access device
US20210021655A1 (en) System and method for streaming music on mobile devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180314

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: 20180427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180528

R150 Certificate of patent or registration of utility model

Ref document number: 6346899

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees