JP2017529726A - ストリーミングサービスのためのクライアント及びサーバの動作方法 - Google Patents

ストリーミングサービスのためのクライアント及びサーバの動作方法 Download PDF

Info

Publication number
JP2017529726A
JP2017529726A JP2017502886A JP2017502886A JP2017529726A JP 2017529726 A JP2017529726 A JP 2017529726A JP 2017502886 A JP2017502886 A JP 2017502886A JP 2017502886 A JP2017502886 A JP 2017502886A JP 2017529726 A JP2017529726 A JP 2017529726A
Authority
JP
Japan
Prior art keywords
file
data
client
parameter
key frame
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.)
Ceased
Application number
JP2017502886A
Other languages
English (en)
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 JP2017529726A publication Critical patent/JP2017529726A/ja
Ceased legal-status Critical Current

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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • 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
    • 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
    • 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/70Media network packetisation
    • 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/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ストリーミングサービスのためのクライアント及びサーバの動作方法が開示される。【解決手段】一実施形態に係るクライアントはデータ要求を指示する媒介変数を含む要求パケットをサーバに送信する。一実施形態に係るサーバは、媒介変数に対応するアドレス範囲のデータを含む応答パケットをクライアントに送信する。

Description

実施形態は、ストリーミングサービスのためのクライアント及びサーバの動作方法に関する。
本発明の背景となる技術は特許文献1及び2に開示されている。
過去の数多いストリーミング技術は、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol:RTSP)のようなストリーミング専用プロトコルを用いた。しかし、最近のストリーミング技術は、インターネットのように幅広く分布したHTTPネットワーク上で効率よく動作するように設計されている。例えば、可変ビットレートストリーミング(adaptive bitrate streaming)は、ネットワークの状態或いは送信速度などに基づいて帯域幅を消化することのできる画質のコンテンツを送信するHTTP基盤のストリーミング方式である。
可変ビットレートストリーミングは、ファイルを時間単位に分類して送信する。例えば、可変ビットレートストリーミングは、2〜10秒のコンテンツを格納するチャンク(chunk)を用いてストリーミングサービスを提供する。ここで、送信されるチャンクのそれぞれはI−frameなどの予め決定したキーフレームから開示されることが要求される。このような条件を満たすために、可変ビットレートストリーミングでは、映像ファイルをストリーミング用のファイルに変換する過程が必須的に求められる。このような変換過程で映像ファイルの画質は低下し、また、変換のための時間及びコンピューティングパワーが加えて消耗される。
また、可変ビットレートストリーミングはマニフェスト(manifest)ファイルを必須的に利用する。マニフェストファイルは、ストリーミング用ファイルの各チャンクに関する情報を格納するファイルである。マニフェストファイルは、映像ファイルがストリーミング用ファイルに変換されるとき生成される。可変ビットレートストリーミングによれば、クライアントは、ストリーミングサービスが提供されるためにマニフェストファイルを必須的に参照しなければならない。
韓国公開特許第2014−0054138号 韓国公開特許第2012−0117384号
以下で説明する実施形態は、ストリーミング用ファイルフォーマットを用いることなく、映像ファイルフォーマットをそのまま使用するHTTP基盤ストリーミング技術を提供する。実施形態は、映像ファイルを容量単位に分割して送信する技術を提供する。例えば、実施形態は、映像ファイルを実際に分割せずに映像ファイルの一部をバイトアドレス単位に送信するストリーミングサービスを提供する。実施形態によれば、送信されるチャンクは、キーフレームから開始することが求められず、映像ファイルをストリーミング用ファイルに変換する過程を省略し得る。
実施形態は、映像ファイルをストリーミング用ファイルに変換する過程を省略することによって、変換時に発生する画質の低下を防止してサーバの負荷を減少させ得る。また、実施形態によれば、映像ファイルがサーバにアップロードされた後に映像ファイルをストリーミング用ファイルに変換する時間が要求されないため、より迅速なストリーミングサービスを提供し得る。それだけではなく、実施形態によれば、ストリーミング用ファイルが別に生成されないため、ストリーミング用ファイルのチャンク情報を格納するマニフェストファイルが要求されることがない。
一側に係るストリーミングサービスのためのクライアントの動作方法は、ファイルURL及び再生情報要求を指示する第1媒介変数を含む第1要求パケットを送信するステップと、前記ファイルURLに対応するファイルの再生情報を含む第1応答パケットを受信するステップと、前記ファイルURL及びデータ要求を指示する第2媒介変数を含む第2要求パケットを送信するステップと、前記ファイル内の前記第2媒介変数に対応するアドレス範囲のデータを含む第2応答パケットを受信するステップとを含む。
前記クライアントの動作方法は、前記第1媒介変数を予め決定した第1指示子に設定するステップと、前記第1応答パケットから前記ファイルを分割するチャンク大きさ、前記チャンク個数、前記ファイルに格納されたコンテンツの解像度、前記解像度と異なる第2解像度のコンテンツを格納する第2ファイルURL、及び前記第2解像度を抽出するステップとをさらに含み得る。
前記クライアントの動作方法は、前記第2媒介変数を最初インデックスに設定するステップと、前記第2応答パケットのデータをバッファに入力するステップとをさらに含み得る。前記クライアントの動作方法は、バッファの残量をチェックするステップと、前記バッファの残量が閾値以下になれば、前記第2媒介変数を次の再生するチャンクのインデックスに設定するステップと、前記第2応答パケットのデータを前記バッファに入力するステップとをさらに含み得る。
前記クライアントの動作方法は、前記第2媒介変数を最初インデックスに設定するステップと、前記第2応答パケットから前記ファイルのキーフレーム情報のためのオフセットアドレスを抽出するステップとをさらに含み得る。前記クライアントの動作方法は、前記オフセットアドレスのデータが前記第2応答パケットに含まれた場合、前記第2応答パケットから前記キーフレーム情報を抽出するステップをさらに含み得る。
前記クライアントの動作方法は、前記オフセットアドレスのデータが前記第2応答パケットに含まれない場合、データ要求を指示する第3媒介変数を前記オフセットアドレスに設定するステップと、前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、前記第3応答パケットから前記キーフレーム情報を抽出するステップとをさらに含み得る。
前記クライアントの動作方法は、前記第2応答パケットのデータをバッファに入力するステップと、前記データが再生される間に前記ファイルのキーフレームを抽出するステップと、前記キーフレームに基づいて前記ファイルのキーフレーム情報を生成するステップとをさらに含み得る。
前記クライアントの動作方法は、解像度の変更入力を受信するステップと、前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、前記第1媒介変数を予め決定した第2指示子に設定するステップと、前記第1応答パケットから前記第2ファイルを分割するチャンク大きさ、及び前記チャンク個数を抽出するステップとをさらに含み得る。
前記クライアントの動作方法は、解像度の変更入力を受信するステップと、前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、前記第2ファイルのキーフレーム情報に基づいて現在の再生時間に対応するキーフレームを検出するステップと、前記第2媒介変数を前記検出されたキーフレームのアドレスに設定するステップと、前記第2応答パケットのデータをバッファに入力するステップとをさらに含み得る。
前記クライアントの動作方法は、解像度の変更入力を受信するステップと、前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、現在の再生時間及び全体再生時間に基づいて前記現在の再生時間に対応するチャンクを推定するステップと、前記第2媒介変数を前記推定されたチャンクのインデックスに設定するステップと、前記第2応答パケットの時間範囲が前記現在の再生時間を含む場合、前記第2応答パケットのデータから前記現在の再生時間に最も近いキーフレームを検出するステップと、前記検出されたキーフレーム以後のデータを前記バッファに入力するステップとをさらに含み得る。
前記クライアントの動作方法は、前記第2応答パケットの時間範囲が前記現在の再生時間を含まない場合、前記現在の再生時間に対応する新しいインデックスを推定するステップと、データ要求を指示する第3媒介変数を前記新しいインデックスに設定するステップと、前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、前記第3応答パケットのデータから前記現在の再生時間に最も近いキーフレームを検出するステップとをさらに含み得る。
前記クライアントの動作方法は、探索時間を受信するステップと、前記ファイルのキーフレーム情報を用いて前記探索時間に対応するキーフレームを検出するステップと、前記第2媒介変数を前記検出されたキーフレームのアドレスに設定するステップと、前記第2応答パケットのデータをバッファに入力するステップとをさらに含み得る。
前記クライアントの動作方法は、探索時間を受信するステップと、前記探索時間と前記ファイルの全体再生時間に基づいて前記探索時間に対応するチャンクを推定するステップと、前記第2媒介変数を前記推定されたチャンクのインデックスに設定するステップと、前記第2応答パケットの時間範囲が前記探索時間を含む場合、前記第2応答パケットのデータから前記探索時間に最も近いキーフレームを検出するステップと、前記検出されたキーフレーム以後のデータをバッファに入力するステップとをさらに含み得る。
前記クライアントの動作方法は、前記第2応答パケットの時間範囲が前記探索時間を含まない場合、前記探索時間に対応する新しいインデックスを推定するステップと、データ要求を指示する第3媒介変数を前記新しいインデックスに設定するステップと、前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、前記第3応答パケットのデータから前記探索時間に最も近いキーフレームを検出するステップとをさらに含み得る。
他の一実施形態に係るストリーミングサービスのためのサーバの動作方法は、ファイルURL及び媒介変数を含む要求パケットを受信するステップと、前記媒介変数がデータ要求を指示する場合、前記ファイルURLに対応するファイル内の前記媒介変数に対応するアドレス範囲のデータを応答するステップと、前記媒介変数が再生情報要求を指示する場合、前記ファイルの再生情報を応答するステップとを含む。
前記データを応答するステップは、前記媒介変数がインデックスを含む場合、前記ファイル内の前記インデックスに対応するアドレス範囲のデータを応答するステップと、前記媒介変数がアドレスを含む場合、前記ファイル内の前記アドレスに対応するアドレス範囲のデータを応答するステップのうち少なくとも1つを含み得る。
前記アドレスに対応するアドレス範囲のデータを応答するステップは、前記媒介変数が2つのアドレスを含む場合、前記ファイル内の前記2つのアドレスの間のデータを応答するステップと、前記媒介変数が1つのアドレスを含む場合、前記ファイル内の前記1つのアドレスと前記ファイルの終了の間のデータを応答するステップのうち少なくとも1つを含み得る。
前記再生情報を応答するステップは、前記媒介変数が予め決定した第1指示子を含む場合、前記ファイルを分割するチャンク大きさ、前記チャンク個数、前記ファイルに格納されたコンテンツの解像度、前記解像度と異なる第2解像度のコンテンツを格納する第2ファイルURL、及び前記第2解像度を応答するステップと、前記媒介変数が予め決定した第2指示子を含む場合、前記チャンク大きさ及び前記チャンク個数を応答するステップのうち少なくとも1つを含み得る。
一実施形態に係るクライアントの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るサーバの動作方法を説明する図である。 一実施形態に係るクライアントの基本動作を説明する図である。 一実施形態に係るキーフレーム情報を取得する動作を説明する図である。 一実施形態に係るキーフレーム情報を取得する動作を説明する図である。 一実施形態に係るキーフレーム情報を取得する動作を説明する図である。 一実施形態に係る解像度変更動作を説明する図である。 一実施形態に係る解像度変更動作を説明する図である。 一実施形態に係る解像度変更動作を説明する図である。 一実施形態に係る探索動作を説明する図である。 一実施形態に係る探索動作を説明する図である。 一実施形態に係る探索動作を説明する図である。 複数のurlストリームを用いるクライアントの動作を説明する図である。 複数のurlストリームを用いるクライアントの動作を説明する図である。
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同一の参照符号は同一の部材を示す。下記で説明される実施形態は、ストリーミングサービスのためのクライアント、又はサーバに適用され得る。
一実施形態に係るクライアントは、ストリーミングサービスが提供されるコンピューティング装置であって、例えば、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、PDA、スマートフォンなどを含む。クライアントには、httpプロトコルを用いてサーバと通信するクライアントアプリケーション、例えば、swfプレーヤーなどが設けられる。一実施形態に係るサーバは、ストリーミングサービスを提供するコンピューティング装置であって、例えば、ウェブサーバーなどを含む。サーバは、サーバ専用コンピューティング装置だけではなく、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、PDA、スマートフォンなどでも構成し得る。サーバには、httpプロトコルを用いてクライアントと通信するサーバアプリケーション、例えば、アパッチサーバなどが設けられ得る。
図1は、一実施形態に係るクライアントの動作方法を説明する図である。図1を参照すると、一実施形態に係るクライアント110は、第1要求パケットをサーバ120に送信する。第1要求パケットは、ファイルURL及び再生情報要求を指示する第1媒介変数を含み得る。ここで、ファイルURLは、コンピュータネットワーク上のリソースを固有に指示する情報であって、例えば、ストリーミングサービスの対象となる映像ファイルを固有に指示する情報であり得る。再生情報要求を指示する第1媒介変数は、予め決定した文字又は文字列であり、例えば「i」又は「r」などであり得る。クライアント110は、第1要求パケットをサーバ120に送信することによりファイルURLに対応するファイルの再生情報を要求する。ファイルの再生情報は、ストリーミングサービスによってファイルを再生するための情報であって、例えば、送信のためにファイルが分割された情報などを含む。
クライアント110は、サーバ120から第1応答パケットを受信する。第1応答パケットは、ファイルURLに対応するファイルの再生情報を含む。上述したように、実施形態は、ファイルを容量単位に分割して送信するストリーミング技術を提供し得る。以下、ファイルを分割する個々の容量単位はチャンクのように指する。
一実施形態によれば、ファイルを分割するチャンク大きさはサーバ120によって決定される。サーバ120は、ファイルを分割するチャンク大きさに応じてファイルを分割するために必要なチャンク個数を算出する。この場合、第1応答パケットの再生情報はチャンク大きさ及びチャンク個数を含み得る。又は、サーバ120は、第1応答パケットにチャンク大きさ及びファイルの総大きさを含ませる。この場合、クライアント110は、チャンク大きさ及びファイルの総大きさに基づいてファイルを分割するために必要なチャンク個数を算出することができる。
他の実施形態によれば、ファイルを分割するチャンク大きさはクライアント120によって決定される。クライアント120は、チャンク大きさを第1媒介変数に含ませてサーバ120に送信する。サーバ120は、受信されたチャンク大きさに基づいてファイルを分割するために必要なチャンク個数を算出する。この場合、第1応答パケットの再生情報はチャンク個数を含み得る。又は、サーバ120は、第1応答パケットにファイルの総大きさを含ませる。この場合、クライアント110は、すでにチャンク大きさを知っているため、ファイルの総大きさに基づいてファイルを分割するために必要なチャンク個数を算出することができる。
クライアント110は、第2要求パケットをサーバ120に送信する。第2要求パケットは、ファイルURL及びデータ要求を指示する第2媒介変数を含む。データ要求を指示する第2媒介変数は、ファイル内アドレスを指示する数字又は文字列であって、例えば「アドレスr」又は「アドレス1rアドレス2」などであってもよい。以下、ファイル内アドレスはバイトアドレスであり得る。クライアント110は、第2要求パケットをサーバ120に送信することで、ファイルURLに対応するファイルの少なくとも一部を容量単位に要求する。
クライアント110は、サーバ120から第2応答パケットを受信する。第2応答パケットは、ファイルURLに対応するファイル内第2媒介変数に対応するアドレス範囲のデータを含む。クライアント110は、第2応答パケットのデータをバッファに入力する。以下で詳細に説明するが、バッファに入力されたデータはデマルチプレクサ及び/又はデコーダによって再生され得る。
図2〜図7は、一実施形態に係るサーバの動作方法を説明する図である。図2を参照すると、一実施形態に係るサーバ220は、クライアント210から要求パケットを受信する。要求パケットはファイルURL及び媒介変数を含み得る。ファイルURLは、コンピュータネットワーク上のリソースを固有に指示する情報であって、例えば、サーバ220に格納されたファイルを指示する情報であり得る。
サーバ220は媒介変数がデータ要求を指示するか、或いは再生情報要求を指示するかを判断する。例えば、サーバ220は、要求パケットに含まれた媒介変数が再生情報要求を指示する第1媒介変数であるか、或いはデータ要求を指示する第2媒介変数であるかを判断する。再生情報要求を指示する第1媒介変数及びデータ要求を指示する第2媒介変数は予め決定され、サーバ220とクライアント210は予め決定した第1媒介変数及び第2媒介変数を共有する。
媒介変数が再生情報要求を指示する場合、サーバ220はファイルの再生情報を応答する。一例として、図3を参照すると、サーバ320は、クライアント310からファイル1URL及び第1指示子を含む要求パケットを受信する。ここで、第1指示子は、予め決定した文字又は文字列として、例えば「r」であってもよい。要求パケット内でファイル1URL及び第1指示子は予め決定した符号、例えば「?」に区分できる。サーバ320は、要求パケットに含まれた媒介変数が第1指示子を含むか否かを判断する。
要求パケットに含まれた媒介変数が第1指示子を含む場合、サーバ320は、ファイル1URLに対応する第1ファイルを分割するチャンク大きさ(chunk大きさ)、チャンク個数(chunk個数)、及びファイルリストを応答する。ファイルリストは、第1ファイル解像度、及び第1ファイルに格納されたコンテンツの第1解像度と異なる解像度のコンテンツを格納している少なくとも1つのファイルURL及び解像度を含む。例えば、ファイルリストは、第1ファイルに格納されたコンテンツの第1解像度(ファイル1解像度)、第1解像度と異なる第2解像度のコンテンツを格納する第2ファイルURL(ファイル2URL)、及び第2解像度(ファイル2解像度)などを含み得る。第1解像度とは異なる解像度のコンテンツを格納しているファイルが複数である場合、ファイルリストは複数のファイルURL及び解像度を含み得る。
サーバ320は、ファイル1URLに対応する第1ファイルが格納されたディレクトリ内で第1解像度とは異なる解像度のコンテンツを格納する少なくとも1つのファイルを検索する。例えば、第1ファイルが格納されたディレクトリに表1のようなファイルが格納され、第1ファイルが「ミュージックビデオ.mp4」である場合、サーバ320は「ミュージックビデオ_720p.mp4」、「ミュージックビデオ_480p.mp4」、及び「ミュージックビデオ_360p.mp4」を検索する。
Figure 2017529726
この場合、サーバ320は、表2のような応答パケットを生成し、応答パケットをクライアント310に送信する。
Figure 2017529726
ここで、応答パケットの最初の元素はチャンク大きさであり、2番目の元素はチャンク個数であり、3番目の元素はファイル1解像度であり、4番目の元素はファイル2URLであり、5番目の元素はファイル2解像度であり、6番目の元素はファイル3のURLであり、7番目の元素はファイル3の解像度であり、8番目の元素はファイル4のURLであり、9番目の元素はファイル4の解像度である。チャンク大きさはバイト単位であり得る。
場合に応じて、統一性のある資料構造のために、ファイルリストは同一のコンテンツに対応する全てのファイルURL及び解像度を含み得る。例えば、ファイルリストは、第1ファイルURL、第1ファイル解像度、及び第1ファイル解像度とは異なる解像度のコンテンツを格納する少なくとも1つのファイルURL及び解像度を含む。この場合、サーバ320は、表3のような応答パケットを生成し、応答パケットをクライアント310に送信する。
Figure 2017529726
ここで、応答パケットの最初の元素はチャンク大きさであり、2番目の元素はチャンク個数であり、3番目の元素はファイル1URLであり、4番目の元素はファイル1解像度であり、5番目の元素はファイル2URLであり、6番目の元素はファイル2解像度であり、7番目の元素はファイル3のURLであり、8番目の元素はファイル3の解像度であり、9番目の元素はファイル4のURLであり、10番目の元素はファイル4の解像度である。チャンク大きさはバイト単位であり得る。現在の要求されたファイル(第1ファイル)の解像度が1080(ファイル1解像度)であることを表示するために、ファイル1解像度の末に予め決定した文字又は文字列、例えば「a」が追加される。
それぞれのファイルはファイル名に解像度を含み得る。例えば、サーバ320は、オリジナル映像ファイルである「ミュージックビデオ.mp4」のアップロードが完了すると、「ミュージックビデオ.mp4」を新しい解像度にエンコーディングする。ここで、サーバ320は、オリジナル映像ファイルのファイル名に新しい解像度を付加し、新しい解像度のファイル名を決定し得る。この場合、サーバ320は、ファイル名に基づいて該当するファイルに格納されたコンテンツの解像度を取得できる。
他の例として、図4を参照すると、サーバ420は、クライアント410からファイルURL及び第2指示子を含む要求パケットを受信する。ここで、第2指示子は予め決定した文字又は文字列として、例えば、「i」であり得る。要求パケット内でファイルURL及び第2指示子は予め決定した符号、例えば「?」に区分される。サーバ420は、要求パケットに含まれた媒介変数が第2指示子を含むか否かを判断する。要求パケットに含まれた媒介変数が第2指示子を含む場合、サーバ420は、ファイルURLに対応するファイルを分割するチャンク大きさ(チャンク大きさ)、及びチャンク個数(チャンク個数)を応答する。
例えば、要求パケットが「ファイル3のURL?i」である場合、サーバ420は表4のような応答パケットを生成し、応答パケットをクライアント410に送信する。
Figure 2017529726
ここで、応答パケットの最初の元素はチャンク大きさであり、2番目の元素はチャンク個数である。チャンク大きさはバイト単位であり得る。表1を参照すると、それぞれのファイルを分割するチャンク大きさはそれぞれ異なるように設定される。ただし、実施形態は、それぞれのファイルを分割するチャンク大きさがそれぞれ相異に設定されるよう制限することはない。例えば、それぞれのファイルを分割するチャンク大きさは互いに同一に設定されてもよい。
再び図2を参照すると、媒介変数がデータ要求を指示する場合、サーバ220は、ファイルURLに対応するファイル内の媒介変数に対応するアドレス範囲のデータを応答し得る。一例として、図5を参照すると、サーバ520は、クライアント510からファイルURL及びインデックスを含む要求パケットを受信する。ここで、インデックスは0以上の整数であり得る。要求パケット内のファイルURL及びインデックスは予め決定した符号、例えば「?」に区分する。サーバ520は、要求パケットに含まれた媒介変数がインデックスを含むか否かを判断する。要求パケットに含まれた媒介変数がインデックスを含む場合、サーバ520は、ファイルURLに対応するファイル内のインデックスに対応するアドレス範囲のデータを応答する。
例えば、要求パケットが「ファイルURL?n」である場合、サーバ520は、ファイルURLに対応するファイルを分割するチャンク大きさを取得する。ファイルのためのチャンク大きさが2097152バイトである場合、サーバ520は、表5のようなデータをクライアント510に送信する。表5のデータはチャンク−nのように称される。
Figure 2017529726
ここで、[第1バイトアドレス、第2バイトアドレス]は第1バイトアドレスから第2バイトアドレスまでのデータである。
異なる例として、ファイルURL及びインデックスを含む要求パケットは、ヘッダを含む。ヘッダは、アドレス範囲パラメータを含み得る。ヘッダはhttpヘッダであり得る。サーバ520は、要求パケットのヘッダに含まれたアドレス範囲パラメータを用いてインデックスに対応するチャンクの一部のデータをクライアント510に送信する。例えば、要求パケットに含まれたファイルURLに対応するファイルのためのチャンク大きさが2097152バイトであり、要求パケットに含まれたインデックスがnであり、要求パケットのアドレス範囲パラメータが「start range、end range」である場合、サーバ520は表6のようなデータをクライアント510に送信する。
Figure 2017529726
ここで、start range及びend rangeの単位はバイトである。サーバ520はキャッシュサーバを含む。キャッシュサーバは、ファイルURL及びインデックスに基づいてチャンクデータをキャッシュする。この場合、要求パケットのヘッダに含まれたアドレス範囲パラメータが異なっても、要求パケットに含まれたファイルURL及びインデックスが同一であれば、キャッシュサーバにキャッシュされたチャンクデータを活用することができる。
更なる例として、図6を参照すると、サーバ620は、クライアント610からファイルURL及びアドレスを含む要求パケットを受信する。ここで、アドレスはバイトアドレスである。要求パケット内のファイルURL及びアドレスは、予め決定した符号、例えば「?」に区分する。アドレスとインデックスを区別するために、アドレスの後には予め決定した文字又は文字列、例えば、「r」が追加され得る。サーバ620は、要求パケットに含まれた媒介変数がアドレスを含むか否かを判断する。要求パケットに含まれた媒介変数がアドレスを含む場合、サーバ620は、ファイルURLに対応するファイル内のアドレスに対応するアドレス範囲のデータを応答できる。
例えば、要求パケットが「ファイルURL?アドレスr」である場合、サーバ620は表7のようなデータをクライアント610に送信する。
Figure 2017529726
ここで、[アドレス、ファイル終了]はアドレスからファイル終了までのデータである。
更なる例として、図7を参照すると、サーバ720は、クライアント710からファイルURL及び複数のアドレス、例えば、第1アドレスと第2アドレスを含む要求パケットを受信する。ここで、複数のアドレスは、各バイトアドレスであり得る。要求パケット内ファイルURL及び複数のアドレスは予め決定した符号、例えば、「?」に区分する。また、複数のアドレスを互いに区別するために、複数のアドレスの間に予め決定した文字又は文字列、例えば、「r」が追加され得る。サーバ720は、要求パケットに含まれた媒介変数が複数のアドレスを含むか否かを判断する。要求パケットに含まれた媒介変数が複数のアドレスを含む場合、サーバ720は、ファイルURLに対応するファイル内の複数のアドレスに対応するアドレス範囲のデータを応答できる。
例えば、要求パケットが「ファイルURL?アドレス1rアドレス2」である場合、サーバ720は表8のようなデータをクライアント710に送信する。
Figure 2017529726
ここで、[アドレス1、アドレス2]は第1アドレスから第2アドレスまでのデータである。
図8は、一実施形態に係るクライアントの基本動作を説明する図である。図8を参照すると、一実施形態に係るクライアント810は、ストリーミングサービスによって再生しようとする第1ファイルURL、例えば、「ファイル1URL」を取得する。クライアント810は、第1ファイルの最初チャンクを要求する要求パケット、例えば、「ファイル1URL?0」をサーバ820に送信する。また、クライアント810は、第1ファイルの再生情報を要求する要求パケット、例えば、「ファイル1URL?r」をサーバ820に送信する。
クライアント810は、サーバ820から第1ファイルの再生情報を含む応答パケットを受信する。例えば、第1ファイルの再生情報は、チャンク大きさ、チャンク個数、及びファイルリストを含み得る。ファイルリストは、ファイル1解像度、ファイル2URL、及びファイル2解像度などを含む。クライアント810は、応答パケットから第1ファイルの再生情報を抽出し得る。
クライアント810は、サーバ820から第1ファイルの最初チャンク、例えば、「チャンク−0」を含む応答パケットを受信する。クライアント810は、「チャンク−0」を再生することができる。例えば、クライアント810は、応答パケットに含まれた「チャンク−0」をバッファに入力する。バッファに入力されたデータは、デマルチプレクサ及び/又はデコーダによって再生され得る。
クライアント810は、バッファの残量をチェックする。例えば、バッファの残量が予め決定した閾値以下であるか否かを判断する。予め決定した閾値は、バイト単位又は時間単位であり得る。予め決定した閾値が時間単位である場合、再生中であるコンテンツの解像度に基づいて時間単位閾値がバイト単位閾値に換算され得る。
バッファの残量が予め決定した閾値以下である場合、クライアント810は、第1ファイルの次のチャンクを要求する要求パケットをサーバ820に送信する。例えば、クライアント810は、現在の再生中であるチャンクのインデックスに1を加えることで、次のチャンクのためのインデックスを算出できる。現在の再生中であるチャンクのインデックスが0である場合、クライアント810は「ファイル1URL?1」をサーバ820に送信する。
クライアント810は、サーバ820から次のチャンク、例えば、「チャンク−1」を含む応答パケットを受信する。クライアント810は、「チャンク−1」を再生することができる。例えば、クライアント810は、応答パケットに含まれた「チャンク−1」をバッファに入力する。バッファに入力されたデータは、デマルチプレクサ及び/又はデコーダによって再生され得る。
図9〜図11は、一実施形態に係るキーフレーム情報を取得する動作を説明する図である。一実施形態に係るクライアントは、ストリーミングサービスによって再生しようとする第1ファイルのキーフレーム情報を取得できる。第1ファイルに格納されたコンテンツは、複数のフレームから構成される。複数のフレームは、画面の情報を完全に入れたフレームとその他のフレームを参照するフレームに分類される。画面の情報を完全に入れたフレームはキーフレームと称される。他のフレームを参照するフレームは、該当フレームの画面の情報を完全に入れないため、キーフレームに比べて小さい容量を有する。
第1ファイルのキーフレーム情報は、第1ファイルに格納されたコンテンツを構成している複数のフレームのうちキーフレームに関する情報を含み得る。例えば、キーフレーム情報は、キーフレームそれぞれのインデックス、バイトアドレス、及びタイムスタンプなどを含んでもよい。
一例として、第1ファイルは、キーフレーム情報を格納することができる。例えば、第1ファイルがmp4ファイルの形式を有する場合、第1ファイルはキーフレーム情報を格納する。この場合、クライアントは、キーフレーム情報が格納されたアドレス範囲のデータをサーバから受信することでキーフレーム情報を取得できる。
より具体的に、図9を参照すると、クライアント910は、第1ファイルの最初チャンクを要求する要求パケット、例えば、「ファイル1URL?0」をサーバ920に送信し得る。クライアント910は、サーバ920から第1ファイルの最初チャンク、例えば、「チャンク−0」を含む応答パケットを受信する。クライアント910は、第1ファイルの最初チャンクからキーフレーム情報のオフセットアドレスを抽出することができる。
クライアント910は、オフセットアドレスが最初チャンクのアドレス範囲内に含まれるか否かを判断することで、オフセットアドレスのデータが最初チャンクに含まれているか否かを判断する。オフセットアドレスが最初チャンクのアドレス範囲内に含まれている場合、クライアント910はすでに受信された最初チャンクからキーフレーム情報を取得できる。
オフセットアドレスが最初チャンクのアドレス範囲に含まれていない場合、クライアント910は、オフセットアドレス以後のデータを要求する要求パケット、例えば、「ファイル1URL?オフセットアドレスr」をサーバ920に送信し得る。クライアント910は、オフセットアドレス以後のデータ、例えば、[オフセットアドレス、ファイル1終了]を含む応答パケットを受信する。クライアント910は、応答パケットからキーフレーム情報を抽出できる。
異なる例として、第1ファイルは、キーフレーム情報を格納しなくてもよい。例えば、第1ファイルがflvファイルの形式を有する場合、第1ファイルはキーフレーム情報を格納できないことがある。この場合、クライアントは第1ファイルを再生する途中キーフレーム情報を生成し得る。
より具体的に、図10を参照すると、クライアント1010は第1ファイルの最初チャンクを要求する要求パケット、例えば「ファイル1URL?0」をサーバ1020に送信する。クライアント1010は、サーバ1020から第1ファイルの最初チャンク、例えば、「チャンク−0」を含む応答パケットを受信する。クライアント1010は、「チャンク−0」を再生する。例えば、クライアント1010は、応答パケットに含まれた「チャンク−0」をバッファに入力する。バッファに入力されたデータは、デマルチプレクサ及び/又はデコーダによって再生され得る。
クライアント1010は、「チャンク−0」が再生する間に「チャンク−0」に含まれたキーフレームを抽出する。クライアント1010は、抽出されたキーフレームに基づいて第1ファイルのためのキーフレーム情報を生成する。例えば、図11を参照すると、クライアント1010は、キーフレーム情報を含む探索テーブル1100を生成し得る。
図面に図示していないが、クライアント1010は、最初チャンクの他のチャンクを再生する途中にもキーフレーム情報を生成することができる。例えば、クライアント1010は、第1ファイルに格納されたコンテンツが再生する間に探索テーブル1100を持続的にアップデートできる。
図12〜図14は、一実施形態に係る解像度変更動作を説明する図である。図12を参照すると、一実施形態に係るクライアント1210は、ストリーミングサービスによって再生しようとする第1ファイルURL、例えば、「ファイル1URL」を取得する。クライアント1210は、第1ファイルの最初チャンクを要求する要求パケット、例えば、「ファイル1URL?0」をサーバ1220に送信する。また、クライアント1210は、第1ファイルの再生情報を要求する要求パケット、例えば、「ファイル1URL?r」をサーバ1220に送信する。
クライアント1210は、サーバ1220から第1ファイルの再生情報を含む応答パケットを受信する。例えば、第1ファイルの再生情報はチャンク大きさ、チャンク個数、ファイルリストを含み得る。ファイルリストは、ファイル1解像度、ファイル2URL、及びファイル2解像度などを含み得る。クライアント810は、応答パケットから第1ファイルの再生情報を抽出し得る。
クライアント1210は、サーバ1220から第1ファイルの最初チャンク、例えば、「ファイル1チャンク−0」を含む応答パケットを受信する。クライアント1210は、「ファイル1チャンク−0」を再生する。例えば、クライアント810は、応答パケットに含まれた「ファイル1チャンク−0」をバッファに入力する。バッファに入力されたデータはデマルチプレクサ及び/又はデコーダによって再生され得る。
クライアント1210は、解像度の変更入力を受信する。例えば、クライアント1210は、予め決定したインタフェースを介してユーザに現在の再生中であるコンテンツの解像度及び/又は変更可能な解像度を提供し得る。クライアント1210は、インタフェースを介して解像度の変更入力を受信する。
場合に応じて、クライアント1210は、自動で解像度変更の有無を決定することができる。例えば、クライアント1210は、通信状態、バッファリングの有無、通信費用などに基づいて解像度変更の有無を自動で決定できる。
以下、第1解像度から第2解像度に変更する実施形態について説明する。クライアント1210は、第2解像度に該当する第2ファイルの再生情報を要求する要求パケット、例えば、「ファイル2URL?i」をサーバ1220に送信する。クライアント1210は、すでに解像度リストを有しているため第2指示子、例えば、「i」を用いて第2ファイルの再生情報を要求する。クライアント1210は、サーバ1220から第2ファイルの再生情報を含む応答パケットを受信する。例えば、第2ファイルの再生情報は、チャンク大きさ、及びチャンク個数を含み得る。
クライアント1210は、第2ファイルの最初チャンクを要求する要求パケット、例えば、「ファイル2URL?0」をサーバ1220に送信する。クライアント1210は、サーバ1220から第2ファイルの最初チャンク、例えば「ファイル2チャンク−0」を含む応答パケットを受信する。図面に図示していないが、クライアント1210は、第2ファイルのキーフレーム情報を取得する。例えば、クライアント1210は、図9を参照して前述した実施形態に基づいて第2ファイルのキーフレーム情報を取得できる。
クライアント1210は、第2ファイルのキーフレーム情報に基づいて現在の再生時間に対応するキーフレームを検出する。一例として、クライアント1210は、現在の再生時間後に予め決定した時間、例えば、1秒、以後のフレームに最も近いキーフレームを検出し得る。異なる例として、クライアント1210は、第1ファイルのバッファ情報に基づいて現在の再生時間に対応するキーフレームを検出し得る。更なる例として、クライアント1210は、第1ファイルが現在のバッファに入力された分量以後の時間に該当するキーフレームを検出し得る。
クライアント1210は、検出されたキーフレームのアドレス後のデータを要求する要求パケット、例えば、「ファイル2URL?キーフレームアドレスr該当チャンク終了アドレス」をサーバ1220に送信する。「該当チャンク終了アドレス」は検出されたキーフレームが属するチャンクの終了アドレスであり、クライアント1210は第2ファイルの再生情報を用いて検出されたキーフレームが属するチャンクの終了アドレスを算出する。図面に図示していないが、クライアント1210は、検出されたキーフレームが属するチャンクを要求する要求パケット、例えば、「ファイル2URL?該当チャンクインデックス」をサーバ1220に送信しながら、要求パケットのヘッダに含まれたアドレス範囲パラメータを用いて[キーフレームアドレス、該当チャンク終了]のデータを要求する。他の実施形態によれば、クライアント1210は、「ファイル2URL?キーフレームアドレスr」をサーバ1220に送信することで、[キーフレームアドレス、ファイル終了]のデータを要求し得る。
クライアント1210は、キーフレームアドレス以後のデータ、例えば、[キーフレームアドレス、該当チャンク終了アドレス]を含む応答パケットを受信する。クライアント1210は、キーフレームアドレス以後のデータをバッファに入力することによって、新しい解像度を有する第2ファイルを再生し得る。
図13を参照すると、他の実施形態に係るクライアント1310は、第1ファイルを再生中の解像度の変更入力を受信する。例えば、クライアント1310は、予め決定したインタフェースを介してユーザに現在の再生中であるコンテンツの解像度及び/又は変更可能な解像度を提供することができる。クライアント1310は、インタフェースを介して解像度の変更入力を受信する。場合に応じて、クライアント1310は、自動で解像度変更の有無を決定し得る。例えば、クライアント1310は、通信状態、バッファリングの有無、通信費用などに基づいて解像度変更の有無を自動決定できる。
以下、第1解像度から第2解像度に変更する実施形態について説明する。クライアント1310は、第2ファイルの再生情報を要求する要求パケット、例えば、「ファイル2URL?i」をサーバ1320に送信する。クライアント1310は、すでに解像度リストを有しているため、第2指示子、例えば、「i」を用いて第2ファイルの再生情報を要求する。クライアント1310は、サーバ1320から第2ファイルの再生情報を含む応答パケットを受信する。例えば、第2ファイルの再生情報はチャンク大きさ、及びチャンク個数を含み得る。
クライアント1310は、第2ファイルの最初チャンクを要求する要求パケット、例えば、「ファイル2URL?0」をサーバ1320に送信する。クライアント1310は、サーバ1320から第2ファイルの最初チャンク、例えば、「ファイル2チャンク−0」を含む応答パケットを受信する。
ここで、第2ファイルは、キーフレーム情報を格納しなくてもよい。この場合、クライアント1310は、現在の再生時間及び全体再生時間に基づいて、第2ファイルのチャンクのうち現在の再生時間に対応するチャンクを推定する。例えば、クライアント1310は、現在の再生時間対全体再生時間の比を用いて、第2ファイルのチャンクのうち現在の再生時間に対応するチャンクを推定できる。
クライアント1310は、推定されたチャンクのデータを要求する要求パケット、例えば、「ファイル2URL?m」をサーバ1320に送信する。ここで、「m」は推定されたチャンクのインデックスである。クライアント1310は、推定されたチャンクのデータ、例えば、「ファイル2チャンク−m」を含む応答パケットを受信する。クライアント1310は、推定されたチャンクのデータを用いて推定成功の有無を判断する。例えば、クライアント1310は、推定されたチャンク内の初めてのフレームの時間と現在の再生時間とを比較することによって、推定成功の有無を判断できる。
推定が失敗と判断される場合、クライアント1310は新しいチャンクを推定する。推定が成功であると判断される場合、推定されたチャンク内のキーフレームを抽出する。クライアント1310は、現在の再生時間に最も近いキーフレームを検出する。クライアント1310は、検出されたキーフレーム以後のデータをバッファに入力する。
図14を参照すると、一実施形態に係るクライアント1410は、様々なビットレートを用いてサーバ1420からチャンクを受信する。上述したように、実施形態によれば、チャンクがキーフレームから始めることが要求されることなく、さらに、チャンクはキーフレームを含まなくてもよい。そのため、サーバ1420は、チャンクに合わせてエンコーディングしなくてもよく、サーバ1420は、mp4、flvなどの一般的な映像ファイルを容量単位に分類して送信できる。サーバ1420とクライアント1410との間で送信されるチャンクがキーフレームから始めることと、キーフレームを含む条件が要求されないため、実施形態はクローズドGOP(Closed GOP)のみならず、オープンGOP(Open GOP)もサポートできる。
クライアント1410は、バッファの大きさだけチャンクを予めダウンロードする。クライアント1410は、再生したチャンクを格納することにより、格納されたチャンクに属するフレームを再び再生するとき該当のチャンクを重複してダウンロードしないようにする。
図15〜図17は、一実施形態に係る探索動作を説明する図である。探索動作は、コンテンツをランダムアクセスする動作である。図15を参照すると、一実施形態に係るクライアント1510は、第1ファイルのn番目のチャンクを要求する要求パケット、例えば、「ファイル1URL?n」をサーバ1520に送信する。クライアント1510は、サーバ1520から第1ファイルのn番目のチャンク、例えば、「チャンク−n」を含んでいる応答パケットを受信する。クライアント1510は、「チャンク−n」をバッファに入力する。バッファに入力されたデータはデマルチプレクサ及び/又はデコーダによって再生され得る。
クライアント1510は、「チャンク−n」が再生する間に探索入力を受信する。例えば、クライアント1510は、予め決定したインタフェースを介して探索入力を受信し得る。探索入力は探索時間を含み得る。
クライアント1510は、第1ファイルのキーフレーム情報に基づいて探索時間に対応するキーフレームを検出する。例えば、クライアント1510は探索時間のフレームに最も近いキーフレームが検出される。
クライアント1510は、検出されたキーフレームのアドレス以後のデータを要求する要求パケット、例えば、「ファイル1URL?キーフレームアドレスr該当チャンク終了アドレス」をサーバ1520に送信する。「該当チャンク終了アドレス」は、検出されたキーフレームが属するチャンクの終了アドレスであり、クライアント1510は、第1ファイルの再生情報を用いて検出されたキーフレームが属するチャンクの終了アドレスを算出する。図面には図示していないが、クライアント1510は、検出されたキーフレームが属するチャンクを要求する要求パケット、例えば、「ファイル1URL?該当チャンクインデックス」をサーバ1520に送信しながら、要求パケットのヘッダに含まれたアドレス範囲パラメータを用いて[キーフレームアドレス、該当チャンク終了]のデータを要求する。
クライアント1510はキーフレームアドレス以後のデータ、例えば、[キーフレームアドレス、該当チャンク終了アドレス]を含む応答パケットを受信する。クライアント1510は、キーフレームアドレス以後のデータをバッファに入力することによって、第1ファイルを探索して再生し得る。
図16を参照すると、他の実施形態に係るクライアント1610は「ファイル1URL?n」をサーバ1620に送信する。クライアント1610は、サーバ1620から「チャンク−n」を含む応答パケットを受信する。クライアント1610は「チャンク−n」を再生する。
クライアント1610は、「チャンク−n」が再生する間に探索入力を受信する。クライアント1610は、第1ファイルのキーフレーム情報に基づいて探索時間に対応するキーフレームを検出する。例えば、クライアント1610は探索時間のフレームに最も近いキーフレームを検出し得る。
クライアント1610は、検出されたキーフレームが属するチャンクのデータを要求する要求パケット、例えば、「ファイルURL?k」をサーバ1620に送信し得る。ここで「k」は、検出されたキーフレームが属するチャンクのインデックスである。クライアント1610は、検出されたキーフレームが属するチャンクのデータ、例えば、「ファイル1チャンク−k」を含む応答パケットを受信する。クライアント1610は、キーフレームアドレス以後のデータをバッファに入力することによって、第1ファイルを探索して再生され得る。
図16に示す探索動作は図15に示す探索動作に比べてキャッシュサーバの効率性を増大させ、図15に示す探索動作は図16に示す探索動作に比べて実際送信されるデータの量を減少させ得る。実施形態は、キャッシュサーバの効率性及び実際送信されるデータの量との間のトレード−オフ関係を考慮して、図15に示す探索動作と図16に示す探索動作のうちいずれか1つに基づいて動作することができる。
図17を参照すると、更なる実施形態に係るクライアント1710は、「チャンク−n」を再生中に探索入力を受信する。探索入力は探索時間を含み得る。現在再生中である第1ファイルはキーフレーム情報を格納しなくてもよい。この場合、クライアント1710は、図10及び図11を参照して前述した実施形態によりキーフレーム情報を生成することができる。しかし、探索時間に対応するキーフレームは、まだキーフレーム情報に含まれていないことがある。
クライアント1710は現在の再生時間及び全体再生時間に基づいて、第1ファイルのチャンクのうち現在の再生時間に対応するチャンクを推定する。例えば、クライアント1710は現在の再生時間対全体再生時間の比を用いて、第1ファイルのチャンクのうち現在の再生時間に対応するチャンクを推定できる。
クライアント1710は、推定されたチャンクのデータを要求する要求パケット、例えば、「ファイル1URL?m」をサーバ1720に送信する。ここで、「m」は推定されたチャンクのインデックスである。クライアント1710は推定されたチャンクのデータ、例えば、「ファイル1チャンク−m」を含む応答パケットを受信する。クライアント1710は、推定されたチャンクのデータを用いて推定成功の有無を判断する。例えば、クライアント1710は、推定されたチャンク内の初めてのフレームの時間と現在の再生時間とを比較することによって、推定成功の有無を判断できる。
推定が失敗と判断される場合、クライアント1710は新しいチャンクを推定する。推定が成功であると判断される場合、推定されたチャンク内のキーフレームを抽出する。クライアント1710は、現在の再生時間に最も近いキーフレームを検出する。クライアント1710は、検出されたキーフレーム以後のデータをバッファに入力する。
図18及び図19は、複数のurlストリームを用いるクライアントの動作を説明する図である。図18を参照すると、一実施形態に係るクライアントは、複数のurlストリームを用いて解像度変更動作及び/又は探索動作を行う。以下、クライアントが2つのurlストリームを用いる場合について説明する。
第1urlストリーム及び第2urlストリームのそれぞれは、要求パケットを生成してサーバに送信し、サーバから受信される応答パケットを処理する。第1urlストリームのデータは、第1デマルチプレクサと第1デコーダによって再生される。第2urlストリームのデータは、第2デマルチプレクサと第2デコーダによって再生される。
一実施形態によれば、第1デマルチプレクサと第2デマルチプレクサは単一デバイスにより実現される。例えば、第1デマルチプレクサと第2デマルチプレクサは同一のデマルチプレクサデバイスを用いる2つのスレッド形態に実現される。また、第1デコーダと第2デコーダも単一デバイスによって実現される。例えば、第1デコーダと第2デコーダは同一のデコーダデバイスを用いる2つのスレッド形態に実現される。
図面に図示していないが、他の実施形態により動画ファイルがB−フレームを含んでいない場合、クライアントは、1つのデマルチプレクサと1つのデコーダを用いて解像度変更動作及び/又は探索動作を行う。B−フレームは、以後のフレーム情報を参照して圧縮されたフレームである。例えば、B−フレームは、以前のフレーム情報及び以後のフレーム情報を参照して圧縮されたフレームであり得る。
第1ファイルにB−フレームが含まれている場合、第1ファイルのバッファの後に第2ファイルのバッファを続けて付けると、第1ファイルに含まれたB−フレームが第1ファイルではない第2ファイルを参照することになってエラーが発生する。一方、第1ファイルにB−フレームが含まれない場合、第1ファイルのバッファと第2ファイルのバッファを続けて付けることができるため、デコーダに入力されるバッファ入力ラインを区分する必要がない。そのため、クライアントは1つのデコーダを用いて解像度変更動作及び/又は探索動作を行うことができる。
クライアントは、動画ファイルにB−フレームが含まれているか否かを判断した後、動作モードを選択する。
クライアントは、第1デマルチプレクサを制御する信号EN_DEMUX_1、第1デコーダを制御する信号EN_DECODER_1、第2デマルチプレクサを制御する信号EN_DEMUX_2、第2デコーダを制御する信号EN_DECODER_2、及び出力モクスを制御する信号MUX_OUTのうち少なくとも1つを用いて、第1urlストリームのデータ及び第2urlストリームのデータのデータフロー(data flow)を制御する。
一例として、図19を参照すると、ストリーミングサービスの開始時にクライアントは第1urlストリームを用いて第1ファイルの最初チャンクから順次再生する。ここで、クライアントは、第2urlストリームを用いて第1ファイルの再生情報を受信する。
解像度変更の入力時にクライアントは、第1urlストリームを用いて第1ファイルを再生しながら、第2urlストリームを用いて第2ファイルのキーフレームのうち現在の再生時間に対応するキーフレームを検出する。クライアントは解像度変更のために、検出されたキーフレームが再生する時点に第1urlストリームのデータフローと第2urlストリームのデータフローを制御する。
例えば、クライアントは、第1urlストリームのデータフローをスイッチOFFし、第2urlストリームのデータフローをスイッチONする。場合に応じて、クライアントは、デマルチプレクサ及び/又はデコーダのディレイを考慮して第1urlストリームのデータフロー及び第2urlストリームのデータフローが一定時間、例えば、30msの間に共にスイッチONされるように制御し得る。
その後、クライアントは、第2urlストリームを用いて検出されたキーフレーム以後データを再生する。クライアントは、第1urlストリームのためのバッファをクリアする。図面に図示していないが、もし、追加的な解像度の変更入力が受信されれば、クライアントは前述した動作で第1urlストリームと第2urlストリームの役割のみを交替することにより、追加的な解像度の変更入力を処理できる。
図面に図示していないが、異なる例として、第1ファイルがB−フレームを含まない場合、クライアントは、解像度変更の入力時に第1urlストリームを用いて第1ファイルを再生しながら、第2urlストリームを用いて第2ファイルのキーフレームのうち現在のバッファ分量に対応するキーフレームを検出する。ここで、現在のバッファ分量は、第1ファイルが現在のバッファに入力された分量であり得る。クライアントは、現在のバッファ分量以後の時間に該当する第2ファイルのキーフレームを検出できる。
クライアントは、第1ファイルの再生中に第2ファイルへの解像度の変更入力が入ると、第1ファイルがデコーダのバッファに入っている分量以後の再生時間に該当する第2ファイルのキーフレームを検出する。クライアントは、検出された第2ファイルのキーフレームの再生時間以前まで第1ファイルのデータをバッファに入力し、第2ファイルのキーフレーム以後に第2ファイルのデータを同一のバッファに入力することにより、第1ファイルのバッファに続けて第2ファイルのバッファを入力できる。
この場合、クライアントが別途の動作しなくても第2ファイルのキーフレームに該当する再生時間で解像度変更及び/又は探索が実行される。例えば、クライアントは、別途のスイッチon/off動作しなくてもよい。また、クライアントは、バッファをクリアする動作をしなくてもよい。第1urlストリームは、第2ファイルのキーフレーム以前の時間に該当する第1ファイルのバッファを生成し、第2urlストリームは第1ファイルのバッファ入力が完了すると、第2ファイルのバッファを第1ファイルのバッファに続いて付けることができる。
上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが分かる。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
上述したように実施形態をたとえ限定された図面によって説明したが、当技の術分野で通常の知識を有する者であれば、前記に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせられたり、他の構成要素又は均等物によって置き換えたり置換されても適切な結果を達成することができる。したがって、他の具現、他の実施形態、及び特許請求の範囲と均等なものも後述する特許請求の範囲に属する。

