JP6014870B2 - ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム - Google Patents

ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム Download PDF

Info

Publication number
JP6014870B2
JP6014870B2 JP2015504825A JP2015504825A JP6014870B2 JP 6014870 B2 JP6014870 B2 JP 6014870B2 JP 2015504825 A JP2015504825 A JP 2015504825A JP 2015504825 A JP2015504825 A JP 2015504825A JP 6014870 B2 JP6014870 B2 JP 6014870B2
Authority
JP
Japan
Prior art keywords
client
request
format
session
server
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
JP2015504825A
Other languages
English (en)
Other versions
JP2015518325A (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.)
Arris Canada Inc
Original Assignee
Arris Canada Inc
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 Arris Canada Inc filed Critical Arris Canada Inc
Publication of JP2015518325A publication Critical patent/JP2015518325A/ja
Application granted granted Critical
Publication of JP6014870B2 publication Critical patent/JP6014870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • 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
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/80Responding to QoS
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2221Secondary servers, e.g. proxy server, cable television Head-end being a cable television head-end
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64707Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless for transferring content from a first network to a second network, e.g. between IP and wireless
    • 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/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

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

Description

後述の実施形態は、ストリーミング・メディアの分野に関し、特に、ビデオおよびオーディオ・コンテンツのリアルタイムまたはオンデマンド・ストリーミングに関する。
「オーバー・ザ・トップ」(OTT)マルチメディア・サービスの市場はますます複雑になっている。多数のコンテンツ製作者がOTTビデオ・コンテンツに対していわゆる3スクリーン手法を採用している(たとえば、テレビジョン、インターネット、モバイル・デバイスなど)。デバイス製造業者はストリーミング機能をそれぞれの製品に直接組み込んでいる。従来の業者は市場シェアの獲得または保持に努めており、一方、新しい業者が市場に参入している。
これらの様々なサービスに関して新しい規格が出現している。しかし、一般に容認されている共通要素として、HTTPベースのアダプティブ・ストリーミングが使用されている。HTTPすなわちハイパーテキストト・ランスファ・プロトコルはワールドワイド・ウェブ(WWW)上の広く使用されている規格である。HTTPが普及しているので様々なデバイス上、特に様々なネットワーク環境においてHTTPを使用するのが適切である。したがって、HTTPを利用するHTTPベースのアダプティブ・ストリーミングは、エンド・ユーザの容認される体感品質(QoE)を確保し、一方、任意のネットワーク上の任意のデバイス上で同じコンテンツを見る能力を実現するための適切な方法とみなされている。
マルチメディア(たとえば、ビデオおよびオーディオ)コンテンツに関する現在のHTTPベースのいくつかのアダプティブ・ストリーミング・ソリューションは、デバイスが、帯域幅が動的に変化する環境にあるときでも、良好なQoEを実現する。特に、多くのアダプティブ・ストリーミング・ソリューションは現在、一般に、現在の帯域幅環境に応じて実現することのできる同じコンテンツを符号化した複数のコンテンツまたは同じコンテンツを選択的にスケーリング可能に符号化したコンテンツを使用している。
しかし、様々なストリーミング・ソリューションの各々は一般に、コンテンツ・フォーマッティング、クライアント検索プロトコルおよび再生プロトコル、ならびにビットレートを選択するための関連するアルゴリズムに対して異なる手法を使用する。基本的なコンテンツ符号化フォーマットのような共通要素が存在することもあるが、これらの手法は直接的な互換性を有さないことがある。さらに、ストリーミング・コンテンツを実現するために使用されるネットワーク・アーキテクチャ(たとえば、サーバ、デバイス、ソフトウェア)が異なることがある。
複数の競合する規格が存在すると仮定すると、コンテンツ製作者は、互いに互換性を有さない1つまたは複数の規格を使用しサポートすることを選択するという問題に直面する。たとえば、Apple iPhone(登録商標)、iPod(登録商標)、およびiPad(登録商標)などのデバイスはAppleストリーミング・ソリューションしかサポートしない。しかし、AppleソリューションがMicrosoft Windows(登録商標)ベースのデバイスによって直接サポートされることはない。逆に、Microsoftスムース・ストリーミング手法がAppleデバイス上で直接サポートされることはない。この問題は、コンテンツ製作者が、Google ANDROID(登録商標)オペレーティング・システムに基づくデバイスなどの他のデバイスをサポートする
ことを望むときにさらに深刻化する。
様々な機関がHTTPベースのアダプティブ・ストリーミングの規格を開発しているが、これらの規格の各々は結局、規格の対象となる用途に応じた特定の特異性を有する。たとえば、MPEGはDASH(Dynamic Adaptive Streaming
over HTTP)を開発しており、3GPPは3GPP自体の手法を定義しており、W3Cはメディア・フラグメントを開発している。
この環境を考えると、コンテンツ製作者は、様々な規格およびデバイスのすべてをサポートするかまたはいくつかの組み合わせをサポートしないでおくリスクをとらなければならない。
メディア・コンテンツを送受信することができる例示的なネットワークを示す図。 従来技術のストリーミング・システムを示す図。 別の従来技術のストリーミング・システムを示す図。 いくつかの実施形態による簡略化されたストリーミング・システムを示す図。 例示的なストリーミング・システムの一部である中間サーバの例示的な簡略化されたシステム・ブロック図。 図5のシステムの簡略化されたコール・フローを示す図。 時間軸上の例示的なビデオ・フラグメント・マッピングおよびオーディオ・フラグメント・マッピングを示す図。 中間サーバのセッション管理モジュールによって使用できる例示的な状態図。 図5の中間サーバに関する例示的な詳細なコール・フローを示す図。 初期マニフェスト要求を容認するための例示的なコール・フローを示す図。 拒絶された初期マニフェスト要求に関する例示的なコール・フローを示す図。 無効なオリジン・サーバ・アドレスを含む初期マニフェスト要求に関する例示的なコール・フローを示す図。 有効なフラグメント要求に関する例示的なコール・フローを示す図。 無効なフラグメント要求に関する例示的なコール・フローを示す図。 無効なセッション識別子(UUID)を含むコンテンツ・フラグメント要求に関する例示的なコール・フローを示す図。
第1の広義の態様では、ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するためのシステムであって、オリジン・サーバがストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントを備えるシステムにおいて、クライアント配信フォーマットを使用してストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関するクライアント要求をクライアントから受信し、クライアント要求がクライアント配信フォーマットであると判定し、クライアント要求に対応する中間要求を配信元配信フォーマットで生成するように構成されたマッピング・モジュールと、中間要求をサーバに送信し、ストリーミング・メディア・コンテンツ・アイテムの要求される部分に対応する第1の複数のコンテンツ・フラグメントのサブ
セットを受信するように構成された中間クライアント・モジュールであって、サブセットが、配信元配信フォーマットを使用してオリジン・サーバから配信元コンテナ・フォーマットで受信される中間クライアント・モジュールと、サブセットを配信元コンテナ・フォーマットからアンパックし、サブセットをクライアント・コンテナ・フォーマットにパックするように構成されたコンテナ変換モジュールであって、クライアント・コンテナ・フォーマットでパックされたサブセット中のコンテンツ・フラグメントが配信元符号化フォーマットで符号化されたままであるコンテナ変換モジュールと、クライアント配信フォーマットを使用してストリーミング・メディア・コンテンツ・アイテムをクライアント・コンテナ・フォーマットでクライアントに送信するように構成された中間サーバ・モジュールとを備えるシステムが提供される。
場合によっては、コンテナ変換モジュールは、第1の複数のコンテンツ・フラグメントを第2の複数のコンテンツ・フラグメントにリアセンブルすることによってストリーミング・メディア・コンテンツ・アイテムをクライアント・コンテナ・フォーマットにパックし、第2の複数のコンテンツ・フラグメントは第1の複数のコンテンツ・フラグメントとは異なる持続時間を有する。
場合によっては、マッピング・モジュールは、所定の配信フォーマットを使用して1つまたは複数の要求を送信し、応答が首尾よく受信されたかどうかを判定することによって、オリジン・サーバが配信元配信フォーマットで送信するように構成されていると判定してもよい。マッピング・モジュールは、クライアント要求を複数の所定の要求パターンと比較することによってクライアント要求がクライアント配信フォーマットであると判定してもよい。
中間サーバは、クライアント要求が受信されたときにストリーミング・セッションを開始するように構成されたセッション管理モジュールをさらに備えてもよい。
セッション管理モジュールは、クライアントからのフラグメント要求を監視することによってストリーミング・セッションに関するクライアントのセッション状態を判定するようにさらに構成されてもよい。
別の広義の態様では、ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアントに配信する方法であって、オリジン・サーバがストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントを備える方法において、クライアント配信フォーマットを使用してストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関するクライアント要求をクライアントから受信することと、クライアント要求がクライアント配信フォーマットであると判定することと、クライアント要求に対応する中間要求を生成することであって、配信元要求が配信元配信フォーマットであることと、中間要求をサーバに送信することと、ストリーミング・メディア・コンテンツ・アイテムの要求される部分に対応する第1の複数のコンテンツ・フラグメントのサブセットを受信することであって、サブセットが、配信元配信フォーマットを使用してオリジン・サーバから配信元コンテナ・フォーマットで受信されることと、サブセットを配信元コンテナ・フォーマットからアンパックし、サブセットをクライアント・コンテナ・フォーマットにパックすることであって、クライアント・コンテナ・フォーマットでパックされたサブセット中のコンテンツ・フラグメントが配信元符号化フォーマットで符号化されたままであることと、クライアント配信フォーマットを使用してストリーミング・メディア・コンテンツ・アイテムをクライアント・コンテナ・フォーマットでクライアントに送信することとを含む方法が提供される。
パッキングは、第1の複数のコンテンツ・フラグメントを第2の複数のコンテンツ・フラグメントにリアセンブルすることによって実行されてもよく、第2の複数のコンテンツ・フラグメントは第1の複数のコンテンツ・フラグメントとは異なる持続時間を有する。
この方法は、所定の配信フォーマットを使用して1つまたは複数の要求を送信し、応答が首尾よく受信されたかどうかを判定することによって、オリジン・サーバが配信元配信フォーマットで送信するように構成されていると判定することをさらに含んでもよい。
この方法は、クライアント要求を複数の所定の要求パターンと比較することによってクライアント要求がクライアント配信フォーマットであると判定することをさらに含んでもよい。
この方法は、クライアント要求が受信されたときにストリーミング・セッションを開始することをさらに含んでもよい。
この方法は、クライアントからのフラグメント要求を監視することによってストリーミング・セッションに関するクライアントのセッション状態を判定することをさらに含んでもよい。
別の広義の態様では、ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するためのシステムであって、オリジン・サーバがストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントを備えるシステムにおいて、ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関する少なくとも1つのクライアント要求をクライアントから受信し、少なくとも1つのクライアント要求に対応する中間要求を生成するように構成されたマッピング・モジュールと、少なくとも1つのクライアント要求が受信されたときにストリーミング・セッションを開始するように構成されたセッション管理モジュールであって、少なくとも1つのクライアント要求を監視することによってストリーミング・セッションに関するクライアントのセッション状態を判定するようにさらに構成されたセッション管理モジュールと、中間要求をサーバに送信し、ストリーミング・メディア・コンテンツ・アイテムの要求される部分に対応する第1の複数のコンテンツ・フラグメントのサブセットを受信するように構成された中間クライアント・モジュールと、ストリーミング・メディア・コンテンツ・アイテムをクライアントに送信するように構成された中間サーバ・モジュールとを備えるシステムが提供される。
オリジン・サーバは、ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有してもよく、マッピング・モジュールは、クライアント配信フォーマットを使用してクライアント要求を受信し、クライアント要求がクライアント配信フォーマットであると判定するように構成されてもよく、中間要求は配信元配信フォーマットであってもよく、第1の複数のコンテンツ・フラグメントのサブセットは、配信元配信フォーマットを使用してオリジン・サーバから配信元コンテナ・フォーマットで受信されてもよく、システムは、配信元コンテナ・フォーマットからサブセットをアンパックし、サブセットをクライアント・コンテナ・フォーマットにパックするように構成されたコンテナ変換モジュールをさらに備えてもよく、クライアント・コンテナ・フォーマットでパックされたサブセット中のコンテンツ・フラグメントは配信元符号化フォーマットで符号化されたままであってもよく、中間サーバ・モジュールは、クライアント配信フォーマットを使用してストリーミング・メディア・コンテンツ・アイテムをクライアント・コンテナ・フォーマットでクライアントに送信するように構成されてもよい。
セッション管理モジュールは、すべてのオープン・クライアント・セッションの状態を特定するようにさらに構成されてもよい。セッション管理モジュールは、所定のタイムアウト期間の後でセッション状態をイナクティブとマークするようにさらに構成されてもよい。セッション管理モジュールは、クライアント・セッションに関連するさらなるフラグメント要求が受信されたときにセッション状態をアクティブとマークするようにさらに構成されてもよい。
少なくとも1つのクライアント要求は複数のクライアント要求を含んでもよく、セッション状態は、複数のクライアント要求のタイミングに基づいて判定されてもよい。
タイミングが、複数のクライアント要求が順序を外れたフラグメントを求める要求であることを示し得るとき、シーク動作が決定されてもよい。タイミングが、実際の経過時間が複数のクライアント要求において要求されたフラグメントの再生時間を超えていることを示し得るとき、トリック再生動作が決定されてもよい。
別の広義の態様では、ストリーミング・メディアコンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するための方法であって、オリジン・サーバがストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントを備える方法において、ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関する少なくとも1つのクライアント要求をクライアントから受信することと、少なくとも1つのクライアント要求に対応する中間要求を生成することと、少なくとも1つのクライアント要求が受信されたときにストリーミング・セッションを開始することと、少なくとも1つのクライアント要求を監視することによってストリーミング・セッションに関するクライアントのセッション状態を判定することと、中間要求をサーバに送信することと、ストリーミング・メディア・コンテンツ・アイテムの要求される部分に対応する第1の複数のコンテンツ・フラグメントのサブセットを受信することと、ストリーミング・メディア・コンテンツ・アイテムをクライアントに送信することとを含む方法が提供される。
オリジン・サーバは、ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有してもよく、クライアント要求は、クライアント配信フォーマットを使用して受信されてもよく、中間要求は配信元配信フォーマットであってもよく、第1の複数のコンテンツ・フラグメントのサブセットは、配信元配信フォーマットを使用してオリジン・サーバから配信元コンテナ・フォーマットで受信されてもよく、この方法は、配信元コンテナ・フォーマットからサブセットをアンパックし、サブセットをクライアント・コンテナ・フォーマットにパックすることをさらに含んでもよく、クライアント・コンテナ・フォーマットでパックされたサブセット中のコンテンツ・フラグメントは配信元符号化フォーマットで符号化されたままであってもよく、ストリーミング・メディア・コンテンツ・アイテムは、クライアント配信フォーマットを使用してクライアント・コンテナ・フォーマットでクライアントに送信されてもよい。
この方法は、すべてのオープン・クライアント・セッションの状態を特定することをさらに含んでもよい。この方法は、所定のタイムアウト期間の後でセッション状態をイナクティブとマークすることをさらに含んでもよい。この方法は、クライアント・セッションに関連するさらなるフラグメント要求が受信されたときにセッション状態をアクティブとマークすることをさらに含んでもよい。
少なくとも1つのクライアント要求は複数のクライアント要求を含んでもよく、セッション状態は、複数のクライアント要求のタイミングに基づいて判定されてもよい。
タイミングが、複数のクライアント要求が順序を外れたフラグメントを求める要求であることを示し得るとき、シーク動作が決定されてもよい。タイミングが、実際の経過時間が複数のクライアント要求において要求されたフラグメントの再生時間を超えていることを示し得るとき、トリック再生動作が決定されてもよい。
本明細書で説明する実施形態のさらなる態様および利点は、以下の説明を添付の図面と一緒に理解することによって明らかになろう。
本明細書で説明するシステムおよび方法の実施形態をよりよく理解し、それらのシステムおよび方法をどのように実施し得るかをより明確に示すために、例として添付の図面を参照する。
図を単純にかつ明確にするために、図示の各要素が必ずしも縮尺通りに描かれているわけではないことが諒解されよう。たとえば、図を明確にするためにいくつかの要素の寸法は他の要素に対して誇張されている。さらに、参照符号は対応する要素または類似した要素を示すために必要に応じて各図間で繰り返されることがある。
本明細書で説明する例示的な実施形態を完全に理解できるように多数の特定の詳細が記載されることが諒解されよう。しかし、当業者には、本明細書で説明する実施形態がこれらの特定の詳細なしに実施できることが理解されよう。他の例では、本明細書で説明する実施形態を曖昧にすることのないように公知の方法、手順、および構成要素については詳細に説明していない。
本明細書で説明する方法、システム、およびデバイスの実施形態は、ハードウェアで実装されても、またはソフトウェアで実装されても、またはその両方の組み合わせで実装されてもよい。しかし、これらの実施形態は、少なくとも1つのプロセッサと、データ記憶システム(揮発性メモリおよび不揮発性メモリならびに/または記憶要素を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとをそれぞれ備えるプログラム可能なコンピュータ上で実行されるコンピュータ・プログラムで実装されることが好ましい。たとえば、プログラム可能なコンピュータは制限なしにネットワーク・サーバであってもよい。本明細書で説明する機能を実行し出力情報を生成するために入力データにプログラム・コードが適用される。出力情報は周知の方法で1つまたは複数の出力デバイスに適用される。
各プログラムは、コンピュータ・システムと通信するために高レベルの手続き型プログラミング言語および/もしくはスクリプト言語またはオブジェクト指向プログラミング言語および/もしくはスクリプト言語で実装されることが好ましい。しかし、プログラムは必要に応じてアセンブリ言語または機械言語で実装されてもよい。いずれの場合も、言語はコンパイラ型言語であってもまたはインタープリタ型言語であってもよい。そのような各コンピュータ・プログラムは、汎用または専用のプログラム可能なコンピュータによって読み取り可能な記憶媒体またはデバイス(たとえば、ROMまたは光ディスク)上に記憶され、記憶媒体またはデバイスが本明細書で説明する手順を実行するためにコンピュータによって読み取られたときにコンピュータを構成し動作させることが好ましい。本発明のシステムは、コンピュータ・プログラムを備えて構成される非一時的コンピュータ可読記憶媒体として実装されるとみなされてもよく、そのように構成された記憶媒体は、コンピュータを特定または所定の状態で動作させ、本明細書で説明する機能を実行させる。
さらに、記載の実施形態の方法、システム、およびデバイスは、1つまたは複数のプロセッサに対するコンピュータが使用可能な命令を保持する物理的な非一時的コンピュータ可読媒体を備えるコンピュータ・プログラム製品で配布することができる。媒体は、1つまたは複数のディスケット、コンパクト・ディスク、テープ、チップ、磁気記憶媒体また
は電子記憶媒体などを含む様々な形態で設けられてもよい。コンピュータが使用可能な命令はコンパイルされたコードおよびコンパイルされていないコードを含む様々な形態であってもよい。
現在、HTTPベースのアダプティブ・ストリーミングには様々な異なる規格がある。テーブル1は5つの例示的な規格の様々な特性を記載している。
Figure 0006014870
テーブル1に示すように、これらの規格の各々がHTTPをトランスポート・プロトコルとして使用し、各規格がMPEG−4 AVC(すなわち、H.264)規格をビデオ・コーデック(すなわち、符号化フォーマット)として使用してもよい。しかし、これらの共通要素を除いて、例示された規格はファイル・フォーマット方式および配信方式(すなわち、配信フォーマット)の点で著しく異なる。この実施形態を他のトランスポート・プロトコルおよびビデオ・コーデックとともに使用できることが諒解されよう。
コンテンツ製作者の観点からは、複数のプレーヤに同じコンテンツを配信すると、より多くのデバイスおよび規格がサポートされるので徐々に複雑さが増していく。有利なことに、各規格はH.264の同じ符号化フォーマット(MPEG−4 AVC)をサポートすることができるので、コンテンツ製作者はサポートすべきビットレートごとに1度コンテンツを符号化するだけでよい。しかし、様々なコンテナ・フォーマットをサポートするにはコンテンツ・ファイルを複数回再作成し記憶する必要がある。特に、コンテンツ・ファイルが作成されるとき、符号化されたビデオ・コンテンツおよびオーディオ・コンテンツは一般に、特定のプレーヤまたは規格に適切なフォーマットに「マックス処理」される。
さらに、様々なフォーマットの各々のコンテンツをそれぞれの配信フォーマットを理解する特定のサーバによって配信する必要がある場合がある。
Figure 0006014870
次にテーブル2を参照すると、例示的な10分のビデオの3つの主要な配信フォーマットをサポートすることのストレージに対する影響が示されている。各配信フォーマットはオーバヘッドのわずかな差を有することがあるが、この例では説明を単純にするためにオーバヘッドは同じであると仮定した。
テーブル2を見ると分かるように、すべての3つのソリューションの間で符号化フォーマットは同一であってよいにもかかわらず、サポートされる規格ごとに異なる配信フォーマットが使用され、場合によってはこれに伴ってコンテナ・フォーマットが異なるので、必要なストレージ空間は事実上3倍になる。たとえば、Appleフラグメントは持続時間が10秒に過ぎず、したがって、より多くのファイルが存在する。したがって、さらなるサポートされる各配信フォーマットによって、必要なストレージ空間が付随的に増大することがある。これによって、コンテンツ配信ネットワークの各端部に配置されたオリジン・サーバとキャッシング・サーバとの間でコンテンツを配信するための帯域幅コストが増大することもある。
上記に示した例示的な規格は一般に、コンテンツを時間的に揃えられたメディア・フラグメントにグループ分けする同じ基本的手法を、コンテンツを検索するためにどのフラグメントを再生すべきかを判定するインテリジェント・クライアントと一緒に使用する。しかし、コンテンツを検索するのに使用される実際の手法および配信フォーマットは規格ごとに異なる。
Adobe規格およびMicrosoft規格によって使用される手法において、モデルは独自のURL要求を発するクライアントに基づく。独自のURL要求は、その要求を解釈し、要求されたコンテンツを含む適切なファイルから適切なデータを検索するサーバ・モジュールによって受信される。
サーバ・モジュールは、Microsoft IISまたはApacheなどの既存のHTTPサーバにプラグインされてもよい。したがって、コンテンツ製作者が様々な配信フォーマットの各々を使用してコンテンツを各デバイスに配信することを望む場合、コンテンツ製作者は、様々なプラグインの各々を実行する異なるサーバを動作させることが必要になることがある。同様に、コンテンツ製作者は、サポートされる規格ごとに異なるネットワーク・インフラストラクチャを、複数のオーバレイ・ネットワークを管理するすべての関連するコストとともにサポートすることが必要になる場合がある。
様々なサーバ手法に加えて、個々のクライアント手法の各々が、所望のビットレートと、ネットワーク条件の変化に応答してビットレートをいつ調整すべきかとを選択するため
の各手法自体の特定のアルゴリズムと一緒に開発されている。これらのクライアントの各々は様々な条件において異なるように動作するように調整されてもよい。
この結果、各規格は、これらのクライアント・アルゴリズムにリンクされたコンテンツ作成のための関連する「ベスト・プラクティス」を有する。たとえば、Microsoftは2秒〜5秒のフラグメント持続時間を使用することを推奨し、一方、Appleは10秒のフラグメント持続時間を使用することを推奨している。Adobeは目標とする展開に応じて複数の推奨持続時間を有する。
この複雑さに加えて、符号化フォーマットにおけるコーデック・プロファイルの問題がある。特に、特定のデバイスはH.264(MPEG−4 AVC)コーデック規格によって定義されるプロファイルのサブセットしかサポートしないことがある。これらのプロファイルの選択およびサポートはコンテンツ製作者に委ねられることがある。その結果、コンテンツ製作者は単に、クライアント・デバイスおよびプレーヤ・タイプごとにコンテンツを再符号化しマックス処理することがあり、処理、記憶、およびコンテンツ管理の問題がさらに深刻化する。
トランスコーディングの概念は、メディア・ファイルまたはメディア・ストリームをあるコーデックから別のコーデックに再符号化する工程として理解される。関連する概念として、メディア・ファイルまたはメディア・ストリームの符号化パラメータを変更し、同じコーデックを使用して1つまたは複数の出力符号化ファイルまたは出力符号化ストリームを様々なビットレート(通常ソース・コンテンツよりも低いビットレート)で作成する工程であり得るトランスレーティングがある。
全復号工程および全再符号化工程と比較して計算要件を低減させる特定のトランスレーティング技法が開発されている。これらのトランスレーティング技法は主として、体感品質を向上させることを目的として、ビデオ・ストリームがネットワーク条件に基づいてクライアントに配信されるときにビデオ・ストリームのビットレートを変化させるのを可能にする方法として開発されている。そのような技法は配信元の符号化工程の間に下される決定(たとえば、動きベクトル情報の再使用など)を利用することができる。しかし、これらの技法のいくつかは、再符号化工程における様々な量子化パラメータのみをサポートし、一方、空間解像度の変更などの他のより柔軟な変更を可能にしない場合があるという点で制限されることがある。最近のHTTPベースのアダプティブ・ストリーミング手法では純粋なトランスレーティング手法の要件が低減している。
トランスコーディングおよびトランスレーティングに対して、本明細書では、コンテナ・フォーマットを特定のクライアントまたはプレーヤの要件を満たすように変更し、一方、基本的なコンテンツをその配信元の符号化形態に保持することを含むトランスマックス変換工程について説明する。トランスマックス変換を実行するための計算要件は、トランスレーティングまたはトランスコーディングの計算要件よりも数桁低くなり得る。これは、トランスマックス変換ではビデオ圧縮(コーデック)レベルでのコンテンツの処理を省略することができるからである。
現在すべてが通常H.264コーデックをサポートしているHTTPベースのアダプティブ・ストリーミング・ソリューション、およびそれに伴う低計算要件では、1組のコンテンツ・ファイルを使用して、さらなるトランスコーディングまたはトランスレーティングなしに、一般に使用されている様々なHTTPベースのアダプティブ・ストリーミング手法のうちの任意の手法をサポートするのを可能にするためにトランスマックス変換を使用することができる。
実際には、トランスマックス変換は、配信元の配信フォーマットにかかわらず既存のコンテンツを得て、適切な1組のファイル(たとえば、マニフェストおよびコンテンツ・フラグメント)を動的に作成し、クライアントの所望の配信フォーマットを使用して特定のクライアントに配信することができる1組のサービスを含んでもよい。
コンテンツ・デリバリ・ネットワーク(CDN)では、トランスマックス変換モジュールが配置されているかぎりトランスマックス変換を「オンザフライ」または「オンデマンド」で実行してもよい。場合によっては、トランスマックス変換モジュールがオリジン・サーバ(すなわち、配信元コンテンツ・サーバ)の近くに配置されてもよい。他の場合には、トランスマックス変換モジュールがネットワーク内の他の場所(たとえば、クラウド内)に存在してもよい。最後に、場合によっては、トランスマックス変換モジュールがCDNのエッジ・ノードまたはその近くに配置されてもよい。エッジ・ノードでオンザフライ・トランスマックス変換を実行することに伴うさらなる利点があり得る。
通常、汎用ウェブ・サーバのステートレス性によって、CDNのエッジ・ノードで提供することのできるサービスの性質が限定される。すなわち、汎用ウェブ・サーバは特定のクライアントからの各要求を追跡する能力が欠如しており、各要求を特定のコンテンツ・アイテムを求める過去または将来の要求に関連付けることがある。このようにストリーミング・セッションの状態を追跡する能力の欠如によってセッション特有のサービスを提供する能力が限定される。
本明細書では、特定のエンド・ユーザからの特定のコンテンツを求める要求を識別された特定のクライアント・ストリーミング・セッションにリンクすることのできるステートフル・セッション・モデルについて説明する。
いくつかの実施形態では、(たとえば、一意のセッション識別子を含む)各セッションに特有のコンテンツ・マニフェスト・ファイルを作成し、したがって、マニフェストまたはフラグメントのいずれかを求めるすべての将来の要求を同じセッションの一部として識別できるようにすることによって、このステートフル・セッション追跡を実現してもよい。セッションを識別し追跡する能力は、高いビットレート(たとえば、より高品質のストリーム)を異なる価格帯における顧客に制限すること、または加入タイプもしくは支払いタイプに基づいて再生時間を制限することなどの、さらなるサービスおよび展開モデルを迅速に処理するのを可能にする。この能力は、いくつかのパラメータに基づき得るポリシーを使用することによって実現されてもよい。
ポリシーはセッションごとに適用されてもよい。レート限定などのセッションごとのポリシーは、ユーザ・グループ(たとえば、www.example.comのすべてのユーザ)用の最大総帯域幅を割り当てる能力を利用することができる。個々の各ユーザのレート・シェイピングを行うことによって、このグループの利用可能な帯域幅をすべての同時ユーザ間に平等に分配することができる。時間制限またはダウンロード量などのポリシーは、セッションごとに適用されてもよい。さらに、ユーザはプレーヤ・タイプ、対象URL、ネットワーク・タイプなどのセッション・コンテキストに基づいてグループ分けされてもよい。
セッション追跡とオンザフライ・トランスマックス変換を組み合わせると、特定のクライアント・デバイスまたはプレーヤに特有であり得、かつクライアントの好ましい配信フォーマットを使用し得るマニフェストおよびコンテンツ・フラグメントを作成するのが可能になる。したがって、各セッションは一意であり得、その特定のセッションに最適化された異なるQoEを実現する。
本明細書では、セッション追跡またはトランスマックス変換、あるいはその両方を使用することができる全逆トランスレーティング・プロキシシステムについて説明する。このシステムは既存のアダプティブ・ストリーミング環境にシームレスに組み込むことができる。特に、このシステムでは、配信元のコンテンツが特定の配信フォーマットであることは必要とされない。システムは、クライアントまたはサーバのいずれによって使用される特定の配信フォーマットにもかかわらず、クライアントからの各要求を配信元コンテンツ・サーバによってサポートされる配信フォーマットにトランスマックス変換または「変換」し、かつ配信元コンテンツ・サーバからの各要求をクライアントによってサポートされる配信フォーマットに(および、その反対の形に)トランスマックス変換または「変換」することができる。たとえば、コンテンツ製作者によって設置されたオリジン・サーバがMicrosoftスムース・ストリーミング配信フォーマットを使用する場合、システムは、要求側クライアントによって使用される配信フォーマットにはかかわらずにネイティブ・スムース・ストリーミング・プロトコルを使用して要求されたコンテンツを検索することができる。逆に、システムは要求されたコンテンツをクライアントによって使用される配信フォーマットにトランスマックス変換してもよい。したがって、コンテンツ製作者は、エンコーダ、コンテンツ管理システム、およびオリジン・サーバにおけるコンテンツ製作者の既存の投資のすべてを保持し利用することができる。多くのコンテンツ製作者にサービスを提供するCDNの場合、場合によっては様々なストリーミング規格の各々を報告する必要がある複数のパラレル・エッジ・ノードの代わりにこのシステムが設置されてもよい。
次に図1を参照すると、ストリーミング・メディア・プレゼンテーションを送受信するための例示的なシステム100が示されている。システム100は、ネットワーク110と、1つまたは複数のオリジン・サーバ120および120’と、サーバ側プロキシ・サーバ130と、中間プロキシ・サーバ150と、1つまたは複数のエッジ・サーバ160および160’と、1つまたは複数のクライアント・デバイス190および190’とを備える。
ネットワーク110は、インターネットなどの1つまたは複数の専用網および公衆網で構成されたデータ・ネットワークであってもよい。
オリジン・サーバ120は、オーディオ・ファイルおよびビデオ・ファイルなどのメディア・コンテンツをMPEG−4 AVCフォーマットで記憶するためのデータ・ストレージと、HTTPベースのアダプティブ・ストリーミング・プロトコルを使用してメディア・コンテンツを提供するように構成されたメモリおよびプロセッサとを備えたネットワーク・サーバであってもよい。1実施形態において、オリジン・サーバ120は、Microsoftスムース・ストリーミング配信フォーマットを使用してメディア・コンテンツを提供するように構成されてもよい。他の実施形態では、オリジン・サーバ120は、AdobeまたはAppleによって開発された配信フォーマットなどの別の配信フォーマットを使用してメディア・コンテンツを提供するように構成されてもよい。
オリジン・サーバ120’は一般に、オリジン・サーバ120とは異なる配信フォーマットをHTTPベースのアダプティブ・ストリーミングに使用し得ることを除いてオリジン・サーバ120に類似していてもよい。
エッジ・サーバ160は、メディア・コンテンツをキャッシュするためのデータ・ストレージと、本明細書で説明するような逆トランスレーティング・プロキシ・サービスおよびトランスマックス変換サービスを提供するように構成されたメモリおよびプロセッサとを備えるネットワーク・サーバまたは装置であってもよい。各エッジ・サーバ160は、地理的にまたはネットワークに関して(すなわち、比較的少ないネットワーク・ホップ内で)1つまたは複数のクライアント・デバイス190および190’に概ね近接して配置
されてもよい。
サーバ側プロキシ・サーバ130および中間プロキシ・サーバ150は、ネットワーク上の異なる位置に存在し得ることを除いて、エッジ・サーバ160に概ね類似していてもよい。たとえば、サーバ側プロキシ・サーバ130はオリジン・サーバ120の近くに位置してもよく、中間プロキシ・サーバ150はネットワーク110内(たとえば、「クラウド」内)に位置してもよい。
クライアント・デバイス190および190’は、パーソナル・コンピュータ、タブレット・コンピュータ、スマートフォン、ネットワーク対応テレビジョン、またはメディア・プレーヤなどのネットワーク対応マルチメディア再生デバイスであってもよい。各クライアント・デバイス190または190’は一般に、ストリーミング(たとえば、HTTPベースのアダプティブ・ストリーミング)配信フォーマットを使用してネットワークを介してメディア・コンテンツを検索し、コンテンツをユーザに対して再生できるように復号するように構成し得るメモリおよびプロセッサを備える。クライアント・デバイス190’は、クライアント・デバイス190とは異なる配信フォーマットを使用するように構成され得ることを除いてクライアント・デバイス190に概ね類似していてもよい。
たとえば、1実施形態において、クライアント・デバイス190は、Microsoftスムース・ストリーミング配信フォーマットを使用してメディア・コンテンツを検索するように構成されてもよい。他の実施形態では、クライアント・デバイス190は、AdobeまたはAppleによって開発された配信フォーマットなどの別の配信フォーマットを使用してメディア・コンテンツを検索するように構成されてもよい。
次に図2を参照すると、従来技術のストリーミング・システム200が示されている。ストリーミング・システム200は、オリジン・サーバ220と、クライアント・デバイス290と、キャッシング・サーバ240とを備える。オリジン・サーバ220は、オリジン・サーバ120に概ね類似していてもよい。同様に、クライアント・デバイス290は、クライアント・デバイス190または190’に概ね類似していてもよい。
キャッシング・サーバ240は、リバース・プロキシ・サービスを提供するように構成されたデータ・ストレージ、メモリ、およびプロセッサを備えるリバース・プロキシまたはキャッシング・サーバであってもよい。一般に、リバース・プロキシはクライアント・デバイス290などのクライアントから要求を受信するためのHTTPサーバを備える。リバース・プロキシは、オリジン・サーバ220などの上流側サーバに要求を送信するためのHTTPクライアントも備える。要求応答が受信されると、リバース・プロキシは応答データをクライアント・デバイス290に転送し、場合によっては応答データをローカルにキャッシュしてもよい。後で、リバース・プロキシが(たとえば、同じコンテンツを求める)別の同一の要求を受信した場合、リバース・プロキシはローカルにキャッシュされた応答データで直ちに応答することができる。したがって、リバース・プロキシは、場合によってはオリジン・サーバ220と直接通信する多数のクライアントにサービスを提供する負担を軽減することができる。
ストリーミング・システム200において、オリジン・サーバ220、キャッシング・サーバ240、およびクライアント・デバイス290の各々は、「プロトコルX」と示された同じストリーミング配信フォーマットを使用して通信する。プロトコルXは、周知のHTTPベースのアダプティブ・ストリーミング配信フォーマットのいずれかであってもよい。
次に図3を参照すると、オリジン・サーバ320と、キャッシング・サーバ340と、
クライアント・デバイス390とを備える別のストリーミング・システム300が示されている。ストリーミング・システム300の各要素はストリーミング・システム200における対応する要素に概ね類似している。しかし、オリジン・サーバ320はプロトコルX配信フォーマットを使用して通信するように構成されるが、キャッシング・サーバ340とクライアント・デバイス390はどちらも異なる「プロトコルY」配信フォーマットのみを使用して通信するように構成される。
したがって、クライアント・デバイス390がクライアント配信フォーマットの要求をオリジン・サーバ320に(直接またはキャッシング・サーバ340を介して)送信することを試みると、配信フォーマットが認識されないのでオリジン・サーバ320はエラーで応答することがある。
次に図4を参照すると、簡略化された例示的なストリーミング・システム400が示されている。ストリーミング・システム400は、それぞれオリジン・サーバ320およびクライアント・デバイス390に概ね類似しているオリジン・サーバ420とクライアント・デバイス490とを備える。ストリーミング・システム400は中間サーバ460をさらに備える。
中間サーバ460は、本明細書で説明するような逆トランスレーティング・プロキシ・サービスを提供するように構成されたデータ・ストレージ・デバイス、メモリ、およびプロセッサを備えてもよい。
図示のように、クライアント・デバイスはコンテンツ要求を生成し、プロトコルY(すなわち、クライアント配信フォーマット)を使用してその要求を中間サーバ460に送信する。中間サーバ460は、コンテンツ要求の配信フォーマットを識別し、プロトコルY配信フォーマットを使用してコンテンツ要求をオリジン・サーバ420に転送することを試みる。中間サーバ460は、オリジン・サーバ420がクライアント配信フォーマットをサポートしないと判定した場合、コンテンツ要求をオリジン・サーバ420によってサポートされる別の配信フォーマット(たとえば、プロトコルX)に変換する。
中間サーバ460は次いで、要求された応答コンテンツをオリジン・サーバ420から検索し、応答コンテンツをクライアント・デバイス490に配信できるようにクライアント配信フォーマットに変換し直すことができる。
したがって、オリジン・サーバ420とクライアント490はどちらも、そのそれぞれのサポートされる配信フォーマットを使用して通信することができる。さらに、いくつかの実施形態において、中間サーバ460は、検索されたコンテンツを配信元配信フォーマット、またはクライアント配信フォーマット、またはその両方で記憶(たとえば、キャッシュ)してもよく、それによって、後でさらに別の配信フォーマットを使用して着信し得る別の要求に応答してこのコンテンツを配信することができる。
リバース・プロキシは、HTTPサービスのコンテキストで広く設置されており、したがって、要求を容認して適切なホスト(たとえば、オリジン・サーバ)に転送するための技術はよく理解されている。しかし、周知のリバース・プロキシは一般に、クライアント・デバイスから受信された同じ要求URL(Uniform Resource Locator)を転送するに過ぎない。
これに対して、中間サーバ460は、オリジン・サーバによってサポートされる配信フォーマット、および本明細書で説明するいくつかの他の因子に基づいて、受信される要求URLを変更してもよい。
受信される要求URL(すなわち、クライアント要求URL)は一般に、3つの基本的なコンポーネント、すなわち、URL内のオリジン・サーバのホスト名を表す「ドメイン」、特定のリソースを識別するためにオリジン・サーバによって使用されるディレクトリ構造またはパス構造を表す「ロケーション」と、マニフェストまたはコンテンツ・フラグメントなどの、特定のリソースを識別する要求されたURLの部分を表すメディア識別子を含む。
たとえば、Apple配信フォーマットを使用するクライアントによるマニフェスト要求の場合、クライアント要求URLは「http://www.example.com/ABR/video1/BBB.m3u8」であってもよい。したがって、ドメインは「www.example.com」であり、パスは「/ABR/video1/」であり、メディア識別子は「BBB.m3u8」である。
少なくともいくつかの実施形態において、URLのドメイン・コンポーネントおよびパス・コンポーネントは変更されないままであってもよい。しかし、メディア識別子はオリジン・サーバによってサポートされる配信フォーマット(すなわち、配信元配信フォーマット)の要件に応じて変更されてもよい。
Apple配信フォーマットの上記の例において、オリジン・サーバがMicrosoftスムース・ストリーミング配信フォーマットしかサポートしない場合、メディア識別子は「BBB.m3u8」から「BBB.ism/Manifest」に変更される。ドメインおよびパスは元のままであってもよい。
次に図5を参照すると、ストリーミング・システム500の一部である中間サーバ560の例示的な簡略化されたシステム・ブロック図が示されている。ストリーミング・システム500は、ストリーミング・システム400に概ね類似している。同様に、各オリジン・サーバ520およびクライアント・デバイス590はそれぞれ、オリジン・サーバ420およびクライアント・デバイス490に概ね類似してもよい。
中間サーバ560は概念上、データ・プレーン、コントロール・プレーン、およびマネジメント・プレーンを含む3つのプレーンとして構成される。
HTTPサーバ566(中間サーバ・モジュールとも呼ばれることもある)はクライアント・デバイス590から(たとえば、クライアント要求URLを含む)HTTP要求を受信し、受信された要求をコンテンツ・ジェネレータ564に転送するように構成されてもよい。HTTPサーバ566は、コンテンツ・ジェネレータ564から受信されたときに、HTTP要求に対応する応答データを配信するように構成されてもよい。
HTTPサーバ566は、各HTTP要求の初期妥当性検査を実行し、たとえば、要求をHTTPプロトコルに適合させてもよい。一般に、HTTPサーバ566は、高性能を実現し、多数の同時接続を可能にするように最適化されてもよい。
HTTPクライアント562(中間クライアント・モジュールと呼ばれることもある)は、コンテンツ・ジェネレータ564からHTTP要求を受信し、要求を適切なオリジン・サーバ520に転送するように構成されてもよい。同様に、HTTPクライアント562は、HTTP要求に応答して応答データが各オリジン・サーバ520から受信されたときに応答データをコンテンツ・ジェネレータ564に配信するように構成されてもよい。一般に、HTTPクライアント562は、高性能(たとえば、高スループット)を実現するように最適化されてもよい。
コンテンツ・ジェネレータ564は、ある構成要素(たとえば、HTTPサーバ566、HTTPクライアント562、コントロール・プレーン)から別の構成要素に要求を移動し、他の構成要素の各々間で要求同士をリンクするように構成されてもよい。さらに、コンテンツ・ジェネレータ564は要求を解析して要求を最もうまく実現するにはどうすればよいかを判定する。
たとえば、コンテンツ・ジェネレータ564は、プロトコルX配信フォーマットを使用する要求の宛先がプロトコルY配信フォーマットを使用するオリジン・サーバであることを特定し、したがって、この要求を実現するにはプロトコルY−Xトランスマクサが必要であると判定してもよい。
さらに、コンテンツ・ジェネレータ564はポリシーおよびクライアント・セッション情報をコントロール・プレーン(またはマネジメント・プレーン)から検索してクライアント要求を実現すべきかどうかまたはクライアント要求をどのように実現すればよいかを判定してもよい。
マネジメント・プレーンはポリシーを記憶するためのポリシー・モジュール570と、構成設定を記憶するための構成モジュール572と、システムに関する統計を記憶し追跡するための統計追跡モジュール574と、ログを記憶するためのログ・モジュール576と、システム・イベントを追跡するためのイベント・モジュール578とを備えてもよい。
コンテンツ・ジェネレータ564は、要求および応答のあるアダプティブ・ストリーミング配信フォーマットから別のアダプティブ・ストリーミング配信フォーマットへの変換を担当する1つまたは複数のトランスマクサ565を備えてもよい。各トランスマクサ565は、イングレス配信フォーマットとエグレス配信フォーマットの両方に特有であってもよい。たとえば、Microsoftスムース・ストリーミング−AppleトランスマクサはMicrosoftスムース・ストリーミング−Adobeトランスマクサとは異なる可能性が高い。
各トランスマクサ565はクライアント要求を解析して、クライアント要求が有効な要求である(たとえば、配信フォーマット要件に適合している)かどうかを判定すること、要求がマニフェストを求める要求かそれともコンテンツ・フラグメントを求める要求かを判定することなどを行うように構成されてもよい。
クライアント要求が複数のオリジン・サーバ要求を実現することを求める場合、適切なトランスマクサ565が、クライアント要求を実現するのにどのオリジン・サーバ要求が必要であるかを判定し、対応する要求を生成して転送してもよい。
トランスマクサ565は、マニフェスト要求およびコンテンツ・フラグメント要求とマニフェスト応答およびコンテンツ・フラグメント応答との両方を配信元配信フォーマットとクライアント配信フォーマットとの間で変換してもよい。
いくつかの実施形態において、トランスマクサ565は2つ以上のモジュールで構成される。第1のモジュール、すなわちマッピング・モジュールは、マニフェスト・サービスおよびプロトコル・サービスを提供することができ、一方、第2のモジュール、すなわち、コンテナ変換モジュールはフラグメント再パッケージング・サービスを提供する。再パッケージングは2つの機能、すなわち、抽出(たとえば、配信元フラグメントからサンプルを取り出す工程)およびパッキング(たとえば、サンプルをクライアントにフラグメント配信できるように新しいコンテナ・フォーマットにする工程)を含む。
コントロール・プレーンは主としてセッション管理モジュール568を備えてもよい。セッション管理モジュール568はクライアント・デバイス590によって開始されたクライアント・セッションを管理し、セッションベースのポリシー情報または構成情報をコンテンツ・ジェネレータ564に供給する働きをする。したがって、セッション管理モジュール568は様々なマネジメント・プレーン・コンポーネントと対話することができる。さらに、セッション管理モジュール568は、セッション管理モジュール568とコンテンツ・ジェネレータ564との対話に基づいてクライアント・セッション情報を作成し、読み取り、更新してもよい。
セッション管理モジュール568は、抽出工程に必要な関連する情報およびコンテキストを含み得るアクティブなクライアント・セッション・テーブルを維持してもよい。
セッション管理モジュール568は、コンテンツ・ジェネレータ564と協働してクライアント・セッション・データを高速に参照することができる。
いくつかの実施形態において、セッション管理モジュール568は、構成されたポリシーのテーブルを維持すること、(たとえば、クライアント属性、ドメイン属性、およびコンテンツ属性に基づいて)ポリシーを決定してクライアントに割り当てること、ならびに統計収集および報告を含み得るポリシー管理機能を実行してもよい。
統計収集および報告は、クライアント・セッション更新情報をロギング・サーバまたはデータベースに送り、セッションがいつ確立され無効化されたかを記録することを含んでもよい。
次に図6を参照すると、図5のシステムに関する簡略化されたコール・フローが示されている。
変換工程に固有の問題の1つは、ストリーミング・セッションの開始時には中間サーバの情報が限定されることである。マニフェスト要求が初めてクライアント・デバイスから受信されたときには、配信元配信フォーマットがクライアント要求URLから容易に明らかにならないことがある。たとえば、オリジン・サーバがマニフェスト要求を実現するのに使用することのできる複数の配信元配信フォーマットをサポートすることがある。したがって、中間サーバ560はクライアント配信フォーマットから配信元配信フォーマットへの適切な変換を判定しなければならない。適切な変換が特定された後、中間サーバは配信元マニフェストを検索し、クライアント・マニフェストを生成してもよい。場合によっては、中間サーバは要求URLに対応する配信元配信フォーマットを記憶し、その要求URLに関する将来のマニフェスト要求およびコンテンツ・フラグメント要求を迅速に処理するのを可能にしてもよい。
クライアント要求が初めて受信されるとき、コンテンツ・ジェネレータ564はその要求が初期マニフェスト要求であるかどうかを特定することを試みてもよい。たとえば、コンテンツ・ジェネレータ564は要求URLを調べ、あらかじめコンテンツ・ジェネレータ564によって生成されたかまたは使用されており、セッションがすでに存在することを示す一意の識別子(たとえば、UUID)を含むかどうかを判定し、要求は初期マニフェスト要求ではないと判定することができる。
より一般的にすべての種類のクライアント要求に関して、コンテンツ・ジェネレータ564は、HTTP要求のURLを解析し、どの配信フォーマットが使用されているかを示す特定のシグナチャがURLに含まれているかどうかと、要求に対処するにはどのトランスマクサ565を使用すべきかとを判定してもよい。各配信フォーマットは、そのマニフェスト要求フォーマットの中に一意の特定のシグナチャを有する。たとえば、Micro
softスムース・ストリーミング配信フォーマットは、「XXXXX.ism/Manifest」の形をしたURLのメディア識別子コンポーネントを有する。ここで、XXXXXはメディア・アセットの名称である。別の例において、Adobe配信フォーマットは.f4mというファイル拡張子を使用してマニフェストを表す。同様に、Apple配信フォーマットは.m3u8というファイル拡張子を使用してマニフェストを表す。したがって、いくつかの実施形態において、コンテンツ・ジェネレータ564は、要求がマニフェストに対応するかどうかを判定するうえで要求URLのメディア識別子コンポーネントを使用するだけでよい。
マニフェスト・ファイルは一般に、マルチメディア・アイテムを構成するコンテンツ・フラグメントのインデックスを提示し、利用可能なストリーミング・オプションに関するメタデータを提示するために使用される。たとえば、マニフェスト・ファイルは、配信フォーマット・タイプ、配信フォーマット・バージョン、タイムスケール、コンテンツ持続時間、フラグメント持続時間、フラグメント符号化パラメータ(たとえば、ビットレート、コーデック、サイズ)、フラグメントURLまたはURLテンプレート、およびその他のデータを指定してもよい。
したがって、マニフェストは、クライアント・デバイスがサポートされる様々なビットレート、ビデオおよびオーディオがどのように符号化されているか、クライアントは特定のフラグメントを求める要求をどのように生成すればよいかを判定するのに十分な情報をクライアント・デバイスに提示する。
例示的なMicrosoftスムース・ストリーミング・マニフェスト・ファイルを以下に示す。
Figure 0006014870
Figure 0006014870
Figure 0006014870
Figure 0006014870
Figure 0006014870
Microsoftスムース・ストリーミング配信フォーマットに対して、Apple
HLS配信フォーマットは、初期マニフェストがさらに低いレベルのマニフェストを指す多層マニフェスト手法を使用する。初期マニフェストを以下に示す。
Figure 0006014870
上記の300000kbpsストリームについてのより低いレベルのマニフェストを以下に示す。
Figure 0006014870
これに対して、Adobe配信フォーマットは、フラグメント番号と、マニフェスト内に符号化され圧縮された「ブートストラップ」と呼ばれるフィールド内のフラグメント番号に関連するタイムラインとを特定する。Adobeマニフェストの例を以下に示す。

Figure 0006014870
Figure 0006014870
配信フォーマット・タイプごとのマニフェスト・ファイル・フォーマットが著しく異なることが諒解されよう。この結果、要求URLタイプも異なる。したがって、配信フォーマット・タイプは通常、要求URLのパターンマッチングを行うことによって判定され得る。パターンマッチングを使用すると、将来、新しい配信フォーマット・タイプおよび配信フォーマット・バージョンが開発されたときに、更新済みのパターンマッチ定義によって中間サーバ560を容易に更新することができる。
再び図6を参照すると分かるように、605において、クライアント・デバイス590は(マニフェスト要求URLを含む)クライアント要求を中間サーバ560に送信する。コンテンツ・ジェネレータ564はマニフェスト要求URLを特定し、要求を適切なトランスマクサ565に渡す。
オリジン・サーバ520が中間サーバ560によって知られている場合、トランスマクサ565は直ちにオリジン・サーバ520の適切なマニフェスト要求URLを生成し、その要求を610において送信してもよい。
オリジン・サーバ520が知られていない場合、トランスマクサ565は、1度に1つのマニフェスト要求URLを生成してオリジン・サーバ520に転送することによって、オリジン・サーバ520によってサポートされる配信フォーマット・タイプを特定することを試みてもよい。オリジン・サーバ520が生成された特定のURLを拒絶した(たとえば、HTTP404エラー応答が返された)場合、トランスマクサ565は応答が首尾よく受信されるまでこの工程を繰り返してもよい。この反復的な工程は、トランスマクサ
565が考えられるすべての知られたマニフェスト要求URLが試されたときに停止されてもよい。
各トランスマクサ565はマニフェスト構成パターンを指定する独自の構成ファイルを有してもよい。1実施形態において、構成パターンは、以下でテーブル3に示すようにタグ値対を使用して指定されてもよい。
Figure 0006014870
したがって、http://example.com/video_storage/supervideo.m3u8という例示的な要求URLの場合、[BASE_URL]は「http://example.com/video_storage」であり、[DOMAIN_URL]は「http://example.com」であり、[LOCATION_URL]は「video_storage」であり、[MEDIA_URL]は「supervideo」であり、[EXT_URL]は「m3u8」である。
トランスマクサ565のマッピング・モジュールは、サポートされる各配信フォーマットに特有のあらかじめ指定されたテンプレート・パターンに適切な値を挿入することによって、オリジン・サーバに転送できるマニフェスト要求URLを生成してもよい。各オリジン・サーバはわずかに異なる形態を有するので、特定のプロトコル・タイプ内でも、トランスマクサが反復することのできるあらかじめ指定された複数のテンプレート・パターンがあり得る。
たとえば、Apple配信フォーマットをサポートするオリジン・サーバは、わずかに異なる実施形態をマニフェスト要求URLの形で有してもよい。したがって、あらかじめ指定されたテンプレート・パターンには以下のテンプレート・パターンが含まれてもよい。
Figure 0006014870
Apple配信フォーマットとその他の配信フォーマットの両方について様々な追加のパターンがあらかじめ指定されてもよいことが諒解されよう。
一例として、Apple配信フォーマットを使用してオリジン・サーバ宛てに送られるMicrosoftスムース・ストリーミング配信フォーマットのクライアント要求について検討する。要求URLは、「http://example.com/vod/supervideo.ism/Manifest」の形をとることがある。この例では[B
ASE_URL]は「example.com/」であり、[LOCATION_URL]は「vod/」であり、[MEDIA_URL]は「supervideo」である。
したがって、「http://[BASE_URL]/[LOCATION_URL][MEDIA_URL].m3u8」のオリジン・サーバに関するあらかじめ指定されたパターンに基づいて、このオリジン・サーバに関する生成される要求URLは「http://example.com/vod/supervideo.m3u8」になる。
610において要求URLが生成され送信され、615においてマニフェストを含む応答が首尾よく受信されると、トランスマクサ565のマッピング・モジュールは、受信されたマニフェストをオリジン・サーバによって使用されるプロトコルからクライアント・デバイスによって使用されるプロトコルに変換してもよい。
この段階において、セッション管理モジュール568は、クライアント・デバイス590およびオリジン・サーバ520に関連するストリーミング・セッションを特定するために、クライアント・デバイス590のために作成されるマニフェストに挿入される一意の識別子を生成してもよい。
いくつかの実施形態において、一意の識別子は、要求URLテンプレートに一意のセッション識別子(UUID)を含めるようにマニフェストに挿入されてもよい。したがって、クライアント・デバイス590がコンテンツ・フラグメントを求める要求をさらに発すると、中間サーバ560はその要求が特定のセッションに関連付けられていると特定することができる。一意の識別子はどのトランスマクサ565を使用すべきかを判定するのに使用されてもよい。
挿入される識別子の厳密な位置はマニフェスト・タイプに応じて異なることがある。たとえば、特定のクライアントの場合、要求URLテンプレートにおいてURLの端部にパラメータ・ストリングが含まれることがある。他のクライアントの場合、要求URLテンプレートの[LOCATION_URL]要素にパラメータが挿入されることがある。
上記に指摘したように、各種類のマニフェストは、追加のマニフェストまたはコンテンツ・フラグメントのいずれかを求める将来の要求を提出するにはどのようにすればよいかをクライアントに説明する情報を、中断なしの再生を実現するためのタイミング情報(たとえば、フラグメント持続時間、ビットレートなど)とともに供給する。したがって、各マニフェスト・タイプは、異なる形でフォーマットされ得る同様の情報を含む。
プロトコルごとのフラグメント・サイズおよびフラグメント構造が異なる可能性があるので、特定のクライアント要求を実現するにはオリジン・サーバから複数のコンテンツ・フラグメントを検索することが必要になることがある。たとえば、いくつかのプロトコルでは、各フラグメントに単一のメディア・タイプしか含まれない(たとえば、ビデオのみまたはオーディオのみ)。したがって、オーディオビジュアル・コンテンツの再生を実現するにはビデオ・フラグメントとオーディオ・フラグメントの両方を検索する必要がある。しかし、いくつかの他のプロトコルでは、ビデオ・コンテンツとオーディオ・コンテンツの両方が単一のフラグメントとして多重化され、したがって、再生を実現するのに単一のフラグメントしか必要とされないことがある。
次に図7を参照すると、時間軸上の例示的なビデオ・フラグメント・マッピングおよびオーディオ・フラグメント・マッピングが示されている。コンテンツ・アイテム710は、各々の持続時間が5秒である4つのビデオ・フラグメントと各々の持続時間が4秒である5つのオーディオ・フラグメントとで構成される。これに対して、コンテンツ・アイテ
ム750は、各々の持続時間が5秒である4つのコンテンツ・フラグメントで構成され、各コンテンツ・フラグメントはインターリーブされたビデオ・データおよびオーディオ・データを含む。
様々なメディア・タイプがそれぞれの別個のフラグメント(たとえば、オーディオおよびビデオ)に分離されるとき、各フラグメントが同じ持続時間を有さないことがあることが諒解されよう。しかし、インターリーブ・フォーマットでは、コンテンツ・アイテムの一定の持続時間分のすべてのビデオおよびオーディオ・サンプルが単一の特定のフラグメントに含まれると考えられ得る。
したがって、トランスマクサ・マッピング・モジュールは、分離モデルを表すマニフェストとインターリーブ・モデルを表すマニフェストとの間で変換を行うときに、対象マニフェスト内の様々なコンテンツ・フラグメントのタイミングおよび持続時間を表すにはどうすればよいかを判定することが必要になることがある。
いくつかの実施形態において、ビデオ・フラグメントは一次タイミング・ソースとして選択されてもよい。したがって、トランスマックス変換が分離ソースからインターリーブ・ソースへの変換であるとき、インターリーブ・フラグメントの持続時間は分離ソース内のビデオ・フラグメントの持続時間に基づく。逆に、トランスマックス変換がインターリーブ・ソースから分離ソースへの変換であるとき、インターリーブ・フラグメントの持続時間をビデオ・フラグメントとオーディオ・フラグメントの両方に使用してもよい。
フラグメント要求のクライアント配信フォーマットから配信元配信フォーマットへの変換においてトランスマクサ565のマッピング・モジュールを助けるために、クライアントのために初期マニフェストが作成されるときに各セッションの1つまたは複数のセッション・フラグメント・マッピング・テーブルが作成されてもよい。上述のように、各フラグメントはコンテンツ・アイテム(メディア・アセット)内の特定のタイム・スパンを表し、クライアントに供給されるマニフェストは、特定のタイム・スパンごとにフラグメント要求を作成するにはどうすればよいかを表す。
セッション・フラグメント・マッピング・テーブルは、配信元マニフェストから得たフラグメントのタイムラインおよびクライアント・マニフェスト内のフラグメントの対応するタイムラインを含んでもよい。セッション・フラグメント・マッピング・テーブルの例示的な対が以下のテーブル5Aおよびテーブル5Bに示されている。したがって、マッピング・モジュールは、クライアント・デバイスからの要求を実現するにはオリジン・サーバからどのフラグメントを要求すべきかを判定してもよい。
Figure 0006014870
Figure 0006014870
さらに、トランスマクサ565のマッピング・モジュールは、配信元フラグメントの持続時間に基づく必要のない、異なる長さのフラグメント持続時間を選択してクライアントへの配信を行ってもよい。たとえば、クライアント・マニフェストは持続時間が10秒のフラグメントを定義してもよく、一方、配信元マニフェストは持続時間が2秒のフラグメントを含んでもよい。マッピング・モジュールは、セッション・フラグメント・マッピング・テーブルを使用し、それによって、単一のクライアント・フラグメント要求を実現するには5つの配信元フラグメントを検索する必要があると判定することができる。
必要なコンテンツ・フラグメントが特定され検索された後、トランスマクサ565のコンテナ変換モジュールによってコンテナ・フォーマットを変換する工程を実行してもよい。フラグメント・コンテナの変換は概念上、抽出とパッキングの2つの部分に分割されてもよい。
抽出については、オリジン・サーバから検索されたフラグメントを配信元コンテナ・フォーマットから1組のメディア記述子(すなわち、コンテナ内のすべてのサンプルに適用
されるパラメータ)ならびにオーディオおよびビデオの生サンプルならびにそれらに関連するタイミング(PTSおよびDTS)に「デマックス処理」することができる。パッキングについては、抽出されたデータを対象コンテナ・フォーマットに容易に「マックス処理」することができる汎用データ構造に配置することができる。
メディア記述子の例を以下のテーブル6〜テーブル8に示す。
Figure 0006014870
Figure 0006014870
Figure 0006014870
様々なストリーミング・プロトコルおよび配信フォーマット各々がコンテンツ・フラグメントに関する特定のコンテナ・フォーマットをサポートする。たとえば、Microsoftスムース・ストリーミング・コンテナ・フォーマットは、フラグメントが「MOOF」(ムービー・フラグメント)に含まれるISO.mp4フォーマットに基づく。AdobeもISO.mp4フォーマットに基づくコンテナ・フォーマットを使用するが、サンプルがISOフォーマットに対する独自の追加事項に基づく追加の情報を有することをさらに指定する。AppleはMPEG−2トランスポート・ストリーム・コンテナ・フ
ォーマットを使用する。したがって、各トランスマクサ565は、クライアントの要件および配信元コンテナ・フォーマット(したがって、配信フォーマット)を満たすために、抽出およびパッキングを行うのに必要なコンテナの種類に適合されたコンテナ変換モジュールを有する。
この説明の全体にわたってオーディオ・コンテンツおよびビデオ・コンテンツが参照されるが、同じく同様に処理することができる他の種類のコンテンツ(たとえば、クローズド・キャプション、サブタイトル)があることが諒解されよう。
再び図6を参照すると、620において、クライアント・デバイス590はクライアント・マニフェストを受信し、どのコンテンツ・フラグメントを検索すべきかを判定する。625において、クライアント・デバイス590はクライアント・フラグメント要求を送信する。クライアント・フラグメント要求は、640においてオリジン・サーバ520に送信される配信元フラグメント要求を配信元配信フォーマットで生成するようにトランスマクサ565のマッピング・モジュールによって処理される。いくつかの実施形態において、クライアント・フラグメント要求は、本明細書で説明するように複数の配信元フラグメント要求に対応し得る。同様に、単一の配信元フラグメント要求が複数のクライアント要求に対応し得る。
645において、オリジン・サーバ520は要求されたコンテンツ・フラグメントをトランスマクサ565に送信する。トランスマクサ565のコンテナ変換モジュールは、コンテンツ・フラグメントを配信元配信フォーマットからクライアント配信フォーマットに変換する。変換は、本明細書で説明するようにコンテンツのトランスマックス変換および再パッケージングを伴ってもよい。
660において、中間サーバ560は、クライアント配信フォーマットを使用して、要求されたコンテンツ・フラグメントをクライアント・デバイス590に送信する。
HTTPプロトコルおよび関連するHTTPベースのアダプティブ・ストリーミング・プロトコルのステートレス性に起因して、HTTPプロトコルには任意の単一のセッションの厳密な状態を知るための固有の能力がない。たとえば、クライアントがセッションを中止したかどうかまたは場合によってはセッションを終了した(たとえば、ウェブ・ブラウザ・ウィンドウを閉じた)かどうかを示すクライアントからサーバへのメッセージ送信はない。どちらの場合も、クライアントは単にさらなるデータを要求することを停止する。これによって、セッションがいつ終了したかを特定するうえで問題が生じる。
場合によっては、クライアントはほぼ無期限に中止状態になることがあり、したがって、セッションがいつ永久的に終了したかを特定するうえで信頼できる特定のイベントはない。中間サーバは不定数のクライアント・セッションを永遠にアクティブ状態に維持することができないので、終了したセッションまたは「無効な」セッションを特定してストレージ・リソースおよびメモリ・リソースを新しいセッションに再使用できるようにする方法がなければならない。
1実施形態において、セッション管理モジュール568はすべてのオープン・クライアント・セッションの状態を特定するテーブルを管理する。セッション管理モジュール568は、所定の期間の後すべてのアクティブ・セッションを周期的に「タイムアウト」させ、各セッションをタイムアウト状態とマークしてもよい。現在タイムアウト状態であるセッションが、次の周期的なタイムアウト・イベントの前にさらなるフラグメント要求を発行した場合、そのセッションを再び「アクティブ」とマークしてもよい。逆に、セッションがすでにタイムアウト状態にあり、再び「タイムアウト」イベントが生じるまでにさらなるフラグメント要求を発行していない場合、そのセッションをイナクティビティ・キュ
ーに移動させ、削除候補とマークしてもよい。イナクティビティ・キューは先入れ先出し(FIFO)手法に基づいてもよく、したがって、最も長い間イナクティブであるセッションが最初に削除されるセッションである。しかし、削除候補であるセッションは、中間サーバ160が、セッション・リソースが尽きたと判定するまで削除されなくてもよい。
「タイムアウト」または「イナクティブ」とマークされた任意のセッションは、そのセッションが削除される前にそのセッションに関連するさらなるフラグメント要求が受信された場合に再び「アクティブ」とマークされてもよい。
次に図8を参照すると、クライアント・セッションの状態を表すために中間サーバのセッション管理モジュールによって使用することのできる例示的な状態図が示されている。
810においてクライアント・マニフェスト要求が受信された場合、クライアント・セッションが開始され初期化中とマークされる。その後、そのセッションに関連するさらなるフラグメント要求またはマニフェスト要求が受信された場合、820においてセッション状態はアクティブとマークされる。さらなる要求が受信されない場合、そのセッションは830においてタイムアウトとマークされる。
830および840において、周期的な工程によって初期化状態およびアクティブ状態にあるすべてのセッションの状態がタイムアウトに変更される。しかし、(850において)あるセッションに関連してさらなるフラグメント要求が受信された場合、その関連するセッションを再びアクティブとマークしてもよい。
860において、周期的な工程によってタイムアウト状態にあるすべてのセッションの状態が削除候補に変更される。しかし、(870において)あるセッションに関連してさらなるフラグメント要求が受信された場合、その関連するセッションを再びアクティブとマークしてもよい。
880において、中間サーバ560が、新しいセッションを有効にするためにセッション・リソース(たとえば、メモリ)が必要であると判定し、かつ削除候補とマークされた古いセッションがない場合、削除候補である既存のセッションを削除してもよい。
いくつかの実施形態において、中間サーバ560は1つまたは複数のフラグメント要求のタイミングを使用してクライアント・ストリーミング・セッションのクライアント・セッション状態を判定してもよい。たとえば、要求されたフラグメントが実際に経過したよりも長い時間だけ分離されたタイムコードを有するかまたは各フラグメントが順序を外れて検索されたことをフラグメント要求タイミングが示す場合、中間サーバ560は、クライアントがシーク動作を実行したと推論してもよい。
同様に、タイミングが、実際の経過時間が1つまたは複数のフラグメント要求の再生時間を超えていることを示す場合、中間サーバ560はトリック再生動作が実行されていると推論してもよい。一般に、トリック再生動作は、通常のフレームレート以外のフレームレートでコンテンツが再生される動作である。トリック再生動作の例には「ポーズ」イベント、「早送り」イベント、「巻き戻し」イベント、「スロー・モーション」イベントなどが含まれる。
次に図9を参照すると、図5の中間サーバの例示的な詳細なコール・フローが示されている。
コール・フロー900は概して、中間サーバ560などの中間サーバの構成要素同士の間の例示的なメッセージ・フローを示す。いくつかの実施形態において、基本モデルは、各構成要素が互いに通信するのに要求/応答モデルを使用し、したがって、「ブロックさ
れ」応答を待つ状態にならないという点で非ブロック型であってもよい。
いくつかの実施形態において、コンテンツ・ジェネレータ564は、これらの構成要素間にリンクを維持するように構成されてもよく、一方、セッション管理モジュール568は全体的な接続状態およびポリシーを管理するように構成されてもよい。
図9に示すように、2つの一次エンドツーエンド・メッセージ・フローがある。第1のメッセージ・フローはマニフェスト情報を求める初期要求に続いて生じる。第2のメッセージ・フローはさらなるマニフェストまたはメディア・フラグメントを求める要求に続いて生じる。
メッセージ・フローは905から開始し、クライアントからクライアント配信フォーマットを使用してHTTP GET要求が発行される。910において、コンテンツ・ジェネレータ564は、クライアント配信フォーマットに基づいて要求をどのトランスマクサ565が対処すべきかを判定し、要求を適切なトランスマクサのマッピング・モジュールに渡す。912において適切なトランスマクサが見つからない場合、メッセージ・フローが進行し、945においてエラー・メッセージが発行されてもよい。適切なトランスマクサが見つかった場合、メッセージ・フローは915に進む。
915において、トランスマクサは、HTTP要求が初期マニフェストを求める要求またはそれ以後の要求であるかどうかを判定する。要求が初期要求である場合、フローは920に進み、本明細書で説明するように一意の識別子およびセッション・コンテキスト(たとえば、状態情報)が作成され、次いでフローは935に進む。
要求が初期要求ではない場合、一意の識別子がHTTP要求から抽出され、925においてセッション状態情報を検索するために使用される。
930において、トランスマクサは、要求がマニフェストを求める要求であると判定する。要求がマニフェストを求める要求である場合、フローは935に進み、次いで、マニフェストを求める要求が、配信元配信フォーマットを使用してマッピング・モジュールによって生成され(たとえば、マニフェストを求める中間要求)、オリジン・サーバに送信される。
940において、トランスマクサは、要求に対する応答が首尾よく受信されたかどうかを判定する。エラーが受信された場合、トランスマクサは、945においてクライアント・デバイスにエラー・メッセージを配信すべきであると特定し、950においてエラー・メッセージを対応するHTTP RESPONSEメッセージで送信する。
マニフェストが首尾よく受信された場合、トランスマクサのコンテナ変換モジュールは、990において本明細書で説明するようにマニフェストを変換し、995においてトランスマックス変換されたマニフェストをクライアント・デバイスに配信すべきであると特定する。トランスマックス変換されたマニフェストは、999において対応するHTTP
RESPONSEメッセージで送信される。
930において、トランスマクサが、要求がマニフェストを求める要求ではないと判定した場合、フローは955に進んで要求をオリジン・サーバ・プロトコルにトランスマックス変換し、それによってコンテンツ・フラグメントを求める中間要求を生成し、1つまたは複数のコンテンツ・フラグメントを求める中間要求をオリジン・サーバに送信する。
960において、トランスマクサは、要求に対する応答が首尾よく受信されたかどうかを判定する。エラーが受信された場合、トランスマクサは、980においてクライアント
・デバイスにエラー・メッセージを配信すべきであると特定し、985においてエラー・メッセージを対応するHTTP RESPONSEメッセージで送信する。
コンテンツ・フラグメントが首尾よく受信された場合、トランスマクサのコンテナ変換モジュールは、965において、たとえば配信元コンテナ・フォーマットからフラグメントをアンパックすることによって、1つまたは複数のフラグメントを変換し、970においてトランスマックス変換された1つまたは複数のコンテンツ・フラグメントをクライアント・デバイスに配信すべきであると特定する。トランスマックス変換された1つまたは複数のコンテンツ・フラグメントは、クライアント・コンテナ・フォーマットにパックされ(一方では、配信元符号化フォーマットのままであり)、975において、クライアント配信フォーマットを使用して対応するHTTP RESPONSEメッセージで送信される。
パッキングは、コンテンツ・フラグメントをリアセンブルすることによって複数のフラグメントをクライアント・コンテナ・フォーマットにパックすることを含んでもよく、たとえば、配信元コンテナ・フォーマットおよびクライアント・コンテナ・フォーマットによって、いくつかのフラグメントを備えるそれぞれに異なる長さのセグメントが得られる。
次に図10を参照すると、初期マニフェスト要求を容認するための例示的なコール・フロー1000が示されている。
コール・フロー1000は1001から開始し、HTTPサーバ566がマニフェストを求めるHTTP GET要求をクライアント・デバイス590から受信する。
1002において、HTTPサーバ566は、要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。転送された要求メッセージは、要求識別子、要求URL、クライアント・デバイスIPアドレス、クライアント識別子(たとえば、クッキー)、ユーザ・エージェント、クライアントTCPポート、および要求の時間などのメッセージ詳細を含んでもよい。
1003において、コンテンツ・ジェネレータ564、たとえば、トランスマクサ565のマッピング・モジュールは、要求が初期マニフェスト要求を求める要求であると判定し、セッション管理モジュール568に通知する。この通知は、要求識別子、コンテンツ・ジェネレータ564によって生成されたセッション・コンテキスト識別子、タイムスタンプ、クライアント・プロトコル・タイプ、クライアントIPアドレス、および要求URLなどの詳細を含んでもよい。
セッション管理モジュール568は、1004において、セッションを許容できるかどうか(たとえば、十分なリソースが利用可能であるかどうか、クライアントが許可されているかどうかなど)を判定し、許可メッセージをコンテンツ・ジェネレータ564に送る。許可メッセージは、要求識別子、コンテンツ・ジェネレータ564によって生成されたセッション・コンテキスト識別子、セッション管理モジュール568によって生成されたセッションの一意の識別子(UUID)、応答コード、オリジン・サーバ・プロトコルに対応する識別子、要求を作成する際にトランスマクサ565のマッピング・モジュールが使用を試みる要求パターンのリストを含んでもよい。
1005において、トランスマクサ565のマッピング・モジュールは、配信元プロトコルを使用して適切な要求を作成し、要求識別子と1つまたは複数の要求URLとを含む生成された要求をHTTPクライアント562に転送する。要求識別子を使用して応答をトランスマクサ565と相関させてもよい。
1006において、HTTPクライアント562は、オリジン・サーバ520の適切なIPアドレスを判定し、HTTP GETメッセージを、配信元マニフェストを求める生成された要求と一緒に送信する。
1007において、オリジン・サーバ520は、配信元配信フォーマットの要求された配信元マニフェスト・ファイルで応答する。
HTTPクライアント562は、1008において、要求されたマニフェストをコンテンツ・ジェネレータ564に送信または転送する。応答は、要求識別子、1つまたは複数の要求URL、および各要求に対応するステータス・コードを含んでもよい。
1009において、コンテンツ・ジェネレータ564(および適切なトランスマクサのコンテナ変換モジュール)は、配信元配信フォーマットで受信されたマニフェスト・ファイルからクライアント配信フォーマットのクライアント・マニフェスト・ファイルを生成し、クライアント・マニフェストをHTTPサーバ566に転送する。
最後に、1010において、HTTPサーバ566はクライアント・マニフェストをクライアント・デバイス590に送信する。
次に図11を参照すると、拒絶された初期マニフェスト要求に関する例示的なコール・フロー1100が示されている。
コール・フロー1100は1101から開始し、HTTPサーバ566はマニフェストを求めるHTTP GET要求をクライアント・デバイス590から受信する。この要求はクライアント配信フォーマットである。
1102において、HTTPサーバ566は要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。
1103において、コンテンツ・ジェネレータ564は、要求が初期マニフェスト要求を求める要求であると判定し、セッション管理モジュール568に通知する。
セッション管理モジュール568は、1104において、セッションを許容できない(たとえば、十分なリソースが利用可能でない、クライアントが許可されていないなど)と判定し、非許可メッセージをコンテンツ・ジェネレータ564に送る。
1105において、コンテンツ・ジェネレータ564は拒絶メッセージ(たとえば、HTTPエラー・メッセージ)を作成し、メッセージをHTTPサーバ566に転送する。
最後に1106において、HTTPサーバ566は拒絶メッセージをクライアント・デバイス590に送信する。
次に図12を参照すると、無効なオリジン・サーバ・アドレスを含む初期マニフェスト要求に関する例示的なコール・フロー1200が示されている。
コール・フロー1200は1201から開始し、HTTPサーバ566はマニフェストを求めるHTTP GET要求をクライアント・デバイス590から受信する。この要求はクライアント配信フォーマットである。
1202において、HTTPサーバ566は要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。
1203において、コンテンツ・ジェネレータ564は、要求が初期マニフェスト要求を求める要求であると判定し、セッション管理モジュール568に通知する。
セッション管理モジュール568は、1204において、セッションを許容できるかどうか(たとえば、十分なリソースが利用可能であるかどうか、クライアントが許可されているかどうかなど)判定し、許可メッセージをコンテンツ・ジェネレータ564に送る。
1205において、コンテンツ・ジェネレータ564は、配信元プロトコルを使用して適切な要求を作成し、生成された要求をHTTPクライアント562に転送する。
1206において、HTTPクライアント562は、(たとえば、要求が無効なオリジン・サーバ・アドレスを含むことを理由として)オリジン・サーバ520に接続できないと判定し、エラー・メッセージを、オリジン・サーバに接続できないことを示すステータスと一緒にコンテンツ・ジェネレータ564に送る。
1207において、コンテンツ・ジェネレータ564は、クライアント・セッションを削除すべきであると判定し、削除メッセージをセッション管理モジュール568に送り、したがって、セッション・リソースを回収することができる。
1208において、コンテンツ・ジェネレータ564は、エラー・メッセージを適切なHTTPエラー・コードと一緒にHTTPサーバ566に送る。
最後に1209において、HTTPサーバ566はエラー・メッセージをクライアント・デバイス590に送信する。
次に図13を参照すると、有効なフラグメント要求に関する例示的なコール・フロー1300が示されている。
コール・フロー1300は1301から開始し、HTTPサーバ566はコンテンツ・フラグメントを求めるHTTP GET要求をクライアント・デバイス590から受信する。
1302において、HTTPサーバ566は要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。
1303において、コンテンツ・ジェネレータ564は、要求がコンテンツ・フラグメントを求める要求であると判定し、一意のセッションIDを抽出し、要求に含まれる一意のセッション識別子をセッション管理モジュール568に通知する。
セッション管理モジュール568は、1304において、セッションを特定し、セッションの詳細(たとえば、ポリシー、状態など)を含むメッセージをコンテンツ・ジェネレータ564に送る。
1305において、コンテンツ・ジェネレータ564は、配信元プロトコルを使用して適切な要求を作成し、生成された要求をHTTPクライアント562に転送する。
1306において、HTTPクライアント562は、オリジン・サーバ520の適切なIPアドレスを判定し、HTTP GETメッセージを、要求されたコンテンツ・フラグメントを求める生成された要求と一緒に送信する。
1307において、オリジン・サーバ520は要求されたコンテンツ・フラグメントで応答する。
HTTPクライアント562は、1308において、要求されたコンテンツ・フラグメントをコンテンツ・ジェネレータ564に送信または転送する。
1309において、コンテンツ・ジェネレータ564(および適切なトランスマクサ)は、コンテンツ・フラグメントに関する情報(たとえば、バイト数など)をセッション管理モジュール568に送信する。送信される情報には、セッションの一意のセッション識別子(UUID)、このフラグメントに関して送られるバイト数、送られるコンテンツ・フラグメントの持続時間、送られるコンテンツ・フラグメントのビットレート、およびコンテンツ・アイテム中の位置(たとえば、現在のコンテンツ・フラグメントが表すビデオの開始からの秒数)を含めてもよい。
1310において、コンテンツ・ジェネレータ564(および適切なトランスマクサ)は、受信されたコンテンツ・フラグメントを配信元プロトコルからクライアント・プロトコルにトランスマックス変換し、トランスマックス変換されたコンテンツ・フラグメントをHTTPサーバ566に転送する。
最後に1311において、HTTPサーバ566は、トランスマックス変換されたコンテンツ・フラグメントをクライアント・デバイス590に送信する。
次に図14を参照すると、無効なフラグメント要求に関する例示的なコール・フロー1400が示されている。
コール・フロー1400は1401から開始し、HTTPサーバ566は、コンテンツ・フラグメントを求めるHTTP GET要求をクライアント・デバイス590から受信する。
1402において、HTTPサーバ566は、要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。
1403において、コンテンツ・ジェネレータ564は、要求が無効なフラグメント要求であると判定し、拒絶メッセージを適切なHTTPエラー・コードと一緒にHTTPサーバに送る。
最後に1404において、HTTPサーバ566は、拒絶メッセージをクライアント・デバイス590に送信する。
次に図15を参照すると、無効なセッション識別子(UUID)を含むコンテンツ・フラグメント要求に関する例示的なコール・フロー1500が示されている。
コール・フロー1500は1501から開始し、HTTPサーバ566はコンテンツ・フラグメントを求めるHTTP GET要求をクライアント・デバイス590から受信する。
1502において、HTTPサーバ566は要求の妥当性を検査し、要求が有効である場合、要求メッセージを要求されたURLと一緒にコンテンツ・ジェネレータ564に転送する。
1503において、コンテンツ・ジェネレータ564は、要求がコンテンツ・フラグメントを求める要求であると判定し、要求に含まれる一意のセッション識別子をセッション管理モジュール568に通知する。
セッション管理モジュール568は、1504において、一意の識別子に対応するセッションの特定を試み、そのセッションが存在しない場合、エラー・メッセージ(たとえば
、セッションが見つからない)をコンテンツ・ジェネレータ564に送る。
1505において、コンテンツ・ジェネレータ564は、エラー・メッセージ(たとえば、HTTPエラー・メッセージ)を作成し、このメッセージをHTTPサーバ566に転送する。
最後に1506において、HTTPサーバ566は、エラー・メッセージをクライアント・デバイス590に送信する。
本明細書で説明するように、逆トランスレーティング・プロキシ手法は様々なアダプティブ・ストリーミング・プロトコルの変換を「要求ごとに」かつ「オンザフライ」で行うのを可能にする。したがって、この手法は、コンテンツをフラグメント要求ごとにトランスマックス変換し、一方、追加のコンテンツ・フラグメントが実際に要求されるまでそのようなコンテンツ・フラグメントをトランスマックス変換することを不要にするように最適化されている。さらなる能力には、QoEを最適化するようにセッション・コンテキストに基づいて応答を動的に定義することが含まれる。たとえば、特定のクライアントの帯域幅を限定するようにポリシーが設定されており、クライアントがより高いビットレートを要求している場合、中間サーバは帯域幅ポリシーに整合するフラグメントのみを検索してもよい。
本明細書で説明する例示的な実施形態を完全に理解できるように多数の特定の詳細が記載されることが諒解されよう。しかし、当業者には、本明細書で説明する実施形態がこれらの特定の詳細なしに実施できることが理解されよう。他の例では、本明細書で説明する実施形態を曖昧にすることのないように公知の方法、手順、および構成要素については詳細に説明していない。したがって、上述の内容は本発明を例示するものでありかつ非制限的なものであり、当業者には、添付の特許請求の範囲に定義されるような本発明の範囲から逸脱せずに他の変形および修正を施せることが理解されよう。

