Systems and methods for automatically generating top level index files

Information

  • Patent Grant
  • 11716371
  • Patent Number
    11,716,371
  • Date Filed
    Friday, September 3, 2021
    3 years ago
  • Date Issued
    Tuesday, August 1, 2023
    a year ago
Abstract
Systems and methods for automatically generating top level index files for use in adaptive bitrate streaming in accordance with embodiments of the invention are disclosed. One embodiment of the method of the invention includes receiving a request from a playback device at a playback server, where the request identifies a piece of content, retrieving a list of assets associated with the identified piece of content using the playback server, filtering the list of assets using at least one predetermined criterion using the playback server, generating a top level index file describing each asset in the filtered list of assets using the playback server, and sending the top level index file to the playback device using the playback server.
Description
FIELD OF THE INVENTION

The present invention generally relates to streaming media and more specifically to the automatic generation of top level index files for use in adaptive bitrate streaming.


BACKGROUND

The term streaming media describes the playback of media on a playback device, where the media is stored on a server and continuously sent to the playback device over a network during playback. Typically, the playback device stores a sufficient quantity of media in a buffer at any given time during playback to prevent disruption of playback due to the playback device completing playback of all the buffered media prior to receipt of the next portion of media. Adaptive bit rate streaming or adaptive streaming involves detecting the present streaming conditions (e.g. the playback device's network bandwidth and video decoding capacity) in real time and adjusting the quality of the streamed media accordingly. Typically, the source media is encoded as separate streams having different maximum bitrates and the playback device or client switches between streaming the different encodings depending on available resources. When a playback device commences adaptive bitrate streaming, the playback device typically starts by requesting portions of media from an initial set of streams. As the playback device downloads the requested media, the playback device can measure the available bandwidth. In the event that the available bandwidth increases or decreases, the playback device can switch to higher or lower bitrate streams.


Adaptive streaming solutions typically utilize Hypertext Transfer Protocol (HTTP), published by the Internet Engineering Task Force and the World Wide Web Consortium as RFC 2616, to stream media between a server and a playback device. HTTP is a stateless protocol that enables a playback device to request a byte range within a file. HTTP is described as stateless, because the server is not required to record information concerning the state of the playback device requesting information or the byte ranges requested by the playback device in order to respond to requests received from the playback device.


In adaptive streaming systems, the source media is typically stored on a media server as a top level index file pointing to a number of alternate streams that contain the actual video and audio data. Each stream is typically stored in one or more container files. Different adaptive streaming solutions typically utilize different index and media containers. The Synchronized Multimedia Integration Language (SMIL) developed by the World Wide Web Consortium is utilized to create indexes in several adaptive streaming solutions including IIS Smooth Streaming developed by Microsoft Corporation of Redmond, Wash., and Flash Dynamic Streaming developed by Adobe Systems Incorporated of San Jose, Calif. HTTP Adaptive Bitrate Streaming developed by Apple Computer Incorporated of Cupertino, Calif. implements index files using an extended M3U playlist file (.M3U8), which is a text file containing a list of URIs that typically identify a media container file. The most commonly used media container formats are the MP4 container format specified in MPEG-4 Part 14 (i.e. ISO/IEC 14496-14) and the MPEG transport stream (TS) container specified in MPEG-2 Part 1 (i.e. ISO/IEC Standard 13818-1). The MP4 container format is utilized in IIS Smooth Streaming and Flash Dynamic Streaming. The TS container is used in HTTP Adaptive Bitrate Streaming.


SUMMARY OF THE INVENTION

Systems and methods in accordance with embodiments of the invention automatically generate top level index files for use in adaptive bitrate streaming. One embodiment of the method of the invention includes receiving a request from a playback device at a playback server, where the request identifies a piece of content, retrieving a list of assets associated with the identified piece of content using the playback server, filtering the list of assets using at least one predetermined criterion using the playback server, generating a top level index file describing each asset in the filtered list of assets using the playback server, and sending the top level index file to the playback device using the playback server.


In a further embodiment of the method of the invention, the request from the playback device also includes information describing the capabilities of the playback device, and the playback server filters the list of assets based upon the capabilities of the playback device.


In another embodiment of the method of the invention, the information describing the capabilities of the playback device is a product identifier, and the method further including retrieving at least one device capability based upon the product identifier using the playback server.


In a still further embodiment of the method of the invention, the device capability is at least one device capability selected from the group consisting of: display aspect ratio, anticipated maximum network connection data rate, device outputs, supported formats, device buffer size, device resolution, device region, and device language.


In still another embodiment of the method of the invention, the at least one predetermined criterion includes whether the playback device has access to assets associated with premium content.


In a yet further embodiment of the method of the invention, the request from the playback device also includes information indicative of the geographic location of the playback device, and the at least one predetermined criterion includes whether an asset is permitted to be played back in the geographic location indicated by the request.


In yet another embodiment of the method of the invention, the at least one predetermined criterion includes filtering the assets based upon at least one language.


In a further embodiment again of the method of the invention, the playback server maintains a database of assets associated with specific pieces of content.


In another embodiment again of the method of the invention, the top level index file is a SMIL file.


In a further additional embodiment of the method of the invention, generating a top level index file describing each asset in the filtered list of assets using the playback server includes generating an XML string including a URI for each asset.


Another additional embodiment of the method of the invention also includes generating an XML string including a SWITCH element to describe alternative streams for use in adaptive bitrate streaming.


A still yet further embodiment of the method of the invention also includes generating an XML string including an EXCL element to describe alternative streams for use in conventional streaming.


In still yet another embodiment of the method of the invention, the URI references a container file and the XML string for each assets includes an element that defines the size of a header section of the container file.


In a still further embodiment again of the method of the invention, the XML string includes an element that identifies the encoding of the asset.


In another embodiment again of the method of the invention, the XML string of a video asset includes at least one element selected from the group including an element that describes the maximum bitrate of the video, an element that describes the width and height of the video, and an element that describes the video buffer verifier size of the video.


A still further additional embodiment of the method of the invention includes receiving a request from a playback device at a playback server, where the request identifies a piece of content, retrieving a list of assets associated with the identified piece of content using the playback server, filtering the list of assets using at least one predetermined criterion using the playback server, generating a top level index file describing each asset in the filtered list of assets using the playback server, sending the top level index file to the playback device using the playback server, retrieving cryptographic information using the playback server, where the cryptographic information is used to access protected streams described in the top level index file, and providing the cryptographic information to the playback device using the playback server.


In still another additional embodiment of the method of the invention, the cryptographic information is retrieved by the playback server in response to a request from a playback device to playback the content.


In a yet further embodiment again of the method of the invention, the cryptographic information is retrieved by the playback server from a database of cryptographic information and is encrypted so that the playback device can access the cryptographic information using cryptographic information stored on the playback device.


In yet another embodiment again of the method of the invention, the cryptographic information is retrieved by the playback server from a digital rights management server.


A yet further additional embodiment of the method of the invention also includes confirming that the number of devices on which the user is currently playing back content is less than a predetermined concurrency limit.


Yet another additional embodiment of the method of the invention also includes receiving a play event report from the playback device at the playback server.


A further additional embodiment again of the method of the invention also includes providing a command to the playback device using the playback server in response to the play event report.


In another additional embodiment again of the method of the invention, the play event report includes a playback location.


A still yet further embodiment again of the method of the invention also includes sending a command to resume playback at the playback location indicated in the play event report to a second playback device.


Still yet another embodiment again of the method of the invention also includes sending a command to stop playback to the playback device that generated the play event report using the playback server.


A further embodiment of the invention includes a database that stores descriptions of assets associated with specific pieces of content, and a processor configured using a playback management application. In addition, the playback management application configures the processor to: receive a request from a playback device identifying a piece of content; retrieve a list of assets associated with the identified piece of content; filter the list of assets using at least one predetermined criterion; generate a top level index file describing each asset in the filtered list of assets; and send the top level index file to the playback device.


Another embodiment includes the request from the playback device also includes information describing the capabilities of the playback device, and the playback management application configures the processor to filter the list of assets based upon the capabilities of the playback device.


In a still further embodiment, the information describing the capabilities of the playback device is a product identifier, and the playback management application further configures the processor to retrieve at least one device capability based upon the product identifier.


In still another embodiment, wherein the device capability is at least one device capability selected from the group consisting of: display aspect ratio, anticipated maximum network connection data rate, device outputs, supported formats, device buffer size, display resolution, device region, and device language.


In a yet further embodiment, the at least one predetermined criterion includes whether the playback device has access to assets associated with premium content.


In yet another embodiment, the request from the playback device also includes information indicative of the geographic location of the playback device, and the at least one predetermined criterion includes whether an asset is permitted to be played back in the geographic location indicated by the request.


In a further embodiment again, the at least one predetermined criterion includes filtering the assets based upon one or more languages.


In another embodiment again, the playback server maintains a database of assets associated with specific pieces of content.


In a further additional embodiment, the top level index file is a SMIL file.


In another additional embodiment, the playback management application configures the processor to generate a top level index file describing each asset in the filtered list of assets by configuring the processor to generate an XML string including a URI for each asset.


In a still yet further embodiment, the playback management application further configures the processor to generate an XML string including a SWITCH element to describe alternative streams for use in adaptive bitrate streaming.


In still yet another embodiment, the playback management application further configures the processor to generate an XML string including an EXCL element to describe alternative streams for use in conventional streaming.


In a still further embodiment again, the URI references a container file and the XML string for each asset includes an element that defines the size of a header section of the container file.


In still another embodiment again, the XML string includes an element that identifies the encoding of the asset.


In a still further additional embodiment, the XML string of a video asset includes at least one element selected from the group including an element that describes the maximum bitrate of the video, an element that describes the width and height of the video, and an element that describes the video buffer verifier size of the video.


In still another additional embodiment, playback management application further configures the processor to retrieve cryptographic information, where the cryptographic information is used to access protected streams described in the top level index file, and provide the cryptographic information to the playback device.


In a yet further embodiment again, the playback management application configures the processor to retrieve the cryptographic information in response to a request from a playback device to playback the content.


In yet another embodiment again, the playback management application configures the processor to retrieve the cryptographic information from a database of cryptographic information, and encrypt the retrieved cryptographic information so that the playback device can access the retrieved cryptographic information in the clear using cryptographic information stored on the playback device.


In a yet further additional embodiment, the playback management application configures the processor to retrieve the cryptographic information from a digital rights management server.


In yet another additional embodiment, the playback management application configures the processor to confirm that the number of devices on which the user is playing back content is less than a predetermined concurrency limit.


In a further additional embodiment again, the playback management application configures the processor to receive a play event report from the playback device.


In another additional embodiment again, the playback management application configures the processor to provide a command to the playback device in response to the play event report.


In a still yet further embodiment again, the play event report includes a playback location.


In still yet another embodiment again, the playback management application further configures the processor to send a command to resume playback at the playback location indicated in the play event report to a second playback device.


In a yet further additional embodiment again, the playback management application further configures the processor to send a command to stop playback to the playback device that generated the play event report using the playback server.


Another further embodiment includes a machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process including receiving a request from a playback device identifying a piece of content, retrieving a list of assets associated with the identified piece of content, filtering the list of assets using at least one predetermined criterion, generating a top level index file describing each asset in the filtered list of assets; and sending the top level index file to the playback device.


In still another further embodiment, the execution of the instructions by a processor causes the processor to perform a process further including retrieving cryptographic information, where the cryptographic information is used to access protected streams described in the top level index file, and providing the cryptographic information to the playback device.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a network diagram of a streaming system including a playback server in accordance with an embodiment of the invention.



FIG. 2 is a system diagram of a playback device in accordance with an embodiment of the invention.



FIG. 3 is a flow chart illustrating a process for obtaining a top level index file and cryptographic information from a playback server to stream content from a content distribution network in accordance with an embodiment of the invention.



FIG. 4 is a flow chart illustrating a process for automatically generating a top level index file in accordance with an embodiment of the invention.



FIG. 5 is a flow chart illustrating a process for generating a list of streams for inclusion in an automatically generated top level index file in accordance with an embodiment of the invention.



FIG. 6 is a flow chart illustrating a process for generating a SMIL file containing a top level index in accordance with an embodiment of the invention.



FIG. 7 is a flow chart illustrating a process for providing cryptographic information to a playback device in accordance with an embodiment of the invention.



FIG. 8 is a flow chart illustrating a process for handling play events received from playback devices in accordance with an embodiment of the invention.



FIG. 9 is a timing diagram illustrating communication between a playback device and a playback server and a content distribution network during an adaptive bitrate streaming process that utilizes an automatically generated top level index file in accordance with an embodiment of the invention.





DETAILED DISCLOSURE OF THE INVENTION

Turning now to the drawings, systems and methods for automatically generating top level index files for use in adaptive bitrate streaming in accordance with embodiments of the invention are illustrated. A top level index is a file that describes the location and content of container files containing streams of media (e.g. audio, video, metadata, and subtitles) that can be utilized by the playback device to stream and playback content. In adaptive bitrate streaming systems, the top level index file typically references the alternative streams that the playback device can switch between. In many embodiments, a top level index file is generated in response to a request from a playback device. In several embodiments, the process of generating the top level index file involves determining all of the assets or container files containing streams associated with a specific piece of content and then filtering the assets based upon one or more predetermined criterion. In a number of embodiments, the assets are filtered based upon predetermined criteria including (but not limited to) business rules defined by the content owner, device capabilities, and/or information associated with a user account. In many embodiments, the top level video file that is generated is a SMIL file. In other embodiments, any of a variety of file formats can be utilized to generate top level index files in accordance with embodiments of the invention.


In several embodiments, a playback server automatically generates top level index files in response to a request from a playback device and the playback server can also provide the playback device with cryptographic information enabling playback of protected streams of content. In a number of embodiments, the playback device provides play event reports to the playback server and the playback server can track the playback location of the streams being played back by the playback device. The playback location can be utilized to enable a user to shift between watching content on different playback devices. The user can commence playback on a first device and then request playback on a second device. When the playback server receives a playback request from a second playback device, the playback server can suspend playback on the first playback device and provide an instruction to the second playback device to commence playback at the last playback location reported by the first playback device. Playback devices, playback servers and processes for automatically generating top level index files in response to requests from playback devices in accordance with embodiments of the invention are discussed further below.


Streaming System Architecture


Adaptive bitrate streaming systems in accordance with many embodiments of the invention include a playback server that automatically generates top level index files in response to requests from playback devices. A streaming system in accordance with an embodiment of the invention is illustrated in FIG. 1. The streaming system 10 includes a number of playback devices 12 configured to request streaming of content from remote servers within content delivery networks (CDNs) 14 via a network 16 such as the Internet. In order to stream content, the playback device obtains a top level index file that is automatically generated by the playback server 18 using a database 20 of available assets (i.e. container files containing streams of content associated with specific titles) and a set of predetermined filters or criteria.


To perform adaptive bitrate streaming, the playback devices 12 select content from different alternative streams described in the top level index file. Alternative streams are streams that encode the same media content in different ways. In many instances, alternative streams encode media content (such as but not limited to video) at different maximum bitrates. In a number of embodiments, the alternative streams are encoded with different resolutions and/or at different frame rates. In many embodiments, the top level index file generated by the playback server 18 describes at least the maximum bitrates of each of the alternative streams. The playback device can select one or more streams for conventional streaming or can switch between alternative streams to perform adaptive bitrate streaming.


In several embodiments, playback devices 12 are able to purchase content for streaming via one or more online content stores 22. In many instances, the playback device purchases content via an online content store and receives an electronic token or ticket that the playback device can provide to the playback server 18 to obtain access to the purchased content. When the playback server 18 receives the ticket, the playback server automatically generates a top level index file for the playback device using information stored in the database 20. The playback server is typically a conventional server system configured using a playback management application and in such a way that the playback server can access the database 20. In a number of embodiments, playback devices 12 provide information concerning their playback capabilities to the playback server 18 and the server automatically generates top level index files by filtering assets associated with a purchased piece of content based upon device capabilities. Such capabilities include but are not limited to playback capabilities, display aspect ratio, and/or anticipated maximum network connection data rate. In a number of embodiments, the capabilities of a specific playback device 12 are communicated to the playback server 18 in the form of a product identifier or product ID. The playback server 18 can maintain a database of product IDs and associated device capabilities, and can utilize the product IDs provided by playback devices to retrieve the associated device capabilities and apply filters to lists of available assets when generating a top level index file. Systems and methods for assigning product IDs and associating them with information concerning the capabilities of the devices to which the product IDs are assigned are described in U.S. Provisional Patent Application Ser. No. 61/581,598 to Grab et al., entitled “Systems and Methods for Identifying Consumer Electronic Products Using a Playback Device with a Product Identifier”, filed Dec. 29, 2011. The disclosure of U.S. Provisional Patent Application Ser. No. 61/581,598 is incorporated by reference herein in its entirety. Other filters that can be applied by playback servers in accordance with embodiments of the invention include (but are not limited to) filters based upon the location of the playback device (i.e. country/region), and languages associated with a specific user. Various filters that can be applied to generate a top level index file in accordance with embodiments of the invention are discussed further below.


When the playback server 18 receives a play request, the playback server retrieves cryptographic information required to playback protected streams of content. The playback device can then request portions of container files containing streams of content from one or more servers within a content delivery network 14 and can use the cryptographic information to access protected content. Systems and methods for the digital rights management of protected streams used in adaptive bitrate streaming are described in U.S. patent application Ser. No. 13/340,623 to Kiefer et al., entitled “Systems and Methods for Playing Back Alternative Streams of Protected Content Protected Using Common Cryptographic Information”, filed Dec. 29, 2011. The disclosure of U.S. patent application Ser. No. 13/340,623 is incorporated by reference herein in its entirety.


During playback, playback devices 12 can provide play event reports to the playback server 18. The play event reports can include information including (but not limited to) the current stream(s) from which the playback device is requesting data and the current playback location of the playback device. In many embodiments, the playback server 18 responds to the play event reports by instructing the playback device to continue playback or to cease playback. In several embodiments, the playback server enforces concurrency limits on playback devices. The term concurrency limit in the context of adaptive bitrate streaming systems describes the number of playback devices that can simultaneously playback content associated with a specific user account. When a concurrency limit is exceeded, the playback server 18 can send an instruction to a playback device 12 directing it to cease playback. In a number of embodiments, playback location information provided in play event reports can be utilized to enable a user to switch from playing back content on a first device to playing back content on a second device and the second device will automatically resume content playback at the last playback location of the first playback device. In addition, a user that suspends playback on a first playback device can resume playback on the same playback device or a second playback device at some later point in time.


Although a specific streaming system is illustrated in FIG. 1, playback servers that automatically generate top level index files can be incorporated into any of a variety of streaming system architectures in accordance with embodiments of the invention. Playback devices that can be utilized to perform network bandwidth measurements during a streaming session in accordance with embodiments of the invention are discussed further below.


Playback Devices


In the embodiment illustrated in FIG. 1, playback devices include personal computers, CE players, and mobile phones. In other embodiments, playback devices can include consumer electronics devices such as DVD players, Blu-ray players, televisions, set top boxes, video game consoles, tablets, and other devices that are capable of connecting to a server and playing back encoded media. The basic architecture of a playback device in accordance with an embodiment of the invention is illustrated in FIG. 2. The playback device 30 includes a processor 32 in communication with non-volatile memory 34 and volatile memory 36. In the illustrated embodiment, the non-volatile memory includes a client application 38 that configures the processor and the playback device to stream content from a remote server. The non-volatile memory 34 also includes device cryptographic data 39 that can be utilized in accessing encrypted content and a product ID 40 that can be utilized to identify the capabilities of the playback device.


During operation, the client application 38 can configure the playback device to purchase content from a content store and request a top level index file 42 from a playback server. As noted above, the request for a top level index file can include the product ID 40 of the playback device, which can be used to filter the assets that are described in the top level index file. When the top level index file 42 is received from the playback server, the client application 38 configures the playback device to store the top level index file 42 in memory 36 and request content cryptographic information 44 to playback requested streams from the playback server (or a separate DRM server) in response to a user instruction to playback content. The content cryptographic information 44 received from the playback server can also be stored in memory 36. The client application 38 can then configure the playback device 30 to playback content by requesting portions of container files containing content from a server within a content delivery network. The specific container files selected by the client application 38 can be determined based upon the information available to the client application within the top level index file 42. When the playback device receives the requested portions of the container files, the client application 38 can access protected content within the requested portions of the container files using the content cryptographic information 44. The client application can continue to request and playback content from different container files depending upon the prevailing streaming conditions until a user instruction suspending playback is received or until playback completes.


Although a specific playback device architecture is illustrated in FIG. 2, any of a variety of architectures including architectures where the client application is located on disk or some other form of storage and is loaded into volatile memory at runtime can be utilized to implement playback devices for use in adaptive bitrate streaming systems in accordance with embodiments of the invention. Furthermore, any of a variety of system architectures including (but not limited) to the system architecture illustrated in FIG. 1 can be utilized to perform adaptive bitrate streaming using top level index files that are automatically generated in response to request from playback devices in accordance with embodiments of the invention.


Content Playback


A process for playing back content using a top level index file generated in response to a request from a playback device in accordance with an embodiment of the invention is illustrated in FIG. 3. The process 50 includes purchase (52) of content. The purchase can be performed using a playback device or can be performed using another device. In many embodiments, the purchase is made via an online content store that provides an electronic ticket or token that can be utilized to obtain access to the content. In order to access the content, the playback device requests the generation of a top level index file customized for the specific playback device from a playback server. In many embodiments, the top level index file is customized in the sense that the playback server filters all available assets to generate a top level index file that describes the assets that are available and/or best suited to playback by the playback device. Once the custom top level index file is retrieved (54), the playback device obtains (56) cryptographic information that enables playback of protected streams identified within the top level index file. In many embodiments, playback devices wait until a playback request is received from a user and then requests cryptographic information from the playback server.


When a playback device possesses a top level index file and any necessary cryptographic information, the playback device can commence streaming (58) content by requesting portions of one or more container files containing encoded media. Any of a variety of processes can be utilized to select initial streams including (but not limited to) selecting the lowest bitrate streams, performing a bandwidth probe in a manner similar to the manner disclosed in U.S. patent application Ser. No. 13/251,061 to van der Schaar et al., entitled “Systems and Methods for Determining Available Bandwidth and Performing Initial Stream Selection When Commencing Streaming Using Hypertext Transfer Protocol”, filed Sep. 30, 2011, or estimating available bandwidth using another technique. The disclosure of U.S. patent application Ser. No. 13/251,061 is incorporated by reference herein in its entirety.


Once playback commences (60), adaptive bitrate streaming can be performed. During playback, play event reports can be provided to a playback server to provide information concerning 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. When a play event report is provided to the playback server, the playback server can provide a play event instruction to the playback device. In the illustrated embodiment, the play event instructions that can be received (62) by the playback device including a “PLAY” instruction to continue playback and a “STOP” instruction to cease playback. As is discussed further below, the ability of a playback server to stop playback on a playback device enables the playback device to enforce concurrency requirements across multiple playback devices associated with a user. The combination of the play event reports and the event playback instructions can also be utilized by the playback server to enable a second playback device to resume playback of content at the last playback location reported by a first playback device. In this way, a user can seamlessly move between playback devices without the need to seek to a location to continue playback.


Although a specific process is illustrated in FIG. 3, any of a variety of processes can be utilized for requesting a customized top level index file and playing back content in accordance with embodiments of the invention. Playback servers and processes for automatically generating index files in accordance with embodiments of the invention are


Automatic Generation of Top Level Indexes


Playback servers in accordance with embodiments of the invention maintain a database of assets associated with specific pieces of content and can be configured by a playback management application to retrieve and filter information concerning assets to automatically generate a top level index file for a specific playback device. The databases maintained by the playback servers can list the name of the file containing the asset, and the content delivery network(s) on which the asset is located. When the asset is a video stream, the database can describe characteristics of the video stream including (but not limited to) a language associated with the video stream, the maximum bitrate at which the video stream is encoded, the frame rate of the video stream, the resolution and/or sample aspect ratio of the video stream. When the asset is an audio stream, the database can describe 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 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 concerning assets, the playback device can maintain information concerning playback capabilities of playback devices. In a number of embodiments, the information concerning playback capabilities of different playback devices is indexed using a product ID. In many embodiments, the playback device also maintains information concerning rules regulating the usage of different assets based upon criteria including (but not limited to) the type of playback device, the playback capabilities of a playback device, the location of the playback device (e.g. country/region), and/or requested language(s). Although specific pieces of information are described above as being associated in a database maintained by a playback server, any of a variety of pieces of information can be maintained in any of a variety of data structures to enable generation of a top level index file by a playback server in accordance with an embodiment of the invention. As is discussed further below, the information maintained by the playback server can be filtered in real time in response to a request for a top level index file from a playback device to generate a top level index file that only includes links to the assets that the playback device is permitted to playback.


A process for generating a top level index file using information concerning assets associated with specific pieces of content maintained by a playback server in accordance with an embodiment of the invention is illustrated in FIG. 4. In the illustrated embodiment, the process 70 commences when the playback server receives (72) a request for a top level index file with respect to a specific piece of content from a specific playback device. As discussed above, the request can include information describing the playback device including (but not limited to) the playback capabilities of the playback device, a user account to which the playback device is registered, and information indicative of the geographic location of the playback device (e.g. the I.P. address of the playback device). In many embodiments, the capabilities of the playback device are identified using a product ID, which is associated with specific playback capabilities in a database accessible to the playback server.


The playback server retrieves (74) assets associated with the requested piece of content. The playback server filters (76) the assets based upon one or more filters associated with the capabilities of the playback device, the preferences of the user, and the requirements of the content owner. Accordingly, different top level index files can be generated with respect to the same content dependent on factors including (but not limited to) differences in playback capabilities between devices, differences in geographic location, and/or differences in language preferences associated with the playback devices. Processes for retrieving and filtering assets associated with a specific piece of content in accordance with an embodiment of the invention are discussed further below. Following filtering, the remaining assets can be utilized to generate (78) the top level index file, which can be provided (80) to the playback device. In a number of embodiments, the top level index file is securely forward using a secure communication technique including but not limited to Secure Socket Layer (SSL) communication or an equivalent secure communication protocol.


Although a specific process for generating a top level index file in accordance with an embodiment of the invention is illustrated in FIG. 4, any of a variety of processes involving collecting information concerning assets associated with a specific piece of content and generating an index file that indexes the assets that are to be made available to a playback device by an adaptive bitrate streaming system can be utilized in accordance with embodiments of the invention. Specific processes for filtering the assets that are included in a top level index file in accordance with embodiments of the invention are discussed below.


Filtering Assets for Inclusion in Top Level Index Files


Typically, more assets or streams are created than are necessary for adaptive bitrate streaming of content by a playback device. In many instances, video streams are created for different classes of playback device. For example, lower bitrate streams can be created for devices that will stream content over cellular data networks and higher bitrate streams can be created for devices that will stream content over a home network connected to the Internet via a high speed Internet connection. In addition, different video streams can be created with different aspect ratios and different audio streams can be created for different languages. In several embodiments, content stores offer premium high resolution content and a playback device that has only purchased lower resolution content is not permitted to access high resolution content. In many embodiments, specific streams may not be accessible in geographic regions. When a top level index file is created in real time in response to a request from a specific playback device, the playback server that creates the top level index file can initially gather information concerning the assets associated with a specific piece of content or title. The playback server can then apply one or more filters to the list of available assets to produce a list of assets that satisfies criteria including (but not limited to) criteria with respect to the capabilities of the playback device, the preferences of the user, and/or the requirements of the content owner.


A process for producing a list of assets to which a playback device is granted access in accordance with an embodiment of the invention is illustrated in FIG. 5. The process 90 includes retrieving video (92), audio (94), and/or subtitle or subtext (96) assets. In many embodiments, the process can also include retrieving other types of assets including (but not limited to) metadata assets and/or trick play stream assets. When the assets associated with a piece of content have been retrieved, the playback server can filter (98) the assets to exclude assets that are not capable of being played back by the playback device, not permitted to be played back, or are not desired to be played back.


The information concerning assets associated with the content collected by the playback server can include information concerning assets that are both capable of being played back by the playback device and permitted to be played back by the content owner. However, the information may also include information concerning assets that the playback device is not permitted to playback, or assets that are not desired for playback by the user. Assets that may not be permitted for playback can include (but are not limited to) premium content assets that have not been purchased (e.g. a high definition video stream) or assets that are not permitted to be played back within a specific geographic location or region, assets that the playback device is incapable of playing back including (but to limited to) streams encoded in unsupported formats or using profiles and/or buffer sizes that are not supported by the playback device, or assets that the playback device is not securely capable of playing back (e.g. the playback device has an unencrypted digital output and a content provider is not willing to allow high definition content to be streamed to such a device). Assets that a user may not wish to playback include (but is not limited to) content in a language that is not relevant to a specific user, video assets having an aspect ratio that is not the same as the display aspect ratio of the playback device (where video assets are associated with the content that have the same aspect ratio as the device's display aspect ratio), content encoded at a resolution beyond the resolution of the playback device's display, and/or content encoded at a maximum bitrate exceeding the maximum data rate of the playback device's network connection. Although specific filters are discussed above, the criteria utilized by a playback server to filter (98) the initial list of assets to generate a list of assets for inclusion in a top level index file are only limited by the requirements of a specific adaptive bitrate streaming system.


Once filtering has been applied to the list of assets, a filtered list of assets can be returned (100) and used to generate a top level index file. In the illustrated embodiment, the filtered list of assets corresponds to the content streams that the playback server is permitting the playback device to access.


Although a specific process is illustrated in FIG. 5, any of a variety of processes can be utilized to retrieve and filter the assets that will be included in a top level index file as appropriate to the requirements of a specific application in accordance with an embodiment of the invention.


Generating a Top Level Index SMIL File


In a number of embodiments, the top level index file generated by a playback server in response to a request from a playback device is a SMIL file, which is an XML file that includes a list of URIs describing each of the streams and the container files that contain the streams. The URI can include information such as the “system-bitrate” of the stream contained within the stream and information concerning the location of specific pieces of data within the container file.


The basic structure of a SMIL file involves providing an XML declaration and a SMIL element. The SMIL element defines the streams or assets available for by the playback device and includes a HEAD element, which is typically left empty and a BODY element that typically only contains a PAR (parallel) element. The PAR element describes streams that can be played simultaneously (i.e. include media that can be presented at the same time).


The SMIL specification defines a number of child elements to the PAR element that can be utilized to specify the streams available for use in adaptive bitrate streaming. The VIDEO, AUDIO and TEXTSTREAM elements can be utilized to define a specific video, audio or subtitle stream. The VIDEO, AUDIO and TEXTSTREAM elements can collectively be referred to as media objects. The basic attributes of a media object are the SRC attribute, which specifies the full path or a URI to a container file containing the relevant stream, and the XML:LANG attribute, which includes a 3 letter language code. Additional information concerning a media object can be specified using the PARAM element. The PARAM element is a standard way within the SMIL format for providing a general name value pair. In a number of embodiments of the invention, specific PARAM elements are defined that are utilized during adaptive bitrate streaming.


In many embodiments, a “header-request” PARAM element is defined that specifies the size of the header section of the container file containing the stream. The value of the “header-request” PARAM element typically specifies the number of bytes between the start of the file and the start of the encoded media within the file. In many embodiments, the header contains information concerning the manner in which the media is encoded and a playback device retrieves the header prior to playback of the encoded media in order to be able to configure the decoder for playback of the encoded media. An example of a “header-request” PARAM element is as follows:



















<param




  name=″header-request″




  value=″1026″




  valuetype=″data″ />










In a number of embodiments, a “mime” PARAM element is defined that specifies the MIME type of the stream. A “mime” PARAM element that identifies the stream as being an H.264 stream (i.e. a stream encoded in accordance with the MPEG-4 Advanced Video Codec standard) is as follows:



















<param




  name=″mime″




  value=″V_MPEG4/ISO/AVC″




  valuetype=″data″ />










The MIME type of the stream can be specified using a “mime” PARAM element as appropriate to the encoding of a specific stream (e.g. AAC audio or UTF-8 text stream).


When the media object is a VIDEO element, additional attributes are defined within the SMIL file format specification including the systemBitrate attribute, which specifies the bitrate of the stream in the container file identified by the VIDEO element, and width and height attributes, which specify the dimensions of the encoded video in pixels. Additional attributes can also be defined using the PARAM element. In several embodiments, a “vbv” PARAM element is defined that specified the VBV buffer size of the video stream in bytes. The video buffering verifier (VBV) is a theoretical MPEG video buffer model used to ensure that an encoded video stream can be correctly buffered and played back at the decoder device. An example of a “vbv” PARAM element that specifies a VBV size of 1000 bytes is as follows:



















<param




  name=″vbv″




  value=″1000″




  valuetype=″data″ />










An example of VIDEO element including the attributes discussed above is as follows:



















<video




   src=″http://cnd.com/video1_620kbps.mkv″




   systemBitrate=″620″




   width=″480″




   height=″270″ >




   <param




    name=″vbv″




    value=″1000″




    valuetype=″data″ />




</video>










Adaptive bitrate streaming systems in accordance with embodiments of the invention can support trick play streams, which can be used to provide smooth visual search through source content encoded for adaptive bitrate streaming. A trick play stream can be encoded that appears to be an accelerated visual search through the source media when played back, when in reality the trick play stream is simply a separate track encoding the source media at a lower frame rate. In many embodiments of the system, a VIDEO element that references a trick play track is indicated by the systemBaseProfile attribute of the VIDEO element. In other embodiments, any of a variety of techniques can be utilized to signify within the top level index file that a specific stream is a trick play stream. An example of a trick play stream VIDEO element in accordance with an embodiment of the invention is as follows:
















<video



   src=″http://cnd.com/video_test2_600kbps.mkv″



   systemBaseProfile=″DivXPlusTrickTrack″



   width=″480″



   height=″240″>



   <param name=″vbv″ value=″1000″ valuetype=″data″ />



   <param name=″header-request″ value=″1000″ valuetype=″data″ />



  </video>









In a number of embodiments of the invention, a “reservedBandwidth” PARAM element can be defined for an AUDIO element. The “reservedBandwidth” PARAM element specifies the bitrate of the audio stream in Kbps. An example of an AUDIO element specified in accordance with an embodiment of the invention is as follows:



















<audio




 src=″http://cnd.com/audio_test1_277kbps.mkv″




 xml.lang=″gem″




<param




  name=″reservedBandwidth″




  value=″128″




  valuetype=″data″ />




/>










In several embodiments, the “reservedBandwidth” PARAM element is also defined for a TEXTSTREAM element. An example of a TEXTSTREAM element including a “reservedBandwidth” PARAM element in accordance with an embodiment of the invention is as follows:



















<textstream




 src=″http://cnd.com/text_stream_ger.mkv″




 xml:lang=″gem″




<param




  name=″reservedBandwidth″




  value=″32″




  valuetype=″data″ />




/>










In other embodiments, any of a variety of mechanisms can be utilized to specify information concerning VIDEO, AUDIO, and SUBTITLE elements as appropriate to specific applications.


A SWITCH element is a mechanism defined within the SMIL file format specification that can be utilized to define adaptive or alternative streams. An example of the manner in which a SWITCH element can be utilized to specify alternative video streams at different bitrates is as follows:



















<switch>




  <video src=″http://cnd.com/video_test1_300kbps.mkv″/>




  <video src=″http://cnd.com/video_test2_900kbps.mkv″/>




  <video src=″http://cnd.com/video_test3_1200kbps.mkv″/>




</switch>










The SWTICH element specifies the URLs of three alternative video streams. The file names indicate that the different bitrates of each of the streams. As is discussed further below, the SMIL file format specification provides mechanisms that can be utilized in accordance with embodiments of the invention to specify within the top level index SMIL file additional information concerning a stream and the container file in which it is contained.


In many embodiments of the invention, the EXCL (exclusive) element is used to define alternative tracks that do not adapt during playback with streaming conditions. For example, the EXCL element can be used to define alternative audio tracks or alternative subtitle tracks. An example of the manner in which an EXCL element can be utilized to specify alternative English and French audio streams is as follows:



















<excl>




 <audio




  src=″http://cnd.com/english-audio.mkv″




  xml:lang=″eng″/>




 <audio




  src=″http://cnd.com/french-audio.mkv″




  xml:lang=″fre″/>




</excl>










An example of a top level index SMIL file that defines the attributes and parameters of two alternative video levels, an audio stream and a subtitle stream in accordance with an embodiment of the invention is as follows:














<?xml version=″1.0″ encoding=″utf-8″?>


<smil xmlns=″http://www.w3.org/ns/SMIL″ version=″3.0″ baseProfile=″Language″>


 <head>


 </head>


 <body>


  <par>


   <switch>


    <video


     src=″http://cnd.com/video_test1_300kbps.mkv″


     systemBitrate=″300″


     vbv=″600″


     width=″320″


     height=″240″ >


     <param


      name=″vbv″


      value=″600″


      valuetype=″data″ />


     <param


      name=″header-request″


      value=″1000″


      valuetype=″data″ />


    </video>


    <video


     src=″http://cnd.com/video_test2_600kbps.mkv″


     systemBitrate=″600″


     vbv=″900″


     width=″640″


     height=″480″>


     <param


      name=″vbv″


      value=″1000″


      valuetype=″data″ />


     <param


      name=″header-request″


      valuetype=″data″ />


    </video>


   </switch>


   <audio


    src=″http://cnd.com/audio.mkv″


    xml:lang=″eng″>


    <param


     name=″header-request″


     value=″1000″


     valuetype=″data″ />


    <param name=″reservedBandwidth″ value=″128″ valuetype=″data″ />


   </audio>


   <textstream


    src=″http://cnd.com/subtitles.mkv″


    xml:lang=″eng″>


    <param


     name=″header-request″


     value=″1000″


     valuetype=″data″ />


    <param name=″reservedBandwidth″ vaue=″32″ valuetype=″data″ />


   <textstream>


  </par>


 </body>


</smil>









When the playback device receives a top level index SMIL file, the playback device can parse the SMIL file to identify the available streams. The playback device can then select initial stream and can use the SMIL file to identify the portions of the container file to download to obtain information concerning the encoding of a specific stream and/or to obtain an index to the encoded media within the container file.


A process for building a top level index SMIL file in accordance with an embodiment of the invention is illustrated in FIG. 6. The process 110 involves generating (112) headers for the SMIL file, and generating XML strings for the video (114), audio (116), subtitle/subtext (118) and/or any other assets (e.g. trick play streams, metadata streams) that are in the list of assets that the playback server is permitting the playback device to access. At which point, the finalized SMIL file is generated (120).


An assetID is assigned to audio and text streams to uniquely identify the stream. This value is passed up to the server so the server knows the exact audio, subtitle stream being played.



















<param




  name=″assetID″




  value=″123456″




  valuetype=″data″ />










Although top level index SMIL files are described above, any of a variety of top level index file formats can be utilized to automatically create top level index files for a specific playback device as appropriate to a specific application in accordance with embodiments of the invention. The use of top level index files to enable playback of encoded media using adaptive bitrate streaming in accordance with embodiments of the invention is discussed further below.


Protected Streams


Some or all of the assets associated with a specific piece of content may be encrypted or technically protected. Digital Rights Management (DRM) systems enable the communication of cryptographic information to playback devices so that the playback device can access protected streams in the clear (i.e. in an unencrypted form). DRM systems that can be utilized in adaptive bitrate streaming systems in accordance with embodiments of the invention are described in U.S. patent application Ser. No. 13/340,623. In many embodiments, the playback server acts as a DRM server. In several embodiments, the playback server is configured to obtain cryptographic information from the playback server.


A process for providing cryptographic information to a playback device in accordance with an embodiment of the invention is illustrated in FIG. 7. The process 130 includes checking (132) concurrency rules to confirm that the number of devices on which the user is currently playing back content and/or that have requested the right to playback the content is less than a predetermined concurrency limit. Assuming that the concurrency rules are satisfied, the process retrieves (134) cryptographic information enabling access to the protected streams associated with the specific piece of content being accessed by the playback device. A playback server can generate the cryptographic information or obtain the cryptographic information from a DRM server. The cryptographic information is then provided (136) to the playback device.


In many embodiments, the playback device includes cryptographic information that is locally stored on the playback device. The device cryptographic information is typically issued to the playback device at the time the playback device is first registered with the playback server and/or a DRM server. In several embodiments, the content cryptographic information provided to the playback device is encrypted so that it can be accessed using the playback device's device cryptographic information. In other embodiments, any of a variety of different techniques can be utilized to securely provide the playback device with cryptographic information to access protected streams.


Although a specific process for providing cryptographic information to a playback device in FIG. 7, any of a variety of processes can be utilized in accordance with embodiments of the invention. In addition, the playback device can obtain cryptographic information from a DRM server in a process that is entirely independent from the playback server and/or the automatic generation of a top level index file. Once a playback device has the necessary cryptographic information to playback protected streams of content, the playback device can commence playback. During playback, the playback device can provide periodic play event reports to the playback server. The generation and handling of play event reports in accordance with embodiments of the invention are discussed further below.


Play Event Reports


Playback devices in accordance with embodiments of the invention can generate play event reports periodically and/or in response to specific events such as (but not limited to) receipt of user instructions (e.g. play, stop, pause commands). The information that can be included in an event report typically includes the streams being accessed by the playback device and the current playback location in one or more of the streams. In several embodiments, the event report includes (but is not limited to) the time, the audio, and/or subtitle assetIDs, and/or a bandwidth measurement. The playback location can be utilized to resume playback of the content. The server can utilize play events to perform a variety of functions including (but not limited to) enabling playback to shift from one device to another device. When a user commences playing content on a first device and then commences playback of the same content on a second device, the playback server can provide the second playback device with the current playback location from the most recent play event report from the first device. The second playback device can then use the playback location information to resume playback of the content. In this way, the user can seamlessly transition from viewing content on a first playback device to a second playback device.


A process for handling play event reports in accordance with an embodiment of the invention is illustrated in FIG. 8. The process 150 includes receiving (152) play event reports and determining the appropriate response. In embodiments where there are concurrency limits, the response to a play event report may be to instruct the playback device to “STOP” playback of the content in response to a request to playback content on another device that exceeds a predetermined concurrency limit. Where the content is rented, the playback may exceed the rental period and the playback server can instruct the playback device to “STOP” playback. The playback server could also instruct the playback device to request content from alternative streams or to switch to accessing content on a different content delivery network, which may involve transmitting a new top level index file. In several embodiments, the playback server can instruct the playback device to display an error message or string. Typically, however, the response is to instruct the playback device to continue to play the content. The specific conditions under which a playback server will suspend playback or allow playback to continue are determined based upon the requirements of a specific application. The response is sent (156) to the playback device and the playback device manages playback accordingly.


Although a specific process for handling play event reports is illustrated in FIG. 8, any of a variety of process for handling play event reports appropriate to the requirements of a specific application can be utilized in accordance with embodiments of the invention.


Communicating During Adaptive Streaming


Processes are described above for automatically generating a top level index file in response to a request to access content from a playback device. A timing diagram illustrating communication between a playback device, a playback server, and a content delivery network during the adaptive bitrate streaming of content in accordance with an embodiment of the invention is illustrated in FIG. 9. The timing diagram shows a playback device 12 requesting an index file from a playback server 18. The playback server responds to the request by generating a top level index file using a process similar to the process outlined above. The playback server 18 provides the top level index file to the playback device 12, which then sends a playback request to the playback server. The playback server checks concurrency rules and retrieves cryptographic information enabling playback of protected streams. The cryptographic information is provided to the playback device 12. The playback device can then use the top level index file to request content from a content delivery network 14. In many embodiments, the playback device utilizes adaptive bitrate streaming to obtain the content from the content delivery network server(s). The playback device 12 can utilize the cryptographic information received from the playback server 18 to access protected streams of content in the clear and playback the content. During playback, the playback device 12 sends playback event reports to the playback server. The playback server 18 processes the play event report and sends a response to the playback device 12, which may cause the playback device to perform any of a variety of functions including (but not limited to) suspending playback of the content.


Although a specific sequence of communication is illustrated in FIG. 9, playback devices, playback servers, and content delivery networks can communicate in any of a variety of ways appropriate to a specific application in accordance with embodiments of the invention.


Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention may be practiced otherwise than specifically described, including various changes in the implementation such as utilizing encoders and decoders that support features beyond those specified within a particular standard with which they comply, without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive.

Claims
  • 1. A method of streaming a piece of content using a set of server computer systems, the method comprising: encoding multiple video streams associated with a piece of content using an encoding system;encrypting the multiple encoded video streams based upon common cryptographic information to obtain multiple protected video streams;storing the multiple protected video streams in memory at a server system;storing the common cryptographic information at a digital rights management system;receiving a request from a playback device at a playback server system, where the request (i) identifies a piece of content and (ii) describes the playback device;selecting a set of streams based upon information that describes a plurality of streams associated with the identified piece of content, where: the selection is based upon at least one device capability possessed by the playback device, andthe selected set of streams includes a plurality of the multiple protected video streams;in response to the received request, generating a top level index that describes each stream in the selected set of streams and enables retrieval of the common cryptographic information;sending the generated top level index to the playback device using the playback server system;receiving at the server system a request from the playback device for at least a portion of an initial stream, where the initial stream is determined by the playback device from the selected set of streams described by the top level index, and where the initial stream is one of the multiple protected video streams;sending the requested at least a portion of the initial stream to the playback device from the server system;receiving at the digital rights management system a request from the playback device for the common cryptographic information; andsending the common cryptographic information to the playback device from the digital rights management system, where the common cryptographic information sent to the playback device is encrypted.
  • 2. The method of claim 1, wherein the top level index comprises information to access a portion of a container file containing the common cryptographic information.
  • 3. The method of claim 1, wherein the top level index comprises information that enables retrieval of at least one video stream of the multiple protected video streams.
  • 4. The method of claim 1, wherein the top level index comprises information that enables retrieval of at least one trick play stream of the set of streams.
  • 5. The method of claim 1, wherein the top level index comprises information that identifies a location of a set of one or more assets containing the selected set of streams.
  • 6. The method of claim 1, wherein the top level index comprises information that enables the playback device to request a set of one or more index files that index the available streams.
  • 7. The method of claim 1, wherein the top level index comprises location information for each stream.
  • 8. The method of claim 1 further comprising, in response to the received request, providing the playback device with a playback location in the piece of content from a previous play event.
  • 9. The method of claim 1, wherein the top level index describes at least a maximum bitrate of each of the plurality of the multiple protected video streams.
  • 10. The method of claim 1, wherein the common cryptographic information stored at the digital rights management system is encrypted.
  • 11. The method of claim 1, wherein the at least one device capability comprises at least one selected from the group consisting of playback capabilities, display aspect ratio, and/or anticipated maximum network connection data rate.
  • 12. The method of claim 1, wherein the at least one capability is communicated to the server system in the form of a product identifier.
  • 13. The method of claim 12, wherein the method further comprises: maintaining a database of product identifiers and associated device capabilities by the server system; andutilizing the product identifiers provided by the playback device to retrieve the associated device capabilities; andapplying filters to lists of available assets when generating the top level index file.
  • 14. The method of claim 13, wherein the database lists the name of a file containing an asset, and at least one content delivery network on which the asset is located.
  • 15. The method of claim 13, wherein, when an asset is a video stream, the database describes characteristics of the video stream, the characteristics comprising at least one selected from the group consisting of a language associated with the video stream, the maximum bitrate at which the video stream is encoded, the frame rate of the video stream, the resolution and a sample aspect ratio of the video stream.
  • 16. The method of claim 13, wherein, when an asset is an audio stream, the database describes characteristics of the audio stream, the characteristics comprising at least one selected from the group consisting of a language of the audio stream, the encoding of the audio stream, and the bandwidth requirements of the audio stream.
  • 17. The method of claim 13, wherein, when the asset is a subtitle stream, the database describes characteristics of the subtitle stream, the characteristics comprising at least one selected from the group consisting of a language of the subtitle stream, the encoding of the subtitle stream, and the bandwidth requirements of the subtitle stream.
  • 18. The method of claim 1, wherein the request can describe the playback device with information comprising at least one selected from the group consisting of playback capabilities of the playback device, a user account to which the playback device is registered, and information indicative of the geographic location of the playback device.
  • 19. The method of claim 1, wherein the top level index is a top level index file comprising an XML string for each stream in the set of streams.
  • 20. The method of claim 1, wherein the set of streams comprises a set of alternative video streams associated with the piece of content and each alternative stream encodes the piece of content at a different bitrate.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patent application Ser. No. 16/703,668, entitled “Systems, Methods, And Media for Playing Back Protected Video Content By Using Top Level Index File” to Braness et al., filed Dec. 4, 2019, which is a continuation application of U.S. patent application Ser. No. 16/207,405, entitled “Systems and Methods for Automatically Generating Top Level Index Files” to Braness et al., filed Dec. 3, 2018 and issued on Jan. 21, 2020 as U.S. Pat. No. 10,542,061, which is a continuation application of U.S. patent application Ser. No. 15/658,057, entitled “Systems and Methods for Automatically Generating Top Level Index Files” to Braness et al., filed Jul. 24, 2017 and issued on Dec. 11, 2018 as U.S. Pat. No. 10,154,075, which is a continuation of U.S. patent application Ser. No. 15/009,593, entitled “Systems and Methods for Automatically Generating Top Level Index Files” to Braness et al., filed Jan. 28, 2016 and issued on Jun. 12, 2018 as U.S. Pat. No. 9,998,515, which is a continuation of U.S. patent application Ser. No. 14/336,392, entitled “Systems and Methods for Automatically Generating Top Level Index Files” to Braness et al., filed Jul. 21, 2014 and issued on Feb. 23, 2016 as U.S. Pat. No. 9,270,720, which is a continuation of U.S. patent application Ser. No. 13/341,789, entitled “Systems and Methods for Automatically Generating Top Level Index Files” to Braness et al., filed Dec. 30, 2011 and issued on Jul. 22, 2014 as U.S. Pat. No. 8,787,570, which claims priority to U.S. Provisional Application Ser. No. 61/529,403, entitled “Automatic Generation of SMIL Files” to Braness et al., filed Aug. 31, 2011, the disclosures of which are incorporated herein by reference in their entireties.

US Referenced Citations (480)
Number Name Date Kind
3609227 Kuljian Sep 1971 A
4694491 Horne et al. Sep 1987 A
5132992 Yurt et al. Jul 1992 A
5341474 Gelman et al. Aug 1994 A
5400401 Wasilewski et al. Mar 1995 A
5477263 Ocallaghan et al. Dec 1995 A
5544318 Schmitz et al. Aug 1996 A
5550863 Yurt et al. Aug 1996 A
5574785 Ueno et al. Nov 1996 A
5600721 Kitazato Feb 1997 A
5614940 Cobbley et al. Mar 1997 A
5621794 Matsuda et al. Apr 1997 A
5630005 Ort May 1997 A
5642338 Fukushima et al. Jun 1997 A
5761417 Henley et al. Jun 1998 A
5805700 Nardone et al. Sep 1998 A
5813010 Kurano et al. Sep 1998 A
5828370 Moeller et al. Oct 1998 A
5838791 Torii et al. Nov 1998 A
5852664 Iverson et al. Dec 1998 A
5854873 Mori et al. Dec 1998 A
5874986 Gibbon et al. Feb 1999 A
5878135 Blatter et al. Mar 1999 A
5892915 Duso et al. Apr 1999 A
5907658 Murase et al. May 1999 A
5923869 Kashiwagi et al. Jul 1999 A
5973679 Abbott et al. Oct 1999 A
6002834 Hirabayashi et al. Dec 1999 A
6009237 Hirabayashi et al. Dec 1999 A
6016381 Taira et al. Jan 2000 A
6038316 Dwork et al. Mar 2000 A
6057832 Lev et al. May 2000 A
6065050 DeMoney May 2000 A
6108422 Newby et al. Aug 2000 A
6151634 Glaser et al. Nov 2000 A
6154172 Piccionelli et al. Nov 2000 A
6154173 Lennen et al. Nov 2000 A
6199107 Dujari Mar 2001 B1
6226618 Downs et al. May 2001 B1
6263313 Milsted et al. Jul 2001 B1
6266483 Okada et al. Jul 2001 B1
6282320 Hasegawa et al. Aug 2001 B1
6320905 Konstantinides Nov 2001 B1
6347145 Kato et al. Feb 2002 B2
6351538 Uz Feb 2002 B1
6373803 Ando et al. Apr 2002 B2
6389473 Carmel et al. May 2002 B1
6389538 Gruse et al. May 2002 B1
6398245 Gruse et al. Jun 2002 B1
6415031 Colligan et al. Jul 2002 B1
6445877 Okada et al. Sep 2002 B1
6453115 Boyle Sep 2002 B1
6453116 Ando et al. Sep 2002 B1
6504873 Vehvilaeinen Jan 2003 B1
6512883 Shim et al. Jan 2003 B2
6516064 Osawa et al. Feb 2003 B1
6535920 Parry et al. Mar 2003 B1
6578200 Takao et al. Jun 2003 B1
6587837 Spagna et al. Jul 2003 B1
6594699 Sahai et al. Jul 2003 B1
6654933 Abbott et al. Nov 2003 B1
6671408 Kaku Dec 2003 B1
6690838 Zhou Feb 2004 B2
6721794 Taylor et al. Apr 2004 B2
6724944 Kalevo et al. Apr 2004 B1
6741252 Hijiri et al. May 2004 B2
6742082 Lango et al. May 2004 B1
6751623 Basso et al. Jun 2004 B1
6810131 Nakagawa et al. Oct 2004 B2
6813437 Ando et al. Nov 2004 B2
6859791 Spagna et al. Feb 2005 B1
6868143 Menon et al. Mar 2005 B1
6871006 Oguz et al. Mar 2005 B1
6912513 Candelore Jun 2005 B1
6931531 Takahashi Aug 2005 B1
6931543 Pang et al. Aug 2005 B1
6957350 Demos Oct 2005 B1
6959288 Medina et al. Oct 2005 B1
6965646 Firestone Nov 2005 B1
6970564 Kubota et al. Nov 2005 B1
6983079 Kim Jan 2006 B2
7006757 Ando et al. Feb 2006 B2
7007170 Morten Feb 2006 B2
7020287 Unger Mar 2006 B2
7023992 Kubota et al. Apr 2006 B1
7043021 Graunke et al. May 2006 B2
7051110 Hagai et al. May 2006 B2
7058177 Trimberger et al. Jun 2006 B1
7073191 Srikantan et al. Jul 2006 B2
7103906 Katz et al. Sep 2006 B1
7110542 Tripathy Sep 2006 B1
7120250 Candelore Oct 2006 B2
7124303 Candelore et al. Oct 2006 B2
7139868 Parry et al. Nov 2006 B2
7143289 Denning et al. Nov 2006 B2
7151832 Fetkovich et al. Dec 2006 B1
7167560 Yu Jan 2007 B2
7177818 Nair Feb 2007 B2
7188183 Paul et al. Mar 2007 B1
7203313 England et al. Apr 2007 B2
7212726 Zetts May 2007 B2
7231516 Sparrell et al. Jun 2007 B1
7233669 Candelore Jun 2007 B2
7233948 Shamoon et al. Jun 2007 B1
7242772 Tehranchi Jul 2007 B1
7274861 Yahata et al. Sep 2007 B2
7295673 Grab et al. Nov 2007 B2
7295752 Jain et al. Nov 2007 B1
7302490 Gupta et al. Nov 2007 B1
7315829 Tagawa et al. Jan 2008 B1
7346163 Pedlow, Jr. et al. Mar 2008 B2
7349886 Morten et al. Mar 2008 B2
7349976 Glaser et al. Mar 2008 B1
7352956 Winter et al. Apr 2008 B1
7363647 Fakharzadeh Apr 2008 B1
7376233 Candelore et al. May 2008 B2
7382879 Miller Jun 2008 B1
7397853 Kwon et al. Jul 2008 B2
7400679 Kwon et al. Jul 2008 B2
7406176 Zhu et al. Jul 2008 B2
7418132 Hoshuyama Aug 2008 B2
7443449 Momosaki et al. Oct 2008 B2
7457415 Reitmeier et al. Nov 2008 B2
7499930 Naka et al. Mar 2009 B2
7539213 Guillemot et al. May 2009 B2
7546641 Robert et al. Jun 2009 B2
7577980 Kienzle et al. Aug 2009 B2
7623759 Shimoda Nov 2009 B2
7624337 Sull et al. Nov 2009 B2
7627750 Chan Dec 2009 B1
7627888 Ganesan et al. Dec 2009 B2
7639921 Seo et al. Dec 2009 B2
7640358 Deshpande Dec 2009 B2
7640435 Morten Dec 2009 B2
7644172 Stewart et al. Jan 2010 B2
7653686 Yoneda Jan 2010 B2
7664262 Haruki Feb 2010 B2
7664872 Osborne et al. Feb 2010 B2
7697686 Puiatti et al. Apr 2010 B2
7702925 Hanko et al. Apr 2010 B2
7711052 Hannuksela et al. May 2010 B2
7734806 Park Jun 2010 B2
7756270 Shimosato et al. Jul 2010 B2
7756271 Zhu et al. Jul 2010 B2
7787622 Sprunk Aug 2010 B2
7797720 Gopalakrishnan et al. Sep 2010 B2
7818444 Brueck et al. Oct 2010 B2
7840693 Gupta et al. Nov 2010 B2
7853980 Pedlow, Jr. et al. Dec 2010 B2
7864186 Robotham et al. Jan 2011 B2
7877002 Ikeda et al. Jan 2011 B2
7881478 Derouet Feb 2011 B2
7885405 Bong Feb 2011 B1
7895311 Juenger Feb 2011 B1
7907833 Lee Mar 2011 B2
7925203 Lane Apr 2011 B2
7945143 Yahata et al. May 2011 B2
7962942 Craner Jun 2011 B1
7970835 St Jacques Jun 2011 B2
7974714 Hoffberg Jul 2011 B2
8001471 Shaver et al. Aug 2011 B2
8015491 Shaver et al. Sep 2011 B2
8073900 Guedalia et al. Dec 2011 B2
8074083 Lee et al. Dec 2011 B1
8078644 Hannuksela Dec 2011 B2
8131875 Chen Mar 2012 B1
8135041 Ramaswamy Mar 2012 B2
8148622 Rothkopf et al. Apr 2012 B2
8160157 Lamy-Bergot et al. Apr 2012 B2
8169916 Pai et al. May 2012 B1
8170210 Manders et al. May 2012 B2
8171518 White May 2012 B2
8191097 Armstrong et al. May 2012 B1
8213607 Rose et al. Jul 2012 B2
8213768 Morioka et al. Jul 2012 B2
8218439 Deshpande Jul 2012 B2
8243924 Chen et al. Aug 2012 B2
8266115 Park Sep 2012 B1
8286213 Seo Oct 2012 B2
8290157 Candelore Oct 2012 B2
8311094 Kamariotis et al. Nov 2012 B2
8312079 Newsome et al. Nov 2012 B2
8365235 Hunt et al. Jan 2013 B2
8369421 Kadono et al. Feb 2013 B2
8380041 Barton et al. Feb 2013 B2
8397265 Henocq et al. Mar 2013 B2
8401188 Swaminathan Mar 2013 B1
8402156 Brueck et al. Mar 2013 B2
8407753 Kuo Mar 2013 B2
8423889 Zagorie et al. Apr 2013 B1
8472792 Butt et al. Jun 2013 B2
8514926 Ro et al. Aug 2013 B2
8526610 Shamoon et al. Sep 2013 B2
8543842 Ginter et al. Sep 2013 B2
8555329 Frojdh et al. Oct 2013 B2
8571993 Kocher et al. Oct 2013 B2
8630419 Mori Jan 2014 B2
8631247 O'loughlin et al. Jan 2014 B2
8638935 Fasoli et al. Jan 2014 B2
8649669 Braness et al. Feb 2014 B2
8650599 Shindo et al. Feb 2014 B2
8677428 Lewis et al. Mar 2014 B2
8683066 Hurst et al. Mar 2014 B2
8725125 Klappert et al. May 2014 B2
8731193 Farkash et al. May 2014 B2
8731369 Li et al. May 2014 B2
8782268 Pyle et al. Jul 2014 B2
8787570 Braness et al. Jul 2014 B2
8804956 Hiriart Aug 2014 B2
8806188 Braness et al. Aug 2014 B2
8818896 Candelore Aug 2014 B2
8819116 Tomay et al. Aug 2014 B1
8819577 Fino Aug 2014 B2
8849950 Stockhammer et al. Sep 2014 B2
8850205 Choi et al. Sep 2014 B2
8850498 Roach et al. Sep 2014 B1
8856847 Soroushian Oct 2014 B2
8909682 Heller et al. Dec 2014 B2
8909922 Kiefer et al. Dec 2014 B2
8914534 Braness et al. Dec 2014 B2
8918533 Chen et al. Dec 2014 B2
8918535 Ma et al. Dec 2014 B2
8964977 Ziskind Feb 2015 B2
9009491 Resch Apr 2015 B2
9015782 Acharya et al. Apr 2015 B2
9037683 Yoden May 2015 B1
9038116 Knox et al. May 2015 B1
9038121 Kienzle et al. May 2015 B2
9092646 Grab et al. Jul 2015 B2
9111098 Smith et al. Aug 2015 B2
9161005 Rose et al. Oct 2015 B2
9191151 Luby et al. Nov 2015 B2
9247311 Kiefer Jan 2016 B2
9270720 Braness et al. Feb 2016 B2
9380096 Luby et al. Jun 2016 B2
9380099 Amidei et al. Jun 2016 B2
9386064 Luby et al. Jul 2016 B2
9485469 Kahn et al. Nov 2016 B2
9507776 Bartholomew Nov 2016 B2
9615061 Carney et al. Apr 2017 B2
9628536 Luby et al. Apr 2017 B2
9661044 Arana et al. May 2017 B2
9674254 Pare et al. Jun 2017 B2
9761274 Delpuch et al. Sep 2017 B2
9967521 Kahn et al. May 2018 B2
9998515 Braness et al. Jun 2018 B2
10154075 Braness et al. Nov 2018 B2
10171873 Krebs Jan 2019 B2
10225298 Cen et al. Mar 2019 B2
10542061 Braness et al. Jan 2020 B2
10623458 Cen et al. Apr 2020 B2
11115450 Braness et al. Sep 2021 B2
11349892 Cen et al. May 2022 B2
20010021276 Zhou Sep 2001 A1
20010052077 Fung et al. Dec 2001 A1
20010052127 Seo et al. Dec 2001 A1
20010053222 Wakao et al. Dec 2001 A1
20020048450 Zetts Apr 2002 A1
20020067432 Kondo et al. Jun 2002 A1
20020075572 Boreczky et al. Jun 2002 A1
20020107802 Philips Aug 2002 A1
20020114330 Cheung et al. Aug 2002 A1
20020135607 Kato et al. Sep 2002 A1
20020141503 Kobayashi et al. Oct 2002 A1
20020154779 Asano et al. Oct 2002 A1
20020161797 Gallo et al. Oct 2002 A1
20020164024 Arakawa et al. Nov 2002 A1
20020169926 Pinckney et al. Nov 2002 A1
20020169971 Asano et al. Nov 2002 A1
20030002577 Pinder Jan 2003 A1
20030043847 Haddad Mar 2003 A1
20030044080 Frishman et al. Mar 2003 A1
20030051237 Sako et al. Mar 2003 A1
20030053541 Sun et al. Mar 2003 A1
20030061369 Aksu et al. Mar 2003 A1
20030063675 Kang et al. Apr 2003 A1
20030077071 Lin et al. Apr 2003 A1
20030078930 Surcouf et al. Apr 2003 A1
20030079222 Boykin et al. Apr 2003 A1
20030081776 Candelore May 2003 A1
20030135633 Dror et al. Jul 2003 A1
20030135742 Evans Jul 2003 A1
20030142594 Tsumagari et al. Jul 2003 A1
20030152224 Candelore et al. Aug 2003 A1
20030206717 Yogeshwar et al. Nov 2003 A1
20030225696 Niwa Dec 2003 A1
20030236907 Stewart et al. Dec 2003 A1
20040001594 Krishnaswamy et al. Jan 2004 A1
20040003008 Wasilewski et al. Jan 2004 A1
20040022391 Obrien Feb 2004 A1
20040028227 Yu Feb 2004 A1
20040037421 Truman Feb 2004 A1
20040047592 Seo et al. Mar 2004 A1
20040047607 Seo et al. Mar 2004 A1
20040049690 Candelore et al. Mar 2004 A1
20040049694 Candelore Mar 2004 A1
20040073917 Pedlow et al. Apr 2004 A1
20040076237 Kadono et al. Apr 2004 A1
20040081333 Grab et al. Apr 2004 A1
20040088557 Malcolm et al. May 2004 A1
20040093494 Nishimoto et al. May 2004 A1
20040101059 Joch et al. May 2004 A1
20040101142 Nasypny May 2004 A1
20040107356 Shamoon et al. Jun 2004 A1
20040213094 Suzuki Oct 2004 A1
20040243714 Wynn et al. Dec 2004 A1
20040267952 He et al. Dec 2004 A1
20050005025 Harville et al. Jan 2005 A1
20050005143 Lang et al. Jan 2005 A1
20050013494 Srinivasan et al. Jan 2005 A1
20050063541 Candelore Mar 2005 A1
20050066063 Grigorovitch et al. Mar 2005 A1
20050076232 Kawaguchi Apr 2005 A1
20050102371 Aksu May 2005 A1
20050120132 Hutter Jun 2005 A1
20050138655 Zimler et al. Jun 2005 A1
20050144468 Northcutt Jun 2005 A1
20050177741 Chen et al. Aug 2005 A1
20050190911 Pare et al. Sep 2005 A1
20050192904 Candelore Sep 2005 A1
20050195975 Kawakita Sep 2005 A1
20050198364 Val et al. Sep 2005 A1
20050207442 Zoest et al. Sep 2005 A1
20050207578 Matsuyama et al. Sep 2005 A1
20050216752 Hofmeyr et al. Sep 2005 A1
20050227773 Lu et al. Oct 2005 A1
20050243912 Kwon et al. Nov 2005 A1
20050262257 Major et al. Nov 2005 A1
20050265555 Pippuri Dec 2005 A1
20060013568 Rodriguez Jan 2006 A1
20060015580 Gabriel et al. Jan 2006 A1
20060026654 An et al. Feb 2006 A1
20060037057 Xu Feb 2006 A1
20060093318 Cohen et al. May 2006 A1
20060095472 Krikorian et al. May 2006 A1
20060109856 Deshpande May 2006 A1
20060129909 Butt et al. Jun 2006 A1
20060165163 Burazerovic et al. Jul 2006 A1
20060168298 Aoki et al. Jul 2006 A1
20060210245 Mccrossan et al. Sep 2006 A1
20060212370 Shear et al. Sep 2006 A1
20060218251 Tanabe Sep 2006 A1
20060235883 Krebs Oct 2006 A1
20070044010 Sull et al. Feb 2007 A1
20070047645 Takashima Mar 2007 A1
20070055982 Spilo Mar 2007 A1
20070067472 Maertens et al. Mar 2007 A1
20070074254 Sloo Mar 2007 A1
20070083467 Lindahl et al. Apr 2007 A1
20070106863 Bonwick et al. May 2007 A1
20070157267 Lopez-Estrada Jul 2007 A1
20070162568 Gupta et al. Jul 2007 A1
20070162981 Morioka et al. Jul 2007 A1
20070166000 Nallur et al. Jul 2007 A1
20070180051 Kelly et al. Aug 2007 A1
20070201502 Abramson Aug 2007 A1
20070204003 Abramson Aug 2007 A1
20070204011 Shaver et al. Aug 2007 A1
20070204115 Abramson Aug 2007 A1
20070220118 Loyer Sep 2007 A1
20070250536 Tanaka et al. Oct 2007 A1
20080008455 De Lange et al. Jan 2008 A1
20080022005 Wu et al. Jan 2008 A1
20080040239 Jacobi et al. Feb 2008 A1
20080086570 Dey et al. Apr 2008 A1
20080101718 Yang et al. May 2008 A1
20080137847 Candelore et al. Jun 2008 A1
20080155615 Craner et al. Jun 2008 A1
20080160911 Chou et al. Jul 2008 A1
20080168516 Flick et al. Jul 2008 A1
20080177793 Epstein et al. Jul 2008 A1
20080282302 Steelberg et al. Nov 2008 A1
20080294901 Farrugia Nov 2008 A1
20080301734 Goldeen et al. Dec 2008 A1
20080320100 Pantos et al. Dec 2008 A1
20090010429 Kim et al. Jan 2009 A1
20090010622 Yahata et al. Jan 2009 A1
20090013195 Ochi et al. Jan 2009 A1
20090067367 Buracchini et al. Mar 2009 A1
20090077143 Macy, Jr. Mar 2009 A1
20090106082 Senti et al. Apr 2009 A1
20090132599 Soroushian et al. May 2009 A1
20090169001 Tighe et al. Jul 2009 A1
20090177301 Hayes Jul 2009 A1
20090178090 Oztaskent Jul 2009 A1
20090187957 Avkarogullari Jul 2009 A1
20090249081 Zayas Oct 2009 A1
20090282162 Mehrotra et al. Nov 2009 A1
20090310819 Hatano Dec 2009 A1
20100057576 Brodersen et al. Mar 2010 A1
20100142915 Mcdermott et al. Jun 2010 A1
20100185854 Burns et al. Jul 2010 A1
20100191590 Hakkarainen et al. Jul 2010 A1
20100198943 Harrang et al. Aug 2010 A1
20100250772 Mao Sep 2010 A1
20110010466 Fan et al. Jan 2011 A1
20110035517 Minnick et al. Feb 2011 A1
20110058675 Brueck et al. Mar 2011 A1
20110082924 Gopalakrishnan Apr 2011 A1
20110083009 Shamoon et al. Apr 2011 A1
20110093447 Goto Apr 2011 A1
20110096828 Chen et al. Apr 2011 A1
20110103374 Lajoie et al. May 2011 A1
20110116772 Kwon May 2011 A1
20110135090 Chan et al. Jun 2011 A1
20110145858 Philpott et al. Jun 2011 A1
20110158470 Martin et al. Jun 2011 A1
20110170687 Hyodo et al. Jul 2011 A1
20110173345 Knox et al. Jul 2011 A1
20110179185 Wang et al. Jul 2011 A1
20110179356 Bassali Jul 2011 A1
20110103364 Thorwirth Aug 2011 A1
20110197261 Dong et al. Aug 2011 A1
20110231569 Luby et al. Sep 2011 A1
20110238789 Luby et al. Sep 2011 A1
20110246661 Manzari et al. Oct 2011 A1
20110276676 Kang et al. Nov 2011 A1
20110296048 Knox et al. Dec 2011 A1
20110314130 Strasman Dec 2011 A1
20120005312 Mcgowan et al. Jan 2012 A1
20120005313 McGowan et al. Jan 2012 A1
20120042090 Chen et al. Feb 2012 A1
20120047542 Lewis et al. Feb 2012 A1
20120054856 Johansson Mar 2012 A1
20120059912 Fernando Mar 2012 A1
20120110120 Willig et al. May 2012 A1
20120134496 Farkash et al. May 2012 A1
20120137015 Sun May 2012 A1
20120167132 Mathews et al. Jun 2012 A1
20120170642 Braness et al. Jul 2012 A1
20120173751 Braness et al. Jul 2012 A1
20120185608 McGowan et al. Jul 2012 A1
20120209961 McCoy et al. Aug 2012 A1
20120254456 Visharam et al. Oct 2012 A1
20120303766 McGowan et al. Nov 2012 A1
20120311174 Bichot et al. Dec 2012 A1
20120331167 Hunt Dec 2012 A1
20130006869 Grab et al. Jan 2013 A1
20130007200 van der Schaar et al. Jan 2013 A1
20130007223 Luby et al. Jan 2013 A1
20130013803 Bichot et al. Jan 2013 A1
20130018632 Field Jan 2013 A1
20130051554 Braness et al. Feb 2013 A1
20130054958 Braness et al. Feb 2013 A1
20130054972 Thorwirth Feb 2013 A1
20130058480 Ziskind et al. Mar 2013 A1
20130061045 Kiefer et al. Mar 2013 A1
20130080267 McGowan Mar 2013 A1
20130080596 McGowan et al. Mar 2013 A1
20130080772 McGowan et al. Mar 2013 A1
20130081110 McGowan et al. Mar 2013 A1
20130179199 Ziskind et al. Jul 2013 A1
20130254346 McGowan et al. Sep 2013 A1
20130318249 McDonough et al. Nov 2013 A1
20140003516 Soroushian Jan 2014 A1
20140068264 Lindquist Mar 2014 A1
20140140253 Lohmar et al. May 2014 A1
20140149557 Lohmar et al. May 2014 A1
20140223303 Cox et al. Aug 2014 A1
20140280750 Panje et al. Sep 2014 A1
20140359075 Amidei et al. Dec 2014 A1
20150006662 Braness Jan 2015 A1
20150019550 Maharajh et al. Jan 2015 A1
20150019866 Braness et al. Jan 2015 A1
20150139419 Kiefer et al. May 2015 A1
20150288530 Oyman Oct 2015 A1
20160164939 Braness et al. Jun 2016 A1
20160197971 Cen et al. Jul 2016 A1
20160323342 Luby et al. Nov 2016 A1
20170011055 Pitts Jan 2017 A1
20170250882 Kellicker Aug 2017 A1
20170324793 Braness et al. Nov 2017 A1
20180046949 Kahn et al. Feb 2018 A1
20180255366 Lockett et al. Sep 2018 A1
20180262813 Moorthy Sep 2018 A1
20190173932 Braness et al. Jun 2019 A1
20190268394 Cen et al. Aug 2019 A1
20200106820 Braness et al. Apr 2020 A1
20200244714 Cen et al. Jul 2020 A1
20220368749 Cen et al. Nov 2022 A1
Foreign Referenced Citations (116)
Number Date Country
2237293 Jul 1997 CA
1551631 Dec 2004 CN
101861583 Oct 2010 CN
103999033 Aug 2014 CN
103999033 Aug 2016 CN
106254900 Dec 2016 CN
107111477 Aug 2017 CN
106254900 Sep 2019 CN
107111477 May 2021 CN
113259731 Aug 2021 CN
1158799 Nov 2001 EP
1453319 Sep 2004 EP
1536646 Jun 2005 EP
1283640 Oct 2006 EP
2180664 Apr 2010 EP
2360923 Aug 2011 EP
3243130 Nov 2017 EP
3243130 Aug 2019 EP
3570520 Nov 2019 EP
3570520 Feb 2021 EP
3910904 Nov 2021 EP
2398210 Aug 2004 GB
1197306 Jan 2015 HK
1229978 Nov 2017 HK
1242001 Jun 2018 HK
1246429 Sep 2018 HK
1246429 Apr 2020 HK
40013764 Aug 2020 HK
1229978 Jun 2021 HK
2005015935 Feb 2005 IE
H07143475 Jun 1995 JP
H1175178 Mar 1999 JP
2001204001 Jul 2001 JP
2004350043 Dec 2004 JP
2005107725 Apr 2005 JP
2005173241 Jun 2005 JP
2005284041 Oct 2005 JP
2008507160 Mar 2008 JP
2009188690 Aug 2009 JP
2009225116 Oct 2009 JP
4516082 May 2010 JP
2011087103 Apr 2011 JP
2011087165 Apr 2011 JP
2011204001 Oct 2011 JP
2013509818 Mar 2013 JP
2014506430 Mar 2014 JP
2014528376 Oct 2014 JP
2014529967 Nov 2014 JP
2016036161 Mar 2016 JP
6076347 Feb 2017 JP
6254987 Dec 2017 JP
2018-505594 Feb 2018 JP
2018064287 Apr 2018 JP
6522723 May 2019 JP
2019134487 Aug 2019 JP
2020141415 Sep 2020 JP
6944371 Sep 2021 JP
6967189 Oct 2021 JP
2022000992 Jan 2022 JP
2022132649 Sep 2022 JP
20040039852 May 2004 KR
20060030164 Apr 2006 KR
20060106250 Oct 2006 KR
20060116967 Nov 2006 KR
20070020727 Feb 2007 KR
20090016282 Feb 2009 KR
1020100082182 Jul 2010 KR
1020140062479 May 2014 KR
1020170103863 Sep 2017 KR
10-1903352 Sep 2018 KR
1955363 Feb 2019 KR
101955363 Mar 2019 KR
10-2012682 Aug 2019 KR
10-2166291 Oct 2020 KR
10-2323520 Nov 2021 KR
10-2395874 May 2022 KR
2328040 Jun 2008 RU
199800973 Jan 1998 WO
199834405 Aug 1998 WO
1998047290 Oct 1998 WO
2000049762 Aug 2000 WO
2000049763 Aug 2000 WO
200223315 Mar 2002 WO
2003028293 Apr 2002 WO
2002035832 May 2002 WO
2002054776 Jul 2002 WO
2002073437 Sep 2002 WO
2002087241 Oct 2002 WO
2003046750 Jun 2003 WO
2003047262 Jun 2003 WO
2003061173 Jul 2003 WO
2004012378 Feb 2004 WO
2004100158 Nov 2004 WO
2005008385 Jan 2005 WO
2005015935 Feb 2005 WO
2005057906 Jun 2005 WO
2005111835 Nov 2005 WO
2005125214 Dec 2005 WO
2006019490 Feb 2006 WO
2007072257 Jun 2007 WO
2007093923 Aug 2007 WO
2007101182 Sep 2007 WO
2008032908 Mar 2008 WO
2009006302 Jan 2009 WO
2005111835 Mar 2009 WO
2009109976 Sep 2009 WO
2010079950 Jul 2010 WO
2011038013 Mar 2011 WO
2011053658 May 2011 WO
2011087449 Jul 2011 WO
2011101371 Aug 2011 WO
2011103364 Aug 2011 WO
2012094171 Jul 2012 WO
2013032517 Mar 2013 WO
2013101841 Jul 2013 WO
2016112112 Jul 2016 WO
Non-Patent Literature Citations (192)
Entry
Extended European Search Report for European Application No. 21158343.0, Search completed Sep. 30, 2021, dated Oct. 11, 2021, 10 Pgs.
Bertazzo et al., “L2L (Live to e-Learning): Building a Consortium-Wide Lecture Capture and Delivery Service Using a Digital Asset Management Platform”, IEEE International Symposium on Multimedia. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=& arnumber=5693873 (Year: 2010).
Oliveira et al., “Dynamic Generation of FMIL-Based Multimedia Interfaces”, Journal of Multimedia, Oct. 2008, vol. 3, No. 4, pp. 14-25.
Pathan, “Cloud-Based Content Delivery and Streaming”, Advanced Content Delivery, Streaming, and Cloud Services Publisher: Wiley-IEEE Press. https://ieeexplore.ieee.org/xpl/ebooks/bookPdfWithBanner.jsp?fileNanne=7777615.pdf&bkn=7748400&pdfType=chapter (Year: 2014).
International Standard, Information technology—Generic coding of moving pictures and associated audio information: Systems, ISO/IEC 13818-1:2000(E), Dec. 1, 2000 174 pgs. (presented in 2 parts).
Decision Granting Petitioner's Request on Rehearing 37 C.F.R. § 42.71(d) Granting Institution of Inter Partes Review 35 U.S.C. § 314, IPR2020-00614 U.S. Pat. No. 7,295,673, 29 pgs.
Declaration of Dr. Clifford Reader, Inter Partes Review of U.S. Pat. No. 9,270,720, 158 pgs, IPR filed Mar. 11, 2020.
Declaration of Dr. Clifford Reader, Inter Partes Review of U.S. Pat. No. 9,998,515, 184 pgs, IPR filed Mar. 11, 2020.
Defendant Hulu, LLC's Invalidity Contentions for U.S. Pat. Nos. 7,295,673; 8,139,651; 8,472,792; 9,270,720; 9,998,515; 10,212,486; 10,225,588, DIVX, LLC v. Hulu, LLC, Case No. 2:19-cv-1606-PSG-DFMx, C.D. Cal., Apr. 2, 2020, 136 pgs.
Defendant Netflix, Inc.'s Invalidity Contentions for U.S. Pat. Nos. 7,295,673; 8,139,651; 8,472,792; 9,270,720; 9,998,515; 10,212,486; 10,225,588 9,184,920, DIVX, LLC v. Netflix, Inc., Case No. 2:19-cv-1602-PSG-DFM, C.D. Cal., Apr. 2, 2020, 148 pgs.
Excerpt from DivX Infringement Contentions in U.S. Pat. No. 9,270,720 Patent (re Hulu), IPR2020-00647 filed Mar. 11, 2020, 8 pgs.
Excerpt from DivX Infringement Contentions in U.S. Pat. No. 9,270,720 Patent (re Netflix), IPR2020-00647 filed Mar. 11, 2020, 1 page.
Excerpts from DivX's Contentions to Hulu, U.S. Pat. No. 9,998,515, IPR2020-00648, filed Mar. 11, 2020, 5 pgs.
Excerpts from DivX's Contentions to Netflix, U.S. Pat. No. 9,998,515, IPR2020-00648, filed Mar. 11, 2020, 26 pgs.
Extended European Search Report for European Application No. 16735361.4, Search completed Jul. 10, 2018, dated Jul. 18, 2018 8 Pgs.
Extended European Search Report for European Application No. 19185179.9, Search completed Jul. 26, 2019, dated Aug. 5, 2019, 10 Pgs.
Information Technology—MPEG Systems Technologies—Part 7: Common Encryption in ISO Base Media File Format Files (ISO/IEC 23001-7), Apr. 2015, 24 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2011/068274, International Filing Date Dec. 31, 2011, dated Mar. 4, 2014, 13 pgs.
International Preliminary Report on Patentability for International Application PCT/US2016/012348 Report dated Jul. 11, 2017, dated Jul. 20, 2017 7 Pgs.
International Search Report and Written Opinion for International Application No. PCT/US2016/012348, completed Feb. 11, 2016, dated Mar. 4, 2016, 8 Pgs.
International Search Report and Written Opinion for International Application PCT/US2011/68274, Report Completed Apr. 10, 2012, 16 pgs.
ISO/IEC 14496-12 Information technology—Coding of audio-visual objects—Part 12: ISO base media file format, Feb. 2004 (“MPEG-4 Part 12 Standard”), 62 pgs.
ISO/IEC 14496-12:2008(E) Informational Technology—Coding of Audio-Visual Objects Part 12: ISO Base Media File Format, Oct. 2008, 120 pgs.
ISO/IEC FCD 23001-6 MPEG systems technologies Part 6: Dynamic adaptive streaming over HTTP (DASH), Jan. 28, 2011, 86 pgs.
Microsoft Corporation, Advanced Systems Format (ASF) Specification, Revision 01.20.03, Dec. 2004, 121 pgs.
MPEG-DASH presentation at Streaming Media West 2011, Nov. 2011, 14 pgs.
Petition for Inter Partes Review of U.S. Pat. No. 9,270,720, IPR2020-00647, 82 pgs., IPR filed Mar. 11, 2020.
Petition for Inter Partes Review of U.S. Pat. No. 9,998,515, IPR2020-00648, 85 pgs., IPR filed Mar. 11, 2020.
Pomelo, LLC Tech Memo, Analysis of Netflix's Security Framework for ‘Watch Instantly’ Service, Mar.-Apr. 2009, 18 pgs.
Power of Attorney—Hulu, LLC, (IPR2020-00647), 4 pgs., IPR filed Mar. 11, 2020.
Power of Attorney—Hulu, LLC, (IPR2020-00648), 4 pgs., IPR filed Mar. 11, 2020.
Power of Attorney—Netflix, Inc. (IPR2020-00647), 4 pgs., IPR filed Mar. 11, 2020.
Power of Attorney—Netflix, Inc. (IPR2020-00648), 4 pgs., IPR filed Mar. 11, 2020.
Prosecution File History for U.S. Pat. No. 9,270,720, IPR filed Mar. 11, 2020, 350 pgs.
Prosecution File History for U.S. Pat. No. 9,998,515, IPR filed Mar. 11, 2020, 1189 pgs., presented in four parts.
Server-Side Stream Repackaging (Streaming Video Technologies Panorama, Part 2), Jul. 2011, 15 pgs.
Text of ISO/IEC 23001-6: Dynamic adaptive streaming over HTTP (DASH), Oct. 2010, 71 pgs.
Universal Mobile Telecommunications System (UMTS), ETSI TS 126 233 V9.1.0 (Jun. 2011) 3GPP TS 26.233 version 9.1.0 Release 9, 18 pgs.
Universal Mobile Telecommunications Systems (UMTS); ETSI TS 126 244 V9.4.0 (May 2011) 3GPP TS 26.244 version 9.4.0 Release 9, 58 pgs.
U.S. Appl. No. 61/409,285 (Puneet), filed Aug. 11, 2011.
U.S. Appl. No. 61/522,623 (Willig), filed Nov. 2, 2010.
“Apple HTTP Live Streaming specification”, Aug. 2017, 60 pgs.
“Broadcom BCM7413 Product Brief”, Dec. 11, 2008, 2 pgs.
“Common Interface Specification for Conditional Access and other Digital Video Broadcasting Decoder Applications”, European Standard, EN 50221, Feb. 1997, 86 pgs.
“Data Encryption Decryption using AES Algorithm, Key and Salt with Java Cryptography Extension”, Available at https://www.digizol.com/2009/10/java-encrypt-decrypt-jce-salt.html, October 200, 6 pgs.
“Delivering Live and On-Demand Smooth Streaming”, Microsoft Silverlight, 2009, 28 pgs.
“H.264—A Complete Guide to the Video Codec”, May 2003, Retrieved from https://www.encoding.com/h-264/, 2 pgs.
“HTTP Based Adaptive Streaming over HSPA”, Apr. 2011, 73 pgs.
“HTTP Live Streaming”, Mar. 2011, 24 pgs.
“HTTP Live Streaming”, Sep. 2011, 33 pgs.
“Information technology—Dynamic adaptive streaming for HTTP (DASH); Part 1: Media presentation and description and segment formats”, International Standard, ISO/IEC 23009-1, Second edition May 15, 2014, 152 pgs.
“Information Technology—Coding of Audio Visual Objects—Part 2: Visual”, International Standard, ISO/IEC 14496-2, Third Edition, Jun. 1, 2004, pp. 1-724. (presented in three parts).
“Java Cryptography Architecture API Specification & Reference”, Available at https://docs.oracle.com/javase/1.5.0/docs/guide/security/CryptoSpec.html, Jul. 25, 2004, 68 pgs.
“Java Cryptography Extension, javax.crypto.Cipher class”, Available at https://docs.oracle.com/javase/1.5.0/docs/api/javax/crypto/Cipher.html, 2004, 24 pgs.
“JCE Encryption—Data Encryption Standard (DES) Tutorial”, Available at https://mkyong.com/java/jce-encryption-data-encryption-standard-des-tutorial/, Feb. 25, 2009, 2 pgs.
“LINK UP Inc”, Imasugu tsukaeru kantan (ready-to-use and easy) PLUS+ Google sabisu kanzendaijiten (complete dictionary of Google service), Gijutsu-Hyohron Co., Ltd., Oct. 25, 2014, the first edition, the first impression, p. 226, 228, 233, 238, 239, 242, 243, 244.
“Live and On-Demand Video with Silverlight and IIS Smooth Streaming”, Microsoft Silverlight, Windows Server Internet Information Services 7.0, Feb. 2010, 15 pgs.
“Microsoft Smooth Streaming specification”, Jul. 22, 2013, 56 pgs.
“MPEG-2, Part 1, ISO/IEC 13818-1”, Information technology—Generic Coding of Moving Pictures and Associated Audio: Systems, 161 pgs., Nov. 13, 1994.
“MPEG-4, Part 14, ISO/IEC 14496-14”, Information technology—Coding of audio-visual objects, 18 pgs., Nov. 15, 2003.
“OpenDML AVI File Format Extensions Version 1.02”, OpenDMLAVI MJPEG File Format Subcommittee. Last revision: Feb. 28, 1996. Reformatting: Sep. 1997, 42 pgs.
“Server ‘Trick Play’ support for MPEG-2 Transport Stream Files”, www.live555.com/liveMedia/transport-stream-trick-play.html, 2006, Dec. 31, 2020, 1 pg.
“Single-Encode Streaming for Multiple Screen Delivery”, Telestream Wowza Media Systems, 2009, 6 pgs.
“Sustainability of Digital Formats: Planning for Library of Congress Collections”, H.262 MPEG-2 Video Encoding (H.262), 7 pgs.
“Sustainability of Digital Formats: Planning for Library of Congress Collections”, MPEG-4, Visual Coding (Part 2), (Last Updated: Feb. 21, 2017), 6 pgs.
“The LIVE555 Media Server”, www.live555.com/mediaServer/#about, 2006, printed Dec. 31, 2020, 3 pgs.
“The MPEG-DASH Standard for Multimedia Streaming Over the Internet”, IEEE MultiMedia, vol. 18, No. 4, 2011, 7 pgs.
“Window Microsoft codecs”, 2017, Retrieved from https://msdn.microsoft.com/en-us/library/windows/desktop/ff819508(v=vs.85).aspx, 7 pgs.
“Windows Media Player 9”, Microsoft, Mar. 23, 2017, 3 pgs.
Abomhara et al., “Enhancing Selective Encryption for H.264/AVC Using Advanced Encryption Standard”, International Journal of computer Theory and Engineering, Apr. 2010, vol. 2, No. 2, pp. 223-229.
ADB, “ADB-3800W Datasheet”, 2007, 2 pgs.
Agi et al., “An Empirical Study of Secure MPEG Video Transmissions”, IEEE, Mar. 1996, 8 pgs., DOI: 10.1109/NDSS.1996.492420.
Ahmed et al., “An Efficient Chaos-Based Feedback Stream Cipher (ECBFSC) for Image Encryption and Decryption”, Informatica, Mar. 2007, vol. 31, No. 1, pp. 121-129.
Alattar et al., A.M. “Improved selective encryption techniques for secure transmission of MPEG video bit-streams”, In Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348), vol. 4, IEEE, 1999, pp. 256-260.
Antoniou et al., “Adaptive Methods for the Transmission of Video Streams in Wireless Networks”, 2015, 50 pgs.
Apostolopoulos et al., “Secure Media Streaming and Secure Transcoding”, Multimedia Security Technologies for Digital Rights Management, 2006, 33 pgs.
Arachchi et al., “Adaptation-aware encryption of scalable H.264/AVC for content security”, Signal Processing: Image Communication, Jul. 2009, vol. 24, pp. 468-483, doi:10.1016/j.image.2009.02.004.
Asai et al., “Essential Factors for Full-Interactive VOD Server: Video File System, Disk Scheduling, Network”, Proceedings of Globecom '95, Nov. 14-16, 1995, 6 pgs.
Beker et al., “Cipher Systems, The Protection of Communications”, 1982, 40 pgs.
Bocharov et al., “Portable Encoding of Audio-Video Objects, The Protected Interoperable File Format (PIFF)”, Microsoft Corporation, First Edition Sep. 8, 2009, 30 pgs.
Bulterman et al., “Synchronized Multimedia Integration Language (SMIL 3.0)”, W3C Recommendation, Dec. 1, 2008, https://www.w3.org/TR/2008/REC-SMIL3-20081201/, 321 pgs. (presented in five parts).
Caglar et al., “MUVIS: A Content-Based Multimedia Indexing and Retrieval Framework”, 2003 Proceedings of Seventh International Symposium on Signal Processing and Its Applications, Jul. 4, 2003, vol. 1, pp. 1-8, DOI: 10.1109/ISSPA.2003.1224626.
Cahill et al., “Locally Adaptive Deblocking Filter for Low Bit Rate Video”, Proceedings 2000 International Conference on Image Processing, Sep. 10-13, 2000, Vancouver, BC, Canada, 4 pgs.
Candelore, U.S. Appl. No. 60/372,901, filed Apr. 17, 2002.
Chaddha et al., “A Frame-work for Live Multicast of Video Streams over the Internet”, Proceedings of 3rd IEEE International Conference on Image Processing, Sep. 19, 1996, Lausanne, Switzerland, 4 pgs.
Chen et al., “A Spatio-Temporal Semantic Model for Multimedia Database Systems and Multimedia Information Systems”, IEEE Transactions on Knowledge and Data Engineering, Jul./Aug. 2011, vol. 13, No. 4, pp. 607-622, DOI: 10.1109/69.940735.
Chen et al., “Audio-on-Demand over Wireless Sensor Networks”, 2012 IEEE 20th International Workshop on Quality of Service, Jun. 4-5, 2012, pp. 1-9, DOI: 10.1109/IWQoS.2012.6245981.
Cheng, “Partial Encryption for Image and Video Communication”, Thesis, Fall 1998, 95 pgs.
Cheng et al., “Partial encryption of compressed images and videos”, IEEE Transactions on Signal Processing, vol. 48, No. 8, Aug. 2000, 33 pgs.
Cheung et al., “On the Use of Destination Set Grouping to Improve Fairness in Multicast Video Distribution”, Proceedings of IEEE INFOCOM'96, Conference on Computer Communications, vol. 2, IEEE, 1996, 23 pgs.
Collet, “Delivering Protected Content, An Approach for Next Generation Mobile Technologies”, Thesis, 2010, 84 pgs.
Conklin et al., “Video coding for streaming media delivery on the Internet”, IEEE Transactions on Circuits and Systems for Video Technology, Mar. 2001, vol. 11, No. 3, pp. 269-281.
Deshpande et al., “Scalable Streaming of JPEG2000 Images Using Hypertext Transfer Protocol”, Multimedia '01: Proceedings of the Ninth ACM International Conference on Multimedia, Oct. 2001, pp. 372-381. https://doi.org/10.1145/500141.500197.
Diamantis et al., “Real Time Video Distribution using Publication through a Database”, Proceedings SIBGRAPI'98. International Symposium on Computer Graphics, Image Processing, and Vision (Cat. No.98EX237), Oct. 1990, 8 pgs.
Ding et al., “Multisource Video On-Demand Streaming in Wireless Mesh Networks”, IEEE/ACM Transactions on Networking, Dec. 2012, Date of Publication: Mar. 7, 2012, vol. 20, No. 6, pp. 1800-1813, DOI: 10.1109/TNET.2012.2188642.
Dworkin, “Recommendation for Block Cipher Modes of Operation: Methods and Techniques”, NIST Special Publication 800-38A, 2001, 66 pgs.
Entone, “Amulet High Definition IP Television Receiver User's Guide”, 2008, 28 pgs.
Entone, “Hydra HD IP Video Gateway”, 2008, 2 pgs.
ETSI, “Digital Video Broadcasting (DVB) Support for use of scrambling and Conditional Access (CA) within digital broadcasting systems”, Oct. 1996, 13 pgs.
ETSI, “Digital Video Broadcasting (DVB); Implementation guidelines for the use of Video and Audio Coding in Contribution and Primary Distribution Applications based on the MPEG-2 Transport Stream”, ETSI TS 102 154 V1.2.1, May 2004, 73 pgs.
Fahmi et al., “Proxy Servers for Scalable Interactive Video Support”, Computer, Sep. 2001, vol. 45, No. 9, pp. 54-60, https://doi.org/10.1109/2.947092.
Fang et al., “Real-time deblocking filter for MPEG-4 systems”, Asia-Pacific Conference on Circuits and Systems, Oct. 28-31, 2002, Bail, Indonesia, pp. 541-544.
Fecheyr-Lippens, “A Review of HTTP Live Streaming”, Jan. 2010, 38 pgs.
Fielding et al., “Hypertext Transfer Protocol—HTTP1.1”, Network Working Group, RFC 2616, Jun. 1999, 114 pgs.
Fitzek et al., “A Prefetching Protocol for Continuous Media Streaming in Wireless Environments”, IEEE Journal on Selected Areas in Communications, Oct. 2001, vol. 19, No. 10, pp. 2015-2028, DOI: 10.1109/49.957315.
Fukuda et al., “Reduction of Blocking Artifacts by Adaptive DCT Coefficient Estimation in Block-Based Video Coding”, Proceedings 2000 International Conference on Image Processing, Sep. 10-13, 2000, Vancouver, BC, Canada, pp. 969-972.
Guo et al., “A Multi-server Video Monitor System Based on Stream-Media Communication Technology”, 2008 2nd International Symposium on Systems and Control in Aerospace and Astronautics, Dec. 10-12, 2008, Shenzhen, China, pp. 1-4, DOI: 10.1109/ISSCAA.2008.4776278.
Ho, “Digital Video Broadcasting Conditional Access Architecture”, Report prepared for CS265—Section 2, Fall 2002, Prof Stamp, 7 pgs.
Huang, U.S. Pat. No. 7,729,426, U.S. Appl. No. 11/230,794, filed Sep. 20, 2005, 143 pgs.
Huang et al., “Adaptive MLP post-processing for block-based coded images”, IEEE Proceedings—Vision, Image and Signal Processing, vol. 147, No. 5, Oct. 2000, pp. 463-473.
Huang et al., “Architecture Design for Deblocking Filter in H.264/JVT/AVC”, 2003 International Conference on Multimedia and Expo., Jul. 6-9, 2003, Baltimore, MD, 4 pgs.
INCITS/ISO/IEC, “Information Technology—Generic Coding of Moving Pictures and Associated Audio Information: Video (Formerly ANSI/ISO/IEC 13818-2-2000)”, Second edition, Dec. 15, 2000, 220 pgs., (presented in two parts).
Islam, “A HTTP Streaming Video Server with Dynamic Advertisement Splicing”, Royal Institute of Technology (KTH), School of Information and Communication Technology, Master of Science Thesis, Mar. 21, 2010, Retrieved from: https://people.kth.se/˜maguire/DEGREE-PROJECT-REPORTS/100409-Md._Safiqul_Islam-with-cover.pdf, 108 pgs.
ISMA, “ISMA Encryption and Authentication, Version 1.1, AREA / Task Force: DRM”, Internet Streaming Media Alliance, Sep. 15, 2006, pp. 1-64.
ITU-T, “Series J: Cable Networks and Transmission of Television, Sound Programme and Other Multimedia Signals”, Technical method for ensuring privacy in long-distance international MPEG-2 television transmission conforming to Itu-T J.89, ITU-T Recommendation J.96, Mar. 2001, 34 pgs.
Jain et al., U.S. Appl. No. 61/522,623, filed Aug. 11, 2011.
Jung et al., “Design and Implementation of an Enhanced Personal Video Recorder for DTV”, IEEE Transactions on Consumer Electronics, vol. 47, No. 4, Nov. 2001, 6 pgs.
Kabir, “Scalable and Interactive Multimedia Streaming Over the Internet”, Thesis, 2005, 207 pgs.
Kalva, Hari “Delivering MPEG-4 Based Audio-Visual Services”, 2001, 113 pgs.
Kang et al., “Access Emulation and Buffering Techniques for Steaming of Non- Stream Format Video Files”, IEEE Transactions on Consumer Electronics, vol. 43, No. 3, Aug. 2001, 7 pgs.
Kim et al., “A Deblocking Filter with Two Separate Modes in Block-Based Video Coding”, IEEE transactions on circuits and systems for video technology, vol. 9, No. 1, 1999, pp. 156-160.
Kim et al., “Tree-Based Group Key Agreement”, Feb. 2004, 37 pgs.
Krikor et al., “Image Encryption Using DCT and Stream Cipher”, European Journal of Scientific Research, Jan. 2009, vol. 32, No. 1, pp. 48-58.
Laukens, “Adaptive Streaming—A Brief Tutorial”, EBU Technical Review, 2011, 6 pgs.
Legault et al., “Professional Video Under 32-bit Windows Operating Systems”, SMPTE Journal, vol. 105, No. 12, Dec. 1996, 10 pgs.
Li et al., “Layered Video Multicast with Retransmission (LVMR): Evaluation of Hierarchical Rate Control”, Proceedings of IEEE INFOCOM'98, the Conference on Computer Communications. Seventeenth Annual Joint Conference of the IEEE Computer and Communications Societies. Gateway to the 21st Century, Cat. No. 98, vol. 3, 1998, 26 pgs.
Lian et al., “Recent Advances in Multimedia Information System Security”, Informatica, Jan. 2009, vol. 33, pp. 3-24.
Lian et al., “Selective Video Encryption Based on Advanced Video Coding”, PCM, Nov. 2005, Part II, LNCS 3768, pp. 281-290.
Lievaart, “Characteristics that differentiate CA Systems”, Irdeto access, Nov. 2001, 5 pgs.
List et al., “Adaptive deblocking filter”, IEEE transactions on circuits and systems for video technology, vol. 13, No. 7, Jul. 2003, pp. 614-619.
Lloyd, “Supporting Trick Mode Playback Universally Across the Digital Television Industry”, Thesis, 2005, 111 pgs.
Macaulay et al., “Whitepaper—IP Streaming of MPEG-4: Native RTP vs MPEG-2 Transport Stream”, Envivio, Oct. 2005, 12 pgs.
Martin et al., “Privacy Protected Surveillance Using Secure Visual Object Coding”, IEEE Transactions on Circuits and Systems for Video Technology, Aug. 2008, vol. 18, No. 8, pp. 1152-1162, DOI: 10.1109/TCSVT.2008.927110.
Massoudi et al., “Overview on Selective Encryption of Image and Video Challenges and Perspectives”, EURASIP Journal on Information Security, Nov. 2008, 18 pgs.
Mccanne et al., “Receiver-driven Layered Multicast”, Conference proceedings on Applications, technologies, architectures, and protocols for computer communications, Aug. 1996, 14 pgs.
Meier, “Reduction of Blocking Artifacts in Image and Video Coding”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 9, No. 3, Apr. 1999, pp. 490-500.
Meyer et al., “Security mechanisms for Multimedia-Data with the Example MPEG-I-Video”, SECMPEG, 1992, 10 pgs.
Miras, “On Quality Aware Adaptation of Internet Video”, University of London, PhD dissertation, May 2004, 181 pgs.
Molavi et al., “A Security Study of Digital TV Distribution Systems”, Thesis, Jun. 2005, 112 pgs.
Nelson, “Smooth Streaming Deployment Guide”, Microsoft Expression Encoder, Aug. 2010, 66 pgs.
Nelson, “The Data Compression Book”, M&T Publishing, 1992, 533 pgs., (presented in two parts).
Newton et al., “Preserving Privacy by De-identifying Facial Images”, Carnegie Mellon University School of Computer Science, Technical Report, CMU-CS-03-119, Mar. 2003, 26 pgs.
O'Brien, U.S. Appl. No. 60/399,846, filed Jul. 30, 2002.
OIPF Open Forum, “OIPF Release 1 Specification, vol. 3, Content Metadata”, OIPF, Oct. 8, 2009, vol. 1.1, 47 pgs.
OIPF Open Forum, “OIPF Release 1 Specification, vol. 7—Authentication, Content Protection and Service Protection”, OIPF, Oct. 8, 2009, vol. 1.1, 88 pgs.
Open IPTV Forum, “Functional Architecture”, Jan. 16, 2008, vol. 1.1, 141 pgs.
Open IPTV Forum, “Oipf Release 1 Specification, vol. 1—Overview”, OIPF, Oct. 8, 2009, vol. 1.1, 48 pgs.
Open IPTV Forum, “OIPF Release 1 Specification, vol. 2, Media Formats”, OIPF, Oct. 8, 2009, vol. 1.1, 22 pgs.
O'Rourke, “Improved Image Decompression for Reduced Transform Coding Artifacts”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 5, No. 6, Dec. 1995, pp. 490-499.
Padiadpu, Rashmi “Towards Mobile Learning: A SCORM Player for the Google Android Platform”, Master Thesis, Hamburg University of Applied Sciences, 2008, 66 pgs.
Park et al., “A postprocessing method for reducing quantization effects in low bit-rate moving picture coding”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 9, No. 1, Feb. 1999, pp. 161-171.
Park et al., “An Efficient Encryption and Key Management Scheme for Layered Access Control of H.265/Scalable Video Coding”, IEICI Trans. Inf. & Syst., May 2009, vol. E92-D, No. 5, pp. 851-858, DOI: 1031587/transinf.E92.D.851.
Park et al., “Combined Scheme of Encryption and Watermarking in H.264/Scalable Video Coding”, New Directions in Intelligent Interactive Multimedia, SCI 142, 2008, pp. 351-361.
Paul et al., “VTonDemand: A Framework for Indexing, Searching, and On-Demand Playback of RTP-Based Multimedia Conferences”, 1999 IEEE Third Workshop on Multimedia Signal Processing (Cat. No. 99th8451), Sep. 13-15, 1999, pp. 59-64, DOI: 10.1109/MMSP.1999.793798.
Qiao et al., “Comparison of MPEG Encryption Algorithms”, Comput. & Graphics, 1998, vol. 22, No. 4, pp. 437-448.
Raju et al., “Fast and Secure Real-Time Video Encryption”, Sixth Indian Conference on Computer Vision, Graphics & Image Processing, Jan. 2009, pp. 257-264, doi:10.1109/ACVGIP.2008.100.
Richardson, “H.264 and MPEG-4 Video Compression”, Wiley, 2003, 306 pgs. (presented in 2 parts).
Senoh et al., “DRM Renewability & Interoperability”, IEEE Xplore, Conference: Consumer Communications and Networking Conference, 2004, Feb. 2004, pp. 424-429, DOI: 10.1109/CCNC.2004.1286899.
Shah et al., “Localising Peers in P2P Live Streaming Systems Within Resource-Constrained Networks”, 2012 International Conference on Computer&Information Science (ICCIS), Year. 2012, pp. 683-688, https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6297115.
Shojania et al., “Experiences with MPEG-4 Multimedia Streaming”, CiteSeer, Jan. 2001, 3 pgs., DOI: 10.1145/500141.500221.
Sima et al., “An Efficient Architecture for Adaptive Deblocking Filter of H.264 AVC Video Coding”, IEEE Transactions on Consumer Electronics, vol. 50, No. 1, Feb. 2004, pp. 292-296.
Spanos et al., “Performance Study of a Selective Encryption Scheme for the Security of Networked, Real-Time Video”, Proceedings of the Fourth International Conference on Computer Communications and Networks, IC3N'95, Sep. 20-23, 1995, Las Vegas, NV, pp. 2-10.
Srinivasan et al., “Windows Media Video 9: overview and applications”, Signal Processing: Image Communication, 2004, 25 pgs.
Stockhammer, “Dynamic Adaptive Streaming over HTTP—Standards and Design Principles”, Proceedings of the second annual ACM conference on Multimedia, Feb. 2011, pp. 133-145.
Symes, “Video Compression Demystified”, McGraw-Hill, 2001, 353 pgs., (presented in two parts).
Taymans et al., “GStreamer Application Development Manual (1.6.0)”, 2007, 159 pgs.
Thomas et al., “A Novel Secure H.264 Transcoder Using Selective Encryption”, Proceedings in International Conference on Image Processing, Jan. 2007, vol. 4, pp. IV-85-IV-88, DOI: 10.1109/ICIP.2007.4379960.
Timmerer et al., “HTTP Streaming of MPEG Media”, Proceedings of Streaming Day, 2010, 4 pgs.
Tiphaigne et al., “A Video Package for Torch”, Jun. 2004, 46 pgs.
Toldo et al., “A Resilent and Low-Delay P2P Streaming System Based on Network Coding with Random Multicast Trees”, 2010 IEEE International Workshop on Multimedia Signal Processing, Year. 2010, pp. 400-405. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5662054.
Tosun et al., “Efficient multi-layer coding and encryption of MPEG video streams”, 2000 IEEE International Conference on Multimedia and Expo. ICME2000. Proceedings. Latest Advances in the Fast Changing World of Multimedia (Cat. No. 00TH8532), Jul. 30-Aug. 2, 2000, pp. 119-122, DOI: 10.1109/ICME.2000.869559.
Trappe et al., “Key Management and Distribution for Secure Multimedia Multicast”, IEEE Transaction on Multimedia, vol. 5, No. 4, Dec. 2003, pp. 544-557.
Um, “Selective Video Encryption of Distributed Video Coded Bitstreams and Multicast Security over Wireless Networks”, Thesis, Aug. 2006, 142 pgs.
Van Deursen et al., “On Media Delivery Protocols in the Web”, 2010 IEEE International Conference on Multimedia and Expo, Jul. 19-23, 2010, 6 pgs.
Ventura, Guillermo Albaida “Streaming of Multimedia Learning Objects”, AG Integrated Communication System, Mar. 2003, 101 pgs.
Waggoner, “Compression for Great Digital Video”, 2002, 184 pgs.
Wang, “Lightweight Encryption in Multimedia”, Thesis, Jun. 2005, 184 pgs.
Watanabem et al., “MPEG-2 decoder enables DTV trick plays”, esearcher System LSI Development Lab, Fujitsu Laboratories Ltd., Kawasaki, Japan, Jun. 2001, 2 pgs.
Wei, “Pardon Our Dust”, Hulu Blog, printed Apr. 30, 2014 from http://blog.hulu.com.2010/05/13/pardon-our-dust, 10 pgs.
Wiegand, “Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG”, Jan. 2002, 70 pgs.
Willig et al., U.S. Appl. No. 61/409,285, filed Nov. 2, 2010.
Wong, “Web Client Programming with Perl”, 1997, printed Jan. 8, 2021 from: https://www.oreilly.com/openbook-webclientch03.html, 31 pgs.
Wowza Media Systems, “Using dynamically generated SMIL file possible:”, printed Apr. 30, 2014 from http://www.wowza.com.forums/showthread.php?12458-using-dynamically-generated-SMIL-file-possible, 3 pgs.
Wu, “A Fast MPEG Encryption Algorithm and Implementation of AES on CAM”, Thesis, Oct. 6, 2003, 91 pgs.
Yang et al., “Projection-Based Spatially Adaptive Reconstruction of Block-Transform Compressed Images”, IEEE Transactions on Image Processing, vol. 4, No. 7, Jul. 1995, pp. 896-908.
Yang et al., “Regularized Reconstruction to Reduce Blocking Artifacts of Block Discrete Cosine Transform Compressed Images”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 3, No. 6, Dec. 1993, pp. 421-432.
Yu et al., “Video deblocking with fine-grained scalable complexity for embedded mobile computing”, Proceedings 7th International Conference on Signal Processing, Aug. 31-Sep. 4, 2004, pp. 1173-1178.
Yuksel, “Partial Encryption of Video for Communication and Storage”, Thesis, Sep. 2003, 78 pgs.
Zakhor, “Iterative Procedures for Reduction of Blocking Effects in Transform Image Coding”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 2, No. 1, Mar. 1992, pp. 91-95.
Inamura et al., “Implementation and Evaluation of Illegal Copy Protection for Multicast Contents Delivery”, Information Processing Society of Japan Report, Jul. 21, 2004, 2004-CSEC-26, vol. 2004 No. 75,pp. 135-142.
Liu et al., “Streaming Media Delivery with Proxy Cache for Heterogeneous Clients”, IEEE 7th Workshop on Multimedia Signal Processing. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4014003, 2005.
Wu et al., “A Scalable to Lossless Audio Streaming System Applicable to Mobile Devices”, 6th IEEE Conference on Industrial Electronics and Applications. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5975666, 2011.
Related Publications (1)
Number Date Country
20220239717 A1 Jul 2022 US
Provisional Applications (1)
Number Date Country
61529403 Aug 2011 US
Continuations (6)
Number Date Country
Parent 16703668 Dec 2019 US
Child 17467027 US
Parent 16207405 Dec 2018 US
Child 16703668 US
Parent 15658057 Jul 2017 US
Child 16207405 US
Parent 15009593 Jan 2016 US
Child 15658057 US
Parent 14336392 Jul 2014 US
Child 15009593 US
Parent 13341789 Dec 2011 US
Child 14336392 US