JP2021048582A - セグメンター流動性のためのパッケージャ - Google Patents
セグメンター流動性のためのパッケージャ Download PDFInfo
- Publication number
- JP2021048582A JP2021048582A JP2020152597A JP2020152597A JP2021048582A JP 2021048582 A JP2021048582 A JP 2021048582A JP 2020152597 A JP2020152597 A JP 2020152597A JP 2020152597 A JP2020152597 A JP 2020152597A JP 2021048582 A JP2021048582 A JP 2021048582A
- Authority
- JP
- Japan
- Prior art keywords
- playlist
- time length
- segment
- client device
- client devices
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000004590 computer program Methods 0.000 claims abstract description 12
- 230000006399 behavior Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4825—End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2223—Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234381—Processing 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 by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/23439—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2408—Monitoring of the upstream path of the transmission network, e.g. client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25833—Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25858—Management of client data involving client software characteristics, e.g. OS identifier
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26258—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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
- H04N21/44004—Processing 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 involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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
- H04N21/4402—Processing 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 involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing 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 involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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
- H04N21/4402—Processing 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 involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/44029—Processing 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 involving reformatting operations of video signals for household redistribution, storage or real-time display for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4621—Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/64322—IP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring 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)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】メディア再生を改善するための方法、コンピュータプログラム製品及びシステムを提供する。【解決手段】クライアント固有プレイリスト及び処理済みバリアントストリームをクライアントデバイスへ配信するためのシステムにおいて、バリアントストリームを受信する工程と、バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、バリアントストリームを使用して、複数の異なるタイプのクライアントデバイスのそれぞれについて、それぞれ異なる最大セグメント時間長を含んでいるプレイリストを生成する工程と、複数の異なるタイプのクライアントデバイスのうちの少なくとも1つにそれぞれのプレイリストを、分配ネットワークを介して配信する工程と、を含む。【選択図】図1
Description
アダプティブビットレートストリーミング(ABR)は、連続で途切れないメディア再生をクライアントデバイスに提供できるコンピュータネットワークストリーミング技術である。ABRは、クライアントデバイスのネットワーク帯域幅とデータスループットをリアルタイムで測定し、それに応じてクライアントデバイスに配信されるストリーミング品質を調整することに関係する。
ストリーミング品質は、メディアコンテンツを含むファイルのサイズに表れる。高品質のストリームは、ストリーミングのビットレートが高く、ファイルサイズが比較的大きくなることを表している。したがって、高品質のストリームには、より多くのネットワーク帯域幅とより大きなデータスループットがクライアントデバイスに必要になる。それは、クライアントデバイス上での連続で途切れないメディア再生を保証するためである。同様に、低品質のストリームは、ストリーミングビットレートが小さく、ファイルサイズが比較的小さくなることを表している。したがって、低品質のストリームでは、クライアントデバイス上での連続で途切れないメディア再生を保証するために必要なクライアントデバイスのネットワーク帯域幅とデータスループットが少なくて済む。
上記の態様を達成し、詳細に理解できるように、上記で簡潔に概要を述べた本明細書に記載の実施形態のより具体的な説明を、添付図面を参照することによって得ることができる。ただし、他にも等しく効果的な実施形態が考えられるので、添付図面は典型的な実施形態を示しており、したがって、限定していると解釈されるべきではないことに留意すべきである。
一実施形態による、クライアント固有プレイリスト及び処理済みバリアントストリームをクライアントデバイスへ配信するためのシステムを示す。
一実施形態による、一般的なメディアコンテンツのための符号化バリアントストリームを示す。
一実施形態による、パッケージャを動作させるためのフローチャートを示す。
一実施形態による、対応するクライアント固有プレイリストを有する処理済みバリアントストリームを示す。
一実施形態による、同じバリアントストリームに対する種々のクライアント固有プレイリストのセグメント時間長及びセグメント境界を示す。
一実施形態による、メディア再生の様々な時点でのセグメント時間長グループ化の変更を示す。
一実施形態による、クライアントデバイス上でのメディア再生を示す。
本開示の構成を詳細に理解できるように、本明細書に開示される本発明の諸実施形態は、コンピュータネットワークストリーミングプロトコルとしてHTTPライブストリーミング(HLS)を参照し得る。クライアントデバイスプラットフォームすなわちオペレーティングシステム(OS)は、OS−A、OS−B、OS−Cなどと呼ばれることがある。OSの例には、Android(商標名)及びiOS(商標名)がある。クライアントデバイスのメディアプレーヤーは、メディアプレーヤーA、メディアプレーヤーB、メディアプレーヤーCなどと呼ばれることがある。クライアントデバイスのメディアプレーヤーの一例が、JavaScriptベースのメディアプレーヤーである。ただし、開示された実施形態を、前述のネットワークプロトコル、プラットフォームすなわちOS、又はメディアプレーヤーのいずれかに限定されるものとして解釈するべきではない。
HLSは、マスタープレイリストを介してメディアコンテンツを配信できるコンピュータネットワークストリーミングプロトコルである。マスタープレイリストは複数のバリアントストリームを参照し、このバリアントストリームの各々は同じメディアコンテンツについての異なるストリーミング品質を表す。各バリアントストリームは、クライアントデバイスで順番に再生されるメディアコンテンツの連続した最大時間長セグメントの集合を参照するメディアプレイリストを含む。
セグメントは、メディアプレイリスト内で1つ以上のURI(ユニフォームリソースアイデンティファイア)と、オプションでバイトレンジによって識別される。URIは、インターネット上のリソースを識別する文字列である。メディアプレイリストの各セグメントは、通常は複数のバリアントストリーム間で同期されるセグメント境界で開始及び終了を行う。ABRは、これらの整列配置されたセグメント境界でストリーミング品質を調整することによって実行される。これらの調整は、あるバリアントストリーム内のセグメントのグループから、別のバリアントストリーム内のセグメントの連続したグループへの切り替えを含む。
HLSのためのメディア再生の最適化は、クライアントデバイスやクライアントメディアプレーヤーの違いによって妨げられる場合がある。メディア再生を開始すると、多くのクライアントデバイスが、セグメントの時間長に関係なく、一定数のセグメントをダウンロードする。ダウンロードされたセグメントの数に関係なく、一定時間バッファリングを行うクライアントデバイスもある。したがって、種々のクライアントデバイス(例えば、異なるタイプのOS又はメディアプレーヤーを有するクライアント)が、メディア再生のための種々の又は相反するパフォーマンス最適化を有し得る。
さらに、多くのメディアプレーヤーは、高ストリーミング品質ではなく中ストリーミング品質でメディア再生を開始する。それは、初期の高ストリーミング品質を維持できないことに起因するバッファリングによるメディア再生のスキップを最小限に抑えるためである。中ストリーミング品質でメディア再生を開始すると、ある不利なことが生じる。それは、クライアントデバイスの利用可能な帯域幅とデータスループットによって、より高ストリーミング品質がサポートされる場合に生じる。このような場合、メディア再生のパフォーマンスは最適化されない。なぜなら、クライアントが一定数のセグメントをダウンロードしている間、又はセグメントを一定時間ダウンロードしている間に、中ストリーミング品質で時間が費やされているからである。これは、クライアントの帯域幅とデータスループットが許す限りすぐに、メディア再生をより高ストリーミング品質へシフトするのとは、対照的である。
例えば、クライアントデバイスAが、別のストリーミング品質へ切り替える前に、8秒のセグメント時間長の5つのセグメントをダウンロードするようにプログラムされていると仮定し、クライアントデバイスAの利用可能な帯域幅とデータスループットが、メディア再生のすべての時点で高ストリーミング品質をサポートすると仮定する。クライアントデバイスAが中ストリーミング品質でストリーミングを開始し、高ストリーミング品質への移行を希望する場合、クライアントデバイスAは、高ストリーミング品質に移行する前に、中ストリーミング品質で40秒間のストリーミングを行う必要がある。中ストリーミング品質での40秒間のストリーミングは、最適化されたメディア再生ではない。なぜなら、クライアントデバイスAは、高ストリーミング品質で40秒間ストリーミングできていた可能性があるからである。
前述の問題の解決、及びメディア再生のさらなる最適化は、セグメント流動性を使用することで達成され得る。このセグメント流動性とは、特定の各クライアントデバイスのプラットフォームに最適な時間長のセグメントを、必要に応じてそれぞれのクライアントデバイスに提示することができるように、メディア作成又はメディア処理の間にセグメントをグループ化する手法である。
本明細書の諸実施形態では、パッケージャは、特定のタイプのクライアントデバイス用に最適化されたセグメント時間長を有する1つ以上のURIを参照するクライアント固有プレイリストを生成する。クライアントデバイスがサーバーからプレイリストを受信すると、サーバーは、リクエストを行っているクライアントデバイスのタイプを識別し、特定のクライアントデバイス用に最適化されたプレイリストをクライアントデバイスへ配信できる。クライアントデバイスは最適化されたクライアント固有プレイリストを用いて、サーバーからセグメントの可変グループをフェッチ又はリクエストする。セグメントを可変でグループ化することで、セグメントの長さをリアルタイムで最適化し、メディア再生パフォーマンスを向上させることができる。このように、セグメント流動性は、種々のオペレーティングシステムやメディアプレーヤーを実装するクライアントデバイスでメディア再生パフォーマンスを向上させる。
一実施形態では、セグメントの可変グループ化を使用して、メディア再生の起動時とシークポイントでは、より短いセグメント時間長を提供し、他方で、エンドユーザーが開始操作やシーク動作を開始する可能性が低いメディア再生部分では、より長いセグメント時間長を提供する。
図1は、一実施形態による、クライアント固有プレイリスト及び処理済みバリアントストリームをクライアントデバイスへ配信するためのシステムを示す。この実施形態では、オーディオビジュアル(AV)入力110は、トランスコーダ130へ配信されるマルチメディアストリームを生成する。トランスコーダ130は、マルチメディアストリームを1つ以上の符号化バリアントストリームに変換する。このバリアントストリームの各々は同じメディアコンテンツを含むが、ビットレートは異なっている。符号化バリアントストリームは、符号化バリアントストリーム全体に整列配置されたセグメント境界に、区分境界を含む。符号化バリアントストリームは、パッケージャ140へ配信される。
パッケージャ140は、データユニット142、プレイリストユニット144、及び配信ユニット146を備える。一実施形態では、データユニット142、プレイリストユニット144、及び配信ユニット146は、ハードウェア(例えば、プロセッサ及びメモリー)で実行されるソフトウェアモジュールである。データユニット142は、最大セグメント時間長に関するデータを含む。このデータは、様々なクライアントデバイスのオペレーティングシステム158a及びメディアプレーヤー158bに最適なメディア再生パフォーマンスを提供する。最大セグメント時間長は、クライアントデバイスごとに最適化される。例えば、第1タイプのクライアントデバイスは、より短い最大セグメント時間長を使用して最適なメディア再生を有し得る。それに対して、第2タイプのクライアントデバイスは、より長い最大セグメント時間長を使用して最適なフィードバックを行う。
プレイリストユニット144は、各クライアントデバイスのオペレーティングシステム158a又はメディアプレーヤー158bの最大セグメント時間長を識別し、これらのクライアントデバイスのオペレーティングシステム158a又はメディアプレーヤー158bのそれぞれに対して、それぞれのメディアプレイリスト(クライアント固有プレイリスト)を作成する。符号化バリアントストリームは、最大セグメント時間長、又は最大セグメント時間長のグループに、バイトレンジを使用してアクセスできるように、処理される。次に、クライアント固有プレイリストが、処理済みバリアントストリーム148ごとに生成される。
配信ユニット146は、クライアント固有プレイリストを分配ネットワーク150へ配信する。そこでは、一実施形態では、クライアント固有プレイリスト及び処理済みバリアントストリーム148が、まず1つ以上のサーバー152に送信される。次に、クライアント固有プレイリストが、クライアントデバイス156に送信される。1つ以上のサーバーは、クライアントデバイスからの、メディアコンテンツのセグメントに対するあらゆるフェッチ/リクエストを処理する。つまり、クライアント固有プレイリストを使用して、クライアントデバイス156は、メディアコンテンツを再生するために、それらのプレイリスト内に識別されるセグメントに対するリクエストを分配ネットワーク150に提出することができる。
あるいは、クライアント固有プレイリスト及び処理済みバリアントストリーム148が、まず1つ以上のサーバー152に送信される。次に、クライアント固有プレイリストが、コンテンツ配信ネットワーク(CDN)154に送信され、このコンテンツ配信ネットワークは、クライアント固有プレイリストをクライアントデバイス156へ配信し、メディアコンテンツのセグメントに対するクライアントデバイスのフェッチ/リクエストを処理する。さらに別の一実施例では、クライアント固有プレイリスト及び処理済みバリアントストリーム148がまずCDN154に送信され、このCDNは、クライアント固有プレイリストをクライアントデバイス156へ配信し、メディアコンテンツのセグメントに対するクライアントデバイスのフェッチ/リクエストを処理する。フェッチ/リクエストされたセグメントをCDNを使用して処理すると、メディア再生を改善できる。そのために、CDNエッジサーバーのローカライズにより、フェッチ/リクエストされたセグメントの配信時間を短縮する。
図2は、一実施形態による、共通の(すなわち、同じ)メディアコンテンツの符号化バリアントストリームを示す。この実施形態では、バリアントストリーム1、206及びバリアントストリーム2、204は、異なるストリーミング品質(ビットレート1及びビットレート2)の符号化バリアントストリームである。各々のバリアントストリームは、符号化バリアントストリームが処理された後に存在し得る潜在的セグメントの区分境界を含む。各潜在的セグメントは、等しいセグメント時間長(例えば、204d1〜204dn)によって、又は隣接するセグメント境界(例えば、204b1及び204b2)によって指定される。
セグメント境界は、バリアントストリーム全体に整列配置される。この実施例では、ABRのバリアント切り替えが、セグメント境界204b1〜n及び206b1〜nで発生する。各セグメント境界で、クライアントデバイスのネットワーク帯域幅及びデータスループットに基づいて、異なるバリアントストリームをクライアントデバイスへ配信することができる。つまり、ABRを実装するクライアントデバイスは、セグメント境界で、クライアントデバイスの現在のネットワーク帯域幅とデータスループットに基づいて、ビットレートが低い又は高いバリアントストリームへ切り替えることを決定できる。
例えば、ビットレート1が5Mbps、ビットレート2が2Mbpsの場合、より低ストリーミング品質なバリアントストリーム2、204でストリーミングを行うことによって、メディア再生202を開始し得る。クライアントデバイスの利用可能なネットワーク帯域幅とデータスループットによって、より高ストリーミング品質なバリアントストリーム1、206の再生が可能になる場合、クライアントデバイスは、バリアントストリーム1のプレイリストを取得し、バリアントストリーム1、206のセグメントに対するリクエストを送信する。バリアントストリーム2、204からバリアントストリーム1、206への切り替えが、バリアントストリーム1、206及びバリアントストリーム2、204の全体に整列配置されたあらゆるセグメント境界(例えば、204b1及び206b1)で、発生し得る。
その後、クライアントデバイスの利用可能なネットワーク帯域幅とデータスループットが、より高ストリーミング品質なバリアントストリーム1、206を維持できなくなった場合、クライアントは、リクエストを処理しているサーバー又はCDNから、より低ストリーミング品質なバリアントストリーム2、204のセグメントをリクエストすることができる。バリアントストリーム1、206からバリアントストリーム2、204への切り替えが、バリアントストリーム1、206及びバリアントストリーム2、204の全体に整列配置された、その後のセグメント境界(例えば、204bn及び206bn)で、発生する。
チャプターは、メディアコンテンツでの移行点である。例えば、チャプターは、メディアコンテンツ内での広告中断、又は人物間の会話の自然な中断の開始又は終了を示し得る。一実施形態では、チャプターはセグメント境界として機能する。非チャプターセグメント境界に対するチャプターの位置に関係なく、チャプターはメディア再生202内の任意の適切な場所で発生し得る。
図3は、一実施形態による、パッケージャの動作のフローチャートを示す。クライアントデバイスごとに、最適なメディア再生のための最適な最大セグメント時間長が異なるため、図3は、クライアントに最適化されたセグメント時間長を各クライアントデバイスへ配信する手法を示している。さらに、メディア再生の間に最適なセグメント時間長が変わる可能性があるため、図3の最適化手法では、セグメント時間長のスパンをリアルタイムで変更することが可能になっている。パッケージャが、前述の問題を解決するために動作する。図3は、本出願の他の諸図を参照して説明されているが、そのような参照は明確にするためであり、図3の説明を前述の図の諸実施形態に限定するためだと解釈するべきではない。
ブロック302で、パッケージャは、トランスコーダから符号化バリアントストリームを受信する。各々の符号化バリアントストリームは、メディアコンテンツの潜在的セグメントの区分境界を含む。各々の符号化バリアントストリームは、同じメディアコンテンツを有するが、ストリーミング品質/ビットレートは異なる。メディアコンテンツの各潜在的セグメントの始まりと終了は、セグメント境界であり(例えば、図2の204b1及び204b2)、このセグメント境界は、すべての符号化バリアントストリーム全体に整列配置されている。2つの隣接するセグメント境界(例えば、204b1及び204b2)は、セグメント時間長(例えば、204dn)を指定する。
ブロック304で、プレイリストユニット144は、クライアント固有プレイリスト及び処理済みバリアントストリームを配信するためにクライアントデバイスを識別する。一実施形態では、データユニット142、プレイリストユニット144、及び配信ユニット146は、ハードウェア(例えば、プロセッサ及びメモリー)で実行されるソフトウェアモジュールである。プレイリストユニット144は、クライアントの特性に関するデータをデータユニット142から収集することができ、このデータユニット142には、各クライアントデバイスに関する所定のデータが入力される。所定のデータは、最適な性能についてメディアプレーヤー及びクライアントをテストすることによって決定され得る。例えば、フィールドテストで、第1タイプのクライアントデバイスの場合には、最大セグメント時間長が4秒のプレイリストを使用すると、ビデオの起動時間が短縮され、バリアントの切り替えが高速化され、又はサーバーの負荷が軽減され、第2タイプのクライアントデバイスの場合には、最大セグメント時間長が8秒のプレイリストを使用すると、ビデオの起動時間が短縮され、バリアントの切り替えが高速化され、又はサーバーの負荷が軽減されることが示される場合がある。こうして、この実施例では、4秒の最大セグメント時間長が、第1クライアントの特性である所定のデータであり、8秒の最大セグメント時間長が、第2クライアントの特性である所定のデータである。
ブロック306で、プレイリストユニット144は、各クライアントデバイスの最適な再生のために、符号化バリアントストリーム内の最大セグメント時間長を識別する。プレイリストユニット144は、データユニット142から各クライアントデバイスの最大セグメント時間長に関するデータを収集してもよい。このデータユニット142は、様々なクライアントデバイスのオペレーティングシステム158a及びメディアプレーヤー158bに最適なメディア再生パフォーマンスを提供する最大セグメント時間長に関するデータを含む。
最大セグメント時間長は、クライアントデバイスごとに最適化される。例えば、第1クライアントデバイスはOS−Bを使用するかもしれないが、第2クライアントデバイスはOS−Aを使用する。又は、第1クライアントデバイスはメディアプレーヤーAを使用するかもしれないが、第2クライアントデバイスはメディアプレーヤーBを使用する。第1クライアントの最適な最大セグメント時間長は8秒であるかもしれないが、第2クライアントデバイスの最適な最大セグメント時間長は4秒である。第1クライアント用に最適化された最大セグメント時間長を有するセグメントを配信するプレイリストは、第2クライアントデバイスの再生エクスペリエンスにマイナスの影響を与える。少なくともそれは、最大セグメント時間長が長くなると、第2クライアントデバイスにとっては、ABRを実行する際に、バリアントストリームを切り替える機会が少なくなるからである。
上記の問題は、クライアント固有プレイリストを各クライアントデバイスに提供することで解決される。したがって、第1クライアントデバイスは、最大セグメント時間長がもっぱら8秒だけであるクライアント固有プレイリストを受信すると、最適なパフォーマンスを発揮する。同様に、第2クライアントデバイスは、最大セグメント時間長が4秒であるクライアント固有プレイリストだけを受信すると、最適なパフォーマンスを発揮する。
ブロック308で、パッケージャは、符号化バリアントストリームに含まれる区分境界で符号化バリアントストリームをセグメント化することにより、処理済みバリアントストリームを生成する。符号化バリアントストリームのセグメント化は、各符号化バリアントストリームを複数のセグメントファイルにセグメント化することを含み、これらのセグメントファイルが集合的に、対応する処理済みバリアントストリームを構成してもよい。又は、符号化バリアントストリームのセグメント化は、各最大時間長セグメント若しくはそのグループへの単一ファイルのバイトレンジアクセスのために、対応する各処理済みバリアントストリームを準備することを含んでもよい。
各符号化バリアントストリームには、メディアコンテンツの潜在的セグメントの区分境界が含まれているため、各処理済みバリアントストリームは、メディアコンテンツの(実現)セグメントを含む。処理済みバリアントストリームの各セグメントの開始と終了はセグメント境界であり、このセグメント境界は、クライアントデバイスごとに処理済みバリアントストリーム全体で整列配置される。2つの隣接するセグメント境界のタイムスタンプ間の差は、セグメント時間長を示す。
ブロック310で、パッケージャは、クライアントデバイスごとの処理済みバリアントストリームごとにクライアント固有プレイリストを生成する。パッケージャが符号化バリアントストリームをセグメント化すると、プレイリストユニット144は、クライアントデバイスごとにクライアント固有プレイリストを生成する。これを図4に示す。
図4は、一実施形態による、対応するクライアント固有プレイリストを有するバリアントストリームを示す。この実施形態では、3つのバリアントストリームは同じメディアコンテンツに対応し、各バリアントストリームは3つのクライアント固有プレイリストを含む。この例では、クライアント固有プレイリストは、3つの異なるオペレーティングシステム又はメディアプレーヤーを備えたクライアントデバイス用である。上記のように、本明細書の諸実施形態は、異なるオペレーティングシステム又はメディアプレーヤーを有するクライアントのための特定のプレイリストを生成することに限定されない。パッケージャは、他のタイプのソフトウェア又はハードウェアモジュールを備えたクライアントデバイス用のクライアント固有プレイリストを生成できる。
図のように、プレイリスト1H、1M、1Lは、同じタイプのクライアントデバイス、つまりメディアプレーヤーAを使用するクライアントデバイス用のプレイリストである。プレイリスト1H、412は、高品質なバリアントストリーム1、410用のクライアント固有プレイリストである。プレイリスト1M、422は、中品質なバリアントストリーム2、420用のクライアント固有プレイリストである。プレイリスト1L、432は、低品質なバリアントストリーム3、430用のクライアント固有プレイリストである。この実施形態のメディアプレーヤーAは、2秒のセグメント時間長で最適なメディア再生パフォーマンスを発揮する。したがって、プレイリスト1H、1M、1Lの最大セグメント時間長は2秒間である。
プレイリスト2H、2M、2Lは、OS−Aを実装するクライアントデバイス用に最適化されている。プレイリスト2H、414は、高品質なバリアントストリーム1、410用のクライアント固有プレイリストである。プレイリスト2M、424は、中品質なバリアントストリーム2、420用のクライアント固有プレイリストである。プレイリスト2L、434は、低品質なバリアントストリーム3、430用のクライアント固有プレイリストである。この実施形態では、OS−Aは、4秒のセグメント時間長で最適なメディア再生パフォーマンスを発揮する。したがって、プレイリスト2H、2M、2Lの最大セグメント時間長は4秒間である。
プレイリスト3H、3M、3Lは、OS−Bを実装しているクライアントに対して利用可能になっている。プレイリスト3H、416は、高品質なバリアントストリーム1、410用のクライアント固有プレイリストである。プレイリスト3M、426は、中品質なバリアントストリーム2、420用のクライアント固有プレイリストである。プレイリスト3L、436は、低品質なバリアントストリーム3、430用のクライアント固有プレイリストである。この実施形態では、OS−Bは、8秒のセグメント時間長で最適なメディア再生パフォーマンスを発揮する。したがって、プレイリスト3H、3M、3Lの最大セグメント時間長は8秒間である。
ABRは、同じクライアントデバイスのために、クライアント固有プレイリストの高品質、中品質、又は低品質なバリアントストリームから適切なセグメントを配信することで実行される。例えば、現在プレイリスト3M、426のセグメントを使用して再生を行っている場合、クライアントは中品質なバリアントストリーム2、420からOS−Aのセグメントをダウンロードする。
利用可能なネットワーク帯域幅とデータスループットによって、より高品質なバリアントストリーム1、410に切り替えられる場合、OS−Aがクライアントデバイスであるプレイリスト3H、416からセグメントがクライアントデバイスへ配信される。又は、利用可能なネットワーク帯域幅とデータスループットにより、中品質なバリアントストリーム2、420の中断のない再生を維持できない場合、OS−Aがクライアントデバイスであるプレイリスト3L、436からセグメントがクライアントデバイスへ配信される。このように、クライアントデバイスは、最適化されたセグメント時間長を持つクライアント固有プレイリストをリクエストできる。
一実施形態では、クライアント固有プレイリストは、1つ以上のURIと説明タグのリストを含むUTF−8テキストファイルである。URIは、処理済みバリアントストリーム内のメディアコンテンツのセグメントを識別する。説明タグは、クライアント固有プレイリストの情報とパラメータを指定する。
一実施形態では、リスト内の各URIの直前にはEXTINFタグがあり、このEXTINFタグは、URIに対応するセグメントのセグメント時間長を示す。セグメントグループを、EXT−X−BYTERANGEタグで指定してもよい。このEXT−X−BYTERANGEタグで、セグメントグループに対応するURIリソースの範囲を示してもよい。クライアント固有プレイリストは、EXT−X−ENDLISTタグを含む。このEXT−X−ENDLISTタグは、クライアント固有プレイリストにはもはやセグメントがないことを示す。
一実施形態では、クライアント固有プレイリストは、各クライアントデバイス用に最適化された最大セグメント時間長を指定するバイトレンジを含む。例えば、クライアントデバイスがOS−Aを使用している場合、最適な最大セグメント時間長は4秒になり得る。このクライアントデバイスは、高ストリーミング品質な処理済みバリアントストリーム1、410を表すプレイリスト2H、414、中ストリーミング品質なバリアントストリーム2、420を表すプレイリスト2M、424、及び低ストリーミング品質なバリアントストリーム3、430を表すプレイリスト2L、434を受信する。
クライアント固有プレイリストは、セグメントと、処理済みバリアントストリーム全体に整列配置されたセグメント境界を有するので、クライアントデバイスは、現在クライアントデバイスが使用していないクライアント固有プレイリストのうちの1つからセグメントのグループをリクエストすることによって、ストリーミング品質を切り替えることができる。次に、リクエストを処理するサーバーは、目的のストリーミング品質に対応するクライアント固有プレイリストからクライアントデバイスへ、次のセグメント境界で、連続したセグメントを配信する。
図3へ戻る。ブロック312で、パッケージャは、分配ネットワークを介してクライアント固有プレイリストをクライアントへ配信する。一実施形態では、配信ユニット146は、クライアント固有プレイリストを分配ネットワーク150へ配信する。分配ネットワーク150では、クライアント固有プレイリスト及び処理済みバリアントストリーム148が、まず1つ以上のサーバー152に送信される。クライアントデバイスがメディアコンテンツをリクエストすると、サーバーは、メディアコンテンツリクエストのヘッダーに含まれるユーザーエージェントデータに基づいて、クライアントデバイスのタイプを決定し得る。次に、1つ以上のサーバーは、適切なクライアント固有プレイリストをクライアントデバイス156へ配信し、メディアコンテンツのセグメントに対する、クライアントデバイスからのあらゆるフェッチ/リクエストを処理する。
別の一実施形態では、配信ユニット146は、1つ以上のマスタープレイリストを分配ネットワーク150へ配信する。分配ネットワーク150では、マスタープレイリストは、まず1つ以上のサーバー152に送信される。1つ以上のサーバー152は、複数のソースからの複数のマスタープレイリストを含み得る。各マスタープレイリストは、そのそれぞれのマスタープレイリスト内のすべてのバリアントストリームについて、等しいセグメント時間長を有するバリアントストリームを含む。ただし、バリアントストリームのセグメント時間長は、マスタープレイリストごとに異なる。例えば、マスタープレイリストAはバリアントストリームA1、A2、A3を含み、それぞれのセグメント時間長が4秒であってもよい。他方、マスタープレイリストBはバリアントストリームB1、B2、B3を含み、それぞれのセグメント時間長が8秒であってもよい。クライアントデバイスがメディアコンテンツをリクエストすると、サーバーは、クライアントデバイスに最適なセグメント時間長を含むマスタープレイリストをクライアントデバイスへ配信する。次に、サーバーは、メディアコンテンツのセグメントに対する、クライアントデバイスからのあらゆるフェッチ/リクエストを処理する。
別の一実施形態では、クライアント固有プレイリスト及び処理済みバリアントストリーム148が、まず1つ以上のサーバー152に送信される。次に、クライアント固有プレイリストが、コンテンツ配信ネットワーク(CDN)154に送信される。クライアントデバイスがメディアコンテンツをリクエストすると、CDNは、メディアコンテンツリクエストのヘッダーに含まれるユーザーエージェントデータに基づいて、クライアントデバイスのタイプを決定し得る。次に、CDNは、適切なクライアント固有プレイリストをクライアントデバイス156へ配信し、メディアコンテンツのセグメントに対するクライアントデバイスのフェッチ/リクエストを処理する。
さらに別の一実施形態では、クライアント固有プレイリスト及び処理済みバリアントストリーム148が、まずCDN154に送信される。クライアントデバイスがメディアコンテンツをリクエストすると、CDNは、メディアコンテンツリクエストのヘッダーに含まれるユーザーエージェントデータに基づいて、クライアントデバイスのタイプを決定する。次に、CDNは、適切なクライアント固有プレイリストをクライアントデバイス156へ配信し、メディアコンテンツのセグメントに対するクライアントデバイスのフェッチ/リクエストを処理する。CDNを使用してフェッチ/リクエストされたセグメントを処理すると、メディア再生を改善できる。そのために、CDNエッジサーバーのローカライズにより、フェッチ/リクエストされたセグメントの配信時間を短縮する。この実施形態は、この実施形態がCDNの使用のみにより、プレイリストをクライアントデバイスに分配する点で、前の実施形態とは異なる。他方、前の実施形態は、サーバーとCDNの組み合わせを使用して、プレイリストをクライアントデバイスに配布することができる。
図5は、単一のバリアントストリーム(例えば、図4のバリアントストリーム1)に対する異なるクライアント固有プレイリストのセグメント時間長及びセグメント境界を示す。一実施形態では、高品質なバリアントストリームは、3つのクライアント固有プレイリスト504、506、508を含む。クライアント固有プレイリストには、3つのクライアントデバイスのオペレーティングシステム及びメディアプレーヤー、すなわちOS−A、OS−B、及びメディアプレーヤーAが表示されている。
プレイリスト1Hは、メディアプレーヤーA用に最適化されたセグメントを含む。2つの隣接するセグメント境界(例えば、504b1及び504b2)は、セグメント時間長(例えば、504d1)を指定する。ABRが動作して、セグメント境界(例えば、504b2)でストリーミング品質を切り替えてもよい。
プレイリスト2Hは、OS−A用に最適化されたセグメントを含む。2つの隣接するセグメント境界(例えば、506b1及び506b2)は、セグメント時間長(例えば、506d1)を指定する。ABRが動作して、セグメント境界(例えば、506b2)でストリーミング品質を切り替えてもよい。
プレイリスト3Hは、OS−B用に最適化されたセグメントを含む。2つの隣接するセグメント境界(例えば、508b1及び508b2)は、セグメント時間長(例えば、508d1)を指定する。ABRが動作して、セグメント境界(例えば、508b2)でストリーミング品質を切り替えてもよい。
プレイリスト1H、2H、3Hのセグメント時間長が、互いに異なっていてもよい。例えば、プレイリスト3Hのセグメント時間長が8秒であってもよく、プレイリスト2Hのセグメント時間長が4秒であってもよく、プレイリスト1Hのセグメント時間長が2秒であってもよい。したがって、一実施形態では、プレイリスト1H、2H、及び3Hは、同じバリアントストリームにおいて、それぞれのプレイリスト間で異なるセグメント時間長を有するセグメントを参照する。
クライアントデバイスごとに最適化された最大セグメント時間長により、例えば、すべてのクライアントデバイスに対して時間長が固定されたセグメント時間長を受信する場合と比較して、メディア再生は改善される。例えば、OS−Bを実行している第1クライアントデバイスの最適な最大セグメント時間長は8秒である。他方、OS−Aを実行している第2クライアントデバイスの最適な最大セグメント時間長は4秒である。第1クライアント用に最適化された最大セグメント時間長でセグメントを配信するプレイリストは、第2クライアントデバイスの再生エクスペリエンスにマイナスの影響を与える。少なくともそれは、最大セグメント時間長が長くなると、第2クライアントデバイスにとっては、ABRを実行する際に、バリアントストリームを切り替える機会が少なくなるからである。また、最大セグメント時間長が短すぎると、クライアントデバイスが実行するセグメントのフェッチ/リクエストの数が不必要に増加する。これにより、クライアントデバイスの処理能力が浪費され、フェッチ/リクエストを処理しているサーバーの負荷が増加する。
さらに、クライアントデバイスのメディアプレーヤーが、ABRを実行する前に一定数のセグメントをダウンロードするようにプログラムされている場合、クライアントデバイスの最適化された最大セグメント時間長よりも長い最大セグメント時間長は、望ましくないストリーミング品質で費やされる時間を長くする可能性がある。これは、最大セグメント時間長が長いセグメントをダウンロードするには、より多くの時間が必要になるためである。例えば、8秒のセグメント時間長を持つセグメントが、2秒のセグメント時間長に最適化されたクライアントデバイスに配信され、クライアントデバイスのメディアプレーヤーが、2つのセグメントをダウンロードしてから別のストリーミング品質に切り替えることができるようにプログラムされている場合、8秒のセグメント時間長を持つセグメントのために、メディアプレーヤーがABRを実行できるようになるまでに16秒の待機時間が強制される。それに対して、2秒のセグメント時間長を持つセグメントの場合の待機時間は4秒である。したがって、メディアプレーヤーが、開始ポイント又はシークポイントの後で高品質のストリーミング品質への切り替えを必要とする場合、8秒のセグメント時間長を持つセグメントを使用している時には、メディアプレーヤーはより高品質ストリームへ切り替える前に、メディアプレーヤーが2秒のセグメント時間長を使用している場合と比較すると、劣ったストリーミング品質を12秒以上、エンドユーザーに配信している。
さらに、クライアントデバイスのメディアプレーヤーが、ABRを実行する前に一定時間セグメントをダウンロードするようにプログラムされている場合、最大セグメント時間長がクライアントデバイスの最適化された最大セグメント時間長よりも長いと、望ましくないストリーミング品質で費やされる時間が長くなる。なぜなら、メディアプレーヤーは必然的に、ABRを実行する前に必要な時間を超過するからである。
例えば、8秒のセグメント時間長を持つセグメントが、2秒のセグメント時間長に最適化されたクライアントデバイスに配信され、クライアントデバイスのメディアプレーヤーが、セグメントを10秒間ダウンロードしてから別のストリーミング品質に切り替えることができるようにプログラムされている場合、8秒のセグメントは、必要なダウンロード時間を6秒超過する。なぜなら、8秒のセグメントを2つダウンロードするためであり、それは、1セグメント間にABRを実行することはできず、8秒のセグメントを1つダウンロードしても、必要とされる10秒のセグメントダウンロードを満たさないからである。したがって、メディアプレーヤーが、開始ポイント又はシークポイントの後で高品質のストリーミング品質への切り替えを必要とする場合、8秒のセグメント時間長を持つセグメントを使用している時には、メディアプレーヤーはより高品質ストリームへ切り替える前に、メディアプレーヤーが2秒のセグメント時間長を使用している場合と比較すると、劣ったストリーミング品質を6秒以上、エンドユーザーに配信している。
図6は、一実施形態による、メディア再生の様々な時点でのセグメント時間長グループ化の変更を示す。可変セグメント時間長グループ化はセグメント流動性を利用して、短時間長セグメントを長時間長セグメントにリアルタイムで組み合わせる。具体的には、可変セグメント時間長グループ化は、バイトレンジを含むクライアント固有プレイリストを使用して、処理済みバリアントストリーム内のセグメントを識別することで可能になった最適化である。
例えば、図4のプレイリスト1H、412は、最大セグメント時間長が2秒であるクライアントデバイスを示す。ただし、プレイリスト1H、412で指定されたすべてのセグメントは静的である。プレイリスト1Hを使用したメディア再生では、一連の2秒のセグメントがストリーミングされる。他方、可変セグメント時間長グループ化では、再生条件の変更中に最適化するために、最大時間長セグメントに基づいたより大きなセグメントを構築できる。
一実施形態では、セグメント時間長は、1つ以上の最大セグメント時間長をグループ化することで変更される。隣接するセグメント境界(例えば、608b1及び608b2)は、セグメント及びセグメント時間長を定義する。ABRが動作して、セグメント境界(例えば、608b3)でストリーミング品質を切り替えてもよい。各セグメントは、クライアント固有プレイリスト内のバイトレンジを使用して識別できる。バイトレンジを使用して、複数のセグメントを一緒にグループ化してもよい。
この例では、クライアントデバイスは、2秒の最大セグメント時間長で最適なメディア再生パフォーマンスに達する。クライアントデバイスは、中ストリーミング品質でメディア再生602を開始する。メディア再生の開始点であるスタート604は、セグメント境界608b1に存在する。
開始点604で、クライアントデバイスは、2秒の時間長のセグメントを複数ダウンロードする。これにより、異なるストリーミング品質に切り替えるための複数の機会(すなわち、複数のセグメント境界608b2、608b3)が提供される。開始点604でストリーミング品質を切り替える機会が複数回あることで、最適な再生パフォーマンスを実現するために必要な時間が短縮される。なぜなら、ストリーミング品質を、より早いセグメント境界608b2で切り替え得るからである。同様に、最適な再生パフォーマンスを実現するために必要な時間を短縮できるのは、別のストリーミング品質へ切り替える前に一定量のセグメントをダウンロードする必要があるクライアントデバイスのメディアプレーヤーでも同じである。なぜなら、メディア再生602の間の早い時点で切り替えの条件を満足できるからである。
複数のセグメントの最初のセットをダウンロードした後、クライアントデバイスはバイトレンジを使用して、3つの連続したセグメントのグループをリクエストする。そのグループは、隣接するセグメント境界608b3及び608b4によって指定される、結合された6秒のセグメントを含む。セグメントの動的グループ化を可能にすることで、前述のメディア再生パフォーマンスの最適化と、セグメントを配信するサーバーの負荷軽減との間のバランスを取る。なぜなら、より長いセグメントの方が複数のより短いセグメントよりも、サーバーは処理しやすいからである。
シークポイントは、メディアプレーヤーのエンドユーザーによって選択されるメディア再生602内の特定の位置である。シーク606は、セグメント境界608b4で始まる。シーク606で、クライアントデバイスは、2秒の時間長のセグメントを複数ダウンロードする。もしクライアントデバイスが、即時にメディア再生を行うために必要なセグメントを含むキャッシュにアクセスできなければ、シークは開始点のように動作する。したがって、シークは、より小さな複数のセグメントの最初のセットをダウンロードし、より小さなセグメントをより大きなセグメントに動的にグループ化する。
図7は、一実施形態による、クライアントデバイス上でのメディア再生を示す。この実施形態では、クライアントデバイスは、クライアント固有プレイリストを介して複数のセグメントをリクエストし、メディアコンテンツをエンドユーザーに出力する。クライアントデバイスは、メディア再生の最適化のために動的にセグメントをグループ化することが可能になっている。
ブロック702で、クライアントデバイスは、1つ以上のクライアント固有プレイリストを受信する。各クライアント固有プレイリストは、バイトレンジタグを使用して1つ以上のセグメントを参照する。各クライアント固有プレイリストは、異なる処理済みバリアントストリームに対応し、この異なる処理済みバリアントストリームは、種々のビットレートの同じメディアコンテンツを表す。各クライアント固有プレイリストは、Endlistタグを含む。このEndlistタグは、1つ以上のクライアント固有プレイリストの終了を示す。
一実施形態では、クライアント固有プレイリストを受信するために、クライアントデバイスは識別情報をパッケージャに送信し、パッケージャはその情報を使用して、クライアントデバイスのタイプ、ひいてはクライアントデバイスに最適なプレイリストを決定する。次に、パッケージャは、クライアントデバイス(より具体的には、クライアントデバイス上のメディアプレーヤー)へ最適なプレイリストを送信する。一旦、プレイリストが識別されると、クライアントデバイスは、分配ネットワークからプレイリストをリクエストし、次に、以下で説明するように、プレイリストを使用してメディアコンテンツのセグメントのダウンロードを開始することができる。
別の一実施形態では、クライアントデバイスは、プレイリストとバリアントストリームを含む(パッケージャではなく)CDNに対して自分自身の識別を行う。CDNは、クライアントデバイス上でのメディア再生に最適な最大セグメント時間長を有するプレイリストを識別し、クライアントデバイスは、識別されたプレイリストをリクエストし、CDNはこのプレイリストをクライアントデバイスへ配信する。
ブロック704で、クライアントデバイスは、1つ以上のクライアント固有プレイリストによって参照される処理済みバリアントストリームのセグメントに対するフェッチ/リクエストを送信する。クライアントデバイスが、開始ポイント又はシークポイントの後で初めてメディアコンテンツのセグメントをリクエストするとき、フェッチ/リクエストは、クライアント固有プレイリスト内で特定された最大セグメント時間長を持つセグメントに対するものである。
クライアントデバイスはABRを実行できる。そのために、別のクライアント固有プレイリスト(つまり、別のバリアントストリームを表す、受信済みクライアント固有プレイリストのうちの1つ)内に参照されるセグメントをターゲットにして、ストリーミング品質を変更する。クライアントデバイスは、クライアントデバイスの利用可能なネットワーク帯域幅と現在のデータスループットに基づいて、別のクライアント固有プレイリストからのセグメントをフェッチ/リクエストすることを決定する。
ブロック706で、クライアントデバイスは、処理済みバリアントストリームのフェッチ/リクエストされたセグメントを受信する。ブロック708で、クライアントデバイスは、フェッチ/リクエストされたセグメントによって参照されるメディアコンテンツを再生する。
ブロック710で、クライアントデバイスはバイトレンジを使用して、複数のセグメントを、1つ以上の処理済みバリアントストリームからフェッチ/リクエストされる単一のセグメントグループにグループ化してもよい。クライアントデバイスは、バイトレンジを使用して、クライアント固有プレイリスト内に特定された最大セグメント時間長の複数の連続したセグメントを一緒にグループ化してもよい。複数のセグメントを単一のセグメントにグループ化すると、複数のセグメントをリクエスト、受信、処理する場合と比較して、クライアントデバイスで使用される処理能力の量を削減できるため、メディア再生が最適化され得る。さらに、複数のセグメントを単一のセグメントにグループ化すると、同様の理由で、メディアコンテンツに対するクライアントデバイスのフェッチ/リクエストを処理しているサーバーの負荷が軽減される。
ブロック712で、最後のセグメントに達した場合、ブロック714により、1つ以上のクライアント固有プレイリストによって参照されるメディアコンテンツの再生を終了する。Endlistタグに到達していない場合、クライアントデバイスは、ブロック704に従ってストリーミング動作を継続する。
本開示では、様々な実施形態が参照されている。ただし、本開示は、記載された特定の実施形態に限定されないことを理解するべきである。その代わりに、種々の諸実施形態に関連するかどうかにかかわらず、以下の構成及び要素のいかなる組み合わせも、本明細書で提供される教示を実行及び実践するために企図されたものである。さらに、実施形態の要素が「A及びBのうちの少なくとも1つ」の形で記載されている場合、要素Aのみを含む、要素Bのみを含む、要素A及びBを含む実施形態がそれぞれ企図されると、理解できる。さらに、いくつかの実施形態は、他の可能な解決策又は先行技術を超える効果を達成し得るが、所与の実施形態によって特定の効果が達成されるかどうかは、本開示を限定するものではない。したがって、本明細書に開示された態様、構成、実施形態、及び効果は、単なる例示であり、特許請求の範囲に明示的に記載されている場合を除き、添付の特許請求の範囲の要素又は制限とは見なされない。同様に、「本発明」という言及は、本明細書に開示される発明の内容の一般化として解釈されるものではなく、又、請求項に明確に記載される場合を除き、添付の特許請求の範囲の要素又は限定と見なされるものではない。
当業者には理解されるように、本明細書に記載の実施形態は、システム、方法、又はコンピュータプログラム製品として具現化され得る。したがって、実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又はソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態を取ることができ、本明細書ではそれらすべてを「回路」、「モジュール」、又は「システム」と総称する。さらに、本明細書に記載の実施形態は、コンピュータ可読プログラムコードが具現化された1つ以上のコンピュータ可読媒体内で表現されたコンピュータプログラム製品の形態を取り得る。
コンピュータ可読媒体上で具現化されたプログラムコードは、任意の適切な媒体を使用して送信されてもよい。その中には、無線、有線、光ファイバーケーブル、RFなど、又はこれらの任意の適切な組み合わせを含むが、これらに限定されない。
本開示の実施形態の動作を実行するためのコンピュータプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせで書かれてもよい。そのプログラミング言語は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、「C」プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含む。プログラムコードを、完全にユーザーのコンピュータ上で、又は部分的にユーザーのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして実行してもよく、一部はユーザーのコンピュータ上かつ一部はリモートコンピュータ上で、又は完全にリモートコンピュータ又はサーバー上で実行してもよい。後者のシナリオでは、リモートコンピュータを、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザーのコンピュータに接続してもよい。又は、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。
本開示の態様は、本開示の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図又はブロック図を参照して本明細書に記載されている。フローチャート図又はブロック図の各ブロック、及びフローチャート図又はブロック図内のブロックの組み合わせは、コンピュータプログラム命令によって実行されることが理解できる。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊用途コンピュータ、又はマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供可能であり、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行される命令は、フローチャート図又はブロック図のブロックで指定される機能/動作を実施するための手段を生成する。
これらのコンピュータプログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスに、特定の方法で機能するよう指示できるコンピュータ可読媒体に格納可能であり、これにより、コンピュータ可読媒体に格納された命令が、フローチャート図又はブロック図のブロックで指定された機能/動作を実施する命令を含む製品を形成する。
また、コンピュータプログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスにロードし、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で一連の動作ステップを実行させて、コンピュータ実行プロセスを生成してもよく、それにより、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイス上で実行される命令が、フローチャート図又はブロック図のブロックで指定された機能/動作を実行するためのプロセスを提供する。
図中のフローチャート図とブロック図は、本開示の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実施態様のアーキテクチャ、機能、及び動作を説明している。この点で、フローチャート図又はブロック図の各ブロックは、モジュール、セグメント、又はコードの一部を表し、これらが、指定された論理関数を実行するための1つ以上の実行可能命令を含んでもよい。また、いくつかの代替実施態様では、ブロックに記載されている機能が、図に記載されている順序とは異なる順序で生じる場合があることにも留意するべきである。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよく、関連する機能に応じて、逆の順序で実行されても、順不同で実行されてもよい。また、ブロック図又はフローチャート図の各ブロック、及びブロック図又はフローチャート図のブロックの組み合わせを、特定の機能又は動作を実行する特殊用途ハードウェアベースのシステム、又は特殊用途ハードウェアとコンピュータ命令の組み合わせによって実行し得ることにも注意が必要である。
上記は本開示の実施形態を対象としているが、本開示の他のさらなる実施形態を、その基本的な範囲から逸脱することなく創作することができ、その範囲は以下の特許請求の範囲に基づいて定められる。
Claims (20)
- 第1バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、
第1バリアントストリームに基づいて、複数の異なるタイプのクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、それぞれのプレイリストはそれぞれ異なる最大セグメント時間長を含んでいる工程と、
それぞれのプレイリストのうちの少なくとも1つを、複数の異なるタイプのクライアントデバイスのうちの少なくとも1つのクライアントデバイスに、分配ネットワークを介して配信する工程とを含む方法。 - 第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程をさらに含む、請求項1に記載の方法。
- 複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づいている、請求項1に記載の方法。
- それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項1に記載の方法。
- バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリーム内の各セグメント境界とチャプターを区分する工程をさらに含む、請求項1に記載の方法。
- 複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程をさらに含む、請求項1に記載の方法。
- コンピュータプログラムコードを含む非一時的なコンピュータ可読媒体であって、コンピュータプログラムコードが、1つ以上のコンピュータプロセッサの動作によって実行された時に実行する動作は、
第1バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、
第1バリアントストリームに基づいて、複数の異なるタイプのクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、それぞれのプレイリストはそれぞれ異なる最大セグメント時間長を含んでいる工程と、
複数の異なるタイプのクライアントデバイスのうちの少なくとも1つにそれぞれのプレイリストを、分配ネットワークを介して配信する工程とを含んでいる非一時的なコンピュータ可読媒体。 - コンピュータ可読プログラムコードはさらに、
第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。 - コンピュータ可読プログラムコードはさらに、
複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づくように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。 - それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項7に記載の非一時的なコンピュータ可読媒体。
- コンピュータ可読プログラムコードはさらに、
バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリームの各々において各セグメント境界とチャプターを区分する工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。 - コンピュータ可読プログラムコードはさらに、
複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。 - 複数の異なるタイプのクライアントデバイスについて、最大セグメント時間長を示すデータを含むデータユニットと、
プレイリストユニットであって、プレイリストユニットは、
第1バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、
第1バリアントストリームに基づいて、複数の異なるタイプのクライアントデバイスの各々について、それぞれのプレイリストを生成する工程とを含むように構成され、それぞれのプレイリストはそれぞれ異なる最大セグメント時間長を含んでいるプレイリストユニットと、
複数の異なるタイプのクライアントデバイスの少なくとも1つにそれぞれのプレイリストを、分配ネットワークを介して配信するように構成された配信ユニットとを備えるシステム。 - プレイリストユニットはさらに、
第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程を含むように構成されている、請求項13に記載のシステム。 - 複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づいている、請求項13に記載のシステム。
- それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項13に記載のシステム。
- プレイリストユニットは、バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリーム内の各セグメント境界とチャプターを区分する工程を含むように構成されている、請求項13に記載のシステム。
- 配信ユニットは、複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信するように構成され、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている、請求項13に記載のシステム。
- コンピューティングシステムであって、
プロセッサと、
メモリーであって、プロセッサによって実行された時にメモリーが格納するプログラムが実行する動作は、
第1タイプのクライアントデバイスから第1プレイリストに対するリクエストを受信する工程であって、第1プレイリストは、第1タイプのクライアントデバイス用にカスタマイズされた第1最大セグメント時間長を含んでいる工程と、
第2タイプのクライアントデバイスから第2プレイリストに対するリクエストを受信する工程であって、第2プレイリストは、第2タイプのクライアントデバイス用にカスタマイズされた第2最大セグメント時間長を含み、第1タイプのクライアントデバイスと第2タイプのクライアントデバイスは異なり、第1及び第2最大セグメント時間長は異なっている工程と、
第1及び第2プレイリストを第1及び第2タイプのクライアントデバイスにそれぞれ送信する工程とを含んでいるメモリーとを備えるコンピューティングシステム。 - 前記動作はさらに、
第1及び第2タイプのクライアントデバイスのうちの少なくとも1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、それぞれの最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程を含んでいる、請求項19に記載のコンピューティングシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/569,835 US11509949B2 (en) | 2019-09-13 | 2019-09-13 | Packager for segmenter fluidity |
US16/569,835 | 2019-09-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021048582A true JP2021048582A (ja) | 2021-03-25 |
Family
ID=72473438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020152597A Pending JP2021048582A (ja) | 2019-09-13 | 2020-09-11 | セグメンター流動性のためのパッケージャ |
Country Status (6)
Country | Link |
---|---|
US (3) | US11509949B2 (ja) |
EP (1) | EP3793201A1 (ja) |
JP (1) | JP2021048582A (ja) |
KR (1) | KR102493871B1 (ja) |
CN (1) | CN112511871B (ja) |
MX (1) | MX2020009434A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11489899B1 (en) * | 2021-04-12 | 2022-11-01 | Comcast Cable Communications, Llc | Segment ladder transitioning in adaptive streaming |
US20230019723A1 (en) * | 2021-07-14 | 2023-01-19 | Rovi Guides, Inc. | Interactive supplemental content system |
US20230217086A1 (en) * | 2021-12-30 | 2023-07-06 | Interwise Ltd. | Providing and Using a Branching Narrative Content Service |
US11631252B1 (en) | 2022-01-03 | 2023-04-18 | Brian Lawrence Repper | Visual media management for mobile devices |
JP7483775B2 (ja) * | 2022-03-08 | 2024-05-15 | 本田技研工業株式会社 | アプリケーションプログラム、端末装置の制御方法、コンテンツ提供装置、およびコンテンツ提供方法 |
US20240185891A1 (en) * | 2022-12-03 | 2024-06-06 | Synamedia Limited | Common Timeline Processing for Unique Manifests |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155735B1 (en) * | 1999-10-08 | 2006-12-26 | Vulcan Patents Llc | System and method for the broadcast dissemination of time-ordered data |
CN101035277A (zh) * | 2000-03-13 | 2007-09-12 | 索尼公司 | 产生压缩的代码转换提示元数据的方法和设备 |
US20070154169A1 (en) * | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for accessing media program options based on program segment interest |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US20080127272A1 (en) * | 2006-11-28 | 2008-05-29 | Brian John Cragun | Aggregation of Multiple Media Streams to a User |
US9705935B2 (en) * | 2008-01-14 | 2017-07-11 | Qualcomm Incorporated | Efficient interworking between circuit-switched and packet-switched multimedia services |
CN102308547B (zh) | 2008-12-31 | 2014-11-19 | 苹果公司 | 通过非流化协议流化多媒体数据的方法 |
US20100169303A1 (en) * | 2008-12-31 | 2010-07-01 | David Biderman | Playlists for real-time or near real-time streaming |
US8769589B2 (en) * | 2009-03-31 | 2014-07-01 | At&T Intellectual Property I, L.P. | System and method to create a media content summary based on viewer annotations |
US8355433B2 (en) | 2009-08-18 | 2013-01-15 | Netflix, Inc. | Encoding video streams for adaptive video streaming |
GB201105502D0 (en) * | 2010-04-01 | 2011-05-18 | Apple Inc | Real time or near real time streaming |
US9043484B2 (en) * | 2010-04-02 | 2015-05-26 | Disney Enterprises, Inc. | Streaming playback and dynamic ad insertion |
TWI451279B (zh) * | 2010-04-07 | 2014-09-01 | Apple Inc | 即時或接近即時串流傳輸之內容存取控制 |
EP2583432B1 (en) | 2010-06-18 | 2019-02-20 | Nokia Technologies Oy | Method and apparatus for generating and handling streaming media quality-of-experience metrics |
KR101702562B1 (ko) * | 2010-06-18 | 2017-02-03 | 삼성전자 주식회사 | 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치 |
US8677428B2 (en) * | 2010-08-20 | 2014-03-18 | Disney Enterprises, Inc. | System and method for rule based dynamic server side streaming manifest files |
US8849899B1 (en) * | 2011-01-30 | 2014-09-30 | Israel L'Heureux | Accelerated delivery of media content via peer caching |
US9049494B2 (en) * | 2011-01-31 | 2015-06-02 | Cbs Interactive, Inc. | Media playback control |
US8489760B2 (en) * | 2011-03-31 | 2013-07-16 | Juniper Networks, Inc. | Media file storage format and adaptive delivery system |
US8856283B2 (en) * | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
US9288251B2 (en) * | 2011-06-10 | 2016-03-15 | Citrix Systems, Inc. | Adaptive bitrate management on progressive download with indexed media files |
US8948249B2 (en) | 2011-08-19 | 2015-02-03 | Google Technology Holdings LLC | Encoder-aided segmentation for adaptive streaming |
US8972262B1 (en) * | 2012-01-18 | 2015-03-03 | Google Inc. | Indexing and search of content in recorded group communications |
US20130254041A1 (en) * | 2012-03-23 | 2013-09-26 | Jeffrey Sherwin | Method for delivering fair advertising inventory splits given position preferences |
US10148716B1 (en) * | 2012-04-09 | 2018-12-04 | Conviva Inc. | Dynamic generation of video manifest files |
BR112014004057A2 (pt) * | 2012-07-02 | 2017-03-07 | Sony Corp | dispositivo e método de transmissão, e, aparelho de rede |
CN104737514B (zh) * | 2012-10-23 | 2018-08-17 | 瑞典爱立信有限公司 | 用于分布媒体内容服务的方法和设备 |
US9544344B2 (en) * | 2012-11-20 | 2017-01-10 | Google Technology Holdings LLC | Method and apparatus for streaming media content to client devices |
US20150172340A1 (en) * | 2013-01-11 | 2015-06-18 | Telefonaktiebolaget L M Ericsson (Publ) | Technique for Operating Client and Server Devices in a Broadcast Communication Network |
EP2963939A4 (en) * | 2013-02-27 | 2016-10-05 | Sony Corp | INFORMATION PROCESSING DEVICE, METHOD AND PROGRAM AND CONTENT PROCESSING SYSTEM |
US9538232B2 (en) * | 2013-03-14 | 2017-01-03 | Verizon Patent And Licensing Inc. | Chapterized streaming of video content |
US10027993B2 (en) * | 2013-03-15 | 2018-07-17 | Arris Enterprises Llc | System and method for multiscreen network digital video recording using on-demand transcoding |
FR3004054A1 (fr) * | 2013-03-26 | 2014-10-03 | France Telecom | Generation et restitution d'un flux representatif d'un contenu audiovisuel |
US9413806B2 (en) * | 2013-05-24 | 2016-08-09 | Broadcom Corporation | Adaptive bit rate proxy |
US9167311B2 (en) | 2013-09-25 | 2015-10-20 | Verizon Patent And Licensing Inc. | Variant playlist optimization |
US20150256600A1 (en) * | 2014-03-05 | 2015-09-10 | Citrix Systems, Inc. | Systems and methods for media format substitution |
US20160014439A1 (en) | 2014-07-14 | 2016-01-14 | Cisco Technology Inc. | Indexing of Video Assets |
US9930405B2 (en) * | 2014-09-30 | 2018-03-27 | Rovi Guides, Inc. | Systems and methods for presenting user selected scenes |
US9794601B2 (en) * | 2014-10-21 | 2017-10-17 | Cisco Technology, Inc. | Dynamic programming across multiple streams |
US9509742B2 (en) * | 2014-10-29 | 2016-11-29 | DLVR, Inc. | Configuring manifest files referencing infrastructure service providers for adaptive streaming video |
US9794604B2 (en) * | 2014-11-14 | 2017-10-17 | Panopto, Inc. | Systems and methods for transmitting segment-quality units of a streaming video session |
US10432688B2 (en) * | 2015-03-13 | 2019-10-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for optimized delivery of live ABR media |
US9641578B2 (en) * | 2015-04-02 | 2017-05-02 | Arris Enterprises, Inc. | Minimizing unicast bandwidth in an adaptive bit rate system |
US20160316280A1 (en) * | 2015-04-21 | 2016-10-27 | Stinkdigital Ltd. | Video Delivery Platform |
MX2017015855A (es) * | 2015-06-09 | 2018-06-06 | Arris Entpr Llc | Sincronizacion de cliente de video de transmision por secuencias en vivo http (hls). |
US10476926B2 (en) | 2015-06-12 | 2019-11-12 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for managing ABR bitrate delivery responsive to video buffer characteristics of a client |
US10638179B2 (en) * | 2015-08-06 | 2020-04-28 | At&T Intellectual Property I, L.P. | Content insertion in streaming media content |
US9654815B2 (en) * | 2015-09-18 | 2017-05-16 | Arris Enterprises, Inc. | Advertising detection in adaptive bitrate streaming |
JP2017069636A (ja) * | 2015-09-28 | 2017-04-06 | 株式会社リコー | 情報処理装置、配信方法、及びプログラム |
EP3403409A1 (en) * | 2016-01-15 | 2018-11-21 | VID SCALE, Inc. | Scalable coding based video distribution |
US10009659B2 (en) * | 2016-03-31 | 2018-06-26 | Disney Enterprises, Inc. | System and method for hybrid push-based streaming |
US10390071B2 (en) * | 2016-04-16 | 2019-08-20 | Ittiam Systems (P) Ltd. | Content delivery edge storage optimized media delivery to adaptive bitrate (ABR) streaming clients |
US10701415B2 (en) * | 2016-05-19 | 2020-06-30 | Arris Enterprises Llc | Method and apparatus for segmenting data |
US11617019B2 (en) * | 2016-07-28 | 2023-03-28 | Qualcomm Incorporated | Retrieving and accessing segment chunks for media streaming |
US10404649B2 (en) * | 2016-09-30 | 2019-09-03 | DISH Technologies L.L.C. | Content delivery optimization using adaptive and dynamic DNS |
US10931763B2 (en) * | 2017-01-11 | 2021-02-23 | Qualcomm Incorporated | Systems and methods for opaque object delivery in a communication network |
BR112019014658A2 (pt) * | 2017-01-17 | 2020-05-26 | Tutela Tech Ltd | sistema e método para avaliar desempenho de dispositivo sem fio e/ou rede sem fio |
US10263830B2 (en) * | 2017-01-23 | 2019-04-16 | Wyse Technology L.L.C. | Optimized data transfer for redirected UASP devices |
US10484446B1 (en) * | 2017-01-31 | 2019-11-19 | Amazon Technologies, Inc. | VBR encoding of live content |
US10225603B2 (en) * | 2017-03-13 | 2019-03-05 | Wipro Limited | Methods and systems for rendering multimedia content on a user device |
US10225620B1 (en) * | 2017-08-25 | 2019-03-05 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for effectuating selective ABR segment delivery for ABR bandwidth control |
US11025998B2 (en) * | 2017-11-27 | 2021-06-01 | Rovi Guides, Inc. | Systems and methods for dynamically extending or shortening segments in a playlist |
CA3100047A1 (en) * | 2018-05-11 | 2019-11-14 | Arris Enterprises Llc | Broadcast delivered hls system |
US20200344510A1 (en) * | 2019-04-25 | 2020-10-29 | Comcast Cable Communications, Llc | Dynamic Content Delivery |
-
2019
- 2019-09-13 US US16/569,835 patent/US11509949B2/en active Active
-
2020
- 2020-09-10 MX MX2020009434A patent/MX2020009434A/es unknown
- 2020-09-11 EP EP20195678.6A patent/EP3793201A1/en active Pending
- 2020-09-11 JP JP2020152597A patent/JP2021048582A/ja active Pending
- 2020-09-14 KR KR1020200117707A patent/KR102493871B1/ko active IP Right Grant
- 2020-09-14 CN CN202010962693.8A patent/CN112511871B/zh active Active
-
2022
- 2022-11-18 US US18/056,795 patent/US11877022B2/en active Active
-
2023
- 2023-12-07 US US18/532,972 patent/US20240107097A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3793201A1 (en) | 2021-03-17 |
KR20210032289A (ko) | 2021-03-24 |
US11509949B2 (en) | 2022-11-22 |
MX2020009434A (es) | 2021-03-15 |
US20240107097A1 (en) | 2024-03-28 |
US20230083464A1 (en) | 2023-03-16 |
US11877022B2 (en) | 2024-01-16 |
US20210084354A1 (en) | 2021-03-18 |
KR102493871B1 (ko) | 2023-01-30 |
CN112511871A (zh) | 2021-03-16 |
CN112511871B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021048582A (ja) | セグメンター流動性のためのパッケージャ | |
US9635077B2 (en) | Low latency live video streaming | |
US8516144B2 (en) | Startup bitrate in adaptive bitrate streaming | |
US9060207B2 (en) | Adaptive video streaming over a content delivery network | |
US10397289B2 (en) | HTTP live streaming (HLS) video client synchronization | |
KR102110627B1 (ko) | 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들 | |
US8732274B2 (en) | Method and apparatus for generating and handling streaming media quality-of-experience metrics | |
US9026670B2 (en) | System and method for efficient caching and delivery of adaptive bitrate streaming | |
WO2021159770A1 (zh) | 视频播放方法、装置、设备和存储介质 | |
US20150256600A1 (en) | Systems and methods for media format substitution | |
US10404828B2 (en) | Streaming apparatus, streaming method, and streaming service system using the streaming apparatus | |
US20120278497A1 (en) | Reduced Video Player Start-Up Latency In HTTP Live Streaming And Similar Protocols | |
US11736740B2 (en) | Delivering video in a content delivery network | |
US20210321149A1 (en) | Method of playing video, computing device, and computer program product | |
WO2020155961A1 (zh) | 视频请求方法、系统、计算机设备及计算机可读存储介质 | |
US20180034883A1 (en) | Operating method of client for streaming service | |
CN112243136B (zh) | 内容播放方法、视频存储方法和设备 | |
CN113891176B (zh) | 基于hls的点播流量控制方法、装置、设备及存储介质 | |
US20160088079A1 (en) | Streaming playout of media content using interleaved media players | |
US20120246269A1 (en) | Data processing apparatus, data processing method, and computer program product | |
JP2017225044A (ja) | コンテンツ配信システムのクライアント装置、コンテンツの取得方法及びプログラム | |
EP3292698B1 (en) | Http live streaming (hls) video client synchronization | |
GB2593696A (en) | Low latency content delivery | |
CN116389787A (zh) | 一种音视频转码播放方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230911 |