Claims (24)

  1. ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するためのシステムであって、該オリジン・サーバが該ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットと配信元配信フォーマットとを有し、該ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントからなるシステムにおいて、
    前記オリジン・サーバおよび前記クライアント・デバイスと通信するように接続され、1つ以上のプロセッサを備える中間サーバを備え、前記プロセッサは、
    a)クライアント配信フォーマットを使用して該ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関するクライアント要求をクライアント・デバイスから受信し、該クライアント要求がクライアント配信フォーマットであると判定し、該クライアント要求に対応する中間要求を該配信元配信フォーマットで生成するように構成されたマッピング・モジュールと、
    b)該中間要求をサーバに送信し、該ストリーミング・メディア・コンテンツ・アイテムの該要求される部分に対応する該第1の複数のコンテンツ・フラグメントのサブセットを受信するように構成された中間クライアント・モジュールであって、該サブセットが、該配信元配信フォーマットを使用して該オリジン・サーバから該配信元コンテナ・フォーマットで受信される中間クライアント・モジュールと、
    c)該サブセットを該配信元コンテナ・フォーマットからアンパックし、該サブセットをクライアント・コンテナ・フォーマットにパックするように構成されたコンテナ変換モジュールであって、該クライアント・コンテナ・フォーマットでパックされた該サブセット中の該コンテンツ・フラグメントは該配信元符号化フォーマットで符号化されたままであるコンテナ変換モジュールと、
    d)該クライアント配信フォーマットを使用して該ストリーミング・メディア・コンテンツ・アイテムを該クライアント・コンテナ・フォーマットで該クライアント・デバイスに送信するように構成された中間サーバ・モジュールと、
    e)前記クライアント要求が受信されたときにストリーミング・セッションを開始するように構成されたセッション管理モジュールと、を提供するように構成されており、
    前記プロセッサは、前記クライアント・デバイスからのフラグメント要求を監視することによって前記ストリーミング・セッションに関する前記クライアント・デバイスのセッ
    ション状態を判定するようにさらに構成されており、前記クライアント要求を複数のオープン・クライアント・セッションのうちの1つに関連付けるべく、前記複数のオープン・クライアント・セッションの各々について、対応するクライアント・セッション状態情報を記憶するようにさらに構成されている、システム。
  2. 前記コンテナ変換モジュールは、前記第1の複数のコンテンツ・フラグメントを第2の複数のコンテンツ・フラグメントにリアセンブルすることによって前記ストリーミング・メディア・コンテンツ・アイテムを前記クライアント・コンテナ・フォーマットにパックし、該第2の複数のコンテンツ・フラグメントは前記第1の複数のコンテンツ・フラグメントとは異なる持続時間を有する、請求項1に記載のシステム。
  3. 前記マッピング・モジュールは、所定の配信フォーマットを使用して1つまたは複数の要求を送信し、応答が首尾よく受信されたかどうかを判定することによって、前記オリジン・サーバが前記配信元配信フォーマットで送信するように構成されていると判定する、請求項1または2に記載のシステム。
  4. 前記マッピング・モジュールは、前記クライアント要求を複数の所定の要求パターンと比較することによって前記クライアント要求が前記クライアント配信フォーマットであると判定する、請求項1乃至3のいずれか一項に記載のシステム。
  5. ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信する方法であって、該オリジン・サーバが該ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、該ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントからなる方法において、
    a)クライアント配信フォーマットを使用して該ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関するクライアント要求を該クライアント・デバイスから受信する工程と、
    b)該クライアント要求が該クライアント配信フォーマットであると判定する工程と、
    c)該クライアント要求に対応する中間要求を生成する工程であって、配信元要求が該配信元配信フォーマットである、前記工程と、
    d)該中間要求を該サーバに送信する工程と、
    e)該ストリーミング・メディア・コンテンツ・アイテムの該要求される部分に対応する該第1の複数のコンテンツ・フラグメントのサブセットを受信する工程であって、該サブセットが、該配信元配信フォーマットを使用して該オリジン・サーバから該配信元コンテナ・フォーマットで受信される、前記工程と、
    f)該サブセットを該配信元コンテナ・フォーマットからアンパックし、該サブセットをクライアント・コンテナ・フォーマットにパックする工程であって、該クライアント・コンテナ・フォーマットでパックされた該サブセット中の該コンテンツ・フラグメントは該配信元符号化フォーマットで符号化されたままである、前記工程と、
    g)前記クライアント要求が受信されたときにストリーミング・セッションを開始し、
    前記クライアント・デバイスからのフラグメント要求を監視することによって前記ストリーミング・セッションに関する前記クライアント・デバイスのセッション状態を判定し、
    前記クライアント要求を複数のオープン・クライアント・セッションのうちの1つに関連付けるべく、前記複数のオープン・クライアント・セッションの各々について、対応するクライアント・セッション状態情報を記憶する工程と、
    h)該クライアント配信フォーマットを使用して該ストリーミング・メディア・コンテンツ・アイテムを該クライアント・コンテナ・フォーマットで該クライアント・デバイスに送信する工程と、を備える方法。
  6. 前記パックする工程は、前記第1の複数のコンテンツ・フラグメントを第2の複数のコンテンツ・フラグメントにリアセンブルすることによって実行され、該第2の複数のコンテンツ・フラグメントは前記第1の複数のコンテンツ・フラグメントとは異なる持続時間を有する、請求項に記載の方法。
  7. 所定の配信フォーマットを使用して1つまたは複数の要求を送信し、応答が首尾よく受信されたかどうかを判定することによって、前記オリジン・サーバが前記配信元配信フォーマットで送信するように構成されていると判定する工程をさらに備える、請求項またはに記載の方法。
  8. 前記クライアント要求を複数の所定の要求パターンと比較することによって前記クライアント要求が前記クライアント配信フォーマットであると判定する工程をさらに備える、請求項乃至のいずれか一項に記載の方法。
  9. ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するためのシステムであって、該オリジン・サーバが該ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、該ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントからなるシステムにおいて、
    a)該ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関する少なくとも1つのクライアント要求をクライアント・デバイスから受信し、該少なくとも1つのクライアント要求に対応する中間要求を生成するように構成されたマッピング・モジュールと、
    b)該少なくとも1つのクライアント要求が受信されたときにストリーミング・セッションを開始するように構成されたセッション管理モジュールであって、該少なくとも1つのクライアント要求を監視することによって該ストリーミング・セッションに関する該クライアント・デバイスのセッション状態を判定するようにさらに構成されており、前記少なくとも1つのクライアント要求を複数のオープン・クライアント・セッションのうちの1つに関連付けるべく、前記複数のオープン・クライアント・セッションの各々について、対応するクライアント・セッション状態情報を記憶するようにさらに構成されたセッション管理モジュールと、
    c)該中間要求を該サーバに送信し、該ストリーミング・メディア・コンテンツ・アイテムの該要求される部分に対応する該第1の複数のコンテンツ・フラグメントのサブセットを受信するように構成された中間クライアント・モジュールと、
    d)前記配信元コンテナ・フォーマットから前記サブセットをアンパックし、前記サブセットをクライアント・コンテナ・フォーマットにパックするように構成されたコンテナ変換モジュールであって、該クライアント・コンテナ・フォーマットでパックされた前記サブセット中の前記コンテンツ・フラグメントは前記配信元符号化フォーマットで符号化されたままである、コンテナ変換モジュールと、
    e)該ストリーミング・メディア・コンテンツ・アイテムを該クライアント・デバイスに送信するように構成された中間サーバ・モジュールと、を備えるシステム。
  10. 前記マッピング・モジュールは、クライアント配信フォーマットを使用して前記クライアント要求を受信し、前記クライアント要求が前記クライアント配信フォーマットであると判定するように構成され、前記中間要求は前記配信元配信フォーマットであり、前記第1の複数のコンテンツ・フラグメントの前記サブセットは、前記配信元配信フォーマットを使用して前記オリジン・サーバから前記配信元コンテナ・フォーマットで受信され、前記中間サーバ・モジュールは、該クライアント配信フォーマットを使用して前記ストリーミング・メディア・コンテンツ・アイテムを該クライアント・コンテナ・フォーマットで
    前記クライアント・デバイスに送信するように構成される、請求項に記載のシステム。
  11. 前記セッション管理モジュールは、すべてのオープン・クライアント・セッションの状態を特定するようにさらに構成される、請求項または10に記載のシステム。
  12. 前記セッション管理モジュールは、所定のタイムアウト期間の後で前記セッション状態をイナクティブとマークするようにさらに構成される、請求項乃至11のいずれか一項に記載のシステム。
  13. 前記セッション管理モジュールは、前記オープン・クライアント・セッションに関連するさらなるフラグメント要求が受信されたときに前記セッション状態をアクティブとマークするようにさらに構成される、請求項12に記載のシステム。
  14. 前記少なくとも1つのクライアント要求は複数のクライアント要求からなり、前記セッション状態は、該複数のクライアント要求のタイミングに基づいて判定される、請求項乃至13のいずれか一項に記載のシステム。
  15. 前記タイミングが、前記複数のクライアント要求が順序を外れたフラグメントを求める要求であることを示すとき、シーク動作が決定される、請求項14に記載のシステム。
  16. 前記タイミングが、実際の経過時間が前記複数のクライアント要求において要求されたフラグメントの再生時間を超えていることを示すとき、トリック再生動作が決定される、請求項14に記載のシステム。
  17. ストリーミング・メディア・コンテンツ・アイテムをオリジン・サーバからクライアント・デバイスに配信するための方法であって、該オリジン・サーバが該ストリーミング・メディア・コンテンツ用の配信元コンテナ・フォーマットおよび配信元配信フォーマットを有し、該ストリーミング・メディア・コンテンツが配信元符号化フォーマットで符号化された第1の複数のコンテンツ・フラグメントからなる方法において、
    a)該ストリーミング・メディア・コンテンツ・アイテムの少なくとも要求される部分に関する少なくとも1つのクライアント要求をクライアント・デバイスから受信する工程と、
    b)該少なくとも1つのクライアント要求に対応する中間要求を生成する工程と、
    c)該少なくとも1つのクライアント要求が受信されたときにストリーミング・セッションを開始する工程と、
    d)該少なくとも1つのクライアント要求を監視することによって該ストリーミング・セッションに関する該クライアント・デバイスのセッション状態を判定する工程と、
    e)該中間要求を該サーバに送信する工程と、
    f)該ストリーミング・メディア・コンテンツ・アイテムの該要求される部分に対応する該第1の複数のコンテンツ・フラグメントのサブセットを受信する工程と、
    g)前記配信元コンテナ・フォーマットから前記サブセットをアンパックし、前記サブセットをクライアント・コンテナ・フォーマットにパックする工程であって、該クライアント・コンテナ・フォーマットでパックされた前記サブセット中の前記コンテンツ・フラグメントは前記配信元符号化フォーマットで符号化されたままである、工程と、

    h)前記クライアント要求が受信されたときにストリーミング・セッションを開始し、
    前記クライアント・デバイスからのフラグメント要求を監視することによって前記ストリーミング・セッションに関する前記クライアント・デバイスのセッション状態を判定し、
    前記クライアント要求を複数のオープン・クライアント・セッションのうちの1つ
    に関連付けるべく、前記複数のオープン・クライアント・セッションの各々について、対応するクライアント・セッション状態情報を記憶する工程と、
    i)該ストリーミング・メディア・コンテンツ・アイテムを該クライアント・デバイスに送信する工程と、を備える方法。
  18. 前記クライアント要求は、クライアント配信フォーマットを使用して受信され、前記中間要求は前記配信元配信フォーマットであり、前記第1の複数のコンテンツ・フラグメントの前記サブセットは、前記配信元配信フォーマットを使用して前記オリジン・サーバから前記配信元コンテナ・フォーマットで受信され、前記ストリーミング・メディア・コンテンツ・アイテムは、該クライアント配信フォーマットを使用して該クライアント・コンテナ・フォーマットで前記クライアント・デバイスに送信される、請求項17に記載の方法。
  19. すべてのオープン・クライアント・セッションの状態を特定する工程をさらに備える、請求項17または18に記載の方法。
  20. 所定のタイムアウト期間の後で前記セッション状態をイナクティブとマークする工程をさらに備える、請求項17乃至19のいずれか一項に記載の方法。
  21. 前記オープン・クライアント・セッションに関連するさらなるフラグメント要求が受信されたときに前記セッション状態をアクティブとマークする工程をさらに備える、請求項20に記載の方法。
  22. 前記少なくとも1つのクライアント要求は複数のクライアント要求からなり、前記セッション状態は、該複数のクライアント要求のタイミングに基づいて判定される、請求項17乃至21のいずれか一項に記載の方法。
  23. 前記タイミングが、前記複数のクライアント要求が順序を外れたフラグメントを求める要求であることを示すとき、シーク動作が決定される、請求項22に記載の方法。
  24. 前記タイミングが、実際の経過時間が前記複数のクライアント要求において要求されたフラグメントの再生時間を超えていることを示すとき、トリック再生動作が決定される、請求項22に記載の方法。
