WO2018072184A1 - Generation of mosaic channels for ott live broadcasts - Google Patents
Generation of mosaic channels for ott live broadcasts Download PDFInfo
- Publication number
- WO2018072184A1 WO2018072184A1 PCT/CN2016/102754 CN2016102754W WO2018072184A1 WO 2018072184 A1 WO2018072184 A1 WO 2018072184A1 CN 2016102754 W CN2016102754 W CN 2016102754W WO 2018072184 A1 WO2018072184 A1 WO 2018072184A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mosaic
- plain text
- text file
- channel
- live broadcast
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 61
- 238000004458 analytical method Methods 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8549—Creating video summaries, e.g. movie trailer
Definitions
- Over-the-top (OTT) live broadcasting provides a way of delivering TV channels over the Internet to users.
- the content is not provided by a user's internet service provider but is instead provided by a third party.
- Users may access OTT content through many different types of computing devices which can be connected to the Internet, e.g. desktop computers, tablet computers, smartphones, games consoles, smart TVs, set-top boxes, etc.
- the content is accessed from a remote server which may be one of many geographically distributed servers to enable concurrent access by large numbers of users in many locations and which may be considered to form a content delivery (or distribution) network (CDN) .
- CDN content delivery (or distribution) network
- Mosaic preview channels may be provided by an OTT content provider to enable a user to simultaneously preview multiple channels prior to selecting one that they wish to watch.
- a mosaic channel for an over-the-top (OTT) live broadcast system is generated within the content delivery network (CDN) using an extension to the plain text file which specifies the network location of the media file (s) for an OTT live broadcast channel.
- the extended plain text file contains a network location associated with each of the small preview videos within the mosaic channel and/or layout data describing the on-screen location of each of the small preview videos.
- the video stream for the mosaic channel is an independent video stream formed by merging a plurality of full screen videos, each one corresponding to one of the plurality small preview videos.
- a first aspect provides a method of generating a mosaic channel in an OTT live broadcast system, the method comprising: accessing, at a server, data for a plurality of multimedia streams; combining, at the server, the plurality of multimedia streams into an independent multimedia stream for the mosaic channel according to a predefined layout; generating, at the server, an extended plain text file for the mosaic channel, the extended plain text file comprising layout data generated at least in part on the predefined layout; and storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices.
- a second aspect provides a method of displaying a mosaic channel in an OTT live broadcast system, the method comprising: accessing, at a user device, a plain text file for an OTT live broadcast channel; analyzing, at the user device, the plain text file to determine whether the OTT live broadcast channel is a mosaic channel; and in response to determining that the OTT live broadcast channel is a mosaic channel: identifying, at the user device, layout data in the plain text file and generating a movable UI selection element using the layout data; and triggering, at the user device, display of a video stream for the mosaic channel overlaid with the movable UI selection element.
- a third aspect provides a content server in an OTT live broadcast system, the content server comprising: a stream merging module arranged to access data for a plurality of multimedia streams and combine the plurality of multimedia streams into an independent multimedia stream for an OTT live broadcast mosaic channel according to a predefined layout; a mosaic channel attribute generation module arranged to generate an extended plain text file for the mosaic channel, the extended plain text file comprising layout data generated at least in part on the predefined layout; and a stream sending module arranged to storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices.
- a fourth aspect provides a user device comprising: a channel receiving and analysis module arranged to access a plain text file for an OTT live broadcast channel from a server in an OTT live broadcast system; a mosaic attribute analysis module arranged to analyse the plain text file to determine whether the OTT live broadcast channel is a mosaic channel and in response to determining that the OTT live broadcast channel is a mosaic channel, to identify layout data in the plain text file; a UI presentation and player module arranged to generate a movable UI selection element using layout data provided by the mosaic attribute analysis module, to display a multimedia stream for the mosaic channel overlaid with the movable UI selection element generated by the UI presentation module.
- the methods described herein may be performed by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium.
- tangible (or non-transitory) storage media include disks, thumb drives, memory cards etc. and do not include propagated signals.
- the software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
- firmware and software can be valuable, separately tradable commodities. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
- HDL hardware description language
- FIG. 1 is a schematic diagram of an example system for the provision of an OTT live broadcast service
- FIG. 2 is a schematic diagram showing an improved content server, an improved user device and an improved EPG server;
- FIG. 3 is a flow diagram showing an example method of generating a new mosaic channel which may be implemented by the content server shown in FIG. 2;
- FIG. 4 shows two graphical representations of different layouts for mosaic channels
- FIG. 5 is a flow diagram showing an example method of playing a new mosaic channel which may be implemented by the user device shown in FIG. 2;
- FIG. 6 shows two different examples of UI selection elements overlaid over a mosaic channel comprising four small preview videos
- FIG. 7 is a schematic diagram showing an example effect of a user selection of one of the small preview videos
- FIG. 8 is a schematic diagram illustrating the dynamic and automatic switching into and out of a mosaic layout within an OTT live broadcast channel
- FIG. 9 shows an example of the message flow between elements of an OTT live broadcast system.
- FIG. 10 shows example implementations of both the content server and the user device shown in FIG. 2.
- Embodiments of the present invention are described below by way of example only. These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved.
- the description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
- FIG. 1 is a schematic diagram of an example system 100 for the provision of an OTT live broadcast service.
- Content is provided by one or more servers 102 within a content delivery network (CDN) 104 and is accessed by a user via a user device 106, such as a set-top box (STB) , desktop computer, tablet computer, smartphone, games console, smart TV, etc.
- the user device 106 accesses an electronic program guide (EPG) server 108 via a network 110 (such as the Internet) to determine what channels of live broadcast content are available within the OTT system 100.
- EPG electronic program guide
- FIG. 1 shows a single EPG server 108, it will be appreciated that there may be multiple EPG servers 108 and similarly a CDN 104 may comprise fewer or more content servers 102 than are shown in FIG. 1. Additionally although FIG. 1 shows only one user device 106, it will be appreciated that large numbers of user devices 106 may connect to the CDN 104.
- the term 'live broadcast' refers to the fact that the content is broadcast (by the CDN 104) and received (by the user device 106) in real-time and may be received by many user devices. This contrasts to stored content which is transmitted to a single user in response to a user request from that user.
- mosaic preview channels may be provided by an OTT content provider to enable a user to simultaneously preview multiple live broadcast channels prior to selecting one that they wish to watch.
- a mosaic preview channel may provide multiple small preview (or thumbnail) videos which can be viewed side by side and simultaneously on a single screen (e.g. a single TV screen) by a user, with each small preview video corresponding to a different available live broadcast channel (i.e. each small preview video is representative of a different available live broadcast channel) .
- the user device e.g. STB or smartphone
- a mosaic preview channel may be performed on a server 102 (e.g. within the CDN 104) or on the user device 106 (e.g. on a STB or smartphone) .
- the mosaic preview channel is generated within the CDN 104 this typically requires detailed information to be configured on the EPG server 108 and synchronized to the user device 106 because, as described above, the user device 106 accesses the EPG server 108 to determine what channels of OTT live broadcast content are available.
- An error in the synchronization between the content server 102 that creates the mosaic channel, the EPG server 108 and the user device 106 may result in data inconsistency (e.g.
- the mosaic preview channel may alternatively be generated on the user device 106; however, this reduces the overall efficiency of the system 100 because the mosaic channel is independently generated on each user device 106.
- Described herein is a method of generating mosaic channels for OTT live broadcast within the CDN (e.g. by a content server) which reduces the complexity of the channel management system within the system and in particular reduces the complexity at an EPG server.
- the mosaic channel is implemented using an extension to the plain text file which specifies the network location of the media file (s) for an OTT live broadcast channel.
- the plain text file which is extended as described herein may be an M3U or M3U8 file (where an M3U8 file is an M3U file encoded in the UTF-8 format) and when it is opened on a user device, software running on the user device will not play it but will use it to identify the network location (or address) of the content (within the CDN) , which can then be accessed and played.
- the extended plain text file e.g. the extended M3U or M3U8 file
- the extended plain text file as described herein therefore causes direct interaction between the user device and the CDN (e.g. a content server within the CDN) and reduces the interventions by an EPG server.
- an improved content server (and hence an improved CDN comprising one or more of such improved content servers) which creates an independent mosaic channel from a plurality of small preview videos or images (i.e. such that multiple small preview videos and/or images are displayed concurrently, with each small preview video or image only occupying a portion of the display area) and generates the extended plain text file (e.g. the extended M3U or M3U8 file) .
- the content server Having generated the mosaic channel and the extended plain text file, the content server provides live channel information (including information on the newly generated mosaic live channel) to an EPG server so that users can view the mosaic channel via a user device.
- the extended plain text file (e.g. the extended M3U or M3U8 file) described herein contains a network location (e.g. a URL) associated with each of the small preview videos or images and layout data describing the on-screen location of each of the small preview videos or images within the mosaic channel. At least one of the small preview videos or images corresponds to a live broadcast channel. If the small preview video /image corresponds to a live broadcast channel, the associated network location which is included within the extended plain text file is the network location for a full screen version of the live broadcast channel (e.g. a URL pointing to the plain text file for the live broadcast channel) .
- a network location e.g. a URL
- Described herein is an improved user device which receives and analyses the extended plain text file (e.g. the extended M3U or M3U8 file) if the user selects the mosaic channel which was generated by the content server. Having analysed the extended plain text file, the user device generates a user interface (UI) based on layout data in the extended plain text file. The generated UI enables a user to select one of the small preview videos (or images) within the mosaic channel whilst viewing the mosaic channel.
- the extended plain text file e.g. the extended M3U or M3U8 file
- the UI may be a graphical UI (GUI) which is overlaid over the mosaic channel when it is played and which provides a frame around one of the small preview videos (or other GUI element which indicates one of the small preview videos) and which can be moved around the display on which the mosaic channel is viewed in response to user input received at the user device.
- GUI graphical UI
- Selection of a particular small preview video is triggered within the user device in response to receiving a predefined 'select' user input in combination with data identifying the current position of the movable GUI element.
- the user device identifies the network location for the selected small preview video which is specified in the extended plain text file for the mosaic channel and accesses that network location.
- the mosaic channel may therefore be referred to as an 'interactive mosaic channel' .
- the extended plain text file is updated within the CDN (e.g. by a content server) and no complicated synchronization process (e.g. between the CDN and EPG server) is required.
- the mosaic channel comprising a plurality of small preview videos
- one of these small preview videos may instead be a small preview image (i.e. a still image instead of a video) .
- the mosaic channel may be generated by merging a plurality of multimedia streams, where these multimedia streams may be video streams or other forms of multimedia streams.
- the terms 'small preview video' and 's mall preview image' are used herein to refer to the fact that the preview video /image does not extend across the entire display space (unlike when viewing a video /image in full screen mode) but instead each one occupies only a portion of the display space so that multiple preview videos and/or images can be viewed side by side and concurrently (e.g. as shown in FIG. 4 and described below) .
- FIG. 2 is a schematic diagram showing an improved content server 202 and an improved user device 206.
- the user device 206 may be any suitable type of user device and examples include, but are not limited to, a set-top box (STB) , a desktop computer, a tablet computer, a smartphone, a games console and a smart TV.
- FIG. 2 also shows an improved EPG server 208.
- These elements 202, 206, 208 may be interconnected by a network (e.g. the Internet) and used in a system such as the one shown in FIG. 1 to provide an OTT live broadcast service.
- the system may comprise more than one content server 202, more than one EPG server 208 and there may be many user devices 206 connected to the CDN.
- the content server 202 comprises a stream sending module 222, a stream merging module 224 and a mosaic channel attribute generation module 226 and the operation of these elements can be described with reference to FIG. 3.
- the user device 206 comprises a channel receiving and analysis module 262, a mosaic attribute analysis module 264, a UI presentation module 266 and a player module 268 and the operation of these elements can be described with reference to FIG. 5.
- the EPG server 208 comprises a channel management module 282.
- the modules within the content server 202 and user device 206 are shown as logically separate elements in FIG. 2, it will be appreciated that the functionality of any two or more of the modules within the same device may be combined when implemented (e.g. the functionality of the UI presentation module 266 and the player module 268 may be combined in a single module) .
- FIG. 3 is a flow diagram showing an example method of generating a new mosaic channel which may be implemented by the content server 202 shown in FIG. 2.
- the method comprises obtaining video stream data for each of the videos to be included in the new mosaic channel (block 302) and combining the video streams according to a predefined UI layout (block 304) .
- the predefined UI layout specifies the size and position of each of the small preview videos within the mosaic channel and two different examples 401, 402 are shown in FIG. 4.
- each of the small preview videos corresponds to one of the video streams which is to be included in the mosaic channel, i.e. each small preview video is a version of one of the video streams but instead of being displayed across the entire display screen, it is displayed in only part of the screen, where the size and location of the part of the screen used is specified in the predefined UI layout.
- the audio for a mosaic channel may be the audio from one of the video streams that are included within the mosaic channel or may be a different audio stream (e.g. a specially generated or default audio stream) or there may be no audio.
- the first example 401 in FIG. 4 shows a mosaic channel created from four video streams and hence it comprises four small preview videos 410-416.
- each of the small preview videos 410-416 are the same size in terms of area within the mosaic channel (i.e. the areas on which they are displayed within the mosaic channel are the same) , unlike the second example 402 which shows six small preview videos 420-425, of which one (small preview video 420) occupies a larger on-screen area than the others.
- the mosaic channel may include the audio of only the larger preview video 420, which may be referred to as the primary video (or primary preview video) .
- the CDN may generate a plurality mosaic channels from the same set of videos, i.e. such that for each of the plurality of mosaic channels, the video stream data which is obtained (in block 302) is the same but the predefined layouts are different so that the video streams are combined in different ways (in block 304) .
- six different mosaic channels may be created from a group of six video streams, labeled A-F, (e.g. using the layout shown in example 402) with the six mosaic channels each having a different one of the six video streams providing the primary video and the audio for the mosaic channel, as shown in the table below:
- the CDN may generate a plurality mosaic channels from the same set of videos, i.e. such that for each of the plurality of mosaic channels, both the video stream data which is obtained (in block 302) and the predefined layouts are the same so that the video streams are combined in different ways (in block 304) but the audio may be different.
- four different mosaic channels may be created from a group of four video streams, labeled A-D, (e.g. using the layout shown in example 401) with the four mosaic channels each having a different one of the four video streams providing the audio for the mosaic channel, as shown in the table below:
- the video streams which are obtained (in block 302) and combined (in block 304) may be any type of video stream comprising any type of content. Examples include live broadcast of live events (e.g. sporting events, breaking news stories, concerts, etc. ) , live broadcast of recorded events, live broadcast of advertisements, user generated content, etc.
- live broadcast of live events e.g. sporting events, breaking news stories, concerts, etc.
- live broadcast of recorded events live broadcast of advertisements
- user generated content etc.
- the arrangement shown in the second example 402 in FIG. 4 may be used to create a mosaic live broadcast channel with the primary preview video 420 corresponding to the live broadcast of a live sporting event (e.g. a football match) and the other, smaller preview videos 421-425 may correspond to other live broadcast channels (e.g. a news channel, a documentary channel, a comedy channel, other sports channels, etc. ) .
- the arrangement shown in the second example 402 in FIG. 4 may be used to create a mosaic live broadcast channel with the primary preview video 420 corresponding to the live broadcast of a news channel and the other, smaller preview videos 421-425 may correspond to different breaking news stories.
- the merging of the video streams may be performed by the stream merging module 224 within the content server 202.
- the video stream data (obtained in block 302) and the predefined UI layout (as used in block 304) are used to generate an extended plain text file (e.g. an extended M3U or M3U8 filed) for the mosaic channel (block 306) .
- the extended plain text file comprises a network location (e.g. a URL) associated with each of the small preview videos and layout data describing the on-screen location of each of the small preview videos within the mosaic channel.
- the network location associated with a small preview video is the network location for a full screen video stream (e.g.
- the network location associated with at least one of the small preview videos is the network location for a full screen video stream (e.g. a URL pointing to the plain text file for the video stream) .
- the network location associated with one or more of the small preview videos may be a web page associated with the particular small preview video.
- a first example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file.
- the mosaic channel combines four video streams in a layout which is similar to that shown in the first example 401 in FIG. 4.
- the directive #URL-MOSAIC is followed by the network location associated with the particular small preview video and so for the first of the small preview videos, this network location is the following URL:
- the layout data describing the on-screen location of each of the small preview videos within the mosaic channel is specified separately for each of the small preview videos; however in other examples, the layout data may be specified initially for all of the small preview videos, followed by the separate network locations associated with each of the small preview videos.
- the layout data for the first of the small preview videos is:
- the layout data is defined in terms of a percentage of the total screen height and width (as indicated by #UNIT-MOSAIC: percent) and in this particular example the each small preview video occupies 50%of the total height of the screen and 50%of the total width of the screen.
- a second example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file.
- the mosaic channel combines four video streams in a layout which comprises one larger preview video and three smaller preview videos (e.g. similar to that shown in the second example 402 in FIG. 4, but for fewer video streams) .
- the layout data is defined in terms of a percentage of the total screen height and width (as indicated by #UNIT-MOSAIC: percent) , however, unlike the first example, in this second example, percent coordinate information is provided within the layout data.
- the first small preview video (which is the larger one of the four) occupies 100%of the total height of the screen and 70%of the total width of the screen and is positioned at coordinate position (0, 0) on the screen, i.e. at the top left of the screen.
- the three other preview videos each occupy 30%of the total height of the screen and 30%of the total width of the screen and are positioned at coordinates (71, 0) , (71, 34) and (71, 67) respectively, where an X-coordinate of 71 indicates a position which is separated from the origin (which may be the top left of the screen) by a distance along the X-axis of 71%of the total width of the screen and a Y-coordinate of 34 indicates a position which is separated from the origin (which may be the top left of the screen) by a distance along the Y-axis of 34%of the total height of the screen.
- a third example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file.
- the mosaic channel combines four video streams in a layout which, like the second example above, comprises one larger preview video and three smaller preview videos.
- the layout data is defined in terms of absolute coordinate information (as indicated by #UNIT-MOSAIC: pixel) and the canvas size, in terms of pixels, is defined, e.g. 1920x1080 pixels in this example.
- the first small preview video occupies a region of the screen which is 1080 pixels high (as indicated by #HEIGHT-MOSAIC: 1080) and 1344 pixels wide (as indicated by #WIDTH-MOSAIC: 1344) and is positioned at coordinate position (0, 0) on the screen, i.e. at the top left of the screen.
- the extended plain text file may comprise more than one network location associated with one or more of the small preview videos within the mosaic channel, as in the following extract from a further example extended plain text file (which is an extended M3U8 file) and where the extract comprises the data that relates to one of the small preview videos:
- the generation of the extended plain text file may be performed by the mosaic channel attribute generation module 226 within the content server 202 based at least in part on information received from the stream merging module 224.
- the data for the newly created mosaic channel is sent to the EPG server 208 (block 308) , e.g. by the stream sending module 222 within the content server 202.
- the data is stored and the mosaic channel is added as a new live channel, e.g. by the channel management module 282.
- FIG. 5 is a flow diagram showing an example method of playing a new mosaic channel which may be implemented by the user device 206 shown in FIG. 2.
- the method comprises obtaining channel list data from the EPG server 208 (block 502) and this may require the user device 206 to log into the EPG server 208.
- the user device 206 receives a user input indicating that the user has selected a different channel (block 504) and in response obtains the plain text file (e.g. the M3U or M3U8 file) for the newly selected channel (block 506) .
- this plain text file obtained in block 506 may be an extended plain text file, e.g. as shown in the examples above, or may be a standard plain text file without the extensions described herein.
- the user device 206 performs an initial analysis of the plain text file for the selected channel (as obtained in block 506) to determine whether the selected channel is a mosaic channel or not (block 508) .
- the initial analysis may examine the plain text file to look for a predefined indicator for a mosaic channel, such as the term ##EXT-X-STREAM-INF-MOSAIC as used in the examples provided above.
- the obtaining of the channel list (in block 502) and the plain text file (in block 506) may be performed by the channel receiving and analysis module 262 within the user device 206.
- the initial analysis (in block 508) may be performed by the mosaic attribute analysis module 264 within the user device 206.
- the display of the full screen video stream for the channel (e.g. by the player 268) is triggered (block 510) . If, however, the selected channel is a mosaic channel ('Yes' in block 508) , the extended plain text file is further analysed to obtain the layout data (e.g. the layout data for each of the small preview videos in the mosaic channel) and this layout data is used to generate a UI selection (or focus) element (block 512) . Display of the mosaic channel's video stream is triggered and the UI selection element is overlaid (block 514) , e.g. as shown in FIG. 6.
- the further analysis of the extended plain text file may be performed by the mosaic attribute analysis module 264 within the user device 206.
- the generation of the UI selection element (in block 512) based at least in part on the layout data obtained by the mosaic attribute analysis module 264, may be performed by the UI presentation module 266 in the user device 206.
- the display of the video stream and the overlaid UI selection element (where the channel is a mosaic channel) may be performed by the player 268 within the user device 206.
- FIG. 6 shows two different examples of UI selection elements overlaid over a mosaic channel comprising four small preview videos 410-416 (as described above with reference to the first example 401 in FIG. 4) .
- the UI selection element 604 is a frame which surrounds one of the small preview videos (video 410 in the example shown) and in the second example 602 the UI selection element 606 is an icon (astar-shaped icon in the example shown) which is positioned adjacent to or slightly overlapping with one of the small preview videos (video 410 in the second example 602) .
- a user can use a user input device (e.g. a remote control, mouse, keyboard, games controller, etc. ) to cause the UI selection element 604, 606 to move between the small preview videos.
- a user input device e.g. a remote control, mouse, keyboard, games controller, etc.
- the overlaid UI selection element moves (e.g. from video 410 to video 416, as shown in the third example 603 in FIG. 6) .
- Receipt of a selection user input (block 518) at the user device 206, e.g. as a consequence of a user selecting 'OK' or 'Enter' on a user input device (which may be integral to or connected to the user device 206) , indicates that the user has selected the small preview video currently indicated by the UI selection element and in response, the network location in the extended plain text file which is associated with the selected preview video is identified (block 520) and accessed (block 522) .
- the mosaic attribute analysis module 264 within the user device 206 may obtain the layout data from the extended plain text file which is then used by the UI presentation module 266 to generate the UI selection element (in block 512) .
- the UI presentation module 266 may also cause the moving of the generated UI selection element 604, 606 in response to a user input (in block 516) .
- the mosaic attribute analysis module 264 may also obtain the network location (in block 520) based, at least in part, on data identifying the current position of the UI selection element as determined by the UI presentation module 266.
- the network location which is identified (in block 520) and accessed (in block 522) is the URL of another plain text file which may be for the full screen video stream which corresponds to the selected small preview video.
- the full screen video stream may be another mosaic channel and so the method may be repeated (as indicated by the dotted arrow from block 522 to block 508) .
- the channel which is selected initially by a user comprises preview videos of different sizes (e.g. as shown in the second example 402 in FIG. 4) with the audio of the larger preview video only (where the larger preview video may be considered to be the primary video)
- selecting one of the smaller preview videos e.g.
- video 421) may result in the user device 206 obtaining a further extended plain text file which corresponds to a mosaic channel which has a similar layout except that a different one of the video streams is now shown as a larger preview video (e.g. video 421 is now the primary video instead of video 420, as represented graphically in FIG. 7) with the audio of the new primary video.
- a further extended plain text file which corresponds to a mosaic channel which has a similar layout except that a different one of the video streams is now shown as a larger preview video (e.g. video 421 is now the primary video instead of video 420, as represented graphically in FIG. 7) with the audio of the new primary video.
- the network location which is identified (in block 520) and accessed (in block 522) may not be the URL of the plain text file of another video stream but may instead be another URL, such as the URL of a web page associated with the selected preview video, e.g. a web page providing additional information about something shown in the selected preview video, a web page of an online store where something shown in the selected preview video can be purchased or a web page which registers a count or vote (as described above) .
- the network location is a URL of a web page
- the web page may be accessed by a browser within the user device 106.
- more than one network location may be identified (in block 520) and accessed (in block 522) , e.g. where the extended plain text file comprises more than one network location associated with a single small preview video (as described above) .
- the channel data may remain the same.
- the CDN e.g. the content server 202
- the CDN may generate an updated extended plain text file (in block 306) and this may also involve an update to the video stream for the mosaic channel (in block 308) .
- the update is only to the network locations associated with a small preview video and not to the video stream and/or predefined UI layout
- only the extended plain text file may be updated (in block 306) and not the video stream (i.e. block 304 may be omitted.
- the updated data for the mosaic channel is then provided to the EPG server 208 to replace the original data (in block 308) . Subsequently, when a user selects the mosaic channel, the updated extended plain text file is obtained by the user device 206 (in block 506) . As described above, no complex synchronization with the EPG server 208 is required, making the system both robust and flexible.
- the extended plain text file may additionally comprise timing information, such as a refresh time interval.
- the refresh time interval where specified within the extended plain text file, causes the user device 206 to regularly refresh (i.e. obtain again) the extended plain text file for the mosaic channel (block 524) .
- the refresh time interval may specify one or more times at which the extended plain text file should be retrieved again from the EPG server (in block 524) or may specify a time interval between refreshes (e.g.
- the extended plain text file is retrieved every X minutes, where the value of X is specified within the extended plain text file) or may specify a time period during which the extended plain text file should be repeatedly and regularly retrieved again from the EPG server and/or may specify a time interval during which the UI selection element should be displayed.
- the newly retrieved extended plain text file for the mosaic channel may be the same as the previously obtained extended plain text file or may be different and where it is different this may cause a new UI selection element to be generated and overlaid (in block 514) .
- a fourth example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file.
- the mosaic channel combines four video streams in a layout which, like the second and third examples above, comprises one larger preview video and three smaller preview videos.
- the line #TIME-VOTE: 20160520201500/20170520201530 represents the refresh interval.
- the refresh interval specifies the start and end of a time period during which the user device should overlay the UI selection element and also indicates that the user device should repeatedly and regularly refresh the extended M3U8 file (i.e. by downloading the current version from the EPG) .
- the user device no longer displays the UI selection element and the mosaic channel reverts back to full screen mode; however, the user device continues to repeatedly refresh the extended M3U8 file (e.g. so that at a later time, a different UI selection element may be generated and displayed) .
- the extended plain text file described herein, and in particular the refresh interval may be used to enable a live broadcast channel to automatically switch between a single video stream played in full screen mode (with no overlaid UI selection element) and a mosaic channel with an overlaid UI selection element (i.e. the switch occurs without any user input triggering it) , as can be described with reference to FIGs. 8 and 9.
- the CDN e.g. a content server 202
- the CDN e.g. a content server 202
- the CDN e.g. a content server 202
- the CDN e.g. a content server 202
- the mosaic channel is broadcast as a new OTT live broadcast channel which has been formed from multiple merged video streams and so the player in the user device plays the video stream in the same way irrespective of whether it is a mosaic channel or not.
- the difference with the mosaic channel arises through the generation and overlay of the UI selection element (as described herein) which enables a user to switch to a full-screen version of one of the small preview videos within a mosaic channel or to switch to a webpage which is associated with one of the small preview videos.
- the reduced version of the extended plain text file may include ##EXT-X-STREAM-INF-MOSAIC to indicate that the M3U8 file is an extended plain text file for a channel which should be treated as if it is mosaic channel, i.e. that it should be analysed further (e.g. by the mosaic attribute analysis module 266) so that the refresh interval within the plain text file is identified and acted upon.
- the mosaic attribute analysis module 266 e.g. by the mosaic attribute analysis module 266
- #TIME-VOTE: 20160520201500/20170520201530 or layout data may be included which indicates that the single video extends across the full display, as follows:
- the data for the live broadcast channel (including the reduced version of the extended plain text file comprising the refresh interval) is sent to the EPG server (block 308 in FIG. 3 and arrow 902 in FIG. 9) and stored there (arrow 904) .
- the user device 206 obtains channel information from the EPG server 208 (block 502 in FIG. 5 and arrows 906-908) and the display of the video stream is triggered (block 514 and arrow 910) . If the reduced version of the extended plain text file contains no layout data (as in the first of the two examples above) or contains layout data for a single video stream (as in the second of the two examples above) or contains data specifying a time interval during which a UI selection element is to be generated and displayed, the user device 206 may not generate a UI selection element (block 512 may be omitted) and so nothing is overlaid over the video stream (in block 514) .
- the CDN (e.g. the content server 202) generates a new video stream for the live broadcast channel (using the method of FIG. 3) where the channel is now a mosaic channel and comprises a primary preview video (which may be the same as the previous full screen video stream 810) and one or more additional preview videos 812-820, which may be smaller, as shown graphically in the second diagram 802 in FIG. 8.
- An updated extended plain text file is also generated (in block 306) which includes layout data for all of the small preview videos and a network location associated with each small preview video (as described above) .
- the updated data for the live broadcast channel is sent to the EPG server 208 (block 308 in FIG. 3 and arrow 912 in FIG. 9) and stored there.
- the user device 206 subsequently obtains the updated plain text file from the EPG server 208 (block 524 in FIG. 5 and arrows 914-915 in FIG. 9) .
- the refresh interval may trigger the user device 206 to re-obtain the plain text file for the channel at predefined intervals or at a predefined date/time or during a predefined time period.
- the newly obtained plain text file may be the same as the previously obtained plain text file (if retrieved from the EPG server 208 prior to updated data being provided to it in block 308) or may be an updated version (if retrieved after the updated data has been provided to the EPG server) .
- the updated live broadcast channel is truly a mosaic channel (i.e. it is formed from multiple video streams) and includes layout data. Consequently a UI selection element is generated (in block 512) and the video stream (comprising the six preview videos 810-820) is displayed with the UI selection element overlaid (arrow 916) and the operation of the user device 206 proceeds as described above with reference to FIG. 5.
- the live broadcast channel may revert back from being a mosaic channel to a non-mosaic channel, i.e. one that shows a single video stream in full screen mode (arrows 917-918) .
- This may involve the content server 202 generating further updated channel data and providing it to the EPG server 208 (using the method of FIG. 3) or the content server 202 may have cached the original channel data and may provide this cached data to the EPG server 208 as the updated channel data.
- the switch may be triggered at the user device 206 by a refresh interval within the updated plain text file which causes the user device 206 to obtain a further updated plain text file from the EPG server 208 (in another iteration of block 524 in FIG. 5) .
- the switch may not involve the provision of updated channel data to the EPG server 208 by the content server 202 and instead the user device 206 may have stored the original reduced version of the extended plain text file and may automatically switch back to this (instead of the updated version) based on the refresh interval in the original reduced version of the extended plain text file or a refresh interval specified in the updated plain text file.
- the modules within the content server 202 and user device 206 may be implemented in hardware or in software and in various examples some modules may be implemented in hardware and others may be implemented in software. For example, where a module performs a large amount of calculations (e.g. the stream sending module 222 which packages the stream and/or the stream merging module 224) , the speed of operation of the module may be faster if it is implemented in hardware rather than software.
- the content server 202 may comprise one or more processors 1002 which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the content server 202 in order to implement the method of FIG. 3.
- the user device 206 may comprise one or more processors 1004 which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the user device 206 in order to implement the method of FIG. 5.
- the processors 1002, 1004 may include one or more fixed function blocks (also referred to as accelerators) which implement a part of the method of operation of the respective device in hardware (rather than software or firmware) .
- fixed function blocks also referred to as accelerators
- Platform software comprising an operating system 1006 or any other suitable platform software may be provided at the computing-based device to enable application software to be executed on the device.
- the application software in the content server 202 may comprise a stream sending module 222, a stream merging module 224 and a mosaic channel attribute generation module 226 and the application software in the user device 206 may comprise a channel receiving and analysis module 262, a mosaic attribute analysis module 264, a UI presentation module 266 and a player module 268.
- these modules e.g. the stream merging module 224) may instead be implemented in hardware instead of being implemented in software.
- Computer-readable media may include, for example, computer storage media such as memory 1008, 1010 and communications media.
- Computer storage media, such as memory 1008, 1010 includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device.
- communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media.
- the computer storage media (memory 1008, 1010) is shown within the content server 202 and user device 206 respectively it will be appreciated that the storage may be distributed or located remotely and accessed via a network or other communication link (e.g. using a communication interface 1012) .
- the user device 206 also comprises an input/output controller 1014 arranged to output display information to a display device 1016 which may be separate from or integral to the user device 206.
- the display information may be generated by the player module 268 so that a user can view the live broadcast channel.
- the input/output controller 1014 is also arranged to receive and process input from one or more user input devices 1018 (e.g. a remote control, games controller, mouse or keyboard) . This user input device may be used to switch between live broadcast channels and/or select one of the small preview videos, as described above.
- the display device 1016 may also act as the user input device 1018 (e.g. if it is a touch sensitive display device) .
- the input/output controller 1014 may also output data to devices other than the display device.
- the content server 206 may also comprise an input/output controller 1014.
- the system and methods described herein may be used to provide any type of OTT live broadcast content to users.
- counts e.g. votes or viewing statistics
- the network locations By enabling the network locations to point to any location (e.g. any URL, which may be a file, such as another plain text file, or a web page) and not necessarily to data for another video stream, the small preview videos can link to other related content (e.g. additional information, more detailed content, shopping web sites, etc. ) .
- 'computer' is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term 'computer' includes PCs, servers, mobile telephones, personal digital assistants and many other devices.
- a remote computer may store an example of the process described as software.
- a local or terminal computer may access the remote computer and download a part or all of the software to run the program.
- the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network) .
- a dedicated circuit such as a DSP, programmable logic array, or the like.
- any reference to 'a n' item refers to one or more of those items.
- the term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
A mosaic channel for an over-the-top (OTT) live broadcast system is generated within the content delivery network (CDN) using an extension to the plain text file which specifies the network location of the media file (s) for an OTT live broadcast channel. The extended plain text file contains a network location associated with each of the small preview videos within the mosaic channel and/or layout data describing the on-screen location of each of the small preview videos. The video stream for the mosaic channel is an independent video stream formed by merging a plurality of full screen videos, each one corresponding to one of the plurality small preview videos.
Description
Over-the-top (OTT) live broadcasting provides a way of delivering TV channels over the Internet to users. Unlike IPTV, the content is not provided by a user's internet service provider but is instead provided by a third party. Users may access OTT content through many different types of computing devices which can be connected to the Internet, e.g. desktop computers, tablet computers, smartphones, games consoles, smart TVs, set-top boxes, etc. The content is accessed from a remote server which may be one of many geographically distributed servers to enable concurrent access by large numbers of users in many locations and which may be considered to form a content delivery (or distribution) network (CDN) .
Mosaic preview channels may be provided by an OTT content provider to enable a user to simultaneously preview multiple channels prior to selecting one that they wish to watch.
Summary
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
A mosaic channel for an over-the-top (OTT) live broadcast system is generated within the content delivery network (CDN) using an extension to the plain text file which specifies the network location of the media file (s) for an OTT live broadcast channel. The extended plain text file contains a network location associated with each of the small preview videos within the mosaic channel and/or layout data describing the on-screen location of each of the small preview videos. The video stream for the mosaic channel is an independent video stream formed by merging a plurality of full screen videos, each one corresponding to one of the plurality small preview videos.
A first aspect provides a method of generating a mosaic channel in an OTT live broadcast system, the method comprising: accessing, at a server, data for a plurality of multimedia streams; combining, at the server, the plurality of multimedia streams into an independent multimedia stream for the mosaic channel according to a predefined layout; generating, at the server, an extended plain text file for the mosaic channel, the extended plain text file comprising layout data generated at least in part on the predefined layout; and
storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices.
A second aspect provides a method of displaying a mosaic channel in an OTT live broadcast system, the method comprising: accessing, at a user device, a plain text file for an OTT live broadcast channel; analyzing, at the user device, the plain text file to determine whether the OTT live broadcast channel is a mosaic channel; and in response to determining that the OTT live broadcast channel is a mosaic channel: identifying, at the user device, layout data in the plain text file and generating a movable UI selection element using the layout data; and triggering, at the user device, display of a video stream for the mosaic channel overlaid with the movable UI selection element.
A third aspect provides a content server in an OTT live broadcast system, the content server comprising: a stream merging module arranged to access data for a plurality of multimedia streams and combine the plurality of multimedia streams into an independent multimedia stream for an OTT live broadcast mosaic channel according to a predefined layout; a mosaic channel attribute generation module arranged to generate an extended plain text file for the mosaic channel, the extended plain text file comprising layout data generated at least in part on the predefined layout; and a stream sending module arranged to storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices.
A fourth aspect provides a user device comprising: a channel receiving and analysis module arranged to access a plain text file for an OTT live broadcast channel from a server in an OTT live broadcast system; a mosaic attribute analysis module arranged to analyse the plain text file to determine whether the OTT live broadcast channel is a mosaic channel and in response to determining that the OTT live broadcast channel is a mosaic channel, to identify layout data in the plain text file; a UI presentation and player module arranged to generate a movable UI selection element using layout data provided by the mosaic attribute analysis module, to display a multimedia stream for the mosaic channel overlaid with the movable UI selection element generated by the UI presentation module.
The methods described herein may be performed by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium. Examples of tangible (or non-transitory) storage media include disks, thumb drives, memory cards etc. and do not include propagated signals. The software can be suitable for execution on a parallel processor or a serial
processor such that the method steps may be carried out in any suitable order, or simultaneously.
This acknowledges that firmware and software can be valuable, separately tradable commodities. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
The preferred features may be combined as appropriate, as would be apparent to a skilled person, and may be combined with any of the aspects of the invention.
Embodiments of the invention will be described, by way of example, with reference to the accompanying drawings, in which:
FIG. 1 is a schematic diagram of an example system for the provision of an OTT live broadcast service;
FIG. 2 is a schematic diagram showing an improved content server, an improved user device and an improved EPG server;
FIG. 3 is a flow diagram showing an example method of generating a new mosaic channel which may be implemented by the content server shown in FIG. 2;
FIG. 4 shows two graphical representations of different layouts for mosaic channels;
FIG. 5 is a flow diagram showing an example method of playing a new mosaic channel which may be implemented by the user device shown in FIG. 2;
FIG. 6 shows two different examples of UI selection elements overlaid over a mosaic channel comprising four small preview videos;
FIG. 7 is a schematic diagram showing an example effect of a user selection of one of the small preview videos;
FIG. 8 is a schematic diagram illustrating the dynamic and automatic switching into and out of a mosaic layout within an OTT live broadcast channel;
FIG. 9 shows an example of the message flow between elements of an OTT live broadcast system; and
FIG. 10 shows example implementations of both the content server and the user device shown in FIG. 2.
Common reference numerals are used throughout the figures to indicate similar features where appropriate.
Detailed Description
Embodiments of the present invention are described below by way of example only. These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
FIG. 1 is a schematic diagram of an example system 100 for the provision of an OTT live broadcast service. Content is provided by one or more servers 102 within a content delivery network (CDN) 104 and is accessed by a user via a user device 106, such as a set-top box (STB) , desktop computer, tablet computer, smartphone, games console, smart TV, etc. The user device 106 accesses an electronic program guide (EPG) server 108 via a network 110 (such as the Internet) to determine what channels of live broadcast content are available within the OTT system 100. Although FIG. 1 shows a single EPG server 108, it will be appreciated that there may be multiple EPG servers 108 and similarly a CDN 104 may comprise fewer or more content servers 102 than are shown in FIG. 1. Additionally although FIG. 1 shows only one user device 106, it will be appreciated that large numbers of user devices 106 may connect to the CDN 104.
The term 'live broadcast' refers to the fact that the content is broadcast (by the CDN 104) and received (by the user device 106) in real-time and may be received by many user devices. This contrasts to stored content which is transmitted to a single user in response to a user request from that user.
As described above, mosaic preview channels may be provided by an OTT content provider to enable a user to simultaneously preview multiple live broadcast channels prior to selecting one that they wish to watch. A mosaic preview channel may provide multiple small preview (or thumbnail) videos which can be viewed side by side and simultaneously on a single screen (e.g. a single TV screen) by a user, with each small preview video
corresponding to a different available live broadcast channel (i.e. each small preview video is representative of a different available live broadcast channel) . In response to a user selecting one of the small preview videos, the user device (e.g. STB or smartphone) displays the corresponding live broadcast channel on the entire screen (i.e. in full screen mode) .
Generation of such a mosaic preview channel may be performed on a server 102 (e.g. within the CDN 104) or on the user device 106 (e.g. on a STB or smartphone) . Where the mosaic preview channel is generated within the CDN 104 this typically requires detailed information to be configured on the EPG server 108 and synchronized to the user device 106 because, as described above, the user device 106 accesses the EPG server 108 to determine what channels of OTT live broadcast content are available. An error in the synchronization between the content server 102 that creates the mosaic channel, the EPG server 108 and the user device 106 may result in data inconsistency (e.g. such that when a user selects a small preview video, the wrong channel opens in full screen viewing mode) and/or failure (e.g. such that when a user selects a small preview video, no channel opens) . To simplify deployment, the mosaic preview channel may alternatively be generated on the user device 106; however, this reduces the overall efficiency of the system 100 because the mosaic channel is independently generated on each user device 106.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known OTT live broadcast systems and methods of generating mosaic channels.
Described herein is a method of generating mosaic channels for OTT live broadcast within the CDN (e.g. by a content server) which reduces the complexity of the channel management system within the system and in particular reduces the complexity at an EPG server. The mosaic channel is implemented using an extension to the plain text file which specifies the network location of the media file (s) for an OTT live broadcast channel. The plain text file which is extended as described herein may be an M3U or M3U8 file (where an M3U8 file is an M3U file encoded in the UTF-8 format) and when it is opened on a user device, software running on the user device will not play it but will use it to identify the network location (or address) of the content (within the CDN) , which can then be accessed and played. The extended plain text file (e.g. the extended M3U or M3U8 file) as described herein therefore causes direct interaction between the user device and the CDN (e.g. a content server within the CDN) and reduces the interventions by an EPG server.
Also described herein is an improved content server (and hence an improved CDN comprising one or more of such improved content servers) which creates an independent mosaic channel from a plurality of small preview videos or images (i.e. such that multiple
small preview videos and/or images are displayed concurrently, with each small preview video or image only occupying a portion of the display area) and generates the extended plain text file (e.g. the extended M3U or M3U8 file) . Having generated the mosaic channel and the extended plain text file, the content server provides live channel information (including information on the newly generated mosaic live channel) to an EPG server so that users can view the mosaic channel via a user device.
The extended plain text file (e.g. the extended M3U or M3U8 file) described herein contains a network location (e.g. a URL) associated with each of the small preview videos or images and layout data describing the on-screen location of each of the small preview videos or images within the mosaic channel. At least one of the small preview videos or images corresponds to a live broadcast channel. If the small preview video /image corresponds to a live broadcast channel, the associated network location which is included within the extended plain text file is the network location for a full screen version of the live broadcast channel (e.g. a URL pointing to the plain text file for the live broadcast channel) .
Described herein is an improved user device which receives and analyses the extended plain text file (e.g. the extended M3U or M3U8 file) if the user selects the mosaic channel which was generated by the content server. Having analysed the extended plain text file, the user device generates a user interface (UI) based on layout data in the extended plain text file. The generated UI enables a user to select one of the small preview videos (or images) within the mosaic channel whilst viewing the mosaic channel. The UI may be a graphical UI (GUI) which is overlaid over the mosaic channel when it is played and which provides a frame around one of the small preview videos (or other GUI element which indicates one of the small preview videos) and which can be moved around the display on which the mosaic channel is viewed in response to user input received at the user device. Selection of a particular small preview video is triggered within the user device in response to receiving a predefined 'select' user input in combination with data identifying the current position of the movable GUI element. In response to a selection of a particular small preview video, the user device identifies the network location for the selected small preview video which is specified in the extended plain text file for the mosaic channel and accesses that network location. The mosaic channel may therefore be referred to as an 'interactive mosaic channel' .
Using the methods and apparatus described herein, if the mosaic layout is changed, the extended plain text file is updated within the CDN (e.g. by a content server) and no complicated synchronization process (e.g. between the CDN and EPG server) is required. This makes the overall OTT live broadcast system less complex (e.g. due to the elimination of a complex synchronization process between the CDN and an EPG server) , more reliable (e.g.
more stable as it is less prone to error or failure are a result of synchronization errors between elements in the system) and more flexible (e.g. it is possible to vary the layout of the mosaic channel dynamically) .
Whilst the following description refers to the mosaic channel comprising a plurality of small preview videos, in various examples, one of these small preview videos may instead be a small preview image (i.e. a still image instead of a video) . Furthermore, whilst the following description refers to the generation of a mosaic channel by merging a plurality of video streams, the mosaic channel may be generated by merging a plurality of multimedia streams, where these multimedia streams may be video streams or other forms of multimedia streams. The terms 'small preview video' and 's mall preview image' are used herein to refer to the fact that the preview video /image does not extend across the entire display space (unlike when viewing a video /image in full screen mode) but instead each one occupies only a portion of the display space so that multiple preview videos and/or images can be viewed side by side and concurrently (e.g. as shown in FIG. 4 and described below) .
FIG. 2 is a schematic diagram showing an improved content server 202 and an improved user device 206. The user device 206 may be any suitable type of user device and examples include, but are not limited to, a set-top box (STB) , a desktop computer, a tablet computer, a smartphone, a games console and a smart TV. FIG. 2 also shows an improved EPG server 208. These elements 202, 206, 208 may be interconnected by a network (e.g. the Internet) and used in a system such as the one shown in FIG. 1 to provide an OTT live broadcast service. As described above, the system may comprise more than one content server 202, more than one EPG server 208 and there may be many user devices 206 connected to the CDN.
As shown in FIG. 2, the content server 202 comprises a stream sending module 222, a stream merging module 224 and a mosaic channel attribute generation module 226 and the operation of these elements can be described with reference to FIG. 3. The user device 206 comprises a channel receiving and analysis module 262, a mosaic attribute analysis module 264, a UI presentation module 266 and a player module 268 and the operation of these elements can be described with reference to FIG. 5. The EPG server 208 comprises a channel management module 282. Although the modules within the content server 202 and user device 206 are shown as logically separate elements in FIG. 2, it will be appreciated that the functionality of any two or more of the modules within the same device may be combined when implemented (e.g. the functionality of the UI presentation module 266 and the player module 268 may be combined in a single module) .
FIG. 3 is a flow diagram showing an example method of generating a new mosaic channel which may be implemented by the content server 202 shown in FIG. 2. The method comprises obtaining video stream data for each of the videos to be included in the new mosaic channel (block 302) and combining the video streams according to a predefined UI layout (block 304) . The predefined UI layout specifies the size and position of each of the small preview videos within the mosaic channel and two different examples 401, 402 are shown in FIG. 4. As described above, each of the small preview videos corresponds to one of the video streams which is to be included in the mosaic channel, i.e. each small preview video is a version of one of the video streams but instead of being displayed across the entire display screen, it is displayed in only part of the screen, where the size and location of the part of the screen used is specified in the predefined UI layout.
The audio for a mosaic channel may be the audio from one of the video streams that are included within the mosaic channel or may be a different audio stream (e.g. a specially generated or default audio stream) or there may be no audio.
The first example 401 in FIG. 4 shows a mosaic channel created from four video streams and hence it comprises four small preview videos 410-416. In the first example 401, each of the small preview videos 410-416 are the same size in terms of area within the mosaic channel (i.e. the areas on which they are displayed within the mosaic channel are the same) , unlike the second example 402 which shows six small preview videos 420-425, of which one (small preview video 420) occupies a larger on-screen area than the others.
In the second example 402 in FIG. 4, the mosaic channel may include the audio of only the larger preview video 420, which may be referred to as the primary video (or primary preview video) . When generating a new mosaic channel, the CDN may generate a plurality mosaic channels from the same set of videos, i.e. such that for each of the plurality of mosaic channels, the video stream data which is obtained (in block 302) is the same but the predefined layouts are different so that the video streams are combined in different ways (in block 304) . For example, six different mosaic channels may be created from a group of six video streams, labeled A-F, (e.g. using the layout shown in example 402) with the six mosaic channels each having a different one of the six video streams providing the primary video and the audio for the mosaic channel, as shown in the table below:
Although this is described with reference to the second example 402 in FIG. 4, it may also be applicable to the first example 401. For example, when generating a new mosaic channel from a plurality of video streams, the CDN may generate a plurality mosaic channels from the same set of videos, i.e. such that for each of the plurality of mosaic channels, both the video stream data which is obtained (in block 302) and the predefined layouts are the same so that the video streams are combined in different ways (in block 304) but the audio may be different. For example, four different mosaic channels may be created from a group of four video streams, labeled A-D, (e.g. using the layout shown in example 401) with the four mosaic channels each having a different one of the four video streams providing the audio for the mosaic channel, as shown in the table below:
The video streams which are obtained (in block 302) and combined (in block 304) may be any type of video stream comprising any type of content. Examples include live broadcast of live events (e.g. sporting events, breaking news stories, concerts, etc. ) , live broadcast of recorded events, live broadcast of advertisements, user generated content, etc. For example, the arrangement shown in the second example 402 in FIG. 4 may be used to
create a mosaic live broadcast channel with the primary preview video 420 corresponding to the live broadcast of a live sporting event (e.g. a football match) and the other, smaller preview videos 421-425 may correspond to other live broadcast channels (e.g. a news channel, a documentary channel, a comedy channel, other sports channels, etc. ) . In another example, the arrangement shown in the second example 402 in FIG. 4 may be used to create a mosaic live broadcast channel with the primary preview video 420 corresponding to the live broadcast of a news channel and the other, smaller preview videos 421-425 may correspond to different breaking news stories.
The merging of the video streams (in blocks 302-304) may be performed by the stream merging module 224 within the content server 202.
The video stream data (obtained in block 302) and the predefined UI layout (as used in block 304) are used to generate an extended plain text file (e.g. an extended M3U or M3U8 filed) for the mosaic channel (block 306) . As shown in the examples below, the extended plain text file comprises a network location (e.g. a URL) associated with each of the small preview videos and layout data describing the on-screen location of each of the small preview videos within the mosaic channel. In many examples, the network location associated with a small preview video is the network location for a full screen video stream (e.g. a URL pointing to the plain text file for the video stream) and in various examples, the network location associated with at least one of the small preview videos is the network location for a full screen video stream (e.g. a URL pointing to the plain text file for the video stream) . In various examples, however, the network location associated with one or more of the small preview videos may be a web page associated with the particular small preview video.
A first example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file. In this example, the mosaic channel combines four video streams in a layout which is similar to that shown in the first example 401 in FIG. 4.
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
#URL-MOSAIC: http: //172.20.1.114/13/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
#URL-MOSAIC: http: //172.20.1.114/14/index. m3u8
In this example extended M3U8 file, ##EXT-X-STREAM-INF-MOSAIC is included to indicate that the M3U8 file is an extended plain text file for a mosaic channel and this term is repeated to separate out the data which relates to the different small preview videos, such that the data that relates to the first of the small preview videos is:
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
In the example above, the directive #URL-MOSAIC: is followed by the network location associated with the particular small preview video and so for the first of the small preview videos, this network location is the following URL:
http: //172.20.1.114/11/index. m3u8
In the example above, the layout data describing the on-screen location of each of the small preview videos within the mosaic channel is specified separately for each of the small preview videos; however in other examples, the layout data may be specified initially for all of the small preview videos, followed by the separate network locations associated with each of the small preview videos. In the example above, the layout data for the first of the small preview videos is:
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 50
#WIDTH-MOSAIC: 50
and identical layout data is provided subsequently within the extended M3U8 file for each of the other four small preview videos.
In this example, the layout data is defined in terms of a percentage of the total screen height and width (as indicated by #UNIT-MOSAIC: percent) and in this particular example the each small preview video occupies 50%of the total height of the screen and 50%of the total width of the screen.
A second example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file. In this second example, the mosaic channel combines four video streams in a layout which comprises one larger preview video and three smaller preview videos (e.g. similar to that shown in the second example 402 in FIG. 4, but for fewer video streams) .
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 100
#WIDTH-MOSAIC: 70
#COORD-MOSAIC: 0, 0
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 30
#WIDTH-MOSAIC: 30
#COORD-MOSAIC: 71, 0
#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 30
#WIDTH-MOSAIC: 30
#COORD-MOSAIC: 71, 34
#URL-MOSAIC: http: //172.20.1.114/13/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 30
#WIDTH-MOSAIC: 30
#COORD-MOSAIC: 71, 67
#URL-MOSAIC: http: //172.20.1.114/14/index. m3u8
In this second example extended M3U8 file, ##EXT-X-STREAM-INF-MOSAIC is included to indicate that the M3U8 file is an extended plain text file for a mosaic channel and is repeated to separate out the data which relates to the different small preview videos, such that the data that relates to the first of the small preview videos is:
#UNIT-MOSAIC: percent
#HEIGHT-MOSAIC: 100
#WIDTH-MOSAIC: 70
#COORD-MOSAIC: 0, 0
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
Like in the first example, in this second example, the layout data is defined in terms of a percentage of the total screen height and width (as indicated by #UNIT-MOSAIC: percent) , however, unlike the first example, in this second example, percent coordinate information is provided within the layout data. The first small preview video (which is the larger one of the four) occupies 100%of the total height of the screen and 70%of the total width of the screen and is positioned at coordinate position (0, 0) on the screen, i.e. at the top left of the screen. In contrast, the three other preview videos each occupy 30%of the total height of the screen and 30%of the total width of the screen and are positioned at coordinates (71, 0) , (71, 34) and (71, 67) respectively, where an X-coordinate of 71 indicates a position which is separated from the origin (which may be the top left of the screen) by a distance along the X-axis of 71%of the total width of the screen and a Y-coordinate of 34 indicates a position which is separated from the origin (which may be the top left of the screen) by a distance along the Y-axis of 34%of the total height of the screen.
A third example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file. In this third example, the mosaic channel combines four video streams in a layout which, like the second example above, comprises one larger preview video and three smaller preview videos.
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 1080
#WIDTH-MOSAIC: 1344
#COORD-MOSAIC: 0, 0
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 0
#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 361
#URL-MOSAIC: http: //172.20.1.114/13/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 721
#URL-MOSAIC: http: //172.20.1.114/14/index. m3u8
In this third example extended M3U8 file, like the first two examples, ##EXT-X-STREAM-INF-MOSAIC is included to indicate that the M3U8 file is an extended plain text file for a mosaic channel and is repeated to separate out the data which relates to the different small preview videos, such that the data that relates to the first of the small preview videos is:
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 1080
#WIDTH-MOSAIC: 1344
#COORD-MOSAIC: 0, 0
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
In this third example, the layout data is defined in terms of absolute coordinate information (as indicated by #UNIT-MOSAIC: pixel) and the canvas size, in terms of pixels, is defined, e.g. 1920x1080 pixels in this example. The first small preview video occupies a region of the screen which is 1080 pixels high (as indicated by #HEIGHT-MOSAIC: 1080) and 1344 pixels wide (as indicated by #WIDTH-MOSAIC: 1344) and is positioned at coordinate position (0, 0) on the screen, i.e. at the top left of the screen.
In the three examples above, there is a single network location associated with each small preview video. In some examples, however, the extended plain text file may comprise more than one network location associated with one or more of the small preview videos within the mosaic channel, as in the following extract from a further example extended plain
text file (which is an extended M3U8 file) and where the extract comprises the data that relates to one of the small preview videos:
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 0
#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8
#URL-VOTE: http: //172.20.1.222/action=1
In the extract above, the first network location (#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8) is the network location for a full screen video stream (e.g. a URL pointing to the plain text file for the video stream) and the second network location (#URL-VOTE: http: //172.20.1.222/action=1) which is associated with the same small preview video is a web page associated with the particular small preview video (e.g. which registers a count or vote for the particular small preview video and may be used, for example, to make the live broadcast more interactive or to generate viewing statistics) .
The generation of the extended plain text file (in block 306) may be performed by the mosaic channel attribute generation module 226 within the content server 202 based at least in part on information received from the stream merging module 224.
Once the mosaic live channel has been generated by combining the video streams (in block 304) and the extended plain text file has been generated (in block 306) , the data for the newly created mosaic channel is sent to the EPG server 208 (block 308) , e.g. by the stream sending module 222 within the content server 202.
Once received by the EPG server 208, the data is stored and the mosaic channel is added as a new live channel, e.g. by the channel management module 282.
FIG. 5 is a flow diagram showing an example method of playing a new mosaic channel which may be implemented by the user device 206 shown in FIG. 2. The method comprises obtaining channel list data from the EPG server 208 (block 502) and this may require the user device 206 to log into the EPG server 208. When a user manually switches between channels, the user device 206 receives a user input indicating that the user has
selected a different channel (block 504) and in response obtains the plain text file (e.g. the M3U or M3U8 file) for the newly selected channel (block 506) . Depending upon whether the newly selected channel is a mosaic channel or not, this plain text file (obtained in block 506) may be an extended plain text file, e.g. as shown in the examples above, or may be a standard plain text file without the extensions described herein.
The user device 206 performs an initial analysis of the plain text file for the selected channel (as obtained in block 506) to determine whether the selected channel is a mosaic channel or not (block 508) . For example, the initial analysis may examine the plain text file to look for a predefined indicator for a mosaic channel, such as the term ##EXT-X-STREAM-INF-MOSAIC as used in the examples provided above.
The obtaining of the channel list (in block 502) and the plain text file (in block 506) may be performed by the channel receiving and analysis module 262 within the user device 206. The initial analysis (in block 508) may be performed by the mosaic attribute analysis module 264 within the user device 206.
If the selected channel is not a mosaic channel ('No' in block 508) , the display of the full screen video stream for the channel (e.g. by the player 268) is triggered (block 510) . If, however, the selected channel is a mosaic channel ('Yes' in block 508) , the extended plain text file is further analysed to obtain the layout data (e.g. the layout data for each of the small preview videos in the mosaic channel) and this layout data is used to generate a UI selection (or focus) element (block 512) . Display of the mosaic channel's video stream is triggered and the UI selection element is overlaid (block 514) , e.g. as shown in FIG. 6.
The further analysis of the extended plain text file may be performed by the mosaic attribute analysis module 264 within the user device 206. The generation of the UI selection element (in block 512) , based at least in part on the layout data obtained by the mosaic attribute analysis module 264, may be performed by the UI presentation module 266 in the user device 206. The display of the video stream and the overlaid UI selection element (where the channel is a mosaic channel) may be performed by the player 268 within the user device 206.
FIG. 6 shows two different examples of UI selection elements overlaid over a mosaic channel comprising four small preview videos 410-416 (as described above with reference to the first example 401 in FIG. 4) . In a first example 601 in FIG. 6, the UI selection element 604 is a frame which surrounds one of the small preview videos (video 410 in the example shown) and in the second example 602 the UI selection element 606 is an icon (astar-shaped icon in the example shown) which is positioned adjacent to or slightly overlapping with one of the small preview videos (video 410 in the second example 602) .
A user can use a user input device (e.g. a remote control, mouse, keyboard, games controller, etc. ) to cause the UI selection element 604, 606 to move between the small preview videos. In response to a user input indicating a move of the UI selection element (block 516) , the overlaid UI selection element moves (e.g. from video 410 to video 416, as shown in the third example 603 in FIG. 6) .
Receipt of a selection user input (block 518) at the user device 206, e.g. as a consequence of a user selecting 'OK' or 'Enter' on a user input device (which may be integral to or connected to the user device 206) , indicates that the user has selected the small preview video currently indicated by the UI selection element and in response, the network location in the extended plain text file which is associated with the selected preview video is identified (block 520) and accessed (block 522) .
In addition to performing the initial analysis (in block 508) , the mosaic attribute analysis module 264 within the user device 206 may obtain the layout data from the extended plain text file which is then used by the UI presentation module 266 to generate the UI selection element (in block 512) . The UI presentation module 266 may also cause the moving of the generated UI selection element 604, 606 in response to a user input (in block 516) . The mosaic attribute analysis module 264 may also obtain the network location (in block 520) based, at least in part, on data identifying the current position of the UI selection element as determined by the UI presentation module 266.
In many examples, the network location which is identified (in block 520) and accessed (in block 522) is the URL of another plain text file which may be for the full screen video stream which corresponds to the selected small preview video. The full screen video stream may be another mosaic channel and so the method may be repeated (as indicated by the dotted arrow from block 522 to block 508) . For example, if the channel which is selected initially by a user (as identified from the user input in block 504) comprises preview videos of different sizes (e.g. as shown in the second example 402 in FIG. 4) with the audio of the larger preview video only (where the larger preview video may be considered to be the primary video) , selecting one of the smaller preview videos (e.g. video 421) may result in the user device 206 obtaining a further extended plain text file which corresponds to a mosaic channel which has a similar layout except that a different one of the video streams is now shown as a larger preview video (e.g. video 421 is now the primary video instead of video 420, as represented graphically in FIG. 7) with the audio of the new primary video.
In some examples, the network location which is identified (in block 520) and accessed (in block 522) may not be the URL of the plain text file of another video stream but may instead be another URL, such as the URL of a web page associated with the selected
preview video, e.g. a web page providing additional information about something shown in the selected preview video, a web page of an online store where something shown in the selected preview video can be purchased or a web page which registers a count or vote (as described above) . In examples where the network location is a URL of a web page, the web page may be accessed by a browser within the user device 106. Furthermore, in some examples, more than one network location may be identified (in block 520) and accessed (in block 522) , e.g. where the extended plain text file comprises more than one network location associated with a single small preview video (as described above) .
Once a mosaic live channel and the corresponding extended plain text file has been generated (e.g. using the method shown in FIG. 3 and described above) , the channel data may remain the same. To update the mosaic live channel, the CDN (e.g. the content server 202) may generate an updated extended plain text file (in block 306) and this may also involve an update to the video stream for the mosaic channel (in block 308) . In other examples, however, where the update is only to the network locations associated with a small preview video and not to the video stream and/or predefined UI layout, only the extended plain text file may be updated (in block 306) and not the video stream (i.e. block 304 may be omitted. The updated data for the mosaic channel is then provided to the EPG server 208 to replace the original data (in block 308) . Subsequently, when a user selects the mosaic channel, the updated extended plain text file is obtained by the user device 206 (in block 506) . As described above, no complex synchronization with the EPG server 208 is required, making the system both robust and flexible.
In another extension to any of the examples described above, the extended plain text file may additionally comprise timing information, such as a refresh time interval. The refresh time interval, where specified within the extended plain text file, causes the user device 206 to regularly refresh (i.e. obtain again) the extended plain text file for the mosaic channel (block 524) . Depending upon how it is implemented, the refresh time interval may specify one or more times at which the extended plain text file should be retrieved again from the EPG server (in block 524) or may specify a time interval between refreshes (e.g. such that the extended plain text file is retrieved every X minutes, where the value of X is specified within the extended plain text file) or may specify a time period during which the extended plain text file should be repeatedly and regularly retrieved again from the EPG server and/or may specify a time interval during which the UI selection element should be displayed. The newly retrieved extended plain text file for the mosaic channel may be the same as the previously obtained extended plain text file or may be different and where it is different this may cause a new UI selection element to be generated and overlaid (in block 514) .
A fourth example extended plain text file is provided below and in this example, the extended plain text file is an extended M3U8 file. In this fourth example, the mosaic channel combines four video streams in a layout which, like the second and third examples above, comprises one larger preview video and three smaller preview videos.
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 1080
#WIDTH-MOSAIC: 1344
#COORD-MOSAIC: 0, 0
#URL-MOSAIC: http: //172.20.1.114/11/index. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 0
#URL-MOSAIC: http: //172.20.1.114/12/index. m3u8
#TIME-VOTE: 20160520201500/20160520201530
#URL-VOTE: http: //172.20.1.222/action=1
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 361
#URL-MOSAIC: http: //172.20.1.114/13/index. m3u8
#URL-VOTE: http: //172.20.1.222/action=2
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 360
#WIDTH-MOSAIC: 360
#COORD-MOSAIC: 1345, 721
#URL-MOSAIC: http: //172.20.1.114/14/index. m3u8
#URL-VOTE: http: //172.20.1.222/action=3
In this fourth example extended M3U8 file, the line #TIME-VOTE: 20160520201500/20160520201530 represents the refresh interval. In this example, the refresh interval specifies the start and end of a time period during which the user device should overlay the UI selection element and also indicates that the user device should repeatedly and regularly refresh the extended M3U8 file (i.e. by downloading the current version from the EPG) . After the expiry of the time period, the user device no longer displays the UI selection element and the mosaic channel reverts back to full screen mode; however, the user device continues to repeatedly refresh the extended M3U8 file (e.g. so that at a later time, a different UI selection element may be generated and displayed) .
The extended plain text file described herein, and in particular the refresh interval, may be used to enable a live broadcast channel to automatically switch between a single video stream played in full screen mode (with no overlaid UI selection element) and a mosaic channel with an overlaid UI selection element (i.e. the switch occurs without any user input triggering it) , as can be described with reference to FIGs. 8 and 9. Initially the CDN (e.g. a content server 202) generates a reduced version of the extended plain text file (block 306) for a live broadcast channel which is not currently a mosaic channel and instead comprises a single video stream 810 in full screen mode, as shown graphically in the first diagram 801 in FIG. 8, but which may dynamically (i.e. whilst the live broadcast channel is being played) and automatically (i.e. without user input) switch to become a mosaic channel at some time in the future as specified within the reduced version of the extended plain text file.
As described above, the mosaic channel is broadcast as a new OTT live broadcast channel which has been formed from multiple merged video streams and so the player in the user device plays the video stream in the same way irrespective of whether it is a mosaic channel or not. The difference with the mosaic channel arises through the generation and overlay of the UI selection element (as described herein) which enables a user to switch to a full-screen version of one of the small preview videos within a mosaic channel or to switch to a webpage which is associated with one of the small preview videos.
The reduced version of the extended plain text file (e.g. a reduced version of an extended M3U or M3U8 file) may include ##EXT-X-STREAM-INF-MOSAIC to indicate that the M3U8 file is an extended plain text file for a channel which should be treated as if it is mosaic channel, i.e. that it should be analysed further (e.g. by the mosaic attribute analysis module 266) so that the refresh interval within the plain text file is identified and acted upon. As there is only a single video there may be no layout data within the extended plain text file, as follows:
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#TIME-VOTE: 20160520201500/20160520201530
or layout data may be included which indicates that the single video extends across the full display, as follows:
#EXTM3U
#EXT-X-VERSION: 1
#EXT-X-STREAM-INF: PROGRAM-ID=2, BANDWIDTH=1273000
01. m3u8
##EXT-X-STREAM-INF-MOSAIC
#UNIT-MOSAIC: pixel
#DENSITY-MOSAIC: 1920x1080
#HEIGHT-MOSAIC: 1080
#WIDTH-MOSAIC: 1920
#COORD-MOSAIC: 0, 0
#TIME-VOTE: 20160520201500/20160520201530
Once generated (in blocks 302-306 of FIG. 3) , the data for the live broadcast channel (including the reduced version of the extended plain text file comprising the refresh interval) is sent to the EPG server (block 308 in FIG. 3 and arrow 902 in FIG. 9) and stored there (arrow 904) .
As described above with reference to FIG. 5, the user device 206 obtains channel information from the EPG server 208 (block 502 in FIG. 5 and arrows 906-908) and the display of the video stream is triggered (block 514 and arrow 910) . If the reduced version of the extended plain text file contains no layout data (as in the first of the two examples above) or contains layout data for a single video stream (as in the second of the two examples above) or contains data specifying a time interval during which a UI selection element is to be generated and displayed, the user device 206 may not generate a UI selection element (block 512 may be omitted) and so nothing is overlaid over the video stream (in block 514) .
At some point in the future, the CDN (e.g. the content server 202) generates a new video stream for the live broadcast channel (using the method of FIG. 3) where the channel is now a mosaic channel and comprises a primary preview video (which may be the same as
the previous full screen video stream 810) and one or more additional preview videos 812-820, which may be smaller, as shown graphically in the second diagram 802 in FIG. 8. An updated extended plain text file is also generated (in block 306) which includes layout data for all of the small preview videos and a network location associated with each small preview video (as described above) . The updated data for the live broadcast channel is sent to the EPG server 208 (block 308 in FIG. 3 and arrow 912 in FIG. 9) and stored there.
As a consequence of the refresh interval which is specified within the reduced version of the extended plain text file, the user device 206 subsequently obtains the updated plain text file from the EPG server 208 (block 524 in FIG. 5 and arrows 914-915 in FIG. 9) . As described above, the refresh interval may trigger the user device 206 to re-obtain the plain text file for the channel at predefined intervals or at a predefined date/time or during a predefined time period. The newly obtained plain text file may be the same as the previously obtained plain text file (if retrieved from the EPG server 208 prior to updated data being provided to it in block 308) or may be an updated version (if retrieved after the updated data has been provided to the EPG server) .
As detailed above, the updated live broadcast channel is truly a mosaic channel (i.e. it is formed from multiple video streams) and includes layout data. Consequently a UI selection element is generated (in block 512) and the video stream (comprising the six preview videos 810-820) is displayed with the UI selection element overlaid (arrow 916) and the operation of the user device 206 proceeds as described above with reference to FIG. 5.
At a further point in the future, the live broadcast channel may revert back from being a mosaic channel to a non-mosaic channel, i.e. one that shows a single video stream in full screen mode (arrows 917-918) . This may involve the content server 202 generating further updated channel data and providing it to the EPG server 208 (using the method of FIG. 3) or the content server 202 may have cached the original channel data and may provide this cached data to the EPG server 208 as the updated channel data. The switch may be triggered at the user device 206 by a refresh interval within the updated plain text file which causes the user device 206 to obtain a further updated plain text file from the EPG server 208 (in another iteration of block 524 in FIG. 5) . Alternatively, the switch may not involve the provision of updated channel data to the EPG server 208 by the content server 202 and instead the user device 206 may have stored the original reduced version of the extended plain text file and may automatically switch back to this (instead of the updated version) based on the refresh interval in the original reduced version of the extended plain text file or a refresh interval specified in the updated plain text file.
The modules within the content server 202 and user device 206 may be implemented in hardware or in software and in various examples some modules may be implemented in hardware and others may be implemented in software. For example, where a module performs a large amount of calculations (e.g. the stream sending module 222 which packages the stream and/or the stream merging module 224) , the speed of operation of the module may be faster if it is implemented in hardware rather than software.
Examples where the modules within the content server 202 and user device 206 are implemented in software can be described with reference to FIG. 10. The content server 202 may comprise one or more processors 1002 which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the content server 202 in order to implement the method of FIG. 3. The user device 206 may comprise one or more processors 1004 which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the user device 206 in order to implement the method of FIG. 5. In some examples, for example where a system on a chip architecture is used, the processors 1002, 1004 may include one or more fixed function blocks (also referred to as accelerators) which implement a part of the method of operation of the respective device in hardware (rather than software or firmware) .
Platform software comprising an operating system 1006 or any other suitable platform software may be provided at the computing-based device to enable application software to be executed on the device. The application software in the content server 202 may comprise a stream sending module 222, a stream merging module 224 and a mosaic channel attribute generation module 226 and the application software in the user device 206 may comprise a channel receiving and analysis module 262, a mosaic attribute analysis module 264, a UI presentation module 266 and a player module 268. However, as noted above, in some examples, one or more of these modules (e.g. the stream merging module 224) may instead be implemented in hardware instead of being implemented in software.
The computer executable instructions may be provided using any computer-readable media that is accessible by the content server 202 or user device 206. Computer-readable media may include, for example, computer storage media such as memory 1008, 1010 and communications media. Computer storage media, such as memory 1008, 1010, includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media. Although the computer storage media (memory 1008, 1010) is shown within the content server 202 and user device 206 respectively it will be appreciated that the storage may be distributed or located remotely and accessed via a network or other communication link (e.g. using a communication interface 1012) .
The user device 206 also comprises an input/output controller 1014 arranged to output display information to a display device 1016 which may be separate from or integral to the user device 206. The display information may be generated by the player module 268 so that a user can view the live broadcast channel. The input/output controller 1014 is also arranged to receive and process input from one or more user input devices 1018 (e.g. a remote control, games controller, mouse or keyboard) . This user input device may be used to switch between live broadcast channels and/or select one of the small preview videos, as described above. In some examples the display device 1016 may also act as the user input device 1018 (e.g. if it is a touch sensitive display device) . The input/output controller 1014 may also output data to devices other than the display device. Although not shown in FIG. 10, the content server 206 may also comprise an input/output controller 1014.
There are many applications for the system and methods described herein and they may be used to provide any type of OTT live broadcast content to users. By enabling the inclusion of multiple network locations for each small preview video (as described above) it is possible to generate counts (e.g. votes or viewing statistics) for particular video streams. By enabling the network locations to point to any location (e.g. any URL, which may be a file, such as another plain text file, or a web page) and not necessarily to data for another video stream, the small preview videos can link to other related content (e.g. additional information, more detailed content, shopping web sites, etc. ) .
The term 'computer' is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term 'computer' includes PCs, servers, mobile telephones, personal digital assistants and many other devices.
Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access
the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network) . Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages.
Any reference to 'a n' item refers to one or more of those items. The term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.
Claims (44)
- A method of generating a mosaic channel in an OTT live broadcast system, the method comprising:accessing, at a server, data for a plurality of multimedia streams (302) ;combining, at the server, the plurality of multimedia streams into an independent multimedia stream for the mosaic channel according to a predefined layout (304) , ;generating, at the server, an extended plain text file for the mosaic channel (306) , the extended plain text file comprising layout data generated at least in part on the predefined layout; andstoring data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices (308) .
- The method according to claim 1, wherein the mosaic channel comprises a plurality of preview videos and/or images displayed concurrently, each preview video or image corresponding to a different one of the plurality of multimedia streams.
- The method according to claim 2, wherein the extended plain text file further comprises a network location associated with one or more of the preview videos or images in the mosaic channel.
- The method according to claim 3, wherein a first of the preview videos or images is generated from a first of the plurality of multimedia streams and the network location associated with the first preview video or image is a network location of a plain text file for the first of the plurality of multimedia streams.
- The method according to claim 4, wherein each of the preview videos or images is generated from a different one of the plurality of multimedia streams and the network location associated with each of the preview videos or images is a network location of a plain text file for the corresponding one of the plurality of multimedia streams.
- The method according to any of claims 3-5, wherein the extended plain text file further comprises a second network location associated with one of the preview videos or images.
- The method according to claim 6, wherein the second network location is a URL of a web page.
- The method according to any of the preceding claims, wherein the extended plain text file further comprises a refresh interval arranged to trigger a user device to re-download the extended plain text file.
- The method according to any of the preceding claims, wherein storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices comprises:providing data for the mosaic channel, including the extended plain text file, to a second server accessible by a plurality of user devices (308) .
- The method according to claim 9, wherein the second server is an EPG server.
- The method according to any of the preceding claims, wherein the extended plain text file is an extended M3U or M3U8 file.
- A method of displaying a mosaic channel in an OTT live broadcast system, the method comprising:accessing, at a user device, a plain text file for an OTT live broadcast channel (506) ;analyzing, at the user device, the plain text file to determine whether the OTT live broadcast channel is a mosaic channel (508) ; andin response to determining that the OTT live broadcast channel is a mosaic channel:identifying, at the user device, layout data in the plain text file and generating a movable UI selection element using the layout data (512) ; andtriggering, at the user device, display of a multimedia stream for the mosaic channel overlaid with the movable UI selection element (514) .
- The method according to claim 12, wherein the mosaic channel comprises a plurality of preview videos and/or images displayed concurrently.
- The method according to claim 13, further comprising, in response to determining that the OTT live broadcast channel is a mosaic channel:in response to a user input indicating a selection operation (518) , identifying, at the user device, a selected preview video or image from within the mosaic channel based on a current position of the movable UI selection element, identifying a network location in the plain text file associated with the selected preview video or image (520) and accessing the network location (522) .
- The method according to claim 14, wherein the network location is a network location of a plain text file for a second OTT live broadcast channel and wherein the method is repeated for the second OTT live broadcast channel. 16. The method according to claim 14 or 15, wherein the plain text file comprises a plurality of network locations associated with the selected preview video or image and the method comprises accessing each of the plurality of network locations.
- The method according to any of claims 12-16, wherein analyzing, at the user device, the plain text file to determine whether the OTT live broadcast channel is a mosaic channel comprises:determining whether a predefined tag for a mosaic channel is included within the plain text file for the OTT live broadcast channel.
- The method according to any of claims 12-17, wherein the plain text file for the OTT live broadcast channel is accessed in response to receiving a user input indicating that a user has selected the OTT live broadcast channel (504) .
- The method according to any of claims 12-18, wherein the plain text file for the OTT live broadcast channel is accessed from an EPG server and wherein the method further comprises:obtaining a listing of available OTT live broadcast channels from the EPG server (502) .
- The method according to any of claims 12-19, further comprising, in response to determining that the OTT live broadcast channel is a mosaic channel:analyzing, at the user device, the plain text file to determine whether it contains a refresh interval; andin response to determining that the plain text file contains a refresh interval, automatically accessing, at the user device, an updated version of the plain text file for the OTT live broadcast channel at a time specified by the refresh interval (524) and repeating the method using the updated version of the plain text file.
- The method according to any of claims 12-20, further comprising, in response to determining that the OTT live broadcast channel is a mosaic channel:analyzing, at the user device, the plain text file to determine whether it contains a refresh interval; andin response to determining that the plain text file contains a refresh interval, only generating and overlaying the UI selection element during a period of time specified by the refresh interval.
- A content server (202) in an OTT live broadcast system, the content server comprising:a stream merging module (224) arranged to access data for a plurality of multimedia streams and combine the plurality of multimedia streams into an independent multimedia stream for an OTT live broadcast mosaic channel according to a predefined layout;a mosaic channel attribute generation module (226) arranged to generate an extended plain text file for the mosaic channel, the extended plain text file comprising layout data generated at least in part on the predefined layout; anda stream sending module (222) arranged to storing data for the mosaic channel, including the extended plain text file, in a location accessible by a plurality of user devices (308) .
- The content server according to claim 22, wherein the mosaic channel comprises a plurality of preview videos and/or images displayed concurrently, each preview video or image corresponding to a different one of the plurality of multimedia streams.
- The content server according to claim 23, wherein the extended plain text file further comprises a network location associated with one or more of the preview videos or images in the mosaic channel.
- The content server according to claim 24, wherein a first of the preview videos or images is generated from a first of the plurality of multimedia streams and the network location associated with the first preview video or image is a network location of a plain text file for the first of the plurality of multimedia streams.
- The content server according to claim 25, wherein each of the preview videos or images is generated from a different one of the plurality of multimedia streams and the network location associated with each of the preview videos or images is a network location of a plain text file for the corresponding one of the plurality of multimedia streams.
- The content server according to any of claims 24-26, wherein the extended plain text file further comprises a second network location associated with one of the preview videos or images.
- The content server according to claim 27, wherein the second network location is a URL of a web page.
- The content server according to any of claims 22-28, wherein the extended plain text file further comprises a refresh interval arranged to trigger a user device to re-download the extended plain text file.
- The content server according to any of claims 22-29, wherein the stream sending module (222) is arranged to provide data for the mosaic channel, including the extended plain text file, to a second server in the OTT live broadcast system which is accessible by a plurality of user devices (308) .
- The content server according to claim 30, wherein the second server is an EPG server.
- The content server according to any of claims 22-31, wherein the extended plain text file is an extended M3U or M3U8 file.
- A user device comprising:a channel receiving and analysis module (262) arranged to access a plain text file for an OTT live broadcast channel from a server in an OTT live broadcast system;a mosaic attribute analysis module (264) arranged to analyse the plain text file to determine whether the OTT live broadcast channel is a mosaic channel and in response to determining that the OTT live broadcast channel is a mosaic channel, to identify layout data in the plain text file;a UI presentation and player module (266, 268) arranged to generate a movable UI selection element using layout data provided by the mosaic attribute analysis module, to display a multimedia stream for the mosaic channel overlaid with the movable UI selection element generated by the UI presentation module.
- The user device according to claim 33, wherein the mosaic channel comprises a plurality of preview videos and/or images displayed concurrently.
- The user device according to claim 34, wherein the UI presentation and player module is further arranged, in response to receipt of a user input indicating a selection operation, to identify a selected preview video or image from within the mosaic channel based on a current position of the movable UI selection element,and wherein the mosaic attribute analysis module is further arranged to identify a network location in the plain text file associated with the selected preview video or image and to trigger the user device to access the network location.
- The user device according to claim 35, wherein the network location is a network location of a plain text file for a second OTT live broadcast channel and wherein the mosaic attribute analysis module is further arranged to repeat the analysis for the second OTT live broadcast channel.
- The user device according to claim 35, wherein the network location is a web page and wherein a browser in the user device is arranged to access the web page.
- The user device according to any of claims 35-37, wherein the plain text file comprises a plurality of network locations associated with the selected preview video or image and the mosaic attribute analysis module is further arranged to trigger the user device to access each of the plurality of network locations.
- The user device according to any of claims 33-38, wherein the mosaic attribute analysis module is arranged to analyse the plain text file to determine whether the OTT live broadcast channel is a mosaic channel by:determining whether a predefined tag for a mosaic channel is included within the plain text file for the OTT live broadcast channel.
- The user device according to any of claims 33-39, wherein the channel receiving and analysis module is arranged to access the plain text file for the OTT live broadcast channel in response to receiving a user input at the user device which indicates that a user has selected the OTT live broadcast channel.
- The user device according to any of claims 33-40, wherein the channel receiving and analysis module is arranged to access the plain text file for the OTT live broadcast channel from an EPG server within the OTT live broadcast system and wherein the channel receiving and analysis module is further arranged to obtain a listing of available OTT live broadcast channels from the EPG server.
- The user device according to any of claims 33-41, wherein the mosaic attribute analysis module is further arranged, in response to determining that the OTT live broadcast channel is a mosaic channel, to analyse the plain text file to determine whether it contains a refresh interval and in response to determining that the plain text file contains a refresh interval to trigger the channel receiving and analysis module to access an updated version of the plain text file for the OTT live broadcast channel at a time specified by the refresh interval.
- The user device according to any of claims 33-42, wherein the mosaic attribute analysis module is further arranged, in response to determining that the OTT live broadcast channel is a mosaic channel, to analyse the plain text file to determine whether it contains a refresh interval and in response to determining that the plain text file contains a refresh interval to trigger the UI presentation and player module to only generate and overlay the UI selection element during a period of time specified by the refresh interval.
- Computer readable code configured to perform the steps of the method of any of claims 1-21 when the code is run on a computer.
- A computer readable storage medium having encoded thereon the computer readable code of claim 44.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/102754 WO2018072184A1 (en) | 2016-10-20 | 2016-10-20 | Generation of mosaic channels for ott live broadcasts |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/102754 WO2018072184A1 (en) | 2016-10-20 | 2016-10-20 | Generation of mosaic channels for ott live broadcasts |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018072184A1 true WO2018072184A1 (en) | 2018-04-26 |
Family
ID=62018144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/102754 WO2018072184A1 (en) | 2016-10-20 | 2016-10-20 | Generation of mosaic channels for ott live broadcasts |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018072184A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3852382A4 (en) * | 2018-09-30 | 2022-02-09 | Huawei Technologies Co., Ltd. | Channel playback method and related equipment |
CN114760485A (en) * | 2021-01-08 | 2022-07-15 | 武汉斗鱼网络科技有限公司 | Video carousel method, system and related equipment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220551A1 (en) * | 2006-02-02 | 2007-09-20 | Shanks David E | Interactive mosaic channel video stream with nested menu features |
CN101388982A (en) * | 2008-10-15 | 2009-03-18 | 深圳市同洲电子股份有限公司 | Television program browsing method, system and digital television receiving terminal |
US20110022620A1 (en) * | 2009-07-27 | 2011-01-27 | Gemstar Development Corporation | Methods and systems for associating and providing media content of different types which share atrributes |
CN103517126A (en) * | 2012-06-19 | 2014-01-15 | 华为技术有限公司 | Mosaic video display method, display control device and terminal |
CN105659614A (en) * | 2013-10-30 | 2016-06-08 | 索尼公司 | Content supply device, content supply method, program, terminal device, and content supply system |
-
2016
- 2016-10-20 WO PCT/CN2016/102754 patent/WO2018072184A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220551A1 (en) * | 2006-02-02 | 2007-09-20 | Shanks David E | Interactive mosaic channel video stream with nested menu features |
CN101388982A (en) * | 2008-10-15 | 2009-03-18 | 深圳市同洲电子股份有限公司 | Television program browsing method, system and digital television receiving terminal |
US20110022620A1 (en) * | 2009-07-27 | 2011-01-27 | Gemstar Development Corporation | Methods and systems for associating and providing media content of different types which share atrributes |
CN103517126A (en) * | 2012-06-19 | 2014-01-15 | 华为技术有限公司 | Mosaic video display method, display control device and terminal |
CN105659614A (en) * | 2013-10-30 | 2016-06-08 | 索尼公司 | Content supply device, content supply method, program, terminal device, and content supply system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3852382A4 (en) * | 2018-09-30 | 2022-02-09 | Huawei Technologies Co., Ltd. | Channel playback method and related equipment |
CN114760485A (en) * | 2021-01-08 | 2022-07-15 | 武汉斗鱼网络科技有限公司 | Video carousel method, system and related equipment |
CN114760485B (en) * | 2021-01-08 | 2023-09-26 | 深圳市酷看文化传播有限公司 | Video carousel method, system and related equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134314B2 (en) | Displaying an actionable element over playing content | |
US20120210349A1 (en) | Multiple-screen interactive screen architecture | |
US20150312618A1 (en) | Systems and Methods for Generating a Full-Motion Video Mosaic Interface for Content Discovery with User-Configurable Filters | |
US20130174201A1 (en) | Systems and methods for presenting three-dimensional objects in an interactive media guidance application | |
US20130167091A1 (en) | Systems and methods for navigating in a hyper-dimensional media guidance application | |
US9785398B2 (en) | Systems and methods for automatically adjusting volume of a media asset based on navigation distance | |
US20150193119A1 (en) | Systems and methods of displaying and navigating program content based on a helical arrangement of icons | |
US11765423B2 (en) | Methods and systems for bypassing preemptions in recorded media assets | |
US20130205334A1 (en) | Method and apparatus for providing supplementary information about content in broadcasting system | |
CN109756785B (en) | Video switching playing method and device and storage medium | |
WO2018072184A1 (en) | Generation of mosaic channels for ott live broadcasts | |
CN105916000A (en) | Video display method and device | |
US9189547B2 (en) | Method and apparatus for presenting a search utility in an embedded video | |
US20160165315A1 (en) | Display apparatus, method of displaying channel list performed by the same, server, and control method performed by the server | |
KR102585486B1 (en) | Method and system for circumventing preemption rights in recorded media assets | |
US11902625B2 (en) | Systems and methods for providing focused content | |
US20170180785A1 (en) | Methods and systems for bypassing preemptions in recorded media assets | |
KR20210142917A (en) | Method and Apparatus for Controlling a Shopping Flash Card to be Displayed on Reproduced Images of a Broadcast Program | |
WO2020131059A1 (en) | Systems and methods for recommending a layout of a plurality of devices forming a unified display | |
KR102157102B1 (en) | Method and apparatus for providing additional informaion matching with channel list | |
KR20210142900A (en) | Method and Apparatus for Controlling a Shopping Flash Card to be Displayed on Reproduced Images of a Broadcast Program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16919582 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16919582 Country of ref document: EP Kind code of ref document: A1 |