The invention relates to a method and stream modifier for pre-processing a media stream for a user device. The invention further relates to the user device. The invention further relates to a computer program comprising instructions for causing a processor system to perform the method. The invention further relates to a computer readable medium comprising metadata for use by the stream modifier and method.
Media content such as video content and audio content is commonly delivered to users in digital form. If media content has a temporal aspect, and in particular is associated with a timeline which indicates how the media content is to be played out over time, such digital form is typically referred to as a media stream. Media streams may be delivered to a user device via a media distribution network. In particular, a media stream may be streamed to the user device, which allows the user device to begin play-out of the media stream while still receiving further parts of the media stream. However, the media stream may also be delivered to a user device in a non-streaming manner, e.g., by being delivered to the user device in the form of a file.
A media stream may be streamed in real-time or quasi-real time, e.g., as a broadcast stream. Additionally or alternatively, a media stream may be cached, e.g., by the media distribution network, or recorded, e.g., by a Personal Video Recorder (PVR).
Examples of media streams include video streams such as camera-recorded or computer-rendered streams, audio streams such as microphone-recorded streams, timed text streams such as subtitle streams or social-media streams, timed events streams which show an advertisement image or trigger or perform an action at the receiver, and multimedia streams comprising different types of media streams.
It may occur that a media stream represents primary content and that secondary content exists which complements the primary content but which is not included in the media stream. For example, such secondary content may represent value-added content which has been removed from the media stream during media distribution, which was purposefully not added to the media stream, which was not available at a time of formatting the media stream, etc. Examples of value-added content include, but are not limited to, applications such as Hybrid Broadcast Broadband TV (HbbTV) applications, media synchronization information such as MPEG Delivery of Timeline for External Data (TEMI), ancillary content such as ancillary video, audio, or timed text, additional Electronic Program Guide (EPG) metadata, personalization functions, stream events, etc.
A specific yet non-limiting example is that of a television broadcaster seeking to deliver value-added services to television viewers. Accordingly, a media stream representing primary content, e.g., a video signal, may be enriched with secondary content, e.g., an HbbTV application. However, in the media distribution network, the secondary content may be stripped from the media stream for technical or commercial reasons. As a consequence, the end user may not be able to enjoy the secondary content. The above problem is an actually occurring problem, e.g., as indicated by the German media authorities' (ZAK) decision that a HbbTV signal does not need to be transmitted by platform operators because it does not constitute part of the programme signal, as decided in its 69th meeting in Saarbrücken on 23 Jun. 2015 and summarized on http://merlin.obs.coe.int/iris/2015/9/article10.de.html (IRIS 2015-9:1/10, Germany, “ZAK takes fundamental decisions on platform regulation”).
In the case triggering the above decision, the distributor removed the so-termed AIT (Application Information Table) information from broadcast streams. In response, the HbbTV Association has created a specification for so-called Application Discovery over Broadband (ADB), as introduced in a same-titled article in issue 24 of ‘tech-i’, June 2015, pp. 8-9. However, the proposed ADB mechanism is limited in its applicability to the removal of AIT information from a media stream.
It would be advantageous to provide a user device access to secondary content which complements the primary content of a received primary media stream.
The following aspects of the invention involve accessing a complementary stream which represents the secondary content, and modifying the primary media stream on the basis of construction metadata, for example, by including one or more parts of the complementary stream in the primary media stream.
In accordance with a first aspect of the invention, a method may be provided for pre-processing a primary media stream for a user device. The user device may comprise a stream parser for parsing the primary media stream. The method may comprise:
In accordance with another aspect of the invention, a transitory or non-transitory computer-readable medium may be provided comprising a computer program. The computer program may comprise instructions for causing a processor system to perform the method.
In accordance with another aspect of the invention, a transitory or non-transitory computer-readable medium may be provided comprising construction metadata. The construction metadata may relate one or more parts of a complementary stream to a primary media stream.
In accordance with another aspect of the invention, a stream modifier may be provided for pre-processing a primary media stream for a user device. The user device may comprise a stream parser for parsing the primary media stream. The stream modifier may comprise:
The above aspects of the invention may involve accessing a primary media stream which represents primary content. Here, the adjective ‘primary’ may refer to content which is by itself intended to be consumed by a user and may as such be experienced independent of other content. For example, the primary content may be a video signal of a television program, an audio signal of a radio program, etc. The primary media stream may be parsable by a stream parser of a user device. Such parsing may be performed to enable the user device to process the primary content. Examples of such processing by the user device may include play-out, recording, storing on a storage medium, etc. Examples of user devices may include, televisions, monitors, projectors, media players and recorders, set-top boxes, smartphones, personal computers, laptops, tablet devices, audio systems, smart watches, etc., as well as customer-premises equipment.
Moreover, secondary content may be accessed which complements the primary content. Here, the adjective ‘secondary’ may refer to the content by itself not being intended to be consumed by the user, but rather in conjunction with the primary content. For example, the secondary content may be an application accompanying a television program, media synchronization information, etc. Such secondary content may be considered ‘value-added content’, referring to the secondary content being deemed by the user or other party to add value to the primary content. As such, secondary content may also comprise a secondary screen video signal or an alternative audio signal.
The secondary content may be accessed in the form of a complementary stream. The complementary stream may be a complementary media stream, e.g., by comprising media data such as audio/video data, or a complementary non-media stream, e.g., by comprising non-media content such as an application to be executed by the user device, or by comprising MPEG TEMI information to enable media synchronisation, or by augmenting or replacing Electronic Programme Guide (EPG) data. The primary media stream may be modified on the basis of construction metadata which relates one or more parts of the complementary stream to the primary media stream. For example, the primary media stream may be modified to include the one or more parts of the complementary stream. A non-limiting example is that both streams may be multiplexed to generate a single output media stream. The output media stream may be also referred to as a ‘constructed’ media stream. The multiplexing may be performed such that the constructed media stream is parsable by the stream parser of the user device. For example, the constructed media stream may adhere to the same specification that the primary media stream and the stream parser may adhere to, for example the MPEG Transport Stream specification of MPEG-2 Part 1, Systems (ISO/IEC standard 13818-1 or ITU-T Rec. H.222.0).
The above aspects of the invention may have as effect that a primary media stream may be obtained which may be modified to include secondary content representing content which is by itself not being intended to be consumed by the user, but rather in conjunction with the primary content. An advantage may be that a separate delivery mechanism for delivering the secondary content to the user device may not be needed. For example, a constructed media stream may be generated which may be parsed by existing parsing functionality already present in the user device. Another advantage may be that any type of secondary content may be added to the primary media stream which is suitable for inclusion in a media stream, e.g., by being parsable by the stream parser of the user device when multiplexed with the primary content in a constructed media stream. The secondary content is thus not limited to AIT information of a media stream. Moreover, by providing the stream modifier in the user device or near the user device, e.g., as a separate user device or customer-premises equipment, it may be ensured that the integrity of the modified primary media stream is maintained, e.g., that the secondary content remains included in the modified primary media stream from the stream modifier to the user device.
It is noted that the primary media stream may also be considered ‘incomplete’ without there being an explicit removal or modification of information of the stream. Namely, the stream may be originally generated to not include this information, e.g., may directly be generated as an ‘incomplete’ media stream for same or similar reasons as mentioned in this specification in reference to the modification of streams.
In accordance with another aspect of the invention, a user device may be provided which comprises the stream modifier. The user device may thus comprise the first input interface, the second input interface and the processor. An advantage of this embodiment over another embodiment in which the stream modifier is separate from the user device is that the user device may be provided with the functionality to (semi-) autonomously modify the primary media stream to include the secondary content of the complementary stream. It is thus not needed to provide a separate device, e.g., on or near the user's premises, to carry out the claimed modification.
In an embodiment, the stream parser of the user device may comprise the stream modifier. As such, the stream modification may be performed within the user device, namely by the stream parser of the user device, which may be configured to perform the stream modification.
In an embodiment, the method may further comprise generating, as output, a constructed media stream which is parsable by the stream parser of the user device, wherein the primary media stream, the complementary stream and the constructed media stream are preferably MPEG Transport Streams. As such, the constructed media stream may adhere to the MPEG Transport Stream specification of MPEG-2 Part 1, Systems. Such a constructed media stream may be generated by multiplexing the primary media stream with the one or more parts of the complementary stream.
In an embodiment, the construction metadata may be indicative of at least one of:
The above represent instructions which may be provided by the construction metadata to the stream modifier. It is noted that there may be multiple ways to implement an instruction. For example, replacing an elementary stream may be equivalent to including one elementary stream and excluding another. Another example is that excluding an elementary stream may be equivalent to not including it.
In an embodiment, the construction metadata may be formed by a PID (Packet Identifier) replacement table. The PID replacement table (in short PRT) may be structured similarly to other PSI (Program-Specific Information) tables from the MPEG Transport Stream specification, i.e., the aforementioned ISO/IEC standard 13818-1, and may thus adhere to well-known table structures and syntaxes.
In an embodiment, the construction metadata may be comprised in the complementary stream, and the method may further comprise accessing the construction metadata in the complementary stream. The construction data may be included in the complementary stream itself, e.g., in the form of the aforementioned PID replacement table. As such, it may not be needed to separately resolve a resource location which comprises construction metadata that fits the complementary stream.
In an embodiment, the accessing the complementary stream may comprise:
Although several possibilities exist for accessing the complementary stream, it may at times be needed or desired to first identify the primary media stream before being able to access the complementary stream. For example, if there are multiple complementary streams available at a resource location, each representing secondary content for different primary content, it may be that the appropriate complementary stream can only be retrieved after the primary media stream has been identified. Having identified the primary media stream, a resource location may be identified which comprises the complementary stream. Here, the term ‘resource’ may refer to a server, storage medium, broadcast channel, etc., whereas the ‘resource location’ may represent information which allows the resource to be accessed, such as an internet address, for example an URL address. It is noted that identifying the primary media stream may comprise identifying the primary content contained therein.
In an embodiment, said identifying the primary media stream may be based on at least one of:
Each of the above data items may uniquely identify the primary media stream, or may be combined with one or more other data items to form a unique identifier of the primary media stream and/or the primary content contained therein. The hash value may be calculated to determine a fingerprint of the primary media stream.
In an embodiment, the resource location may be a WebSocket URL, and the accessing may comprise setting up a WebSocket connection and receiving the complementary stream via the WebSocket connection. WebSocket has been found to be well-suited for providing access to the complementary stream with little overhead.
In an embodiment, said resolving the resource location may comprise querying a DNS SRV (Domain Name System Service record).
In an embodiment, said resolving may be performed by a software application which is running on a processor system of the user device and which is associated with the primary media stream. The application may preferably be a Hybrid Broadcast Broadband TV application.
It will be appreciated by those skilled in the art that two or more of the above-mentioned embodiments, implementations, and/or aspects of the invention may be combined in any way deemed useful.
Modifications and variations of the stream modifier, the user device, the construction metadata and/or the computer program, which correspond to the described modifications and variations of the method, can be carried out by a person skilled in the art on the basis of the present description.
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter. In the drawings,
It should be noted that items which have the same reference numbers in different figures, have the same structural features and the same functions, or are the same signals. Where the function and/or structure of such an item has been explained, there is no necessity for repeated explanation thereof in the detailed description.
The following list of references and abbreviations is provided for facilitating the interpretation of the drawings and shall not be construed as limiting the claims.
In the following embodiments, the primary media stream, the complementary stream and the constructed media stream are, by way of example, MPEG Transport Streams formatted in accordance with ISO/IEC standard 13818. However, this is not a limitation, in that said streams may also be formatted differently, e.g., in accordance with the Real-time Transport Protocol (RTP).
The situation depicted in
As a result of these modifications and removals, consumers may not obtain the services that they may want to receive, including, but not limited to:
To ‘undo’ such and other modifications, a stream modifier may be provided for pre-processing a primary media stream for a user device. The user device may comprise a stream parser for parsing the primary media stream. The stream modifier may comprise a first input interface configured for accessing the primary media stream, the primary media stream representing primary content, a second input interface configured for accessing a complementary stream, the complementary stream representing secondary content which complements the primary content, and a processor configured for modifying the primary media stream on the basis of construction metadata which relates one or more parts of the complementary stream to the primary media stream. For example, as output, a constructed media stream may be generated which is parsable by the stream parser of the user device.
Having obtained access to the incomplete MPEG Transport Stream 120, the complementary MPEG Transport Stream 125 and the construction metadata 130, the stream multiplexer 200 may multiplex the incomplete MPEG Transport Stream 120 with the complementary MPEG Transport Stream 125 on the basis of the construction metadata 130, and provide the resulting constructed MPEG Transport Stream 140 to the user device 080 for being parsed by the stream parser of the user device.
Resolving
It will be appreciated that the complementary stream may be accessed in various ways. For example, the primary media stream may be identified, and based on the primary media stream having been identified, a resource location may be resolved at which the complementary stream is accessible. The complementary stream may then be accessed from the resource location. To identify the primary media stream, various options exist, including but not limited to one or more of: an IP multicast address of the primary media stream, an URL at which the primary media stream is accessed, a frequency at which the primary media stream is accessed, an identifier provided with the primary media stream, a filename of the primary media stream, and a hash value calculated at least in part from the primary media stream. This data may be used as an identifier, which may be used to resolve the resource location of the complementary stream which is associated with the primary media stream.
For example, a Uniform Resource Identifier (URI) of a server comprising the complementary stream may be pre-configured in the stream modifier or the user device comprising the stream modifier. Such pre-configuration may be performed during manufacturing, at the point-of-sale, by a user, etc. For example, if the stream modifier is comprised in a set-top box or television, the pre-configuration may be performed using an onscreen menu, via a removable module (e.g., Common Interface (CI), CI+), using a USB stick, etc. Another option is the use of a DNS SRV (Service Name, https://en.wikipedia.org/wiki/SRV_record), e.g., “_CTS._Jcp.dvb.org”. Here, “dvb.org” may be the organization specifying the service name. A DNS query to this SRV may result in a DNS response “_CTS._Jcp.dvb.org. 86400 IN 0 5 10101 cts.broadcaster.com”. This may denote that the Complementary Transport Stream may be accessed at cts.broadcaster.com at TCP port 10101. The DNS SRV may be pre-configured in the stream modifier or in the user device comprising the stream modifier, e.g., in a same manner indicated above for the pre-configuring the URI. In general, the above pre-configuration may be per TV channel or per group of TV channels.
Another example is that the DNS SRV may be configured using a channel-specific HbbTV application. When an HbbTV terminal (set-top box, television or similar user device) switches to a particular TV channel, a channel-specific HbbTV application may be started. This HbbTV application may be configured to instruct the HbbTV terminal to retrieve the corresponding Complementary Transport Stream, e.g., via an API call. The following is an embodiment of a suitable HbbTV API call:
1. ctsManager=oipfObjectFactory.createCtsManager( );
2. ctsManager.initCtsManager(new CtsObject(‘cts.broadcaster.com:10101’));
3. tsObject1=ctsManagergetPrimaryTransportStream( );
4. tsObject2=ctsManager.createComplementaryTsObject(‘cts.broadcaster.com:10101’);
5. tsObject3=ctsManagerintegrateTsObjects(tsObject1,tsObject2);
The first line may create a new empty CtsManager object which is responsible for managing Complementary Transport Streams. The second line may initialize the CtsManager object with a new Complementary Transport Stream which is to be retrieved from cts.broadcaster.com:10101 and subsequently multiplexed by the stream multiplexer with the Primary Transport Stream retrieved via broadcast. The third, fourth and fifth line are more fine-grained and explicit API calls, offering more flexibility. The third line gets the primary transport-stream object tsObject1. The fourth line creates a new complementary-transport-stream object tsObject2 to be retrieved from cts.broadcaster.com:10101. The fifth line creates a third transport-stream object tsObject3, which is the integration of the primary transport-stream object tsObject1 and the complementary-transport-stream object tsObject2.
The above embodiment assumes that there exists a functioning mechanism to start a channel-specific HbbTV application, with at the same time the Primary Transport Stream still lacking information (e.g., TEMI timing information).
Another example of the discovery and retrieval of a Complementary Transport Stream (CTS) may be described with reference to
Any embodiment of resolving may be combined with others. Also, multiple pre-configurations may exist as the source of the Complementary Transport Streams may differ depending on the Primary Transport Streams.
In general, the Complementary Transport Stream may be transported via WebSocket. For example, a WebSocket URL may be specified via an API call. In other embodiments, the Complementary Transport Stream may be transported via an HTTP/2 connection, over a RTP connection or over a MPEG DASH connection.
In general, the configuration of the resource location of the Complementary Transport Stream may be performed via a procedure similar to independent app discovery for HbbTV (2016 amendment to HbbTV, called “Application Discovery over Broadband Specification”), and may thus be termed “Complementary Transport Stream discovery”. Alternatively, the configuration may be performed via an extension to independent app discovery. Alternatively or additionally, independent app discovery may be used as fallback mechanism if Complementary Transport Stream discovery fails, or vice versa.
Moreover, the above configuration of the Complementary Transport Stream may be application dependent and may occur each time when a user switches channel, e.g., switches TV channel. The configuration may be memorized by the stream modifier and reused when a user switches back to the same TV channel.
It will be appreciated that the resource location of the construction metadata may be resolved in a same manner as described with reference to the complementary stream. Alternatively, as also described further onwards, the construction metadata may be comprised in, and thus accessed via, the complementary stream.
Construction Metadata
The construction metadata may represent instructions to the stream modifier on how to combine the incomplete Transport Stream and the complementary Transport Stream into a constructed Transport Stream that is ready for consumption by a user device, e.g., by being parsable by the stream parser of the user device. Examples of instructions which may be provided by construction metadata include:
It will be appreciated that there may be multiple ways to achieve the same effect. For example, excluding an Elementary Stream may be considered as being equivalent to not including it, replacing an Elementary Stream may be equivalent to including one Elementary Stream and excluding another, etc.
Another instruction may be to replace the PAT table of the Primary Transport Stream, e.g., to change the order of the channel numbers. Yet another instruction may be to rewrite the PCR clock and/or PTS timestamps.
The construction metadata may be provided in the form of a PID Replacement Table (PRT). In an embodiment, the PID Replacement Table may be comprised in the Complementary Transport Stream. It will be appreciated that the Complementary Transport Stream may be empty or absent if there are no PIDs to be added. The following is an example of construction metadata encoded in XML:
This construction metadata specifies, by way of example, a multiplexing of two MPEG Transport Streams, namely a Primary Transport Stream and a Complementary Transport Stream, into one Constructed Transport Stream:
It is noted that the above example makes no distinction whether an input MPEG Transport Stream is a primary (or ‘incomplete’) Transport Stream, a Complementary Transport Stream or other type of Transport Stream.
Instead of being encoded in XML, the construction metadata may also be encoded in binary, which is typically more compact than the aforementioned XML encoding. Compactness may be relevant when the Construction Metadata is included in the Complementary Transport Stream, e.g., in the form of the PID Replacement Table (PRT). The PRT table may be identified by its own standardised PID value. At the time of writing, PID values 5-15 (0x0005-0x000F) have been reserved. As such, the PRT may have a PID that is any one of these reserved values, e.g., PID=5 (0x0005). The presence of a PRT table in an MPEG Transport Stream may indicate that it is a Complementary Transport Stream, not meant for stand-alone consumption. Such a PRT may have an instruction to exclude the PRT, as otherwise the Constructed Transport Stream would become another Complementary Transport Stream. Note that the include/exclude/replace mechanism may allow for the degenerate case of creating a new Complementary Transport Stream if desired.
Other General Aspects
In general, the number of MPEG Transport Streams used as input to the stream modifier does not need to be two. It may also be one, three or more:
The stream modifier may be embodied as a stand-alone device which may generate as output a Constructed Transport Stream for being provided to the input of the user device, the latter being, e.g., a TV device, set-top box or similar consumer device. Alternatively, the stream modifier may be integrated into the user device.
Memory elements 1004 may include one or more physical memory devices such as, for example, local memory 1008 and one or more bulk storage devices 1010. Local memory may refer to random access memory or other non-persistent memory device(s) generally used during actual execution of the program code. A bulk storage device may be implemented as a hard drive, solid state disk or other persistent data storage device. The processing system 1000 may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from bulk storage device 1010 during execution.
Input/output (I/O) devices depicted as input device 1012 and output device 1014 optionally can be coupled to the data processing system. Examples of input devices may include, but are not limited to, for example, a microphone, a keyboard, a pointing device such as a mouse, or the like. Examples of output devices may include, but are not limited to, for example, a monitor or display, speakers, or the like. Input device and/or output device may be coupled to data processing system either directly or through intervening I/O controllers. A network adapter 1016 may also be coupled to data processing system to enable it to become coupled to other systems, computer systems, remote network devices, and/or remote storage devices through intervening private or public networks. The network adapter may comprise a data receiver for receiving data that is transmitted by said systems, devices and/or networks to said data and a data transmitter for transmitting data to said systems, devices and/or networks. Modems, cable modems, and Ethernet cards are examples of different types of network adapter that may be used with data processing system 1000.
As shown in
In one aspect, for example, data processing system 1000 may represent a stream modifier for pre-processing a primary media stream for a user device. In that case, application 1018 may represent an application that, when executed, configures data processing system 1000 to perform the various functions described herein with reference to “stream modifier” or “stream multiplexer”. In another aspect, data processing system 1000 may represent the user device. In that case, application 1018 may represent an application that, when executed, configures data processing system 1000 to perform the various functions described herein with reference to “user device”.
In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. Use of the verb “comprise” and its conjugations does not exclude the presence of elements or steps other than those stated in a claim. The article “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Number | Date | Country | Kind |
---|---|---|---|
16169299.1 | May 2016 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2017/061466 | 5/12/2017 | WO | 00 |