Claims (36)

  1. ストリーミングサービスのためのクライアントの動作方法において、
    ファイルURL及び再生情報要求を指示する第1媒介変数を含む第1要求パケットを送信するステップと、
    前記ファイルURLに対応するファイルの再生情報を含む第1応答パケットを受信するステップと、
    前記ファイルURL及びデータ要求を指示する第2媒介変数を含む第2要求パケットを送信するステップと、
    前記ファイル内の前記第2媒介変数に対応するアドレス範囲のデータを含む第2応答パケットを受信するステップと
    を含むクライアントの動作方法。
  2. 前記再生情報は、前記ファイルを分割するチャンク大きさ、及び前記チャンク個数のうち少なくとも1つを含む請求項1に記載のクライアントの動作方法。
  3. 前記第1媒介変数を予め決定した第1指示子に設定するステップと、
    前記第1応答パケットから前記ファイルを分割するチャンク大きさ、前記チャンク個数、前記ファイルに格納されたコンテンツの解像度、前記解像度と異なる第2解像度のコンテンツを格納する第2ファイルURL、及び前記第2解像度を抽出するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  4. 前記第2媒介変数を最初インデックスに設定するステップと、
    前記第2応答パケットのデータをバッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  5. バッファの残量をチェックするステップと、
    前記バッファの残量が閾値以下になれば、前記第2媒介変数を次の再生するチャンクのインデックスに設定するステップと、
    前記第2応答パケットのデータを前記バッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  6. 前記第2媒介変数を最初インデックスに設定するステップと、
    前記第2応答パケットから前記ファイルのキーフレーム情報のためのオフセットアドレスを抽出するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  7. 前記オフセットアドレスのデータが前記第2応答パケットに含まれた場合、前記第2応答パケットから前記キーフレーム情報を抽出するステップをさらに含む請求項6に記載のクライアントの動作方法。
  8. 前記オフセットアドレスのデータが前記第2応答パケットに含まれない場合、データ要求を指示する第3媒介変数を前記オフセットアドレスに設定するステップと、
    前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、
    前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、
    前記第3応答パケットから前記キーフレーム情報を抽出するステップと
    をさらに含む請求項6に記載のクライアントの動作方法。
  9. 前記第2応答パケットのデータをバッファに入力するステップと、
    前記データが再生される間に前記ファイルのキーフレームを抽出するステップと、
    前記キーフレームに基づいて前記ファイルのキーフレーム情報を生成するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  10. 解像度の変更入力を受信するステップと、
    前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、
    前記第1媒介変数を予め決定した第2指示子に設定するステップと、
    前記第1応答パケットから前記第2ファイルを分割するチャンク大きさ、及び前記チャンク個数を抽出するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  11. 解像度の変更入力を受信するステップと、
    前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、
    前記第2ファイルのキーフレーム情報に基づいて現在の再生時間に対応するキーフレームを検出するステップと、
    前記第2媒介変数を前記検出されたキーフレームのアドレスに設定するステップと、
    前記第2応答パケットのデータをバッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  12. 前記第2媒介変数は、前記検出されたキーフレームのアドレス及び前記検出されたキーフレームが属するチャンクの終了アドレスを含む請求項11に記載のクライアントの動作方法。
  13. 前記バッファは現在の利用中であるバッファと区別される第2バッファであり、
    前記検出されたキーフレームの時間後に前記第2バッファのデータが再生される請求項11に記載のクライアントの動作方法。
  14. 解像度の変更入力を受信するステップと、
    前記ファイルURLを前記解像度の変更入力に含まれた新しい解像度に対応する第2ファイルURLに設定するステップと、
    現在の再生時間及び全体再生時間に基づいて前記現在の再生時間に対応するチャンクを推定するステップと、
    前記第2媒介変数を前記推定されたチャンクのインデックスに設定するステップと、
    前記第2応答パケットの時間範囲が前記現在の再生時間を含む場合、前記第2応答パケットのデータから前記現在の再生時間に最も近いキーフレームを検出するステップと、
    前記検出されたキーフレーム以後のデータを前記バッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  15. 前記第2応答パケットの時間範囲が前記現在の再生時間を含まない場合、前記現在の再生時間に対応する新しいインデックスを推定するステップと、
    データ要求を指示する第3媒介変数を前記新しいインデックスに設定するステップと、
    前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、
    前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、
    前記第3応答パケットのデータから前記現在の再生時間に最も近いキーフレームを検出するステップと
    をさらに含む請求項14に記載のクライアントの動作方法。
  16. 前記バッファは現在の利用中であるバッファと区別される第2バッファであり、
    前記検出されたキーフレームの時間後に前記第2バッファのデータが再生される請求項14に記載のクライアントの動作方法。
  17. 探索時間を受信するステップと、
    前記ファイルのキーフレーム情報を用いて前記探索時間に対応するキーフレームを検出するステップと、
    前記第2媒介変数を前記検出されたキーフレームのアドレスに設定するステップと、
    前記第2応答パケットのデータをバッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  18. 前記第2媒介変数は、前記検出されたキーフレームのアドレス及び前記検出されたキーフレームが属するチャンクの終了アドレスを含む請求項17に記載のクライアントの動作方法。
  19. 前記バッファは現在の利用中であるバッファと区別される第2バッファであり
    前記検出されたキーフレームの時間後に前記第2バッファのデータが再生される請求項17に記載のクライアントの動作方法。
  20. 探索時間を受信するステップと、
    前記探索時間と前記ファイルの全体再生時間に基づいて前記探索時間に対応するチャンクを推定するステップと、
    前記第2媒介変数を前記推定されたチャンクのインデックスに設定するステップと、
    前記第2応答パケットの時間範囲が前記探索時間を含む場合、前記第2応答パケットのデータから前記探索時間に最も近いキーフレームを検出するステップと、
    前記検出されたキーフレーム以後のデータをバッファに入力するステップと
    をさらに含む請求項1に記載のクライアントの動作方法。
  21. 前記第2応答パケットの時間範囲が前記探索時間を含まない場合、前記探索時間に対応する新しいインデックスを推定するステップと、
    データ要求を指示する第3媒介変数を前記新しいインデックスに設定するステップと、
    前記ファイルURL及び前記第3媒介変数を含む第3要求パケットを送信するステップと、
    前記ファイル内の前記第3媒介変数に対応するアドレス範囲のデータを含む第3応答パケットを受信するステップと、
    前記第3応答パケットのデータから前記探索時間に最も近いキーフレームを検出するステップと
    をさらに含む請求項20に記載のクライアントの動作方法。
  22. 前記バッファは現在の利用中であるバッファと区別される第2バッファであり、
    前記検出されたキーフレームの時間後に前記第2バッファのデータが再生される請求項20に記載のクライアントの動作方法。
  23. 前記クライアントはサーバとの通信のためにhttpプロトコルを用いる請求項1に記載のクライアントの動作方法。
  24. 前記第1媒介変数は前記ファイルを分割するチャンク大きさを含み、
    前記再生情報は、前記チャンク個数及び前記ファイルの大きさのうち少なくとも1つを含む請求項1に記載のクライアントの動作方法。
  25. ストリーミングサービスのためのサーバの動作方法において、
    ファイルURL及び媒介変数を含む要求パケットを受信するステップと、
    前記媒介変数がデータ要求を指示する場合、前記ファイルURLに対応するファイル内の前記媒介変数に対応するアドレス範囲のデータを応答するステップと、
    前記媒介変数が再生情報要求を指示する場合、前記ファイルの再生情報を応答するステップと
    を含むサーバの動作方法。
  26. 前記再生情報は、前記ファイルを分割するチャンク大きさ、及び前記チャンク個数のうち少なくとも1つを含む請求項25に記載のサーバの動作方法。
  27. 前記データを応答するステップは、前記媒介変数がインデックス又はアドレスを含むか否かを判断するステップを含む請求項25に記載のサーバの動作方法。
  28. 前記データを応答するステップは、
    前記媒介変数がインデックスを含む場合、前記ファイル内の前記インデックスに対応するアドレス範囲のデータを応答するステップと、
    前記媒介変数がアドレスを含む場合、前記ファイル内の前記アドレスに対応するアドレス範囲のデータを応答するステップと
    のうち少なくとも1つを含む請求項25に記載のサーバの動作方法。
  29. 前記インデックスに対応するアドレス範囲は前記ファイルを分割するチャンク大きさに基づいて決定される請求項25に記載のサーバの動作方法。
  30. 前記アドレスに対応するアドレス範囲のデータを応答するステップは、
    前記媒介変数が2つのアドレスを含む場合、前記ファイル内の前記2つのアドレスの間のデータを応答するステップと、
    前記媒介変数が1つのアドレスを含む場合、前記ファイル内の前記1つのアドレスと前記ファイルの終了の間のデータを応答するステップと
    のうち少なくとも1つを含む請求項25に記載のサーバの動作方法。
  31. 前記再生情報を応答するステップは、
    前記媒介変数が予め決定した第1指示子を含む場合、前記ファイルを分割するチャンク大きさ、前記チャンク個数、前記ファイルに格納されたコンテンツの解像度、前記解像度と異なる第2解像度のコンテンツを格納する第2ファイルURL、及び前記第2解像度を応答するステップと、
    前記媒介変数が予め決定した第2指示子を含む場合、前記チャンク大きさ及び前記チャンク個数を応答するステップと
    のうち少なくとも1つを含む請求項25に記載のサーバの動作方法。
  32. 前記第2ファイルは、前記ファイルのファイル名及び前記ファイルが格納されたディレクトリのうち少なくとも1つに基づいて検索される請求項31に記載のサーバの動作方法。
  33. 前記第2解像度は、前記第2ファイルのファイル名に基づいて取得される請求項31に記載のサーバの動作方法。
  34. 前記サーバは、クライアントとの通信のためにhttpプロトコルを用いる請求項25に記載のサーバの動作方法。
  35. 前記ファイルを分割するチャンク大きさを受信するステップをさらに含み、
    前記再生情報は、前記チャンク個数、及び前記ファイルの大きさのうち少なくとも1つを含む請求項25に記載のサーバの動作方法。
  36. ハードウェアと結合して請求項1乃至35のいずれか一項に記載の方法を実行させるために媒体に格納されたコンピュータプログラム。
