JP2021048582A - セグメンター流動性のためのパッケージャ - Google Patents

セグメンター流動性のためのパッケージャ Download PDF

Info

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
Application number
JP2020152597A
Other languages
English (en)
Inventor
ビー メイ ジュニア ウィリアム
B May William Jr
ビー メイ ジュニア ウィリアム
アール クレイン エリック
R Klein Eric
アール クレイン エリック
ジェイ ズラット ウィリアム
J Zurat William
ジェイ ズラット ウィリアム
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.)
Disney Enterprises Inc
Original Assignee
Disney Enterprises Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Disney Enterprises Inc filed Critical Disney Enterprises Inc
Publication of JP2021048582A publication Critical patent/JP2021048582A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/266Channel 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • 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/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • 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/234381Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/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/258Client 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/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • 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/258Client 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/25808Management of client data
    • H04N21/25858Management of client data involving client software characteristics, e.g. OS identifier
    • 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/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
    • H04N21/44004Processing 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
    • 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
    • H04N21/4402Processing 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/440281Processing 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
    • 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
    • H04N21/4402Processing 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/44029Processing 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
    • 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/45Management 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/462Content 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/4621Controlling 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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)
  • 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. 第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程をさらに含む、請求項1に記載の方法。
  3. 複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づいている、請求項1に記載の方法。
  4. それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項1に記載の方法。
  5. バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリーム内の各セグメント境界とチャプターを区分する工程をさらに含む、請求項1に記載の方法。
  6. 複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程をさらに含む、請求項1に記載の方法。
  7. コンピュータプログラムコードを含む非一時的なコンピュータ可読媒体であって、コンピュータプログラムコードが、1つ以上のコンピュータプロセッサの動作によって実行された時に実行する動作は、
    第1バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、
    第1バリアントストリームに基づいて、複数の異なるタイプのクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、それぞれのプレイリストはそれぞれ異なる最大セグメント時間長を含んでいる工程と、
    複数の異なるタイプのクライアントデバイスのうちの少なくとも1つにそれぞれのプレイリストを、分配ネットワークを介して配信する工程とを含んでいる非一時的なコンピュータ可読媒体。
  8. コンピュータ可読プログラムコードはさらに、
    第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。
  9. コンピュータ可読プログラムコードはさらに、
    複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づくように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。
  10. それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項7に記載の非一時的なコンピュータ可読媒体。
  11. コンピュータ可読プログラムコードはさらに、
    バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリームの各々において各セグメント境界とチャプターを区分する工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。
  12. コンピュータ可読プログラムコードはさらに、
    複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程を含むように構成されている、請求項7に記載の非一時的なコンピュータ可読媒体。
  13. 複数の異なるタイプのクライアントデバイスについて、最大セグメント時間長を示すデータを含むデータユニットと、
    プレイリストユニットであって、プレイリストユニットは、
    第1バリアントストリームに含まれるメディアコンテンツを再生する複数の異なるタイプのクライアントデバイスについて、それぞれの最大セグメント時間長を識別する工程と、
    第1バリアントストリームに基づいて、複数の異なるタイプのクライアントデバイスの各々について、それぞれのプレイリストを生成する工程とを含むように構成され、それぞれのプレイリストはそれぞれ異なる最大セグメント時間長を含んでいるプレイリストユニットと、
    複数の異なるタイプのクライアントデバイスの少なくとも1つにそれぞれのプレイリストを、分配ネットワークを介して配信するように構成された配信ユニットとを備えるシステム。
  14. プレイリストユニットはさらに、
    第1バリアントストリームと同じメディアコンテンツに対応するが、異なるビットレートを有する第2バリアントストリームに基づいて、それぞれが異なる最大セグメント時間長を含む複数のクライアントデバイスの各々について、それぞれのプレイリストを生成する工程であって、第2バリアントストリームから生成されたそれぞれのプレイリストの各々が、同じメディアコンテンツのチャプター全体かつセグメント境界全体で第1バリアントストリームから生成されたそれぞれのプレイリストの対応する1つと整列配置されている工程を含むように構成されている、請求項13に記載のシステム。
  15. 複数の異なるタイプのクライアントデバイスの各々について最大セグメント時間長を識別する工程は、複数のクライアントデバイスのオペレーティングシステム及びメディアプレーヤーのうちの少なくとも1つに基づいている、請求項13に記載のシステム。
  16. それぞれのプレイリストの各々は、単一のユニフォームリソースインジケータを参照している、請求項13に記載のシステム。
  17. プレイリストユニットは、バイトレンジタグをそれぞれのプレイリストに挿入して、第1バリアントストリーム内の各セグメント境界とチャプターを区分する工程を含むように構成されている、請求項13に記載のシステム。
  18. 配信ユニットは、複数の異なるタイプのクライアントデバイスのうちの1つからグループ化されたセグメントに対するリクエストを受信するように構成され、グループ化されたセグメントは、最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている、請求項13に記載のシステム。
  19. コンピューティングシステムであって、
    プロセッサと、
    メモリーであって、プロセッサによって実行された時にメモリーが格納するプログラムが実行する動作は、
    第1タイプのクライアントデバイスから第1プレイリストに対するリクエストを受信する工程であって、第1プレイリストは、第1タイプのクライアントデバイス用にカスタマイズされた第1最大セグメント時間長を含んでいる工程と、
    第2タイプのクライアントデバイスから第2プレイリストに対するリクエストを受信する工程であって、第2プレイリストは、第2タイプのクライアントデバイス用にカスタマイズされた第2最大セグメント時間長を含み、第1タイプのクライアントデバイスと第2タイプのクライアントデバイスは異なり、第1及び第2最大セグメント時間長は異なっている工程と、
    第1及び第2プレイリストを第1及び第2タイプのクライアントデバイスにそれぞれ送信する工程とを含んでいるメモリーとを備えるコンピューティングシステム。
  20. 前記動作はさらに、
    第1及び第2タイプのクライアントデバイスのうちの少なくとも1つからグループ化されたセグメントに対するリクエストを受信する工程であって、グループ化されたセグメントは、それぞれの最大セグメント時間長の複数のセグメントを含むバイトレンジによって識別されている工程を含んでいる、請求項19に記載のコンピューティングシステム。
JP2020152597A 2019-09-13 2020-09-11 セグメンター流動性のためのパッケージャ Pending JP2021048582A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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