Systems and methods for encoding and sharing content between devices
21 claims: 16 independent, 5 dependent
- 1符号化されたメディアを再生デバイスに提供するコンテンツサーバであって、 プロセッサと、 前記プロセッサによって読み取り可能なメモリと、 前記メモリ内の命令であって、前記命令は、前記プロセッサによって読み取られると、 第1の再生デバイスからストリーミングのために共有メディアコンテンツを受信することと、 前記共有メディアコンテンツを 複数の代替的ストリーム にトランスコードすることであって 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能である、ことと、 前記トランスコードすることの後に、第2の再生デバイスから前記共有メディアコンテンツの 前記複数の代替的ストリーム のうちの少なくとも1つの ストリームのトップレベルインデックスファイル の要求を受信することであって、前記 トップレベルインデックスファイルの 要求は、前記第2の再生デバイスのデバイス能力情報 と、前記第2の再生デバイスが前記第1の再生デバイスから受信したトークンと を含む、ことと、 前記トークンを認証し、前記トークンを認証したことに応答して、前記共有メディアコンテンツへのアクセスを提供することと、 前記第2の再生デバイスの前記デバイス能力情報に基づいて、トップレベルインデックスファイルを生成することであって、前記トップレベルインデックスファイルは、前記共有メディアコンテンツを前記第2の再生デバイスに提供するために使用されることが可能である 代替的ストリーム の情報を含む、ことと、 前記トップレベルインデックスファイルを前記第2の再生デバイスに伝送することと を行うように前記プロセッサに命令する、命令と を備える、コンテンツサーバ。
- 2前記命令は、 前記複数の代替的ストリーム を記憶するメモリから、前記共有メディアコンテンツを提供する 前記複数の代替的ストリーム についての情報を読み出すことと、 前記 トップレベルインデックスファイルの 要求の中の前記デバイス能力情報から、前記第2の再生デバイスの能力を判定することと、 前記第2の再生デバイスの前記判定された能力を使用して、 前記複数の代替的ストリーム についての前記情報をフィルタ処理することと、 前記第2の再生デバイスの前記能力の基準を満たす 代替的ストリーム の情報を前記トップレベルインデックスファイルに含むことと を行うように前記プロセッサにさらに命令する、請求項1に記載のコンテンツサーバ。
- 3前記第2の再生デバイスによって提供される前記デバイス能力情報は、前記第2の再生デバイスの製品識別子を含み、前記第2の再生デバイスの能力を判定する前記命令は、再生デバイスの能力を記憶するメモリから、前記第2の再生デバイスの前記能力を読み出すように前記プロセッサに命令し、前記再生デバイスは、前記デバイス能力情報に含まれる前記第2の再生デバイスの前記製品識別子を有する、請求項2に記載のコンテンツサーバ。
- 4前記第2の再生デバイスの前記能力は、前記 トップレベルインデックスファイルの 要求の中の前記デバイス能力情報に含まれ、前記第2の再生デバイスの能力を判定する前記命令は、前記 トップレベルインデックスファイルの 要求の中の前記デバイス能力情報から前記第2の再生デバイスの前記能力を取得するように前記プロセッサに命令する、請求項2に記載のコンテンツサーバ。
- 5前記トップレベルインデックスファイルに含まれる 前記代替的ストリーム はまた、メモリに記憶される前記共有メディアコンテンツを提供するための異なる 代替的ストリーム の使用を調整する規則に基づく、請求項1に記載のコンテンツサーバ。
- 6異なる 代替的ストリーム の使用を調整する前記規則は、再生デバイスのタイプ、前記デバイスの再生能力、前記デバイスの場所、要求された言語からなる規則から選択される少なくとも1つの規則を含む、請求項5に記載のコンテンツサーバ。
- 7前記トップレベルインデックスファイルに含まれる 前記代替的ストリーム はまた、ユーザ選好およびコンテンツ所有者の要件からなる群から選択される基準群から選択される少なくとも1つの基準に基づく、請求項1に記載のコンテンツサーバ。
- 8前記共有メディアコンテンツへのアクセスを提供する前記命令は、前記共有メディアコンテンツの暗号解読情報を第2の再生デバイスに提供するように前記プロセッサに命令する命令を含む、請求項 1 に記載のコンテンツサーバ。
- 9特定のメディアコンテンツを取得するために使用されることが可能である 複数の代替的ストリームについて の情報を含むトップレベルインデックスファイルを再生デバイスに提供するための方法であって、 コンテンツサーバ内で、第1の再生デバイスからストリーミングのために共有メディアコンテンツを受信することと、 前記共有メディアコンテンツを 前記複数の代替的ストリーム にトランスコードすることであって 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能である、ことと、 前記トランスコードすることの後に、前記コンテンツサーバ内で、第2の再生デバイスから前記共有メディアコンテンツの 前記複数の代替的ストリーム のうちの少なくとも1つの ストリームのトップレベルインデックスファイルの 要求を受信することであって、前記 トップレベルインデックスファイルの 要求は、前記第2の再生デバイスのデバイス能力情報 と、前記第2の再生デバイスが前記第1の再生デバイスから受信したトークンと を含む、ことと、 前記トークンを認証し、前記トークンを認証したことに応答して、前記共有メディアコンテンツへのアクセスを提供することと、 前記コンテンツサーバを使用して、前記第2の再生デバイスの前記デバイス能力情報に基づいて、トップレベルインデックスファイルを生成することであって、前記トップレベルインデックスファイルは、特定のメディアコンテンツを前記第2の再生デバイスに提供するために使用されることが可能である 代替的ストリーム の情報を含む、ことと、 前記コンテンツサーバから前記第2の再生デバイスに前記トップレベルインデックスファイルを伝送することと を含む、方法。
- 10前記トップレベルインデックスファイルを生成することは、 前記コンテンツサーバを使用して、 複数の代替的ストリーム を記憶するメモリから、前記共有メディアコンテンツを提供する 前記複数の代替的ストリーム についての情報を読み出すことと、 前記コンテンツサーバを使用して、前記デバイス能力情報から前記第2の再生デバイスの能力を判定することと、 前記コンテンツサーバを使用して、前記第2の再生デバイスの前記判定された能力に基づいて、 前記複数の代替的ストリーム についての前記情報をフィルタ処理することと、 前記コンテンツサーバを使用して、前記第2の再生デバイスの前記能力の基準を満たす 代替的ストリーム の情報を前記トップレベルインデックスファイルに含むことと を含む、請求項 9 に記載の方法。
- 11前記第2の再生デバイスによって提供される前記デバイス能力情報は、前記第2の再生デバイスの製品識別子を含み、前記第2の再生デバイスの前記能力を判定することは、前記コンテンツサーバを使用して、再生デバイスの能力を記憶するメモリから、前記第2の再生デバイスの前記能力を読み出すことを含み、前記再生デバイスは、前記デバイス能力情報に含まれる前記第2の再生デバイスの前記製品識別子を有する、請求項 10 に記載の方法。
- 12前記第2の再生デバイスの前記能力は、前記 トップレベルインデックスファイルの 要求の中の前記デバイス能力情報に含まれ、前記第2の再生デバイスの前記能力を判定することは、前記コンテンツサーバを使用して、前記 トップレベルインデックスファイルの 要求の中の前記デバイス能力情報から前記能力を取得することを含む、請求項 10 に記載の方法。
- 13前記トップレベルインデックスファイルに含まれる 前記複数の代替的ストリーム はまた、メモリに記憶される前記共有メディアコンテンツを提供するための異なる 代替的ストリーム の使用を調整する規則に基づく、請求項 9 に記載の方法。
- 14異なる 代替的ストリーム の使用を調整する前記規則は、再生デバイスのタイプ、前記デバイスの再生能力、前記デバイスの場所、要求された言語からなる規則から選択される、少なくとも1つの規則を含む、請求項 13 に記載の方法。
- 15前記トップレベルインデックスファイルに含まれる前記 代替的ストリーム はまた、ユーザ選好およびコンテンツ所有者の要件からなる群から選択される基準群から選択される少なくとも1つの基準に基づく、請求項 9 に記載の方法。
- 16プロセッサ命令を含む非一過性の機械読み取り可能な媒体であって、プロセッサによる前記命令の実行は、トップレベルインデックスファイルを提供するプロセスを実行することを前記プロセッサに行わせ、前記トップレベルインデックスファイルは、特定のメディアコンテンツを取得するために使用される 代替的ストリーム についての情報を含み、前記プロセスは、 第1の再生デバイスから共有メディアコンテンツを受信することと、 前記共有メディアコンテンツを 複数の代替的ストリーム にトランスコードすることであって 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能である、ことと、 前記トランスコードすることの後に、第2の再生デバイスから前記共有メディアコンテンツの 前記複数の代替的ストリーム のうちの少なくとも1つの ストリームのトップレベルインデックスファイルの 要求を受信することであって、前記 トップレベルインデックスファイルの 要求は、前記第2の再生デバイスのデバイス能力情報 と、前記第2の再生デバイスが前記第1の再生デバイスから受信したトークンと を含む、ことと、 前記トークンを認証し、前記トークンを認証したことに応答して、前記共有メディアコンテンツへのアクセスを提供することと、 前記第2の再生デバイスの前記デバイス能力情報に基づいて、トップレベルインデックスファイルを生成することであって、前記トップレベルインデックスファイルは、特定のメディアコンテンツを前記第2の再生デバイスに提供するために使用されることが可能である 代替的ストリーム の情報を含む、ことと、 前記トップレベルインデックスファイルを前記第2の再生デバイスに伝送することと を含む、非一過性の機械読み取り可能な媒体。
- 17再生デバイスであって、 プロセッサと、 前記プロセッサによって読み取り可能なメモリと、 前記メモリ内の命令であって、前記プロセッサによって読み取られると、 他の再生デバイスによって前記再生デバイスと共有される共有メディアコンテンツの トップレベルインデックスファイルの 要求を生成することであって、前記 トップレベルインデックスファイルの 要求は、前記再生デバイスのデバイス能力情報と 、 前記共有メディアコンテンツと関連付けられるトークンとを含み、 前記トークンは、前記他の再生デバイスから受信されたものであり、 前記トークンは、前記再生デバイスが前記共有メディアコンテンツにアクセスすることを承認し、前記共有メディアコンテンツは、コンテンツサーバにアップロードされたものであり、かつ、前記コンテンツサーバによって 複数の代替的ストリーム にトランスコードされているものであり 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能であり、前記他の再生デバイスは、再生アプリケーションを含み、かつ、符号化されたメディアを再生することが可能である、ことと、 前記 トップレベルインデックスファイルの 要求を前記コンテンツサーバに伝送することと、 前記再生デバイスの前記デバイス能力情報に基づいて、トップレベルインデックスファイルを受信することであって、前記トップレベルインデックスファイルは、前記再生デバイスへの前記共有メディアコンテンツを取得するために使用されることが可能な 代替的ストリーム の情報を含む、ことと、 前記トップレベルインデックスファイル内の前記情報を使用して、前記共有メディアコンテンツを取得することと を行うように前記プロセッサに命令する、命令と を備える、再生デバイス。
- 18前記 トップレベルインデックスファイルの 要求を生成する前記命令は、前記再生デバイスのデバイス能力情報を判定するために使用されることが可能な製品識別子を前記 トップレベルインデックスファイルの 要求に含む命令を備える、請求項 17 に記載の再生デバイス。
- 19特定のメディアコンテンツの 代替的ストリーム についての情報を含むトップレベルインデックスファイルを取得するための方法であって、 他の再生デバイスによって再生デバイスと共有される共有メディアコンテンツの トップレベルインデックスファイルの 要求を生成することであって、前記 トップレベルインデックスファイルの 要求は、前記再生デバイスのデバイス能力情報と 、 前記共有メディアコンテンツと関連付けられるトークンとを含み、 前記トークンは、前記他の再生デバイスから受信されたものであり、 前記トークンは、前記再生デバイスが前記共有メディアコンテンツにアクセスすることを承認し、前記共有メディアコンテンツは、コンテンツサーバにアップロードされたものであり、かつ、前記コンテンツサーバによって 複数の代替的ストリーム にトランスコードされているものであり 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能であり、前記他の再生デバイスは、再生アプリケーションを含み、かつ、符号化されたメディアを再生することが可能である、ことと、 前記再生デバイスから前記コンテンツサーバに前記 トップレベルインデックスファイルの 要求を伝送することと、 前記再生デバイス内の前記コンテンツサーバからトップレベルインデックスファイルを受信することであって、前記トップレベルインデックスファイルは、前記再生デバイスの前記デバイス能力情報に基づいて、前記再生デバイスへの前記特定のメディアコンテンツを取得するために使用されることが可能である 代替的ストリーム の情報を含む、ことと、 前記トップレベルインデックスファイル内の前記情報を使用して、再生デバイス内で前記特定のメディアコンテンツを取得することと を含む、方法。
- 20前記 トップレベルインデックスファイルの 要求を生成することは、前記再生デバイスの前記デバイス能力情報を判定するために使用されることが可能な製品識別子を前記 トップレベルインデックスファイルの 要求に含むことを含む、請求項 19 に記載の方法。
- 21プロセッサ命令を含む非一過性の機械読み取り可能な媒体であって、プロセッサによる前記命令の実行は、トップレベルインデックスファイルを取得するプロセスを実行することを再生デバイス内の前記プロセッサに行わせ、前記トップレベルインデックスファイルは、特定のメディアコンテンツを取得するために使用される 代替的ストリーム についての情報を含み、前記プロセスは、 他の再生デバイスによって再生デバイスと共有される共有メディアコンテンツの トップレベルインデックスファイルの 要求を生成することであって、前記 トップレベルインデックスファイルの 要求は、前記再生デバイスのデバイス能力情報と 、 前記共有メディアコンテンツと関連付けられるトークンとを含み、 前記トークンは、前記他の再生デバイスから受信されたものであり、 前記トークンは、前記再生デバイスが前記共有メディアコンテンツにアクセスすることを承認し、前記共有メディアコンテンツは、コンテンツサーバにアップロードされたものであり、かつ、前記コンテンツサーバによって 複数の代替的ストリーム にトランスコードされているものであり 、 各代替的ストリームは、異なる符号化規格、異なる最大ビットレート、異なる解像度、異なるフレームレートからなる群のうちの少なくとも1つを有し、前記複数の代替的ストリームのうちの少なくとも1つは、要求しているデバイスのデバイス能力に基づいてコンテンツに対する要求に応答して提供されることが可能であり、前記他の再生デバイスは、再生アプリケーションを含み、かつ、符号化されたメディアを再生することが可能である、ことと、 前記 トップレベルインデックスファイルの 要求を前記コンテンツサーバに伝送することと、 前記コンテンツサーバからトップレベルインデックスファイルを受信することであって、前記トップレベルインデックスファイルは、前記再生デバイスの前記デバイス能力情報に基づいて、前記再生デバイスへの特定のメディアコンテンツを取得するために使用されることが可能である 代替的ストリーム の情報を含む、ことと、 前記トップレベルインデックスファイル内の前記情報を使用して、前記特定のメディアコンテンツを取得することと を含む、非一過性の機械読み取り可能な媒体。
Independent claims21
60 paragraphs, as filed
The invention generally relates to sharing content with devices with different capabilities, more specifically transcoding content files to one or more different encodings and based on the capabilities of the playback device. It relates to generating an alternative encoded index file for use in playing back the encoded content on the playback device.
Technological advances have made media content (ie, friends and family) among different devices and / or different users (eg, friends and family) of users, using many different technology companies that provide different platforms to engage in such activities. , Among several file types, has provided users of computer devices with the ability to share photos, videos, documents) instantly and seamlessly. For example, social media has allowed instant sharing of photos and videos across mobile devices, desktop computers, tablets, and many other types of devices with different video playback capabilities. Other cloud-based storage platforms have allowed users to share content, for example by providing a URL to the location of the content to other users who want to share the content. Different services may use different technical implementations to deliver content to users. Technology providers often implement the storage device required to store content on the platform, the processing required to stream the content to different devices, and the bandwidth when implementing a particular content distribution mechanism. Consider many different factors, including, but not limited to, network considerations, including width requirements, and the amount of latency experienced by mobile devices when viewing content. Moreover, the rapid advances in available video quality make these considerations even more essential when implementing certain technical standards.
In general, video content may be delivered to the user device by streaming and / or downloading. The term media streaming describes the playback of media on a playback device, which is stored on a server and continuously transmitted to the playback device over the network during playback. Typically, the playback device prevents interruptions in playback due to the playback device completing playback of all buffered media prior to receiving the next piece of media. , Store a sufficient amount of media in the buffer at any given time during playback. Adaptive bit rate streaming or adaptive streaming involves detecting the streaming conditions (eg, the network bandwidth of the playback device and the video decoding capacity) in real time and adjusting the quality of the streamed media as appropriate. Typically, the source media is encoded as separate streams with different maximum bit rates, and the playback device or client switches between different encoded streams depending on the resources available. When a playback device initiates adaptive bitrate streaming, the playback device typically initiates by requesting a portion of the media from an initial set of streams. As the playback device downloads the requested media, the playback device can measure the available bandwidth. If the available bandwidth increases or decreases, the playback device can switch to a higher or lower bitrate stream.
Adaptive streaming solutions typically use the Hypertext Transfer Protocol (HTTP) published by the Internet Engineering Task Force and the World Wide Web Consortium as RFC 2616 to stream media between servers and playback devices. To use. HTTP is a stateless protocol that allows playback devices to request a range of bytes in a file. HTTP is stateless because the server is not required to record information about the state of the playback device requesting information, or the byte range required by the playback device to respond to requests received from the playback device. Will be done.
In adaptive streaming systems, the source media is typically stored on the media server as a top-level index file that points to some alternative stream that contains the actual video and audio data. Each stream is typically stored in one or more container files. Different adaptive streaming solutions typically utilize different indexes and media containers. Synchronized Multimedia Integration Language (SMIL), developed by the World Wide Web Consortium, is IIS Smooth Streaming, developed by Microsoft Corporation (Redmond, Washington), and Adobe Systems Incorporated (San Jose,). Used to index in several adaptive streaming solutions, including Flash Dynamic Streaming, developed by California). Apple Computer Incorporated (Cupertino, HTTP Adaptive Bitrate Streaming, developed by California), typically uses an extended M3U playlist file (.M3U8), which is a text file that contains a list of URIs that identify the media container file. , Implement the index file. The most commonly used media container formats are the MP4 container format specified in MPEG-4 Part 14 (ie ISO / IEC 14496-14) and MPEG-2 Part 1 (ie ISO / IEC standard 13818). It is an MPEG Transport Stream (TS) container specified in -1). The MP4 container format is used by IIS Smooth Streaming and Flash Dynamic Streaming. The TS container is used for HTTP adaptive bitrate streaming.
<p> Disclosed are systems and methods for encoding content and sharing it between devices, according to some embodiments of the invention. According to some embodiments of the present invention, media content is shared in the following manner: The content server receives the shared media content from the first playback device. The content server gets transcoding of shared media content, including assets that provide shared media content in multiple alternative streams. Then, content server to receive the request for media content from the second playback device that. The request includes device capability information for the second playback device. Based on the device capabilities information of the second playback device, the content server generates a top-level index file that contains information about the assets that can be used to provide shared media content to the second playback device. , Transmit the top-level index file from the content server to the second playback device.</p><p> According to some embodiments, the top-level index file is generated in the following format: The content server reads information about the asset that provides the shared media content from the memory that stores the asset. The capabilities of the second playback device are determined by the content server from the device capability information, and the information about the assets is filtered by the content server based on the determined capabilities of the second playback device for the second playback. Information on assets that meet the device's capacity criteria is contained in a top-level index file using the content server.</p><p> According to many embodiments, the device capability information provided by the second playback device includes the product identifier of the second playback device, and the step of determining the capability of the second playback device is included in the device capability information. It is determined by the content server that reads the capability of the second playback device from the memory that stores the capability of the playback device and has the product identifier of the second playback device. In some embodiments, the capability of the second playback device is included in the device capability information in the request, and the content server uses the content server to acquire the capability from the device capability information in the request. By doing so, the capability of the second playback device is determined.</p><p> According to some embodiments of the invention, the assets contained in the top-level index file are also based on rules that coordinate the use of different assets to provide shared media content stored in memory. According to many of these embodiments, the rules that coordinate the use of different assets are selected from rules consisting of the type of playback device, the playback capability of the device, and the location of the device, and the requested language, at least. Contains one rule.</p><p> According to some embodiments, the assets contained in the top-level index file are also based on at least one criterion selected from the criteria group, which is selected from the group consisting of user preferences and content owner requirements.</p><p> According to some embodiments, the playback device receives the shared content in the following manner: The playback device generates a request for shared media content that is shared with the playback device by another playback device. The request includes device capability information for the playback device and tokens associated with shared media content received from other playback devices. The playback device transmits the request to the content server. In response to the request, the playback device receives a top-level index file from the content server. The top-level index file contains information about the assets that can be used to retrieve specific media content to the device, based on the device capabilities information of the playback device. The playback device then uses the information in the top index file to acquire media content within the playback device.<u style="single">For example, the present application provides the following items.</u><u style="single">(Item 1)</u><u style="single"> A content server that provides encoded media to playback devices.</u><u style="single"> With the processor</u><u style="single"> Memory that is readable by the processor and</u><u style="single"> An instruction in memory that, when read by the processor, tells the processor.</u><u style="single"> Receiving shared media content from the first playback device and</u><u style="single"> Obtaining transcoding of the shared media content, including assets that provide the shared media content in a plurality of alternative streams.</u><u style="single"> Receiving a request for the media content from the second playback device, wherein the request includes device capability information of the second playback device.</u><u style="single"> Based on the device capability information of the second playback device, generate a top-level index file containing information on assets that can be used to provide the shared media content to the second playback device. That and</u><u style="single"> To transmit the top-level index file to the second playback device</u><u style="single"> With instructions to instruct them to do</u><u style="single"> A content server that includes.</u><u style="single">(Item 2)</u><u style="single"> The instruction further tells the processor.</u><u style="single"> Reading information about the asset that provides the shared media content from the memory that stores the asset,</u><u style="single"> Determining the capability of the second playback device from the device capability information in the request,</u><u style="single"> Using the determined capability of the second playback device to filter the information about the asset.</u><u style="single"> The top-level index file contains information on assets that meet the capacity criteria of the second playback device.</u><u style="single"> The content server described in item 1 that directs the user to do so.</u><u style="single">(Item 3)</u><u style="single"> The device capability information provided by the second playback device includes the product identifier of the second playback device, and the instruction to determine the capability of the second playback device is given to the processor.</u><u style="single"> The item 2 is instructed to read the capability of the second playback device from a memory that stores the capability of the playback device and has the product identifier of the second playback device included in the device capability information. Content server.</u><u style="single">(Item 4)</u><u style="single"> The capability of the second playback device is included in the device capability information in the request, and the instruction to determine the capability of the second playback device is given to the processor by the device in the request. The content server according to item 2, which instructs to acquire the capability of the second playback device from the capability information.</u><u style="single">(Item 5)</u><u style="single"> The content server according to item 1, wherein the asset contained in the top-level index file is also based on a rule that coordinates the use of different assets to provide the media content stored in memory.</u><u style="single">(Item 6)</u><u style="single"> Item 1 The rule that coordinates the use of different assets includes at least one rule that is selected from the type of playback device, the playback capability of the device, and the location of the device, and the rule consisting of the requested language. Content server described in.</u><u style="single">(Item 7)</u><u style="single"> The content server according to item 1, wherein the asset contained in the top-level index file is also based on at least one criterion selected from the criteria group selected from the group consisting of user preferences and content owner requirements.</u><u style="single">(Item 8)</u><u style="single"> The request includes a token received by the second replay device from the first replay device, the instruction further authenticates the token to the processor, and in response to the authentication of the token, said sharing. The content server according to item 1, which directs to provide access to video content.</u><u style="single">(Item 9)</u><u style="single"> The content server according to item 8, wherein the instruction providing access to the shared video content includes an instruction instructing the processor to provide decryption information of the shared media content to a second playback device. ..</u><u style="single">(Item 10)</u><u style="single"> A method for providing a top-level index file to a playback device that contains information about assets that can be used to retrieve media content.</u><u style="single"> Within the content server, the step of receiving shared media content from the first playback device,</u><u style="single"> Within the content server, a step of acquiring transcoding of the shared media content, including an asset that provides the shared media content in a plurality of alternative streams.</u><u style="single"> A step of receiving a request for the media content from the second playback device in the content server, wherein the request includes device capability information of the second playback device.</u><u style="single"> Contains information on assets that can be used to provide specific media content to the second playback device using the content server, based on the device capability information of the second playback device. , Steps to generate a top-level index file, and</u><u style="single"> A step of transmitting the top-level index file from the content server to the second playback device, and</u><u style="single"> Including methods.</u><u style="single">(Item 11)</u><u style="single"> The step of generating the top-level index file is</u><u style="single"> A step of reading information about the asset that provides the shared media content from a memory that stores the asset using the content server.</u><u style="single"> A step of determining the capability of the second playback device from the device capability information using the content server, and</u><u style="single"> A step of using the content server to filter the information about the asset based on the determined capability of the second playback device.</u><u style="single"> A step of using the content server to include in the top-level index file information about assets that meet the capacity criteria of the second playback device.</u><u style="single"> The method according to item 10, including.</u><u style="single">(Item 12)</u><u style="single"> The device capability information provided by the second playback device includes the product identifier of the second playback device, and the step of determining the capability of the second playback device is</u><u style="single"> A step of reading the capability of the second playback device from a memory that stores the capability of the playback device, which has the product identifier of the second playback device included in the device capability information, using the content server. The method of item 11, including.</u><u style="single">(Item 13)</u><u style="single"> The capability of the second playback device is included in the device capability information in the request, and the step of determining the capability of the second playback device uses the content server to make the request. The method of item 11, comprising the step of acquiring the capability from the device capability information in.</u><u style="single">(Item 14)</u><u style="single"> The method of item 10, wherein the assets contained in the top-level index file are also based on rules that coordinate the use of different assets to provide the media content stored in memory.</u><u style="single">(Item 15)</u><u style="single"> Item 10 The rule that coordinates the use of different assets includes at least one rule that is selected from the type of playback device, the playback capability of the device, and the location of the device, and the rule consisting of the requested language. The method described in.</u><u style="single">(Item 16)</u><u style="single"> The method of item 8, wherein the asset contained in the top-level index file is also based on at least one criterion selected from the criteria group selected from the group consisting of user preferences and content owner requirements.</u><u style="single">(Item 17)</u><u style="single"> A non-transient machine-readable medium containing processor instructions, the execution of the instructions by the processor is top-level, including information about the assets used by the processor to obtain specific media content. Let the process of getting the index file go</u><u style="single"> The process</u><u style="single"> Steps to receive shared media content from the first playback device,</u><u style="single"> A step of obtaining transcoding of the shared media content, including an asset that provides the shared media content in a plurality of alternative streams.</u><u style="single"> A step of receiving a request for the shared media content from the second playback device, wherein the request includes device capability information of the second playback device.</u><u style="single"> Based on the device capability information of the second playback device, generate a top-level index file containing information on assets that can be used to provide specific media content to the second playback device. Steps and</u><u style="single"> The step of transmitting the top-level index file to the second playback device, and</u><u style="single"> Non-transient machine-readable media, including.</u><u style="single">(Item 18)</u><u style="single"> It s a playback device,</u><u style="single"> With the processor</u><u style="single"> Memory that is readable by the processor and</u><u style="single"> When an instruction in the memory is read by the processor, the processor receives the instruction.</u><u style="single"> Generating a request for shared media content to be shared with the playback device by another playback device, the request being the device capability information of the playback device and the shared media content received from the other playback device. Including the associated token, and</u><u style="single"> Transmission of the request to the content server and</u><u style="single"> Receiving a top-level index file that contains information about the assets that can be used to retrieve the shared media content to the device, based on the device capability information of the playback device.</u><u style="single"> Using the information in the top index file to obtain the media content</u><u style="single"> Instructions to do, and</u><u style="single"> A playback device.</u><u style="single">(Item 19)</u><u style="single"> 16. The reproduction device of item 16, wherein the instruction to generate the request comprises an instruction in the request that includes a product identifier that can be used to determine the capabilities of the reproduction device.</u><u style="single">(Item 20)</u><u style="single"> A way to get a top index file that contains information about assets in a particular media content.</u><u style="single"> A step of generating a request for shared media content shared with the playback device by another playback device, the request being the device capability information of the playback device and the shared media content received from the other playback device. Steps and, including tokens associated with</u><u style="single"> The step of transmitting the request from the playback device to the content server, and</u><u style="single"> A step of receiving a top-level index file from the content server in the playback device, wherein the top-level index file delivers the specific media content to the device based on the device capability information of the playback device. Steps and steps, including information on the assets that can be used to retrieve,</u><u style="single"> Using the information in the top index file to acquire the media content in the playback device,</u><u style="single"> Including methods.</u><u style="single">(Item 21)</u><u style="single"> The method of item 18, wherein the step of generating the request comprises a step in which the request includes a product identifier that can be used to determine said capability of the playback device.</u><u style="single">(Item 22)</u><u style="single"> A non-transient machine-readable medium containing processor instructions, the execution of the instructions by the processor gives the processor in the playback device information about the assets used to obtain specific media content. Including, let the process of acquiring the top-level index file be performed, and the process</u><u style="single"> A step of generating a request for shared media content shared with the playback device by another playback device, the request being the device capability information of the playback device and the shared media content received from the other playback device. Steps and, including tokens associated with</u><u style="single"> The step of transmitting the request to the content server and</u><u style="single"> A step of receiving a top-level index file from the content server, which is used to acquire specific media content to the device based on the device capability information of the playback device. Steps and steps, including information on the assets that can be</u><u style="single"> The step of acquiring the media content using the information in the top index file, and</u><u style="single"> Non-transient machine-readable media, including.</u></p>
<figref num="1">FIG. 1 is a network diagram of a content distribution system including a playback server and a transcoding server according to an embodiment of the present invention.</figref>
<figref num="2">FIG. 2 is a system diagram of a reproduction device according to an embodiment of the present invention.</figref>
<figref num="3">FIG. 3 is a playback server configured to deliver content to a plurality of different devices according to an embodiment of the present invention.</figref>
<figref num="4">FIG. 4 is an architectural diagram of a content transcoding and distribution system according to an embodiment of the present invention.</figref>
<figref num="5">Figure 5 conceptually illustrates the process for uploading and transcoding content for sharing with one or more different user devices.</figref>
<figref num="6">FIG. 6 conceptually illustrates the process for playing content using a top-level index file generated in response to a request from a playback device, according to an embodiment of the invention.</figref>
<figref num="7">FIG. 7 conceptually illustrates the process for generating a top-level index file using information about assets associated with specific pieces of content maintained by a playback server, according to an embodiment of the invention. ..</figref>
<figref num="8">FIG. 8 conceptually illustrates a communication diagram that provides a series of communications between different devices and various server systems for uploading and sharing content to a user device according to an embodiment of the invention. ..</figref>
With reference to the drawings here, in the reproduction of the encoded content, based on the capabilities of the device, transcoding the encoded content file to one or more different encodings, according to an embodiment of the invention. The systems and methods for generating top-level index files with different encodings for use are illustrated. In some embodiments, applications on computer devices, such as (but not limited to) mobile phones and / or tablet computers, are used to share video content captured and encoded by the computer device. In some embodiments, the sharing process transfers the encoded video file to a content delivery system that transcodes the encoded content to a different encoding for adaptive bitrate streaming to other devices. With steps to upload. In many embodiments, the content delivery system controls the distribution of different coding to provide secure sharing of content. Different codings may be based on the capabilities of different devices on which the content files will be shared. For example, video content captured in "4K" or "ultra-HD" resolution and shared with several different devices with different video decoders and playback capabilities is HEVC codec and HD (ie 1080p) for 4K streams. It may be transcoded using the H.264 codec for streams. Similarly, the content delivery system can generate different top-level index files for different devices on which the content files will be shared, based on each particular capability of the device. Specifically, for devices capable of playing 4K encoded streams, the top-level index files provided to the device are HEVC and H. It may contain information about both 264 coding. In contrast, for devices that are not capable of playing 4K HEVC streams, the top-level index file provided to the device may only contain information for retrieving the HDH.264 stream. In some embodiments, the content file allows the content to be shared with devices with different playback capabilities (eg, encoding / decoding capabilities, resolution, network bandwidth) and / or various other requirements. To do so, several different coding standards (eg H.265 / MPEG-H HEVC, H.264 / MPEG-4 AVC, H.263 / MPEG-4 Part 2, H.262 / MPEG-2, Google<sup>TM</sup>(On2) codec, Microsoft<sup>TM</sup>It may be transcoded into a codec). The specific codec used typically depends on the requirements of the specific application.
Top-level indexes are different encodings (eg, H.265 / MPEG) of media (eg, audio, video, metadata, and subtitles) that can be utilized by playback devices to stream and play content. -H HEVC, H.264 / MPEG-4), a file that describes the location and content of the container file. In adaptive bitrate streaming systems, top-level index files typically refer to alternative encoding of content files that can be switched by the playback device. In many embodiments, the top-level index file is generated in response to a request for a content file from the playback device. For example, the playback device A may share the video file with the playback device B, and the top-level index file may be generated on the playback device B that requests the playback of the content.
In some embodiments, the process of generating a top-level index file determines all of the different encoding or container files that contain a stream associated with a concrete piece of content, and then one or more. It involves the steps of filtering assets based on certain criteria and / or device capabilities. In some embodiments, the asset comprises, but is not limited to, business rules defined by the content owner, the device capabilities of the user with whom the content will be shared, and / or information associated with the user account. Filtered based on predetermined criteria. In many embodiments, the top-level video file generated is an SMIL file. In some embodiments, the top-level index file is an MPD file used within the MPEG-DASH standard. In other embodiments, any of the various file formats can be utilized to generate a top-level index file according to the embodiments of the present invention.
In some embodiments, the playback server is one or more top-level index files that share the content file with multiple different user devices, depending on the request from the playback device, and the content file is shared. Automatically generate each index file for a particular device, the playback server can also provide cryptographic information to different devices, allowing playback of a protected stream of content. A playback device according to an embodiment of the invention for transcoding content to different coded assets for sharing with different users and / or devices and generating a top-level index file in response to a request from the playback device. , Playback servers, and processes are further discussed below.
Content distribution system architecture A content distribution system according to many embodiments of the present invention includes a playback server that transcodes a content file shared by different devices into a plurality of different encoded streams. When a device requests playback of content, the content delivery system can respond to the request and automatically generate a top-level index file based on the different capabilities of the playback device. A content distribution system according to an embodiment of the present invention is illustrated in FIG. The content delivery system 100 uploads content for sharing with other user devices and / or plays the content from a remote server within the content delivery network (CDN) 140 via a network 160 such as the Internet (eg, streaming). Includes several playback devices 120-130, including user A device 120 and user B device 130, configured to request (and / or download). Streams for sharing To stream content, the playback device has a database 150 of available assets (ie, a container file containing a stream of content associated with a specific title), and the capabilities of a particular playback device. Gets a top-level index file that is automatically generated by Playback Server 180 for a particular device, using a given set of filters or criteria based on it.
In many embodiments, the playback device performs adaptive bitrate streaming by selecting content from different alternative streams described within the top-level index file, based on the identification information provided by the playback device. You may. Systems and methods for adaptive bitrate streaming using automatically generated top-level index files were filed on December 30, 2011 and issued as US Pat. No. 8,787,570, "Systems and It is described in Shaifer et al.'S US Patent Application No. 13 / 341,789 entitled "Methods for Automatically Generating Top Level Index Files". The disclosure of US Pat. No. 8,787,570 is incorporated herein by reference in its entirety.
The playback server 110 retrieves the content files from user devices 120-130 and transcodes the encoded content files into one or more alternative streams that use different encoding standards. Server cluster 115 may be used. The transcoded content file may be stored in the asset storage 150 database of available assets (ie, container files containing different streams of encoded content associated with a specific title). As described above, an alternative stream (or alternative encoded asset) is a stream that encodes the same media content in different ways. In many cases, alternative streams use different coding standards (eg HEVC or H.264) to encode media content (such as video, but not limited to) and / or content at different maximum bit rates. Is encoded. In some embodiments, the alternative stream is encoded at different resolutions and / or different frame rates. In many embodiments, the top-level index file generated by the playback server 180 for a particular playback device describes at least the maximum bit rate of each of the alternative streams. The playback device can select one or more streams for traditional streaming, or switch alternative streams for adaptive bitrate streaming.
In some embodiments, when one playback device 120-130 shares a piece of content with another playback device, the playback device 120-130 is directed to the playback server 110 to stream and / or download the content. Receive shared content via tokens that can be provided. When the playback device transmits the token to the server 110, the playback device 120-130 uses the information stored in the database 150 by the playback server 110 to create a top-level index file for the playback device 120-130. Information can be added to explain the playback capabilities of the playback devices 120-130, which can be used for automatic generation. The replay server 110 is typically a traditional server system configured to allow the replay server to access the database 150 using a replay management application. In some embodiments, the playback devices 120-130 provide information about their playback capabilities to the playback server 110, which filters the assets associated with shared content fragments based on the device capabilities. By processing, a top-level index file is automatically generated. Such capabilities include, but are not limited to, playback capabilities, coding / decoding codecs, display aspect ratios, and / or predicted maximum network connection data rates. In some embodiments, the capabilities of the specific playback devices 120-130 are communicated to the playback server 110 in the form of a product identifier or product ID. The replay server 110 can maintain a database of product IDs and associated device capabilities, replays to read the associated device capabilities and apply filters to the list of available assets when generating a top-level index file. The product ID provided by the device is available. A system for assigning product IDs and associating them with information about the capabilities of the device to which the product ID is assigned. The method and method were filed on March 31, 2012 and are described in Grab et al.'S U.S. Provisional Publication No. 2013/0006869, entitled "Method to Identify Consumer Electronics Products." The relevant disclosures from US Provisional Publication No. 2013/0006869, which are related to the use of product identifiers to identify the regenerative capabilities of a particular device, are incorporated herein by reference in their entirety. Other filters that can be applied by the playback server according to embodiments of the present invention are (but not limited to) filters based on the location of the playback device (ie, country / region) and the language associated with the particular user. including. Various filters that can be applied to generate top-level index files according to embodiments of the present invention are further discussed below.
In some embodiments, shared content is further protected through the use of encryption and digital rights management (DRM) techniques. When the playback server 110 receives a request to play the encrypted content from the playback devices 120-130, the playback server reads the encryption information required to play the protected stream of the content. The playback device can then request a portion of the container file containing the stream of content from one or more servers in the content delivery network 140 and encrypt it to access the protected content. Information can be used. Kiefer, entitled Systems and Methods for Playing Back Alternative Streams of Protected Content Protected Using Common Cryptographic Information, provides systems and methods for digital rights management of protected streams used in adaptive bitrate streaming. et It is described in US Pat. No. 8,909,922 of al. The disclosure of US Pat. No. 8,909,922 is incorporated herein by reference in its entirety.
A specific content distribution system, illustrated in Figure 1, is a playback server that transcodes an encoded content file into an alternative stream and automatically generates a top-level index file based on device capabilities. , Can be incorporated into any of a variety of content distribution system architectures, according to some embodiments of the present invention. Reproduction devices that can be used to reproduce content according to some embodiments of the invention are further discussed below.
Playback device Playback devices that can be used to securely share content according to embodiments of the present invention can include personal computers, CE players, and mobile phones. In many embodiments, the playback device can be connected to a DVD player, Blu-ray® player, television, set-top box, video game console, tablet, and server to play encoded media. It can include consumer electronic device devices such as other devices that are possible. The basic architecture of a playback device according to an embodiment of the present invention is illustrated in FIG. The playback device 200 includes a processor 210 that communicates with the memory 230 and a network interface 240. In the illustrated embodiment, the memory comprises a player application 238 that configures a processor and a playback device to request content from a playback server. In some embodiments, the player application 238 may require the content to be streamed and / or downloaded to the playback device 200. Memory 230 also includes a video decoder 232 that can decode the encoded video for playback. Different devices may include software and / or hardware, as well as different encoders / decoders (ie, "codecs") for decoding content. For example, for a playback device capable of playing 4K video, the decoder may be a HEVC decoder. For playback devices capable of playing HD (ie, 1080p) video, the decoder may be an H.264 decoder. In many embodiments, the playback device may include multiple decoders to support different media formats.
During operation, the player application 238 can configure the playback device 200 to upload content to a playback server for sharing with one or more other playback devices. When the content is shared with the playback device 200, the player application 238 can configure the playback device 200 to request a top-level index file from the playback server. As mentioned above, the request for the top-level index file can include the product ID of the playback device that can be used to filter the assets described within the top-level index file. When the top-level index file is received from the playback server, the player application 238 can configure the playback device to store the top-level index file in memory 230. In some embodiments where the content is encrypted, the player application 238 is to play the stream requested by the play server (or a separate DRM server) in response to a user command to play the content. , The encrypted information may be requested, and the encrypted information received from the playback server can also be stored in the memory 230. The player application 238 configures the playback device 200 to play the content by requesting a part of the container file containing the content from a server in the content distribution network. The specific container file selected by the player application 238 can be determined based on the information available to the player application in the top-level index file and the streaming conditions experienced by the playback device. When the playback device receives the requested part of the container file and the content is encrypted, the player application 238 uses the content encryption information to protect the content within the requested part of the container file. You can access Tsu. The player application 238 can request content from different container files and continue playing until a user instruction to pause playback is received or until playback is complete, depending on the predominant streaming conditions.
Various playback devices are described above with reference to FIG. 2, but the player application is located on a disk or some other form of storage and is loaded into memory at runtime, including architectures. Any of the architectures can be utilized to implement a playback device for use in a content distribution system according to some embodiments of the present invention. In addition, any of a variety of system architectures, including (but not limited to) the system architecture illustrated in FIG. 1, will automatically respond to requests from playback devices according to some embodiments of the invention. The generated top-level index file can be used to transcode content and use it to deliver content.
Playback server In many embodiments, the user playback device may communicate with the playback server to upload content for sharing with multiple other devices and / or to gain access to the content. A playback server configured to deliver content to a plurality of different devices according to an embodiment of the present invention is shown in FIG. The playback server 300 includes a processor 310, a network interface 340, and a memory 330. In the illustrated embodiment, the memory 330 includes an encoder application 332 and a content distribution application 334. As discussed above, the playback server encodes the content file into one or more alternative streams, each providing a different encoding of the content file (eg, HEVC, H.264, among others). And / or transcoded can be configured by encoder application software 332. According to some embodiments, the encoder application 332 communicates with one or more transcoder server clusters (not shown) to transcode content files into different alternative coded streams.
The playback server can be configured by the content delivery application 334 to generate a top-level index file for the playback device and / or deliver the content to the playback device. In some embodiments, the top-level index file is generated and / or selected based on the ability of the particular playback device to request playback of the content, including the video coding / decoding capabilities of the device.
Although the specific playback server architecture is illustrated in Figure 3, any of the various architectures that can manage the interaction with the user device to deliver content in the manner outlined above. It can be utilized according to some embodiments of the present invention.
Content transcoding and delivery architecture When a user device uploads encoded content for sharing with different devices, the system will differ the encoded content to allow playback of the content on devices with different playback capabilities. It may be transcoded into a coded form. An exemplary system architecture for a content transcoding and distribution system according to an embodiment of the present invention is illustrated in FIG. As illustrated, the client device 400 includes a variety of servers API 405-430 (applications), including user API server 405, social API server 410, storage API server 415, media API server, playback API server, and transcode API server. Communicates with the server system through the router 401 via the programming interface). The user API server 405 may receive user and / or device information from the client 400 and may store the information in the user database 406. The social API server may receive social media information from the client 400 and store this information in the social database 411. The storage API server 415 manages the storage of the content stored in the content database 450. The storage API server may receive content from the client 400, the playback API server, and / or the transcoding API server for storage in the content database 450. The media API server 420 may communicate with a player application requesting content stored in the content database 450. The playback API server may manage the playback of the content stored in the content database 450. The transcoding API server receives the encoded content file and transcodes it into one or more different encoded streams for storage in the content database 450.
To transcode content, the transcoding API server 430 may communicate with the TCE management application 435, which manages the transcoding activity being performed. TCE management application 435 may be used for decentralization of transcoding jobs, including tracking job progress and reporting machine loads. Machine load information may be used to implement a load balancing scheduler.
Each transcoding operation illustrated as TCE transcoding node 440 may be the process of decoding and recoding content to one or more different coding standards. The TCE transcoding node 440 may utilize an authorization web server 445 to communicate with a storage API server for storing alternative streams in the content database 450.
Although the specific content delivery architecture is illustrated in Figure 4, any of the various architectures that can manage the interaction with the client device to deliver the content in the manner outlined above. Can be utilized according to some embodiments of the present invention.
Sharing and Transcoding Content As described above, the client device plays the encoded content on a playback server for sharing with one or more of the users and / or different users. You may upload to. A process for uploading content for sharing with different devices according to an embodiment of the invention is illustrated in FIG. Process 500 receives content for sharing with one or more devices (505). In some embodiments, the content is received from the user's playback device. The content may be an encoded video file that is encoded using a particular encoding standard (eg, HEVC, H.264, among others).
The process transcodes content into one or more different alternative encoded streams (510). In some embodiments, the process encodes the content into different streams based on the playability of the device on which the content is shared or will be shared. For example, if a user uploads a 4K video that is shared with a device that has 4K playback and some devices that do not have 4K playback capacity (eg, has only an H.264 decoder), this process will process the content. May be transcoded to both HEVC and H.264.
According to some other embodiments, the process transcodes the content into an alternative encoding and / or format setting list. For example, video content is the most common coding standard used by devices (eg HEVC, H.264, Microsoft, among others).<sup>TM</sup>Codec, google<sup>TM</sup>It may be transcoded into some of the codecs). For example, the content may be encoded using H.264 / AVS to provide compatibility with the majority of devices. Therefore, when a playback device requests playback of a content file, the process may provide a top-level index file with a list of assets that the playback device may be able to play. As described below, the top-level index file may contain only these assets that are specific to the playback device and that correspond to the encoded stream that the playback device can play.
According to some embodiments, the process converts the content file into a different encoding format in response to the content file being uploaded from the playback device (and prior to requesting the content file by a different playback device). Start transcoding (ie "pre-transcoding"). According to some embodiments, the process may transcode the content file into a particular encoding format in response to a playback request received from the playback device. For example, the process may automatically transcode content files to the most frequently used encoding formats (eg HEVC and H.264), but from playback devices that require specific encoding formats. In response to receiving the request, you may wait to transcode the content file into a less frequently used encoding format. The process uses various "live transcoding" servers that can simultaneously perform several transcoding processes while fulfilling the device's playback requirements, transcoding content at the same time and playing the device. May be streamed to.
This process stores assets (515). The process then completes. Although the specific process is illustrated in FIG. 5, any of the various processes can be utilized to transcode the content file according to embodiments of the present invention. A playback server and process for automatically generating an index file according to an embodiment of the present invention will be described below.
Content playback A process for playing content using a top-level index file generated in response to a request from a playback device according to an embodiment of the present invention is illustrated in FIG. Process 600 includes step (605) requesting content. The request can be made using a playback device or another device. To access the content, the playback device provides a request from the playback server to prompt the generation of a top-level index file customized for the specific playback device. According to some embodiments, the request is in the form of a token indicating that the playback device is authorized to request content and that the playback device provides the product identifier to the remote server via the API. According to some other embodiments, any of the various techniques for requesting content can be optionally utilized for specific application requirements. According to many embodiments, the top-level index file is all so that the playback server produces a top-level index file that describes the assets that are available and / or most suitable for playback by the playback device. Customized in that it filters the available assets of. Once the custom top-level index file is read (610), the playback device obtains cryptographic information that allows playback of the protected stream identified within the top-level index file (615). According to many embodiments, the replay device waits for a replay request to be received from the user and then requests cryptographic information from the replay server.
When the playback device holds a top-level index file and any required cryptographic information, the playback device requests the content by requesting a portion of one or more container files containing the encoded media. Can be started to stream and / or download (620). A step to select the lowest bitrate stream (but not limited to), filed September 30, 2011, entitled "Systems and Methods for Determining Available Bandwidth and Performing Initial Stream Slection When Commencing Streaming Using Hypertext Transfer Protocol", van der Schaar et A variety of steps, including the step of performing a bandwidth probe in a manner similar to that disclosed in US Patent Publication No. 2013/0007200 of al., Or the step of estimating the available bandwidth using another technique. Any of the processes can be used to select the initial stream. The disclosure of US Patent Publication No. 2013/0007200 is incorporated herein by reference in its entirety.
Once playback begins (620), adaptive bitrate streaming can take place. During playback, playback event reports now provide information about the playback status of the playback device, periodically or in response to various events, including (but not limited to) user instructions received by the playback device. , Can be provided to the playback server. When the replay event report is provided to the replay server, the replay server can provide the replay event instruction to the replay device. In the illustrated embodiment, a playback event command can be received by the playback device, including a "playback" command to continue playback and a "stop" command to stop playback (630). The ability of the playback server to stop playback on the playback device allows the playback device to implement concurrency requirements across multiple playback devices associated with the user. The combination of playback event reporting and event playback instructions is also provided by the playback server to allow the second playback device to resume playback of the content at the last playback location reported by the first playback device. It can be used. In this way, the user can seamlessly migrate between playback devices without having to search for a place to continue playback.
Although the specific process is illustrated in FIG. 6, one of a variety of processes is utilized to request a customized top-level index file and play content according to embodiments of the present invention. be able to. Reproduction servers and processes for automatically generating index files according to some embodiments of the present invention are described below.
Automatic generation of top-level index A playback server according to many embodiments of the present invention maintains a database of assets associated with specific pieces of content, and a playback management application reads and filters information about the assets and is the top for specific playback devices. It can be configured to automatically generate a level index file. The database maintained by the playback server can enumerate the filename containing the asset and the content distribution server and / or network in which the asset is located. When the asset is a video stream, the database includes, but is limited to, the stream's codec, the maximum bit rate at which the video stream is encoded, the frame rate, resolution of the video stream, and / or the sample aspect ratio of the video stream. It is possible to describe the characteristics of the video stream that is not. When the asset is an audio stream, the database can describe the characteristics of the audio stream, including (but not limited to) the language of the audio stream, the encoding of the audio stream, and the bandwidth requirements of the audio stream. When the asset is a subtitle stream, the database can describe the characteristics of the subtitle stream, including (but not limited to) the language of the subtitle stream, the encoding of the subtitle stream, and the bandwidth requirements of the subtitle stream. In addition to maintaining information about the asset, the playback device can maintain information about the playback capabilities of the playback device. According to some embodiments, information about the regenerative capabilities of different regenerative devices is indexed using the product ID. According to many embodiments, the playback server also includes (but not limited to) the type of playback device, the playback capability of the playback device, the location of the playback device (eg, country / region), and / or the required language. Maintain information about rules that adjust the use of different assets based on criteria. Specific pieces of information are maintained by the playback server. As described above as being associated within the database, such that any of the various fragments of information allows the playback server to generate a top-level index file according to some embodiments of the invention. It can be maintained in any of a variety of data structures. In addition, the playback device can provide a list of its capabilities directly to the playback server. As further discussed below, the information maintained by the playback server is top from the playback device to generate a top-level index file that contains only links to the assets that the playback device is allowed to play. It can be filtered in real time in response to requests for level index files.
A process for generating a top-level index file using information about an asset associated with a specific piece of content maintained by a playback server, according to an embodiment of the invention, is illustrated in FIG. .. In the illustrated embodiment, process 700 begins when the playback server receives a request for a top-level index file for a specific fragment of content from the specific playback device (705). As discussed above, the request is information that indicates (but not limited to) the playback capability of the playback device, the user account in which the playback device is registered, and the geographic location of the playback device (eg, the IP address of the playback device). Can include information that describes the playback device, including. According to many embodiments, the capacity of the playback device is identified using the product ID, which is associated with the specific playback capacity in the database accessible to the playback server.
The playback server reads the assets associated with the requested piece of content (710). The playback server filters assets based on one or more filters associated with the capabilities of the playback device, user preferences, and content owner requirements (715). Therefore, different top-level index files can (but not be limited to) show differences in playback capabilities (eg, codecs, resolutions, memory) between devices, geographic locations, and / or language preferences associated with playback devices. Can be generated for the same content based on factors, including. For example, if a user uploads 4K video for sharing, the top-level index file for devices capable of playing 4K video may contain 4K streams while playing 4K video. Top-level index files for non-capable devices may not include 4K streams, but rather may include streams that the device can play (eg, H.264).
After filtering, the remaining assets can be used to generate a top-level index file (720), which can be provided to the playback device (725). According to some embodiments, top-level index files are securely transferred using secure communication techniques, including, but not limited to, secure socket layer (SSL) communication or equivalent secure communication protocols. NS.
A specific process for generating a top-level index file according to an embodiment of the invention, illustrated in FIG. 7, includes steps to collect information about assets associated with specific pieces of content and content distribution. Any of a variety of processes, including indexing the assets made available to the playback device by the streaming system, and generating an index file, may be utilized in accordance with some embodiments of the present invention. can. A communication diagram illustrating a series of communications between a playback device and a server to share content according to an embodiment of the invention is discussed below.
Communication between device and server Many embodiments of the invention transcode content to one or more different encoding formats, with the step of uploading content from the user device for sharing with other devices. And the steps to generate top-level index files in different encoding formats based on the capabilities of different devices. To facilitate content sharing, client devices communicate with a variety of different server systems to upload content, transcode content, and / or receive top-level index files. An example of communication between a client device and / or various different server systems according to an embodiment of the present invention is illustrated in FIG.
FIG. 8 illustrates communication between playback devices A805 and B810, playback server 815, transcoding server cluster 820, and content distribution server 825. The playback device 805-810 and the different servers 815-825 may communicate with each other via a network such as the Internet. As described above, the playback server 815 is used to upload content (eg, video files, photos, and / or audio files, among others) through applications on their client devices 805-810. , May provide an interface accessible to client devices 805-810. The playback server 815 is the top for playback devices because it receives content for sharing with one or more devices 805-810 and transcodes the content to one or more different encoding formats. It can be used to generate level index files and to deliver content to playback devices. Playback server 815 may also provide encrypted information used to access encrypted digital content (eg, using a DRM server).
The playback server 815 transcodes the content files into one or more different encoding formats and / or stores one or more transcoding server clusters 820 in the content server 825. You may use it.
Content server 825 may provide content to client devices 805-810 that request playback of content fragments. Content can be downloaded and / or streamed by client device 805-810.
The communication illustrated in FIG. 8 for uploading content from a client device for sharing with one or more other devices may proceed according to the following sequence of communications. The client device 805 uploads the content for sharing to the playback server 815. The content may be a video file encoded according to a particular standard (eg, H.264 or HEVC for 4K video). If the playback device has transcoding capabilities, the playback device may also transcode the video file prior to uploading.
The playback server 815 requests the transcoding server cluster 820 to transcode the content.
Transcoding server cluster 820 transcodes content into one or more different alternative coded streams. The transcoding server cluster 820 uses the content server 825 to store alternative encoded streams and provides a list of alternative streams to playback server 815.
A different playback device B810 may request playback of the content file and submit a request for a top-level index file to playback server 815 using any of the techniques described above. The playback server 815 may generate a top-level index file. In some embodiments, the top-level index file is generated based on the playback capability of the playback device. In other embodiments, the playback server may select a top-level index file from a plurality of index files based on the product ID of the playback device.
The playback server 815 provides the playback device B810 with a top-level index file.
The playback device B810 may provide a playback request to the playback server 815. The playback server 815 provides the playback device B810 with encrypted information in order to decrypt the encoded content.
The playback device B810 uses a top-level index file to request content from the content server 825. The content server 825 provides the content to the playback device 810. The playback device uses the encrypted information to decrypt the content in order to play the content on the device.
Although the above description contains many specificities, they are not intended to limit the scope of the invention, but merely provide some illustrations of the currently preferred embodiments of the invention. Should be interpreted as. Various other embodiments are possible within that scope. Therefore, the scope of the present invention should be determined not by the illustrated embodiment but by the appended claims and their equivalents.
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11349892B2 | Cited by | United States of America | Applicant |
| US12250257B2 | Cited by | United States of America | Applicant |
| US11711410B2 | Cited by | United States of America | Applicant |
| US11716371B2 | Cited by | United States of America | Applicant |
| JP2014529967A | Cites | Japan | – |
| JP2009188690A | Cites | Japan | – |
| JP2014516503A | Cites | Japan | – |
| JP2010509661A | Cites | Japan | – |
| WO2014144906A1 | Cites | World Intellectual Property Organization (WIPO) | – |
| リンクアップ、今すぐ使えるかんたんPLUS+Googleサービス完全大事典、株式会社技術評論社、2014年10月25日、初版、第1刷、P.226,228,233,238,239,242,243,244 | Non-patent | – | – |
36 members in 8 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 62100299 | United States of America | – | |
| 201562100299 | United States of America | P | |
| 2016012348 | United States of America | W |
Members36
| Document | Office | Kind | |
|---|---|---|---|
| US2016197971A1 | United States of America | A1 | |
| WO2016112112A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CN107111477A | China | A | |
| KR20170103863A | Republic of Korea | A | |
| EP3243130A1 | European Patent Office (EPO) | A1 | |
| JP2018505594A | Japan | A | |
| EP3243130A4 | European Patent Office (EPO) | A4 | |
| US10225298B2 | United States of America | B2 | |
| EP3243130B1 | European Patent Office (EPO) | B1 | |
| KR20190097320A | Republic of Korea | A | |
| KR102012682B1 | Republic of Korea | B1 | |
| US2019268394A1 | United States of America | A1 | |
| EP3570520A1 | European Patent Office (EPO) | A1 | |
| ES2746954T3 | Spain | T3 | |
| US10623458B2 | United States of America | B2 | |
| HK1246429B | Hong Kong, China | B | |
| US2020244714A1 | United States of America | A1 | |
| JP2020141415A | Japan | A | |
| EP3570520B1 | European Patent Office (EPO) | B1 | |
| CN107111477B | China | B | |
| CN113259731A | China | A | |
| JP6944371B2This record | Japan | B2 | |
| ES2874748T3 | Spain | T3 | |
| EP3910904A1 | European Patent Office (EPO) | A1 | |
| EP3910904A4 | European Patent Office (EPO) | A4 | |
| US11349892B2 | United States of America | B2 | |
| JP2022132649A | Japan | A | |
| US2022368749A1 | United States of America | A1 | |
| JP7278238B2 | Japan | B2 | |
| CN113259731B | China | B | |
| US11711410B2 | United States of America | B2 | |
| JP7427725B2 | Japan | B2 | |
| US2024205281A1 | United States of America | A1 | |
| US12250257B2 | United States of America | B2 | |
| US2025175513A1 | United States of America | A1 | |
| EP3910904B1 | European Patent Office (EPO) | B1 |
27 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Trial/appeal decision takenAppealJAPANESE INTERMEDIATE CODE: C03C03 | C03 | |
| Notification sentJAPANESE INTERMEDIATE CODE: C3012C30A | C30A | |
| Notice of termination of proceedingsJAPANESE INTERMEDIATE CODE: C23C23 | C23 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Notice of reasons for refusalJAPANESE INTERMEDIATE CODE: C13C13 | C13 | |
| Notice of designation (change) of administrative judgeJAPANESE INTERMEDIATE CODE: C22C22 | C22 | |
| Notice of termination of reconsideration by examiners before appeal proceedingsAppealJAPANESE INTERMEDIATE CODE: C211C211 | C211 | |
| Re-examination (zenchi) completed and case transferred to appeal boardAppealJAPANESE INTERMEDIATE CODE: A912A912 | A912 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Notice of transfer of a case for reconsideration by examiners before appeal proceedingsAppealJAPANESE INTERMEDIATE CODE: C21C21 | C21 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Trial request (containing other claim documents, opposition documents)OppositionJAPANESE INTERMEDIATE CODE: C60C60 | C60 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Notification of change in applicantJAPANESE INTERMEDIATE CODE: A711A711 | A711 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 6944371
- Application
- 2017535744
Titles2
- Japanese
- コンテンツを符号化し、デバイス間でコンテンツを共有するためのシステムおよび方法
- English
- Systems and methods for encoding content and sharing content between devices
Classification
- CPC, 50
- H04N21/2743
- H04L63/102
- H04L65/612
- H04L65/764
- H04L63/08
- H04L69/24
- H04N21/2343
- H04N21/23439
- H04N21/2541
- H04L63/107
- G06F16/71
- H04L65/762
- H04L63/0807
- H04L63/062
- H04L2463/101
- H04N21/25833
- H04N21/6582
- H04N21/632
- H04L65/70
- H04L65/756
- H04N21/25825
- H04N21/234309
- H04N21/43615
- H04N21/85406
- H04N21/25808
- H04N21/8456
- H04N21/26258
- H04N21/440218
- H04N21/4402
- H04N21/2662
- H04N21/4627
- H04N21/25816
- H04N21/4516
- H04N21/2402
- H04N21/6581
- H04N21/234363
- H04N21/84
- H04N21/4788
- H04N21/41407
- H04N21/4621
- H04N21/2347
- H04N21/2393
- H04N21/6547
- H04N21/25875
- H04N21/4126
- H04N21/25841
- H04N21/234327
- H04N21/25858
- H04N21/8451
- H04N21/47202
- IPC, 3
- H04N21 258
- H04N21 2343
- H04N21 2662