JP2017502886A 2014-07-16 2015-04-01 ストリーミングサービスのためのクライアント及びサーバの動作方法 Ceased JP2017529726A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020140089679A KR101600469B1 (ko) 2014-07-16 2014-07-16 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법
KR10-2014-0089679 2014-07-16
PCT/KR2015/003230 WO2016010229A1 (ko) 2014-07-16 2015-04-01 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법

Publications (1)

Publication Number Publication Date
JP2017529726A true JP2017529726A (ja) 2017-10-05

Family

ID=55078691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017502886A Ceased JP2017529726A (ja) 2014-07-16 2015-04-01 ストリーミングサービスのためのクライアント及びサーバの動作方法

Country Status (6)

Country Link
US (1) US20170134463A1 (ja)
EP (1) EP3171604A4 (ja)
JP (1) JP2017529726A (ja)
KR (1) KR101600469B1 (ja)
CN (1) CN106537924A (ja)
WO (1) WO2016010229A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8942543B1 (en) 2010-10-06 2015-01-27 Verint Video Solutions Inc. Systems, methods, and software for improved video data recovery effectiveness
US10033794B2 (en) * 2015-07-17 2018-07-24 Bio-Rad Laboratories, Inc. Network transfer of large files in unstable network environments
CN105828149A (zh) * 2016-04-28 2016-08-03 合智能科技(深圳)有限公司 播放优化方法和装置
KR101863598B1 (ko) * 2016-07-29 2018-06-01 주식회사 에어브로드 스트리밍 서비스를 위한 클라이언트의 동작 방법
US10873775B2 (en) * 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
US11354164B1 (en) * 2018-04-20 2022-06-07 Automation Anywhere, Inc. Robotic process automation system with quality of service based automation
US10908950B1 (en) 2018-04-20 2021-02-02 Automation Anywhere, Inc. Robotic process automation system with queue orchestration and task prioritization
KR102500145B1 (ko) * 2018-07-13 2023-02-16 삼성전자주식회사 전자 장치 및 전자 장치의 컨텐트 전송 방법
CN110545492B (zh) * 2018-09-05 2020-07-31 北京开广信息技术有限公司 媒体流的实时递送方法及服务器
CN110881018B (zh) * 2018-09-05 2020-11-03 北京开广信息技术有限公司 媒体流的实时接收方法及客户端
CN110072128B (zh) * 2019-04-22 2021-01-15 北京开广信息技术有限公司 媒体流的实时推送方法及服务器
CN110113655B (zh) * 2019-05-05 2021-09-21 北京奇艺世纪科技有限公司 一种视频播放的方法、装置及用户终端
CN111314434B (zh) * 2020-01-20 2022-08-19 浪潮云信息技术股份公司 请求处理方法及服务端
KR102655215B1 (ko) * 2022-09-27 2024-04-05 (주)이노시뮬레이션 원격 유지보수를 위한 선박 및 지상 담당자 사이의 네트워크 연결 방법 및 이를 실행하는 시스템

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001242876A (ja) * 1999-12-20 2001-09-07 Matsushita Electric Ind Co Ltd データ受信再生方法、データ受信再生装置、データ送信方法、およびデータ送信装置
JP2005260283A (ja) * 2004-02-13 2005-09-22 Matsushita Electric Ind Co Ltd Avコンテンツのネットワーク再生方法
EP2547062A1 (en) * 2011-07-14 2013-01-16 Nxp B.V. Media streaming with adaptation
US20130091297A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Switching between representations during network streaming of coded multimedia data
JP2013518507A (ja) * 2010-03-05 2013-05-20 サムスン エレクトロニクス カンパニー リミテッド ファイルフォーマットベースの適応的ストリーム生成、再生方法及び装置とその記録媒体
JP2013520865A (ja) * 2010-02-19 2013-06-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Httpストリーミングにおける適応のための方法と装置
JP2013535866A (ja) * 2010-06-29 2013-09-12 クゥアルコム・インコーポレイテッド トリックモードビデオ表現のためのビデオサンプルを信号伝達すること
JP2013535886A (ja) * 2010-07-15 2013-09-12 クゥアルコム・インコーポレイテッド ビデオ構成要素を多重化するためのデータを信号伝達すること

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215516A (ja) * 2001-01-22 2002-08-02 Sony Corp 情報端末装置、ダウンロード制御方法およびコンピュータプログラム
KR101066872B1 (ko) * 2008-10-30 2011-09-26 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버
KR20100055296A (ko) * 2008-11-17 2010-05-26 에스케이텔레콤 주식회사 분산 저장된 컨텐츠의 리다이렉티드 url을 이용한 순차적 멀티미디어 스트리밍 시스템 및 방법
CN102055773B (zh) * 2009-11-09 2013-10-09 华为技术有限公司 实现基于http的流媒体业务的方法、系统和网络设备
KR101361021B1 (ko) * 2009-11-09 2014-02-10 후아웨이 테크놀러지 컴퍼니 리미티드 Http 기반의 스트리밍 미디어 서비스를 구현하는 방법, 시스템 및 네트워크장비
US9485546B2 (en) * 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9462024B2 (en) * 2011-06-08 2016-10-04 Futurewei Technologies, Inc. System and method of media content streaming with a multiplexed representation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001242876A (ja) * 1999-12-20 2001-09-07 Matsushita Electric Ind Co Ltd データ受信再生方法、データ受信再生装置、データ送信方法、およびデータ送信装置
JP2005260283A (ja) * 2004-02-13 2005-09-22 Matsushita Electric Ind Co Ltd Avコンテンツのネットワーク再生方法
JP2013520865A (ja) * 2010-02-19 2013-06-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Httpストリーミングにおける適応のための方法と装置
JP2013518507A (ja) * 2010-03-05 2013-05-20 サムスン エレクトロニクス カンパニー リミテッド ファイルフォーマットベースの適応的ストリーム生成、再生方法及び装置とその記録媒体
JP2013535866A (ja) * 2010-06-29 2013-09-12 クゥアルコム・インコーポレイテッド トリックモードビデオ表現のためのビデオサンプルを信号伝達すること
JP2013535886A (ja) * 2010-07-15 2013-09-12 クゥアルコム・インコーポレイテッド ビデオ構成要素を多重化するためのデータを信号伝達すること
EP2547062A1 (en) * 2011-07-14 2013-01-16 Nxp B.V. Media streaming with adaptation
US20130091297A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Switching between representations during network streaming of coded multimedia data

