The present disclosure relates to systems and methods for delivering encrypted transport streams, and in particular to a system and method for delivering encrypted transport streams via both radio frequency (RF)/satellite and internet protocol (IP).
Encrypted media content is often delivered to various recipients in transport streams via satellite. However, due to the cost and infrastructure required to maintain satellite based distribution, it is desirable to use alternative distribution mechanisms. Prior art systems fail to provide the ability to leverage the same/existing infrastructure while simultaneously delivering encrypted transport streams via multiple different network sources such as radio frequency (RF)/satellite and internet protocol (IP). To better understand these problems, a description of prior art content distribution systems may be useful.
As described above, to secure the content and maintain access control and security, encryptor 106 encrypt the data consistent with DIGICIPHER or MEDIACIPHER encryption. DIGICIPHER (or DIGICIPHER II) (available from the assignee of the present application) is based on a sophisticated key hierarchy, data encryption standard (DES) encryption algorithms, and a secure hardware and firmware implementation of encryption security. Encryption/access control is applied separately to each service within an uplink encoding system. Different modes enable different levels of encryption/security with various different keys ensuring security at both the IRD level and program level (e.g., unit keys that are unique to each IRD 120A-120C, category keys that are unique to a category of IRDs 120A-120C, and program keys that are unique to each program of content 102).
As an alternative to the system depicted in
In view of the above, what is needed is a method and system that leverages existing distribution system infrastructure while distributing content via multiple different transmission mediums (e.g., via RF/satellite and IP).
Embodiments of the invention overcome the problems of the prior art by segmenting an incoming encrypted transport stream (e.g., an MPEG-2 transport stream multiplex) delivered via RF/satellite as a multi-program transport stream (MPTS), or multiple single-program transport streams (SPTSs) derived from that multiplex, into fixed-duration transport stream files (“chunks”) consistent with the HLS protocol. In addition, embodiments of the invention generate manifests also consistent with the HLS protocol. A non-adaptive bit rate variant of HLS with encrypted transport stream packets and all IRD command and control is included in each chunk.
In addition, embodiments of the invention embed a variant of an HLS client (referred to as an enhanced HLS client) in each IRD. The enhanced HLS client retrieves the aforementioned manifests and TS chunks and re-constructs the original MPTS or SPTS for subsequent decryption, decoding, transcoding, and output operations.
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present disclosure.
Embodiments of the invention segment a moving picture experts group 2 (MPEG-2) transport stream (TS) multiplex delivered via RF/satellite as a multi-program TS (MPTS), or multiple single-program TSs (derived from the multiplex), into fixed-duration TS files (“chunks”) and generate manifests consistent with the HLS protocol. A non-adaptive bit rate variant of HLS with encrypted TS packets and all IRD command and control information is included in each TS file. In addition, a variant of an HLS client (i.e., an enhanced HLS client) is embedded in each IRD. The enhanced HLS client retrieves the manifests and TS chunks, and re-constructs the original MPTS or SPTS for subsequent decryption, decoding, transcoding, and output operations.
The packager 204 segments the real-time TS inputs into fixed duration (e.g., 2 to 10 seconds) transport stream (TS) files/“chunks” 206 (i.e., digestable files/chunks 206). The packager further generates “manifest” files 208 that describe the TS chunks 206 that comprise each multiplex. By utilizing the chunks 206 and manifest 208, the system 200 leverages the HLS (e.g., Internet Engineering Task Force [IETF] 8216) design and implementation that may be used in the distribution system.
The packager 204 routinely updates the manifest 208 and delivers the latest chunk file 206 to a content distribution network (CDN) 210 for IRD 120 consumption via HTTP/TCP networks 212. In view of the above, a non-adaptive bit rate variant of HLS may be used with encrypted TS packets and all IRD command and control included in each TS file 206. Specifically, all command and control information included in the multiplexes (from multiplexer 108) may be preserved by the packager 204. Accordingly, embodiments of the invention leverage existing network infrastructure requiring no customization of the CDN 210 provider or network.
An enhanced HLS client 214A-214C (collectively referred to as enhanced HLS client 214) is embed in each IRD 120A-120C respectively. The enhanced HLS client 214 retrieves chunks 206 and the manifest 208 (via the CDN 210) and reconstructs the original MPTS 110 or SPTS 202 for subsequent decryption, decoding, transcoding, and output operations. Specifically, the enhanced HLS client 214 may have the option of retrieving (or the packager may have the option of storing) the MPTS 110 or the SPTS 202 from/in the CDN 210 (e.g., in chunk format) (i.e., the MPTS 110 may be broken up into multiple SPTS 202 or the MPTS 110 may be retrieved by the IRDs 120). Thus, similar to satellite received transmissions, the chunks 206 may be received in MPTS 110 format. In addition, as the IRDs 120 are reconstructing the content (e.g., based on special syntax that facilitates the reconstruction), the packager 204 may discard/exclude extraneous/non-essential data when generating the chunks 206.
In one or more embodiments, the chunk 206 contents are encrypted at the TS packet level thereby eliminating the need for file-level protection (which is common with HLS). In this regard, the CDN 210 path is similar to and may utilize a similar algorithm, keys, and timing as the RF/satellite path.
Due to the packaging and configuration described herein, the IRDs 120 may be managed by the BNC 124 independent of the delivery medium (e.g., RF/satellite or IP/CDN 210). In this regard, the IRD 120 (via the enhanced HLS client 214) supports managed and autonomous switching of services between and within satellite 116 and CDN networks 210.
The packager(s) 204 convert MPEG-2 TS input to file segments/chunks 206 (e.g., HLS compliant chunks 206). In addition, packager(s) 204 generate playlist/manifests 208 for the associated file segments/chunks 206. In this regard, packager(s) 204 may receive MPTS 110 as input and may output MPTS. Alternatively, packager(s) 204 may receive MPTS 110 as input and may output SPTS (e.g., up to 24). Such an SPTS output may be preferred as only required services are delivered to the IRD 120, and a proprietary algorithm for TS file compression may help avoid unnecessary overhead. The packager(s) 204 may further embed NTP (network time protocol) time information in the file segments/chunks 206 which are used by NTP-synched IRDs 120 to perform disciplined local TS reconstruction. Input transport stream Program Clock References [PCRs] enable the synchronization of multiple packagers 204 (e.g., for the generation of identical file segments/chunks 206) such that there is seamless operation of IRDs 120 regardless of the packager 204 that the file segments/chunks 206 are generated from. In addition, the packager(s) 206 support the generation of IP service information to aid in IRD 120 service discovery.
The file format specified in the playlist for each segment may provide:
Once the segment file is received, the IRDs 120 reconstruct the original packet timing.
Further, the packager 204 is responsible for generating the playlist/manifest that indicates the location and metadata for each TS segment. The playlist/manifest may be updated every “segment duration” sections (which may be configurable—e.g., 2-10 seconds in 1 second increments, with a default=4 seconds). In one or more embodiments, the number of TS segments referenced by the playlist may have a maximum (moving window) that is user-configurable (e.g., 5-40 segments; default=40). A new segment may be generated and published every “segment duration” seconds, when the media sequence number increments. The segment file name may also include the PCR value to guarantee synchronization of packager instances processing the same input program. Table A illustrates exemplary segment attributes:
When the media sequence number changes to five (5), it signals the start of a new segment, and segment four (4) is published. Using the information from Table A, the filename for segment 5 is: 540863483.ts.
The maximum media sequence number may be included in the playlist to help the IRD identify the rollover segment (a shortened segment may occur at PCR rollover (e.g., approx. every 26.5 hours).
Returning to
The communications between the packagers 204, home service 502, and IRD 120 may be secured using HTTPS where the home service (server) 402 is certificated, the IRD 120 firmware and packager (client) 204 employ Trusted CA certificates, and valid credentials are required to publish the packager info to specific home service programmer accounts.
Further embodiments that utilize the home service 502 may provide that the IRD 120 includes a unit address in GET requests that is used to target information delivered to the IRD 120. Further, IRD 120 firmware may support the delivery of health and status information to the home service 502, including information about network performance. Additional embodiments may also enable the distribution of code upgrades via the home service 502.
As described above, the packager(s) 204 publish the playlist and segment files to a specific origin server 308 file location.
Returning to
In view of the above,
In view of the above,
As described above, the standard use case is that of having the IRD 120 process media streams that are encrypted and generated by the packager 204, and retrieved from the CDN 210 in real time.
In one or more alternative embodiments, the media stream may be pre-multiplexed, created, and published to the CDN 210. Thus, the IRD 120 has the opportunity to not only process media streams that are encrypted and generated by the packager 204 in real time, but also the opportunity to pull streams that have been generated in non-real time and published and posted on the CDN 210 for later use. In such embodiments, a programmer may desire to inject local/regional advertisements for a particular IRD 120, and may provide instructions to the IRD 120 to retrieve chunks (including particular advertisements) from a specific URL that contains such advertisements. In this regard, the programmer may place such local/regional advertisements in the CDN 210 and as a result, the programmer may have the ability to receive advertising revenue.
In yet another embodiment, a set of content may only be intended for a certain geographic region or a certain time of day (e.g., after a sports program/show). Such content may be pre-encrypted and published to the CDN 210. Thereafter, IRDs 120 in a particular market or within a particular time frame may be instructed to retrieve the set of content from the CDN 210.
At step 1502, the packager receives an original encrypted transport stream (e.g., an MPTS or SPTS stream).
At step 1504, the packager segments the original encrypted transport stream (TS) into multiple fixed-duration TS files (i.e., chunks). In one or more embodiments, the multiple fixed-duration TS files are encrypted at a TS packet level. Further, the packager may embed NTP time information in the multiple fixed-duration transport TS such that the IRD is NTP-synched and the NTP time information is used to discipline local TS reconstruction. In one or more embodiments, input program clock references (PCRs) in the original encrypted transport stream are used to enable synchronization of the packager and one or more additional packagers (i.e., such that the packager and the one or more additional packagers generate identical multiple fixed-duration transport stream files). In this regard, each of the multiple fixed-duration transport stream files may be generated and published at predefined time durations, while a name of each of the multiple fixed-duration transport stream files includes a value of the PCR for the synchronization.
In addition, the packager may discard extraneous data from the original encrypted TS before segmenting the original TS into the multiple fixed-duration TS files. In this regard, the extraneous data may include packets that are not essential for the enhanced HLS client to reconstruct the original encrypted TS. Of note is that the packager may preserve the command and control information from/in the original encrypted TS.
At step 1506, the packager generates a manifest file that describes the multiple fixed-duration TS files. The manifest file is consistent with a HTTP live streaming (HLS) protocol.
At step 1508, the manifest file and the multiple fixed-duration TS files are delivered to/onto a content delivery network (CDN).
At step 1510, an enhanced HLS client is embed in an IRD.
At step 1512, the enhanced HLS client retrieves the manifest file and the multiple fixed-duration TS files from the CDN.
At step 1514, the enhanced HLS client reconstructs the original encrypted TS for use by a service provider network.
In one or more embodiments, the manifest file and multiple fixed-duration TS files are delivered and published to the CDN, while an advertisement may also be inserted into the CDN such that the enhanced HLS client retrieves the advertisement. Alternatively or in addition, the manifest files and the multiple fixed-duration TS files are delivered and published to the CDN for a particular geographic region. In such an embodiment, once a determination has been made that the enhanced HLS client is within the particular geographic region, the enhanced HLS client retrieves the manifest files and multiple fixed-duration TS files for the particular geographic region (e.g., from a particular URL in the CDN).
In one embodiment, the computer 1602 operates by the hardware processor 1604A performing instructions defined by the computer program 1610 (e.g., packager operations, or an enhanced HLS client on an IRD) under control of an operating system 1608. The computer program 1610 and/or the operating system 1608 may be stored in the memory 1606 and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program 1610 and operating system 1608, to provide output and results.
Output/results may be presented on the display 1622 or provided to another device for presentation or further processing or action. In one embodiment, the display 1622 comprises a liquid crystal display (LCD) having a plurality of separately addressable liquid crystals. Alternatively, the display 1622 may comprise a light emitting diode (LED) display having clusters of red, green and blue diodes driven together to form full-color pixels. Each liquid crystal or pixel of the display 1622 changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor 1604 from the application of the instructions of the computer program 1610 and/or operating system 1608 to the input and commands. The image may be provided through a graphical user interface (GUI) module 1618. Although the GUI module 1618 is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system 1608, the computer program 1610, or implemented with special purpose memory and processors.
In one or more embodiments, the display 1622 is integrated with/into the computer 1602 and comprises a multi-touch device having a touch sensing surface (e.g., track pod or touch screen) with the ability to recognize the presence of two or more points of contact with the surface. Examples of multi-touch devices include mobile devices (e.g., IPHONE, NEXUS S, DROID devices, etc.), tablet computers (e.g., IPAD, HP TOUCHPAD, SURFACE Devices, etc.), portable/handheld game/music/video player/console devices (e.g., IPOD TOUCH, MP3 players, NINTENDO SWITCH, PLAYSTATION PORTABLE, etc.), touch tables, and walls (e.g., where an image is projected through acrylic and/or glass, and the image is then backlit with LEDs).
Some or all of the operations performed by the computer 1602 according to the computer program 1610 instructions may be implemented in a special purpose processor 1604B. In this embodiment, some or all of the computer program 1610 instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor 1604B or in memory 1606. The special purpose processor 1604B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor 1604B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program 1610 instructions. In one embodiment, the special purpose processor 1604B is an application specific integrated circuit (ASIC).
The computer 1602 may also implement a compiler 1612 that allows an application or computer program 1610 written in a programming language such as C, C++, Assembly, SQL, PYTHON, PROLOG, MATLAB, RUBY, RAILS, HASKELL, or other language to be translated into processor 1604 readable code. Alternatively, the compiler 1612 may be an interpreter that executes instructions/source code directly, translates source code into an intermediate representation that is executed, or that executes stored precompiled code. Such source code may be written in a variety of programming languages such as JAVA, JAVASCRIPT, PERL, BASIC, etc. After completion, the application or computer program 1610 accesses and manipulates data accepted from I/O devices and stored in the memory 1606 of the computer 1602 using the relationships and logic that were generated using the compiler 1612.
The computer 1602 also optionally comprises an external communication device such as a modem, satellite link, Ethernet card, or other device for accepting input from, and providing output to, other computers 1602 and/or devices as described herein.
In one embodiment, instructions implementing the operating system 1608, the computer program 1610, and the compiler 1612 are tangibly embodied in a non-transitory computer-readable medium, e.g., data storage device 1620, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive 1624, hard drive, CD-ROM drive, tape drive, etc. Further, the operating system 1608 and the computer program 1610 are comprised of computer program 1610 instructions which, when accessed, read and executed by the computer 1602, cause the computer 1602 to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory 1606, thus creating a special purpose data structure causing the computer 1602 to operate as a specially programmed computer executing the method steps described herein. Computer program 1610 and/or operating instructions may also be tangibly embodied in memory 1606 and/or data communications devices 1630, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device,” and “computer program product,” as used herein, are intended to encompass a computer program accessible from any computer readable device or media.
Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer 1602.
This concludes the description of the preferred embodiments of the present disclosure. The foregoing description of the preferred embodiment has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of rights be limited not by this detailed description, but rather by the claims appended hereto.
In view of the above, embodiments of the invention leverage existing HTTP/TCP network infrastructure and are able to traverse most networks with no changes to routing/firewall configurations. Further, embodiments preserve the use of various conditional access/encryption systems to protect content delivered via IP. No changes to the uplink encoding, encryption, multiplexing, or IRD decoder management infrastructure are required, allowing the uplink programmer to manage their IRD network independent of transmission medium. One or more embodiments result in no impact to current or future IRD functionality following the embedding of the enhanced HLS client. In addition, embodiments are amenable to interoperability with 3rd party DRM (digital rights management) systems (in which case content protection may be applied at the chunk/file level instead of the TS packet layer). Also, as HLS is supported by numerous content distribution network (CDN) providers, the cost/risk of deployment is very low for programmers.
This application claims benefit of U.S. Provisional Patent Application No. 62/829,603, entitled “Delivery of DigiCipher Multiplexes via HTTP,” by Erik J. Elstermann, Todd T. Kassman, Michael A. Casteloes, Mark Schaffer, John Shumate, and Robert Lovejoy Seymour filed Apr. 4, 2019, which application is hereby incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
62829603 | Apr 2019 | US |