JP2015504825A 2012-04-12 2013-04-10 ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム Active JP6014870B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/445,361 2012-04-12
US13/445,361 US9712887B2 (en) 2012-04-12 2012-04-12 Methods and systems for real-time transmuxing of streaming media content
PCT/CA2013/000340 WO2013152426A1 (en) 2012-04-12 2013-04-10 Methods and systems for real-time transmuxing of streaming media content

Publications (2)

Publication Number Publication Date
JP2015518325A JP2015518325A (ja) 2015-06-25
JP6014870B2 true JP6014870B2 (ja) 2016-10-26

Family

ID=49326083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015504825A Active JP6014870B2 (ja) 2012-04-12 2013-04-10 ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム

Country Status (7)

Country Link
US (1) US9712887B2 (ja)
EP (1) EP2837196B1 (ja)
JP (1) JP6014870B2 (ja)
CN (1) CN104396263B (ja)
CA (1) CA2870059C (ja)
MX (1) MX353807B (ja)
WO (1) WO2013152426A1 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264530A1 (en) 2010-04-23 2011-10-27 Bryan Santangelo Apparatus and methods for dynamic secondary content and data insertion and delivery
US9201938B2 (en) * 2012-05-21 2015-12-01 Sap Se Parameter driven data format conversion in client/server architectures
KR20140075829A (ko) * 2012-11-26 2014-06-20 한국전자통신연구원 투명 인터넷 캐시 서버와 콘텐츠 전달망을 결합한 콘텐츠 전달 시스템 및 방법
ES2606552T3 (es) * 2013-01-16 2017-03-24 Huawei Technologies Co., Ltd. Inserción y adición de parámetros de URL en flujo continuo adaptativo
US9813307B2 (en) * 2013-01-28 2017-11-07 Rackspace Us, Inc. Methods and systems of monitoring failures in a distributed network system
US9397902B2 (en) 2013-01-28 2016-07-19 Rackspace Us, Inc. Methods and systems of tracking and verifying records of system change events in a distributed network system
US9483334B2 (en) 2013-01-28 2016-11-01 Rackspace Us, Inc. Methods and systems of predictive monitoring of objects in a distributed network system
US9710469B2 (en) * 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
US9681116B2 (en) * 2013-03-15 2017-06-13 Arris Enterprises, Inc. System and method for delivering 3DTV content to variety of receivers
JP6444398B2 (ja) 2013-07-03 2018-12-26 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ セグメント化コンテンツのストリーミング
EP3022883B1 (en) * 2013-07-16 2017-05-03 Bitmovin GmbH Apparatus and method for cloud assisted adaptive streaming
US20150058448A1 (en) * 2013-08-21 2015-02-26 Josh Proctor Internet video streaming system
US20150067155A1 (en) * 2013-08-29 2015-03-05 Tune, Inc. Systems and methods for measuring approximate engagement of users in a software application
US10749761B1 (en) * 2013-09-27 2020-08-18 Amazon Technologies, Inc. Unique user session tracking in adaptive bitrate video delivery
US10476930B2 (en) 2014-01-06 2019-11-12 Intel IP Corporation Client/server signaling commands for dash
US10165029B2 (en) * 2014-01-31 2018-12-25 Fastly Inc. Caching and streaming of digital media content subsets
US11477262B2 (en) * 2014-02-13 2022-10-18 Koninklijke Kpn N.V. Requesting multiple chunks from a network node on the basis of a single request message
US20150256600A1 (en) * 2014-03-05 2015-09-10 Citrix Systems, Inc. Systems and methods for media format substitution
CN107077541B (zh) * 2014-03-24 2020-01-03 华为技术有限公司 应用于动态自适应流媒体的部分url签名系统和方法
IL231685A (en) * 2014-03-24 2015-09-24 Giraffic Technologies Ltd A system and method for predicting memory reduction and network design
US9911460B2 (en) 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
US10165028B2 (en) * 2014-03-25 2018-12-25 Intel Corporation Context-aware streaming of digital content
US10631070B2 (en) * 2014-05-22 2020-04-21 Idomoo Ltd System and method to generate a video on-the-fly
US10523723B2 (en) * 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
US9692800B2 (en) * 2014-06-11 2017-06-27 Google Inc. Enhanced streaming media playback
US10028025B2 (en) 2014-09-29 2018-07-17 Time Warner Cable Enterprises Llc Apparatus and methods for enabling presence-based and use-based services
CN107211178B (zh) * 2015-02-04 2020-10-09 日本电信电话株式会社 体感质量最佳化系统、装置、方法以及建议请求装置、方法和可读存储介质
JP6476995B2 (ja) * 2015-02-24 2019-03-06 沖電気工業株式会社 中継装置、コンテンツ配信システム、中継方法およびプログラム
US11076198B2 (en) 2015-05-28 2021-07-27 Idomoo Ltd. System and method to generate an interactive video on the fly
US10701119B2 (en) * 2015-06-16 2020-06-30 Apple Inc. Adaptive video streaming using dynamic radio access network information
US10425427B2 (en) * 2015-06-19 2019-09-24 Futurewei Technologies, Inc. Template uniform resource locator signing
US9954930B2 (en) * 2015-08-06 2018-04-24 Airwatch Llc Generating content fragments for content distribution
US10334316B2 (en) 2015-09-18 2019-06-25 At&T Intellectual Property I, L.P. Determining a quality of experience metric based on uniform resource locator data
US10586023B2 (en) * 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US10313418B2 (en) * 2016-06-20 2019-06-04 Ramp Holdings, Inc. Chunked HTTP video cache routing
US10063612B2 (en) * 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions
US10652300B1 (en) * 2017-06-16 2020-05-12 Amazon Technologies, Inc. Dynamically-generated encode settings for media content
US11076177B2 (en) 2017-09-05 2021-07-27 Sonos, Inc. Grouped zones in a system with multiple media playback protocols
US10764650B2 (en) 2017-12-07 2020-09-01 At&T Intellectual Property I, L.P. Video optimization proxy system and method
US11016971B2 (en) 2018-01-26 2021-05-25 Vmware, Inc. Splitting a time-range query into multiple sub-queries for parallel execution
US11016972B2 (en) 2018-01-26 2021-05-25 Vmware, Inc. Splitting a time-range query into multiple sub-queries for serial execution
US11144570B2 (en) 2018-01-26 2021-10-12 Vmware, Inc. Data ingestion by distributed-computing systems
US10860576B2 (en) 2018-01-26 2020-12-08 Vmware, Inc. Splitting a query into native query operations and post-processing operations
US10824623B2 (en) 2018-02-28 2020-11-03 Vmware, Inc. Efficient time-range queries on databases in distributed computing systems
US11178213B2 (en) 2018-02-28 2021-11-16 Vmware, Inc. Automated configuration based deployment of stream processing pipeline
US10812332B2 (en) 2018-02-28 2020-10-20 Vmware Inc. Impartial buffering in stream processing
US10595055B2 (en) * 2018-04-23 2020-03-17 Amazon Technologies, Inc. Server-side insertion of media fragments
KR102428194B1 (ko) 2018-09-17 2022-08-02 구글 엘엘씨 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
CN109327511B (zh) 2018-09-18 2021-05-28 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
US10735307B1 (en) 2019-01-10 2020-08-04 Ebay Inc. Network latency measurement and analysis system
US11252445B1 (en) * 2019-04-22 2022-02-15 Meta Platforms, Inc. Systems and methods for providing passthrough adaptive bitrate videos
US11403849B2 (en) 2019-09-25 2022-08-02 Charter Communications Operating, Llc Methods and apparatus for characterization of digital content
US20220350748A1 (en) * 2021-04-29 2022-11-03 Microsoft Technology Licensing, Llc Consistent hashing for communication devices
CN113488065B (zh) * 2021-07-01 2024-05-14 上海卓易科技股份有限公司 一种基于云手机的音频输出方法、装置及计算机设备、存储介质

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240243B1 (en) 1994-12-05 2001-05-29 International Business Machines Corporation Method and apparatus for storing and retrieving scalable video data in a disk-array-based video server
US5978843A (en) 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
JP2924817B2 (ja) 1996-09-13 1999-07-26 日本電気株式会社 情報サーバシステム
EP1008051A4 (en) 1997-03-12 2007-04-25 Storage Technology Corp MEMORY DATA SUBSYSTEM ON VIRTUAL MAGNETIC STRIP AND ATTACHED TO A NETWORK
KR20010022752A (ko) * 1998-06-11 2001-03-26 요트.게.아. 롤페즈 디지털 비디오 레코더용 트릭 플레이 신호 발생
US7446774B1 (en) 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US7028096B1 (en) 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US6742043B1 (en) 2000-01-14 2004-05-25 Webtv Networks, Inc. Reformatting with modular proxy server
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7565450B2 (en) 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US20040025186A1 (en) * 2001-01-19 2004-02-05 Jennings Charles A. System and method for managing media
US8107524B2 (en) 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US20030110234A1 (en) * 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7483487B2 (en) 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
US7194000B2 (en) 2002-06-21 2007-03-20 Telefonaktiebolaget L.M. Ericsson Methods and systems for provision of streaming data services in an internet protocol network
JP4022755B2 (ja) 2003-01-21 2007-12-19 ソニー株式会社 記録装置、再生装置、ファイル管理方法及びファイル再生方法
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7313236B2 (en) 2003-04-09 2007-12-25 International Business Machines Corporation Methods and apparatus for secure and adaptive delivery of multimedia content
US7143170B2 (en) 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
JP4340483B2 (ja) * 2003-06-27 2009-10-07 富士通株式会社 複合コンテンツの配信方法および配信システム
ITBA20030039A1 (it) 2003-08-29 2005-02-28 Grieco Luigi Alfredo Controllo di congestione rate-based del traffico entrante
ATE441304T1 (de) * 2003-10-01 2009-09-15 Actix Ltd Anrufverfolgungssysteme
US7369610B2 (en) 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
KR100834749B1 (ko) 2004-01-28 2008-06-05 삼성전자주식회사 스케일러블 비디오 스트림 재생장치 및 그 방법
US20050289619A1 (en) * 2004-06-01 2005-12-29 Joel Melby Methods and system for resource allocation in an on-demand server
US7664109B2 (en) 2004-09-03 2010-02-16 Microsoft Corporation System and method for distributed streaming of scalable media
US7543073B2 (en) 2004-12-10 2009-06-02 Microsoft Corporation System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
US20060143678A1 (en) 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
US7536469B2 (en) 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates
FR2880743A1 (fr) 2005-01-12 2006-07-14 France Telecom Dispositif et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants
KR20060114080A (ko) 2005-04-27 2006-11-06 삼성전자주식회사 멀티미디어 스트리밍 서비스 시스템 및 방법
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US7933294B2 (en) 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
US8289370B2 (en) 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
WO2007026268A1 (en) * 2005-08-31 2007-03-08 Nokia Corporation Inter-access mobility and service control
KR100848310B1 (ko) 2005-10-07 2008-07-24 한국전자통신연구원 스케일러블 비디오 코딩 기술이 적용된 비트스트림적응변환 장치 및 방법
EP1788774A1 (en) 2005-11-18 2007-05-23 Alcatel Lucent Method and system for initiating or recovering a media-on-demand session
KR100772868B1 (ko) 2005-11-29 2007-11-02 삼성전자주식회사 복수 계층을 기반으로 하는 스케일러블 비디오 코딩 방법및 장치
KR20070108433A (ko) 2006-01-09 2007-11-12 한국전자통신연구원 청크 디스크립터를 이용한 svc 파일포맷에서의 비디오데이터 공유방법
JP4874343B2 (ja) 2006-01-11 2012-02-15 ノキア コーポレイション スケーラブルビデオ符号化における、下位互換性のあるピクチャの集約
US8619865B2 (en) 2006-02-16 2013-12-31 Vidyo, Inc. System and method for thinning of scalable video coding bit-streams
US8761263B2 (en) 2006-03-27 2014-06-24 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
KR100934674B1 (ko) 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US20070276954A1 (en) 2006-05-19 2007-11-29 Hong Kong University Of Science And Technology Low-Delay High Quality Video Streaming Using TCP
US20070268362A1 (en) 2006-05-22 2007-11-22 Matthew James West Compressed data
US7930449B2 (en) 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
EP2069951A4 (en) 2006-09-29 2013-06-05 Vidyo Inc SYSTEM AND METHOD FOR MULTIPORT CONFERENCES WITH SCALABLE VIDEO CODING SERVER AND MULTICAST
CA2666622A1 (en) 2006-10-20 2008-04-24 Nokia Corporation Generic indication of adaptation paths for scalable multimedia
US7953880B2 (en) 2006-11-16 2011-05-31 Sharp Laboratories Of America, Inc. Content-aware adaptive packet transmission
JP5086372B2 (ja) * 2007-02-26 2012-11-28 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信に関連する方法及び構成
US20100266042A1 (en) 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
US20090119594A1 (en) 2007-10-29 2009-05-07 Nokia Corporation Fast and editing-friendly sample association method for multimedia file formats
BRPI0820086A2 (pt) * 2007-11-16 2016-11-01 Thomson Licensing sistema e método para gerenciamento de sessões de transmissão contínua de mídia
US20090178091A1 (en) 2008-01-08 2009-07-09 Hiroki Miyamoto Contents distribution method and receiving device
US8155020B2 (en) * 2008-01-14 2012-04-10 Qualcomm Incorporated Policy control and charging (PCC) rules based on mobility protocol
JP4670902B2 (ja) 2008-05-30 2011-04-13 ソニー株式会社 送信装置、送信方法および受信装置
WO2010042595A2 (en) * 2008-10-07 2010-04-15 Velocent Systems Incorporated Method and apparatus pertaining to updating a high-bandwidth hardware-based packet-processing platform local session context state database
US7822869B2 (en) * 2008-10-15 2010-10-26 Patentvc Ltd. Adaptation of data centers' bandwidth contribution to distributed streaming operations
US7822855B2 (en) * 2008-10-15 2010-10-26 Patentvc Ltd. Methods and systems combining push and pull protocols
US9003043B1 (en) * 2008-12-17 2015-04-07 Emc Corporation Techniques for client and server communication
US8180892B2 (en) * 2008-12-22 2012-05-15 Kindsight Inc. Apparatus and method for multi-user NAT session identification and tracking
US8228363B2 (en) 2009-01-30 2012-07-24 Polycom, Inc. Method and system for conducting continuous presence conferences
US9197677B2 (en) 2009-03-09 2015-11-24 Arris Canada, Inc. Multi-tiered scalable media streaming systems and methods
US9485299B2 (en) 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
US8621044B2 (en) * 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
CA2755774C (en) * 2009-03-19 2015-01-06 Azuki Systems, Inc. Method for scalable live streaming delivery for mobile audiences
US8209730B2 (en) * 2009-06-22 2012-06-26 Sony Corporation Speculative video on demand
US8184142B2 (en) 2009-06-26 2012-05-22 Polycom, Inc. Method and system for composing video images from a plurality of endpoints
CA2711311C (en) 2009-08-10 2016-08-23 Seawell Networks Inc. Methods and systems for scalable video chunking
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US9038116B1 (en) * 2009-12-28 2015-05-19 Akamai Technologies, Inc. Method and system for recording streams
US8521899B2 (en) * 2010-05-05 2013-08-27 Intel Corporation Multi-out media distribution system and method
US8190677B2 (en) 2010-07-23 2012-05-29 Seawell Networks Inc. Methods and systems for scalable video delivery
US9456015B2 (en) * 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
WO2012044356A2 (en) * 2010-10-01 2012-04-05 Interdigital Patent Holdings, Inc. Method and apparatus for media session sharing and group synchronization of multi media streams
US8880633B2 (en) * 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US8489760B2 (en) * 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
US8649668B2 (en) * 2011-06-03 2014-02-11 Adobe Systems Incorporated Client playback of streaming video adapted for smooth transitions and viewing in advance display modes
US20130132462A1 (en) * 2011-06-03 2013-05-23 James A. Moorer Dynamically Generating and Serving Video Adapted for Client Playback in Advanced Display Modes
US9160779B2 (en) * 2011-06-30 2015-10-13 Qualcomm Incorporated Dynamic adaptive streaming proxy for unicast or broadcast/multicast services
US8929356B2 (en) * 2013-02-05 2015-01-06 Anue Systems, Inc. Mobile user identification and tracking for load balancing in packet processing systems
US9311651B2 (en) * 2013-03-07 2016-04-12 Cable Television Laboratories, Inc. Identity-Media Measurement Model (IMMM)