Also Published As

Publication number Publication date
KR20160009322A (ko) 2016-01-26
KR101600469B1 (ko) 2016-03-07
EP3171604A1 (en) 2017-05-24
CN106537924A (zh) 2017-03-22
US20170134463A1 (en) 2017-05-11
EP3171604A4 (en) 2018-04-11
WO2016010229A1 (ko) 2016-01-21

Similar Documents

Publication Publication Date Title
JP2017529726A (ja) ストリーミングサービスのためのクライアント及びサーバの動作方法
CN106464945B (zh) 增强型流媒体回放的方法、系统及计算机可读介质
US9529888B2 (en) System and method for efficiently providing media and associated metadata
US8732274B2 (en) Method and apparatus for generating and handling streaming media quality-of-experience metrics
US10397289B2 (en) HTTP live streaming (HLS) video client synchronization
CA3037307C (en) Methods and systems for instantaneous asynchronous media sharing
US9356985B2 (en) Streaming video to cellular phones
US10404828B2 (en) Streaming apparatus, streaming method, and streaming service system using the streaming apparatus
WO2015192683A1 (zh) 一种基于码流自适应技术的内容分发方法、装置及系统
US10673907B2 (en) Systems and methods for providing DLNA streaming to client devices
EP3175599A1 (en) Systems and methods for selective transport accelerator operation
KR101863598B1 (ko) 스트리밍 서비스를 위한 클라이언트의 동작 방법
US9607002B2 (en) File retrieval from multiple storage locations
KR20170018333A (ko) 클라이언트 단말기와 적어도 하나의 서버 간의 송신 경로를 따라 배열된 네트워크 장비를 동작하기 위한 방법, 및 대응하는 네트워크 장비
KR102237900B1 (ko) 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법
CN111837405B (zh) 用于传递无清单流媒体内容的方法、系统和介质
KR20160031467A (ko) 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법
TWI598743B (zh) 多媒體檔案下載方法與電子裝置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190416

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190827