JP7282981B2 - ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム - Google Patents

ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム Download PDF

Info

Publication number
JP7282981B2
JP7282981B2 JP2022514486A JP2022514486A JP7282981B2 JP 7282981 B2 JP7282981 B2 JP 7282981B2 JP 2022514486 A JP2022514486 A JP 2022514486A JP 2022514486 A JP2022514486 A JP 2022514486A JP 7282981 B2 JP7282981 B2 JP 7282981B2
Authority
JP
Japan
Prior art keywords
streaming
track
manifest file
player module
content
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
JP2022514486A
Other languages
English (en)
Other versions
JP2022546764A (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.)
Naver Corp
Original Assignee
Naver Corp
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 Naver Corp filed Critical Naver Corp
Publication of JP2022546764A publication Critical patent/JP2022546764A/ja
Application granted granted Critical
Publication of JP7282981B2 publication Critical patent/JP7282981B2/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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/2225Local VOD servers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • 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/752Media network packet handling adapting media to network capabilities
    • 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/764Media network packet handling at the destination 
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47205End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • 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/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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

Landscapes

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

Description

以下の説明は、ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステムに関する。
ストリーミングコンテンツを再生するための従来のソリューションの一例として、HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4などが存在する。例えば、韓国登録特許第10-1397183号公報は、ストリーミングサービスにおける再生リストファイルの管理方法およびその装置を開示している。
このような従来のソリューションにおいて、1つの動画ファイルは互いに異なるビットレートのトラックで予め準備され、クライアントが必要なビットレートのトラックを選択すると、該当のビットレートでサーバからストリーミングコンテンツの提供を受ける。しかし、クライアントは、最初は自身のビットレートを認知していないため、マニフェストファイルの最上端に記されたトラック(1番目のトラック、#0トラック)を選択するようになり、次の呼び出しで適応型トラックを再選択しなければならないという問題があった。例えば、HLSの場合、クライアントは、マニフェストファイルであるmaster.m3u8に登録された1番目のトラックを選択して0つ目のフラグメントファイル(0.ts)を要請する。しかし、クライアントでは、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮した上で、新たなトラックを選択するようになるアルゴリズムが直ぐに作動するようになる。次の呼び出しでは新たなトラックが選択される確率が高く、新たなトラックが選択された場合、クライアントは、1番目のトラックでダウンロードした0番目のフラグメントファイル(0.ts)を廃棄し、新たなトラックの0番目のフラグメントファイル(0.ts)を新たにダウンロードするようになる。したがって、このような過程では、1度のトラック情報要請と1度の0番目のフラグメントファイル(0.ts)の要請が無駄になる。
さらに、従来のソリューションでは、動画フラグメントファイルに対するキャッシュとプリロードがないという問題がある。例えば、多数のストリーミングコンテンツのリストであるコンテンツリストビューにはキャッシュ政策がないため、コンテンツリストビューの多数のストリーミングコンテンツのうちの1つがフォーカスを受けたときに0番目のフラグメントファイル(0.ts)から新たにダウンロードが始まるため、データの浪費と実行速度の損失が発生していた。
HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4(MPEG-4)などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用しながらこのような初期ビットレートに最適化したトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる、ストリーミングコンテンツ再生方法およびシステムを提供する。
ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツのコンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる、ストリーミングコンテンツ再生方法およびシステムを提供する。
コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータ装置に実行させるために、コンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、前記ストリーミングコンテンツ再生方法は、ストリーミングプレーヤクライアントで、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階、前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達する段階、ローカルプロキシサーバで、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階、および前記ローカルプロキシサーバで、前記ストリーミングプレーヤクライアントを通じて前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階を含むことを特徴とする、コンピュータプログラムを提供する。
一態様によると、前記編集する段階は、前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階、および前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階を含むことを特徴としてよい。
他の態様によると、前記プレーヤモジュールで前記編集されたマニフェストファイルから1番目のトラックを選択するにより、前記設定された初期ビットレートに基づいて選択されたトラックが選択されることを特徴としてよい。
また他の態様によると、前記ストリーミングコンテンツ再生方法は、前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階、および前記ストリーミングプレーヤクライアントで、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階をさらに含むことを特徴としてよい。
また他の態様によると、前記ストリーミングコンテンツ再生方法は、前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記ローカルプロキシサーバで、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴としてよい。
さらに他の態様によると、前記プリロードおよびキャッシュする段階は、前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との間の相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴としてよい。
少なくとも1つのプロセッサを含むコンピュータ装置のストリーミングコンテンツ再生方法であって、前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階、前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達する段階、前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階、および前記少なくとも1つのプロセッサにより、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階を含む、ストリーミングコンテンツ再生方法を提供する。
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定し、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達し、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集し、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達することを特徴とする、コンピュータ装置を提供する。
HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4(MPEG-4)などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用しながらこのような初期ビットレートに最適化したトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる。
前記ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツの前記コンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。 従来のストリーミングサービスの基本動作の例を示した図である。 本発明の一実施形態における、最適化されたトラック選択方式が適用されたストリーミングサービスの基本動作の例を示した図である。 本発明の一実施形態における、キャッシュおよびプリロード方式が適用されたストリーミングサービスの基本動作の例を示した図である。 本発明の一実施形態における、コンテンツリストビューにおけるプリロードおよびキャッシュの順序の例を示した図である。 本発明の一実施形態における、クライアントのストリーミングコンテンツ再生方法の例を示したフローチャートである。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態によるストリーミングコンテンツ再生システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態によるストリーミングコンテンツ再生方法は、ストリーミングコンテンツ再生システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態によるコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御に従って本発明の実施形態によるストリーミングコンテンツ再生方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境を説明するための一例に過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、グループ通話サービス(または、音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービス、コンテンツ提供サービスなど)を提供するシステムであってよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードに従って受信される命令を実行するように構成されてよい。
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードに従って生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御に従ってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどはプロセッサ220やメモリ210に伝達されてよく、ファイルなどはコンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、少なくとも1つのコンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、従来のストリーミングサービスの基本動作の例を示した図である。図3は、プレーヤモジュール310、ストリーミングプレーヤクライアント320、およびストリーミングサーバ330を示している。ここで、プレーヤモジュール310は、ストリーミングコンテンツを再生するためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよく、ストリーミングプレーヤクライアント320は、ストリーミングサービスの提供を受けるためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよい。また、ストリーミングサーバ330は、ストリーミングサービスを提供するサーバ装置においてインストールされて実行されるソフトウェアモジュールに対応してよい。
第1過程341は、ストリーミングプレーヤクライアント320がストリーミングサーバ330にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第2過程341は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよい。例えば、第2過程342で、ストリーミングサーバ330は、ストリーミングプレーヤクライアント320にマニフェストファイルを提供してよい。
第3過程343は、プレーヤモジュール310が1番目のトラック(#0トラック)を選択する過程の例であってよい。上述したように、1つの動画ファイルは、互いに異なるビットレートのトラックで予め準備されてよく、プレーヤモジュール310は、必要なビットレートのトラックを選択してよい。ただし、プレーヤモジュール310は、最初は自身のビットレートを認知していないため、プレーヤモジュール310は、第3過程343のように、マニフェストファイルの最上端に記録されている1番目のトラックを選択するようになる。
第4過程344は、プレーヤモジュール310が、ストリーミングプレーヤクライアント320が選択したトラック(#0トラック)のトラック情報(一例として、HLSの#0トラックのplaylist.m3u8)を要請する過程の例であってよく、第5過程345は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第6過程346は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第7過程347は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第6過程346と第7過程347において、プレーヤモジュール310が要請した、選択されたトラックのトラック情報がプレーヤモジュール310に伝達されてよい。
第8過程348で、プレーヤモジュール310は、ストリーミングプレーヤクライアント320に選択されたトラック(#0トラック)の1番目のフラグメントファイル(一例として、HLSの#0トラックの0.ts)を要請する過程の例であってよく、第9過程349は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第10過程350は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第11過程351は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第10過程350と第11過程351において、プレーヤモジュール310が要請した、選択されたトラックの1番目のフラグメントファイルがプレーヤモジュール310に伝達されてよい。
第12過程352は、プレーヤモジュール310が、伝達された1番目のフラグメントファイルに基づいてネットワークビットレートを測定して最適なビットレートを探索し、トラックを最適なビットレートに適したトラック(一例として、#nトラック)に変更する過程の例であってよい。
第13過程353は、プレーヤモジュール310がストリーミングプレーヤクライアント320に変更されたトラック(#nトラック)のトラック情報(一例としてHLSの#nトラックのplaylist.m3u8)を要請する過程の例であってよく、第14過程354は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第15過程355は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第16過程356は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第15過程355と第16過程356において、プレーヤモジュール310が要請した、変更されたトラックのトラック情報がプレーヤモジュール310に伝達されてよい。
第17過程357は、プレーヤモジュール310がストリーミングプレーヤクライアント320に、変更されたトラック(#nトラック)の1番目のフラグメントファイル(一例として、HLSの#nトラックの0.ts)を要請する過程の例であってよく、第18過程358は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第19過程359は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第20過程360は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第19過程359と第20過程360において、プレーヤモジュール310が要請した、変更されたトラックの1番目のフラグメントファイルがプレーヤモジュール310に伝達されてよい。言い換えれば、プレーヤモジュール310は、フォーカシングされたストリーミングコンテンツを再生するための1番目のフラグメントファイルを第20過程360でしか取得することができない。
この後、第21過程361~第24過程364は、プレーヤモジュール310が、変更されたトラック(#nトラック)の2つ目のフラグメントファイル(一例として、HLSの#nトラックの1.ts)を取得するための過程の例を示している。この後のフラグメントファイルも、第21過程361~第24過程364と類似の方式によって取得するようになる。
図4は、本発明の一実施形態における、最適化されたトラック選択方式が適用されたストリーミングサービスの基本動作の例を示した図である。図4は、プレーヤモジュール410、ストリーミングプレーヤクライアント420、ローカルプロキシサーバ430、およびストリーミングサーバ450をそれぞれ示している。ここで、プレーヤモジュール410は、ストリーミングコンテンツの再生のためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよく、ストリーミングプレーヤクライアント420とローカルプロキシサーバ430は、ストリーミングサービスの提供を受けるためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよい。また、ストリーミングサーバ440は、ストリーミングサービスを提供するためにサーバ装置においてインストールされて実行されるソフトウェアモジュールであってよい。ここで、ソフトウェアモジュールは、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムに対応してよい。
第1過程451は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に初期ビットレートを設定する過程の例であってよい。例えば、ストリーミングプレーヤクライアント420は、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮しながら、プレーヤモジュール410のための初期ビットレートを設定してよい。サービス的にコンテンツのリストが表示される画面では、フレームバッファを迅速にダウンロードしてコンテンツのプレビューを再生させるために低いビットレートが要求されると同時に、高解像度のための鮮明な映像をレンダリングするために高いビットレートも要求される。したがって、高過ぎず低過ぎない適切な初期ビットレートが選択されなればならない。このようなサービスにおける初期ビットレートは、経験的に予め設定されてよい。例えば、モバイルのコンテンツリスト画面では360pの解像度のトラックが適切であることが確認された。これにより、原本動画の複雑度によって解像度ごとにビットレートが少しずつ異なったとしても、約750kbpsの初期ビットレートを使用することによってモバイルのコンテンツリスト画面のための初期ビットレートが経験的に予め設定されてよい。この場合、ストリーミングプレーヤクライアント420は、予め設定された初期ビットレートをプレーヤモジュール410に設定してよい。
第2過程452は、プレーヤモジュール410がストリーミングプレーヤクライアント420にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第3過程453は、ストリーミングプレーヤクライアント420がストリーミングサーバ440にマニフェストファイルを要請する過程の例であってよい。
第4過程454は、ストリーミングサーバ440が要請されたマニフェストファイルを伝達する過程の例であってよい。実質的に、ストリーミングサーバ440は、自身にマニフェストファイルを要請したストリーミングプレーヤクライアント420に要請されたマニフェストファイルを送信してよいが、ローカルストリーミングサーバであるローカルプロキシサーバ430がこのようなマニフェストファイルを横取りしてよい。第5過程455は、ローカルプロキシサーバ430が第1過程451で設定された初期ビットレートを利用してマニフェストファイルを編集する過程の例であってよい。例えば、ローカルプロキシサーバ430は、設定された初期ビットレートとマニフェストファイルに記録されたトラックを比較して最適なトラック(一例として、#nトラック)を選択してよい。この後、ローカルプロキシサーバ430は、選択したトラックがマニフェストファイルの1番目のトラックになるようにマニフェストファイルを編集(#nトラック->#0トラック)してよい。第6過程456は、ローカルプロキシサーバ430がストリーミングプレーヤクライアント420に編集されたマニフェストファイルを伝達する過程の例であってよく、第7過程457は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に編集されたマニフェストファイルを伝達する過程の例であってよい。
以下の表1は、最初のマニフェストファイルの例を、表2は、編集されたマニフェストファイルの例をそれぞれ示している。
Figure 0007282981000001
Figure 0007282981000002
表2は、表1に示された3つ目のトラック(1a37eb4f-3cb5-11e9-a5ac-246e963a49b9.m3u8)が1番目のトラックとして編集された例を示している。第8過程458は、プレーヤモジュール410がマニフェストファイルから1番目のトラックを選択する過程の例であってよい。上述したように、マニフェストファイルは、1番目のトラック(#0トラック)が、設定された初期ビットレートに最適なトラックとして変更されたため、プレーヤモジュール410は、第1過程451で設定された初期ビットレートに最適なトラックを1番目のトラック(#0トラック)として選択するようになる。
第9過程459は、プレーヤモジュール410がストリーミングプレーヤクライアント420に選択されたトラック(#0トラック)のトラック情報(一例として、HLSの#0トラックのplaylist.m3u8)を要請する過程の例であってよく、第10過程460は、ストリーミングプレーヤクライアント420がストリーミングサーバ440に選択されたトラックのトラック情報を要請する過程の例であってよい。また、第11過程461は、ストリーミングサーバ440がストリーミングプレーヤクライアント420に要請されたトラック情報を伝達する過程の例であってよく、第12過程462は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に要請されたトラック情報を伝達する過程の例であってよい。
第13過程463は、プレーヤモジュール410がストリーミングプレーヤクライアント420に該当のトラック(#0トラック)の1番目のフラグメントファイル(一例として、HLSの#0トラックの0.ts)を要請する過程の例であってよく、第14過程464は、ストリーミングプレーヤクライアント420がストリーミングサーバ440に該当のトラックの1番目のフラグメントファイルを要請する過程の例であってよい。また、第15過程465は、ストリーミングサーバ440がストリーミングプレーヤクライアント420に要請された1番目のフラグメントファイルを伝達する過程の例であってよく、第16過程466は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に要請された1番目のフラグメントファイルを伝達する過程の例であってよい。このとき、プレーヤモジュール410は、設定された初期ビットレートに適したトラックの1番目のフラグメントファイルを取得したためトラックを再変更する確率が低く、トラックを再変更しない場合は、現在の1番目のフラグメントファイルによってフォーカシングされたストリーミングコンテンツを再生することが可能となる。言い換えれば、従来に無駄にしていた、1度のトラック情報の要請と1度の1番目のフラグメントファイル要請を取り除くことができる。したがって、フォーカシングされたストリーミングコンテンツの最初の再生時間を短縮することができる。
この後の第17過程467~第20過程470は、プレーヤモジュール410が1番目のトラック(#0トラック)の2つ目のフラグメントファイル(一例として、HLSの#0トラックの1.ts)を取得するための過程の例を示している。この後のフラグメントファイルも、第17過程467~第20過程470と同じように取得することができる。
図5は、本発明の一実施形態における、キャッシュおよびプリロード方式が適用されたストリーミングサービスの基本動作の例を示した図である。図4を参照しながら説明した最適化されたトラック選択方式と図5を参照しながら説明するキャッシュおよびプリロード方式は、個別に適用されてもよいし、ともに適用されてもよい。図5では、キャッシュおよびプリロード方式が個別に適用された場合の実施形態について説明する。
第1過程511は、プレーヤモジュール410がストリーミングプレーヤクライアント420にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第2過程512は、ストリーミングプレーヤクライアント420がローカルプロキシサーバ430にマニフェストファイルを要請する過程の例であってよい。このとき、第3過程513は、ローカルプロキシサーバ430がキャッシュを照会する過程の例であってよい。このとき、要請されたマニフェストファイルがキャッシュに記録されていない場合、ローカルプロキシサーバ430は、要請されたマニフェストファイルをストリーミングサーバ440から取得してきてよく、要請されたマニフェストファイルがキャッシュに記録されている場合、ローカルプロキシサーバ430は、キャッシュに記録されているマニフェストファイルを提供してよい。第4過程514は、ローカルプロキシサーバ430がストリーミングプレーヤクライアント420に要請されたマニフェストファイルを伝達する過程の例であってよく、第5過程515は、ストリーミングプレーヤクライアント420がプレーヤモジュール410にマニフェストファイルを伝達する過程の例であってよい。
このように、ローカルプロキシサーバ430は、図4を参照しながら説明したように、マニフェストファイルの1番目のトラックを予め設定された初期ビットレートに適したトラックに変更するトラック最適化はもちろん、データのプリロードとキャッシュを処理することにより、ストリーミングコンテンツの初期再生速度を高めることができる。
この後、第6過程516~第10過程520は、プレーヤモジュール410がトラック情報(一例として、HLSのplaylist.m3u8)を取得するための過程の例を、第11過程521~第15過程525は、プレーヤモジュール410が1番目のフラグメントファイル(一例として、HLSの0.ts)を取得するための過程の例を、第16過程526~第20過程530は、プレーヤモジュール410が2つ目のフラグメントファイル(一例として、HLSの1.ts)を取得するための過程の例をそれぞれ示している。
このとき、ローカルプロキシサーバ430は、キャッシュ内のデータに対するヒット確率を高めるために、コンテンツリストビューで現在フォーカシングされて再生される第1ストリーミングコンテンツを基準に、コンテンツリストビューで第1ストリーミングコンテンツと相対的に近い位置に配置されたストリーミングコンテンツから第1ストリーミングコンテンツと相対的に離れた位置に配置されたストリーミングコンテンツの順にデータをプリロードおよびキャッシュしてよい。ユーザは、コンテンツリストビューで現在フォーカシングされて再生される第1ストリーミングコンテンツの周辺に位置するストリーミングコンテンツを再びフォーカシングする可能性が高いため、上述した順にデータをプリロードおよびキャッシュすることにより、キャッシュ内のデータに対するヒット確率を高めることが可能となる。
図6は、本発明の一実施形態における、コンテンツリストビューにおけるプリロードおよびキャッシュの順序の例を示した図である。図6のコンテンツリストビュー600は、ストリーミングコンテンツ1(610)~ストリーミングコンテンツ5(650)を含む例を示している。ユーザがストリーミングコンテンツ1(610)をフォーカシングする場合(一例として、PC環境においてストリーミングコンテンツ1(610)が表示された領域にマウスオーバーイベントが発生する場合)、ストリーミングコンテンツ1(610)が再生されてよい。このとき、ローカルプロキシサーバ430は、フォーカシングされて再生されるストリーミングコンテンツ1(610)と相対的に近い位置に配置されたストリーミングコンテンツ2(620)のデータ(一例として、マニフェストファイル、トラック情報など)をプリロードおよびキャッシュしてよく、その次に、相対的にストリーミングコンテンツ3(630)、ストリーミングコンテンツ4(640)、ストリーミングコンテンツ5(650)の順にデータをプリロードおよびキャッシュしてよい。ユーザがストリーミングコンテンツ3(630)をフォーカシングする場合、ローカルプロキシサーバ430は、先ず、ストリーミングコンテンツ3(610)と相対的に近い位置に配置されたストリーミングコンテンツ2(620)とストリーミングコンテンツ4(640)をプリロードおよびキャッシュしてよく、この後、ストリーミングコンテンツ1(610)とストリーミングコンテンツ5(650)をプリロードおよびキャッシュしてよい。
また、ローカルプロキシサーバ430は、同じ基準でキャッシュからデータを削除してよい。例えば、ローカルプロキシサーバ430は、キャッシュからデータを削除するときに、現在再生中のストリーミングコンテンツから相対的に離れた位置に配置されたストリーミングコンテンツのデータから優先的にキャッシュから削除してよい。
また、ローカルプロキシサーバ430は、マニフェストファイルやトラック情報が含まれるデータがキャッシュに相対的に長く記録されるように優先順位を調整してよい。例えば、HLSのm3u8ファイルやmp4のmoovファイルが含まれる1番目のチャンク(chunk)が残りのデータよりもキャッシュに長く残るように優先順位を調整してよい。より具体的な例として、mp4の開始部分の1mbサイズのデータがmoovファイルを含むものと決定される場合、ローカルプロキシサーバ430は、mp4の開始部分の1mbサイズのデータに優先順位を与えて他のデータよりも相対的に長くキャッシュに残るようにキャッシュ政策が設定されてよい。
図7は、本発明の一実施形態における、クライアントのストリーミングコンテンツ再生方法の例を示したフローチャートである。本実施形態によるストリーミングコンテンツ再生方法は、ストリーミングサービスのクライアントが実現するコンピュータ装置200によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令に従ってコンピュータ装置200が図7の方法に含まれる段階710~750を実行するようにコンピュータ装置200を制御してよい。
段階710で、コンピュータ装置200は、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定してよい。例えば、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムによって生成されるストリーミングプレーヤクライアントに対応するコードの制御に従って、プロセッサ220がストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定してよい。このとき、初期ビットレートは、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮しながら、プレーヤモジュールのための初期ビットレートを設定してよい。
段階720で、コンピュータ装置200は、プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達してよい。例えば、上述したストリーミングプレーヤクライアントに対応するコードの制御に従って、プロセッサ220がプレーヤモジュールからマニフェストファイルに対する要請を受信してよく、ネットワーク170を介してこれをストリーミングサーバに伝達してよい。この場合、ストリーミングサーバは、マニフェストファイルをコンピュータ装置200に送信してよい。
段階730で、コンピュータ装置200は、ストリーミングサーバから伝達されるマニフェストファイルを設定された初期ビットレートに基づいて編集してよい。例えば、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムによって生成されるローカルプロキシサーバに対応するコードの制御に従って、プロセッサ220がマニフェストファイルを編集してよい。
このとき、コンピュータ装置200は、設定された初期ビットレートに基づいて、マニフェストファイルに記録されたトラックのうちから1つのトラックを選択してよい。例えば、コンピュータ装置200は、設定された初期ビットレートとマニフェストファイルに記録されたトラックそれぞれを比較して、設定された初期ビットレートに最適なトラックを選択してよい。この後、コンピュータ装置200は、選択されたトラックがマニフェストファイルの1番目のトラックとして記録されるようにマニフェストファイルを編集してよい。
段階740で、コンピュータ装置200は、編集されたマニフェストファイルを、ストリーミングプレーヤクライアントを通じてプレーヤモジュールに伝達してよい。この場合、プレーヤモジュールで編集されたマニフェストファイルから1番目のトラックを選択することによって設定された初期ビットレートに基づいて選択されたトラックが選択されてよい。
この後、プレーヤモジュールは、従来の過程と同じように、1番目のトラックのトラック情報を要請してよく、1番目のトラックの1番目のフラグメントファイルを要請してよい。これにより、コンピュータ装置200は、プレーヤモジュールからの編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請をストリーミングサーバに伝達してよく、ストリーミングサーバから伝達されるトラック情報をプレーヤモジュールに伝達してよい。また、この後、プレーヤモジュールからの1番目のフラグメントファイルに対する要請をストリーミングサーバに伝達してよく、ストリーミングサーバから伝達される1番目のフラグメントファイルをプレーヤモジュールに伝達してよい。このような過程により、プレーヤモジュールは、該当のストリーミングコンテンツを再生することが可能となる。
段階750で、コンピュータ装置200は、プレーヤモジュールでストリーミングコンテンツが再生される間に、ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュしてよい。図5では、ローカルプロキシサーバでデータをプリロードおよびキャッシュする例について説明した。このとき、コンピュータ装置200は、コンテンツリストビューにおいてストリーミングコンテンツが配置された位置とストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定してよい。例えば、コンピュータ装置200は、現在再生中のストリーミングコンテンツから相対的に近い位置にある他のストリーミングコンテンツから相対的に離れた位置にある他のストリーミングコンテンツの順にデータをプリロードおよびキャッシュしてよい。
このように、本発明の実施形態によると、HLS、MPEG-DASH、mp4などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用してこのような初期ビットレートに最適化されたトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる。また、ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツのコンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる。
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態による方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体も挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。

Claims (14)

  1. コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータ装置に実行させるために、コンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
    前記ストリーミングコンテンツ再生方法は、
    ストリーミングプレーヤクライアントで、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階と、
    前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達する段階と、
    ローカルプロキシサーバで、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階と、
    前記ローカルプロキシサーバで、前記ストリーミングプレーヤクライアントを通じて前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階と、を含むことを特徴とする、コンピュータプログラム。
  2. 前記編集する段階は、
    前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階と、
    前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階と、を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  3. 前記プレーヤモジュールで前記編集されたマニフェストファイルから1番目のトラックを選択することにより、前記設定された初期ビットレートに基づいて選択されたトラックが選択されることを特徴とする、請求項2に記載のコンピュータプログラム。
  4. 前記ストリーミングコンテンツ再生方法は、
    前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階と、
    前記ストリーミングプレーヤクライアントで、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階と、をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  5. 前記ストリーミングコンテンツ再生方法は、
    前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記ローカルプロキシサーバで、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  6. 前記プリロードおよびキャッシュする段階は、
    前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴とする、請求項5に記載のコンピュータプログラム。
  7. 少なくとも1つのプロセッサを含むコンピュータ装置のストリーミングコンテンツ再生方法であって、
    前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階と、
    前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達する段階と、
    前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階と、
    前記少なくとも1つのプロセッサにより、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階と、を含む、ストリーミングコンテンツ再生方法。
  8. 前記編集する段階は、
    前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階と、
    前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階と、を含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
  9. 前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階と、
    前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階と、をさらに含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
  10. 前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記少なくとも1つのプロセッサにより、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
  11. 前記プリロードおよびキャッシュする段階は、
    前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴とする、請求項10に記載のストリーミングコンテンツ再生方法。
  12. 請求項7~11のうちのいずれか一項に記載のストリーミングコンテンツ再生方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
  13. コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、
    前記少なくとも1つのプロセッサにより、
    ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定し、
    前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達し、
    前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集し、
    前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達することを特徴とする、コンピュータ装置。
  14. 前記少なくとも1つのプロセッサにより、
    前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択し、
    前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集することを特徴とする、請求項13に記載のコンピュータ装置。
JP2022514486A 2019-09-04 2020-09-01 ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム Active JP7282981B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2019-0109653 2019-09-04
KR1020190109653A KR102232728B1 (ko) 2019-09-04 2019-09-04 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템
PCT/KR2020/011682 WO2021045474A1 (ko) 2019-09-04 2020-09-01 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템

Publications (2)

Publication Number Publication Date
JP2022546764A JP2022546764A (ja) 2022-11-08
JP7282981B2 true JP7282981B2 (ja) 2023-05-29

Family

ID=74852510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022514486A Active JP7282981B2 (ja) 2019-09-04 2020-09-01 ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム

Country Status (4)

Country Link
US (1) US11838560B2 (ja)
JP (1) JP7282981B2 (ja)
KR (1) KR102232728B1 (ja)
WO (1) WO2021045474A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240001625A (ko) * 2022-06-27 2024-01-03 에스케이텔레콤 주식회사 로컬 웹서버를 이용한 다운로드 데이터 및 스트리밍 데이터 간 연속 재생 방법 및 이를 위한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281002A1 (en) 2013-03-14 2014-09-18 General Instrument Corporation Devices, systems, and methods for managing and adjusting adaptive streaming traffic
US20150358662A1 (en) 2014-06-06 2015-12-10 Microsoft Corporation System for filtering media manifests using manifest attributes
JP2016015566A (ja) 2014-07-01 2016-01-28 富士通株式会社 端末装置及びデータ配信方法
US20180160159A1 (en) 2016-12-01 2018-06-07 The Directv Group, Inc. Enhanced streaming source change

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9532092B1 (en) * 2009-12-30 2016-12-27 Akamai Technologies, Inc. Multiple bitrate format-agnostic streaming architecture
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
EP2661045A1 (en) * 2012-05-04 2013-11-06 Thomson Licensing Method and apparatus for providing a plurality of transcoded content streams
KR101397183B1 (ko) 2013-05-30 2014-05-19 주식회사 솔박스 스트리밍 서비스에서의 재생 목록 파일 관리 방법 및 그 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281002A1 (en) 2013-03-14 2014-09-18 General Instrument Corporation Devices, systems, and methods for managing and adjusting adaptive streaming traffic
US20150358662A1 (en) 2014-06-06 2015-12-10 Microsoft Corporation System for filtering media manifests using manifest attributes
JP2016015566A (ja) 2014-07-01 2016-01-28 富士通株式会社 端末装置及びデータ配信方法
US20180160159A1 (en) 2016-12-01 2018-06-07 The Directv Group, Inc. Enhanced streaming source change

Also Published As

Publication number Publication date
WO2021045474A1 (ko) 2021-03-11
JP2022546764A (ja) 2022-11-08
US11838560B2 (en) 2023-12-05
KR20210028805A (ko) 2021-03-15
KR102232728B1 (ko) 2021-03-29
US20220191558A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
US20230289329A1 (en) Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques
US8850054B2 (en) Hypertext transfer protocol live streaming
US9317188B2 (en) Devices and methods for providing navigation images associated with adaptive bit rate video content
US20220174346A1 (en) Video playing method and apparatus
CN106464945A (zh) 增强型流媒体回放
US11212574B2 (en) System and method for storing multimedia files using an archive file format
JP7282981B2 (ja) ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム
US10021158B2 (en) Converting data stream in user equipment
KR102134250B1 (ko) 스트리밍 콘텐츠의 재생 방법 및 시스템
US20230217047A1 (en) Method, system, and computer-readable recording medium for implementing fast-switching mode between channels in multi-live transmission environment
US20170230718A1 (en) Virtual high definition video player
KR102376348B1 (ko) 다중 라이브 송출 환경에서의 채널 간 심리스 전환 모드를 구현하는 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
US20140214906A1 (en) Scalable networked digital video recordings via shard-based architecture
KR102249185B1 (ko) 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템
KR102228375B1 (ko) 다수의 스트리밍 콘텐츠들을 재생하는 방법 및 시스템
US12028559B2 (en) System and method for optimizing the distribution of available media production resources
KR102432376B1 (ko) 콘텐츠 재생 방법 및 시스템
US20220408126A1 (en) System and method for optimizing the distribution of available media production resources
US10938939B2 (en) Client-side quality-of-service (QOS) for viewing of adaptive bitrate (ABR) streams
US20150088943A1 (en) Media-Aware File System and Method
WO2016155800A1 (en) Accessing content
WO2022263665A1 (en) System and method for optimizing the distribution of available media production resources
KR20060122250A (ko) 스트리밍 서비스 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230310

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230517

R150 Certificate of patent or registration of utility model

Ref document number: 7282981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150