Also Published As

Publication number Publication date
EP2837196B1 (en) 2019-06-12
MX2014012361A (es) 2015-05-08
US9712887B2 (en) 2017-07-18
US20130275557A1 (en) 2013-10-17
CN104396263A (zh) 2015-03-04
WO2013152426A1 (en) 2013-10-17
CA2870059A1 (en) 2013-10-17
CA2870059C (en) 2018-06-05
EP2837196A4 (en) 2015-12-23
JP2015518325A (ja) 2015-06-25
CN104396263B (zh) 2018-06-08
EP2837196A1 (en) 2015-02-18
MX353807B (es) 2018-01-29

Similar Documents

Publication Publication Date Title
JP6014870B2 (ja) ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム
JP6944485B2 (ja) 1つの要求メッセージに基づいたネットワーク・ノードへの多数のチャンクの要求
US9787747B2 (en) Optimizing video clarity
EP3446461B1 (en) Just in time transcoding and packaging in ipv6 networks
JP6612249B2 (ja) メディアデータをストリーミングするためのターゲット広告挿入
Ma et al. Mobile video delivery with HTTP
US8516144B2 (en) Startup bitrate in adaptive bitrate streaming
US20150256600A1 (en) Systems and methods for media format substitution
US20110299586A1 (en) Quality adjustment using a fragmented media stream
US11310550B2 (en) System and method for storing multimedia files using an archive file format
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
EP3292698B1 (en) Http live streaming (hls) video client synchronization

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

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

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20160831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160831

R150 Certificate of patent or registration of utility model

Ref document number: 6014870

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

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