Media content display synchronization on multiple devices
11589133 ยท 2023-02-21
Assignee
Inventors
Cpc classification
H04N21/242
ELECTRICITY
H04N21/4314
ELECTRICITY
H04N21/43076
ELECTRICITY
H04N21/4307
ELECTRICITY
H04N21/436
ELECTRICITY
H04N21/41415
ELECTRICITY
International classification
H04N21/436
ELECTRICITY
H04N21/242
ELECTRICITY
Abstract
A method for displaying media content on devices respectively linked to media players from a group of media players. The method includes the acts of: transmitting to the media players configuration data including data; transmitting data corresponding to the media content to at least one of the media players; transmitting to the media players data corresponding to a multicast address and to an entry port; selecting by the server a master media player among the at least one media player which received the data corresponding to the media content; sending by the master media player a multicast media stream using the multicast address and the entry port, the multicast media stream being obtained by the master media player from the data corresponding to the media content.
Claims
1. A method for displaying media content on devices of a group of devices, each device of the group of devices being respectively linked to a media player from a group of media players, the method comprising the acts of: transmitting by a server to the media players of the group of media players configuration data comprising data corresponding to a display area and data related to an identification of the media content to be displayed in the display area; transmitting by the server or another server data corresponding to the media content to at least one of the media players of the group of media players, said data comprising the data related to the identification of the media content; transmitting by the server to the media players of the group of media players data corresponding to a multicast address and to an entry port, said multicast address and entry port being determined by the server, said data being associated to the identification of the media content; automatically and dynamically selecting by the server, without requiring human intervention, a master media player among the at least one media player which received the data corresponding to the media content; and sending by the master media player a multicast media stream to the other media players of the group of media players using the multicast address and the entry port, the multicast media stream being obtained by the master media player from the data corresponding to the media content.
2. The method according to claim 1, further comprising sending by the server to the media players of the group of media players instructions to start displaying in the display area the media content based on the media stream received through the multicast address and the entry port.
3. The method according to claim 1, further comprising determining the group of media players so that the media players of the group of media players are in a local network or in several adjacent local networks.
4. The method according to claim 1, further comprising, when the at least one media player comprises at least two media players and if the multicasting of the media stream is interrupted, automatically and dynamically selecting another master media player among the at least one media player which received the data corresponding to the media content and sending by the another master media player a multicast remaining media stream using the multicast address and the entry port, the multicast remaining media stream being obtained by the master media player from the data corresponding to the media content.
5. The method according to claim 4, wherein the multicast remaining media stream obtained from the data corresponding to the media content is further obtained according to a part of the media stream already received from the master media player by the another master media player.
6. The method according to claim 4, wherein selecting the another media player does not require human intervention.
7. The method according to claim 1, further comprising, if a new media player is added to the group during one of the acts, transmitting by the server to the new media player the configuration data and the data corresponding to the multicast address and to the entry port.
8. The method according to claim 1, wherein the media player selected as the master media player is the first media player to complete a receiving of the data corresponding to the media content.
9. The method according to claim 1, further comprising: for each media player of the group of media players, sending to the server an acknowledgement related to the receiving of the configuration data and/or data corresponding to a multicast address and to an entry port; and if the server received the acknowledgement of all the media player of the group of media players, sending instructions by the server to the master media player to perform the multicasting.
10. The method according to claim 1, further comprises: sending by the server or the another server to the master media player data corresponding to a new media content; sending by the master media player a multicast new media stream using the multicast address and the entry port, the multicast new media stream being obtained by the master media player from the data corresponding to the new media content.
11. The method according to claim 1, further comprising displaying by the media players the media content on the linked devices after the media players have received the multicast media stream.
12. The method according to claim 1, wherein selecting the master media player is at random.
13. The method according to claim 1, wherein selecting the master media player is based on a pre-stored criterion.
14. The method according to claim 1, wherein selecting the master media player is selecting the first media player among the group of media players to receive the data corresponding to the media content.
15. The method according to claim 14, wherein selecting the first media player among the group of media players to receive the data corresponding to the media content is based on acknowledgements sent by the media players when receiving the data corresponding to the media content.
16. The method according to claim 1, wherein selecting the master media player is based on computing powers of the media players of the group of media players.
17. A computer program product comprising program instruction code stored on a non-transitory computer-readable medium for the execution of the method according to claim 1.
18. A server for managing displaying media content on devices of a group of devices, each device of the group of devices being respectively linked to a media player from a group of media players, the server comprising: a processor, and a non-transitory computer-readable medium comprising instructions stored thereon, which when executed by the processor, configure the server to: send to the media players of the group of media players configuration data comprising data corresponding to a display area and data related to an identification of the media content to be displayed in the display area; send to the media players of the group of media players data corresponding to a multicast address and to an entry port, said multicast address and entry port being determined by the server, said data being associated to the identification of the media content; automatically and dynamically select, without requiring human intervention, a master media player among the media players which received the data corresponding to the media content; and send instructions to the master media player to send a multicast media stream to the other media players of the group of media players using the multicast address and the entry port, the multicast media stream being obtained by the master media player from the data corresponding to the media content.
19. A master media player for displaying media content on devices of a group of devices, each device of the group of devices being respectively linked to a media player from a group of media players including the master media player, said master media player comprising: a processor, and a non-transitory computer-readable medium comprising instructions stored thereon, which when executed by the processor, configure the master media player to: receive from a server configuration data comprising data corresponding to a display area and data related to an identification of the media content to be displayed in the display area; receive from the server or another server data corresponding to the media content, said data comprising the data related to the identification of the media content; receive from the server data corresponding to a multicast address and to an entry port, said data being associated to the identification of the media content; and receive instructions from the server to send a multicast media stream to the other media players of the group of media players using the multicast address and the entry port, the multicast media stream being obtained by the master media player from the data corresponding to the media content.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) The present invention is illustrated by way of example, and not by way of limitations, in the figures of the accompanying drawings, in which like reference numerals refer to similar elements and in which:
(2)
(3)
DETAILED DESCRIPTION
(4) Referring to
(5) Each media player 3.1 to 3.7 is linked to a device, for example a screen, which is not represented on
(6) In the example of
(7) The server 1 comprises one network interface module (INT) 1.1, one processing module (PROC) 1.2 and a memory unit (MEMO) 1.3. The MEMO 1.3 comprises a non-volatile unit which retrieves the computer program and a volatile unit which may store the parameters for the implementation of the invention. For example, the volatile unit stores: configuration data including data corresponding to a display area (for example an area on a screen of the device defined by coordinates) and data related to an identification of the media content (for example, the name of the file of the media content to be displayed on the screen); data corresponding to a multicast address (for example, an IP address) and to an entry port (for example, a TCP or an UDP port number); data corresponding to the media content; instructions comprising a time to display or an immediate displaying instruction; information related to each media player, for example the group of media players in which the media player is, the acknowledgements received from the media player, the time of reception by the server of these acknowledgements, the position of the media player, etc.
(8) The PROC 1.2 is configured to configure the INT 1.1 to transmit the configuration data, the data corresponding to a multicast address and to an entry port and the data corresponding to the media content (or new media content). The PROC 1.2 may also be configured to configure the INT 1.1 to transmit the instructions to the master media player and/or to the other media player. The PROC 1.2 is configured to select a master media player among the media players. The PROC 1.2 may be configured to determine the group of media players, for example considering the media players 3.1 to 3.6 as being in the group of media players.
(9) The media players 3.1 to 3.7 comprise the same or similar inside structure, in
(10) When the media player 3.2 is selected as a master media player, the volatile unit stores: an indication that the media player 3.2 is the master media player; data corresponding to the media content adapted to the format of the multicast media stream.
(11) The PROC 3.13 is configured to configure the INT1 3.11 to receive from the server 1 the configuration data, data corresponding to the multicast address and to the entry port and data corresponding to the media content if received.
(12) When the media player 3.2 is selected as a master media player, the PROC 3.13 is configured to obtain and send the multicast media stream. For example, the PROC 3.13 encodes the media content included in the fil received into a H.264, HEVC, VP8 or VP9 format.
(13) The PROC 3.13 is configured to configure the INT2 3.12 to transmit a video stream to the device to which the media player 3.2 is linked. This video stream is obtained by decoding the multicast media stream, the images of the video stream containing in the corresponding area indicated in the configuration data images of the media content. The remaining part of the images of the video stream can be obtained with other media contents process according to the invention and/or a classical video stream, for example, a TV stream.
(14) The transmission performed from the server 1 to the media players may be performed in any classical manner through internet 2.1 and the different local networks 2.31 and 2.32. For example, unicast transmission or multicast transmission may be implemented.
(15) For multicasting the stream, classical multicasting procedure may be used, for example, the procedure for multicasting provided with IPv4. The stream multicasted by the master media player is sent using the multicast address which in the local networks identifies a multicast group which comprises the group of media players and the gateway between the two local networks. The router 2.41, which is subscribed to this multicast group, receives the stream and duplicates it and sends it to the media players 3.1, 3.3 and 3.4 of the network 2.31 and to the gateway 2.5 which transmits the stream to the router 2.42. The router 2.42, which is also subscribed to this multicast group duplicates the stream received and sends it to the media players 3.5 and 3.6 of the network 2.32.
(16) Referring to
(17) At step S1 the displaying of the digital signage is parameterized, therefore, the operator: defines the area where the media content is to be displayed on the screen; identifies the media content; stores the media content in the volatile unit of the MEMO 1.3; defines the group of media players, that is, defines the media players 3.1 to 3.6 which will display the media content; the operator may also determine when the multimedia content should be displayed.
(18) These parameters are stored in the volatile unit of the MEMO 1.3 of the server 1. The server may determine the multicast address and the entry port.
(19) At step S2 the server 1 transmits to the media players of the group of media players the configuration data.
(20) For example, the server 1 may transmit coordinates of the display area (X.sub.A, Y.sub.A, X.sub.B, Y.sub.B, X.sub.C, Y.sub.C, X.sub.D, Y.sub.D) and the name of the file containing the media content.
(21) On reception of the configuration data each media player may create a file including for example the coordinates of the display area and the name of the file containing the media content.
(22) Optionally, the media players can send to the server 1 acknowledgements when they receive the configuration data.
(23) At step S3 the server 1 transmits to the media players of the group of media players the data corresponding to the media content.
(24) For example, the server 1 transmits a file containing the media content to the media players of the group.
(25) Alternatively, the server 1 may not send the data corresponding to the media content to all the media players of the group, for example, only to few media players. These media players may have a greater computing power than the other media players of the group, enabling to process more efficiently the file containing the media content.
(26) This step can also be performed by another server 1 as previously indicated.
(27) Upon receipt of the data corresponding to the media content each media player that received this data may store it on a local storage for example on its non-volatile unit of the MEMO 3.14.
(28) Optionally, the media players can send to the server 1 acknowledgements when they receive the data corresponding to the media content.
(29) At step S4 the server 1 transmits to the media players of the group of media players the data corresponding to a multicast address and to an entry port. This data is associated to the identification of the media content. Therefore, the media players can identify the media content streamed via the multicast address and the entry port.
(30) For example, the server 1 send a message containing an IP address specific for multicasting and a TCP/UDP port: 224.0.0.0/1935. This message also contains the identification of the media content.
(31) Optionally, the media players can send to the server 1 acknowledgements when they receive the data corresponding to a multicast address and to an entry port.
(32) At step S5 the server 1 selects among the media players of the group a master media player. Here the master media player will be media player 3.2.
(33) The selection of the master media player can be done randomly or based on criteria. For example, the master media player can be selected among the media players of the group based on: the computing power of the media players (this can be defined before implementing the invention); or the first media player to receive the data corresponding to the media content (this may be defined based on the acknowledgements sent by the media players when receiving the data corresponding to the media content).
(34) At step S6, the server 1 sends instructions to the master media player. These instructions instruct the master media player to send a multicast media stream using the multicast address and the entry port.
(35) As an instruction, the server may simply indicate that the media player has been selected as a master media player. This enables to simplify the instruction when there are no doubts on the multicast stream to send. Otherwise, the instruction may also indicate which media content is to be streamed.
(36) When receiving the instruction, or alternatively when receiving the data corresponding to the media content, the master media player can process this data to obtained data ready to be streamed. For example, video media content can be encoded in H.264, HEVC, VP8 or VP9 format.
(37) At step S7, the master media player 3.2 sends a multicast media stream using the multicast address and the entry port.
(38) For example, the master media player sends to the address and port 224.0.0.0/1935 the stream of the media content.
(39) The media players of the group, which are registered in the multicast group to which are subscribed the different routers 2.41 and 2.42, receive on their port 1935 the media stream corresponding to the media content.
(40) At step S8, the media players of the group display the media content on the devices according to the configuration information received. The displaying of the data may not be triggered by the reception of the multicast media stream.
(41) Indeed, the server 1 can send a message instructing the media players of the group (therefore not media player 3.7) to display media content either when receiving these instructions or at a specific time defined in the instructions. The displaying may therefore be triggered when the stream is already being sent by the master media player 3.2. In addition, these instructions may be sent when the server 1 received both, the acknowledgements related to the receiving of the data corresponding to a multicast address and the acknowledgements related to configuration data, from all the media players of the group.
(42) When receiving the multicast media stream or when displaying is triggered by the instructions, each media player decodes the multicast media stream to build a video stream which is transmitted to the device. As previously indicated, other streams may be used in addition to the multicast media stream to build the video stream. These streams may also result from the steps of the invention. The video stream may also be built using a classical stream, for example a TV stream.
(43) At step S9 the operator parameters the server 1 so that it manages the media players to display a new media content in place of the media content already being displayed.
(44) Therefore, the operator only needs to store the new media content in the volatile unit of the MEMO 1.3 of the server 1.
(45) At step S10, the server performs the same as in step S3 except the media content is replaced by the new media content, that is, for example, the server 1 transmits a file containing the new media content to the media players of the group. The server 1 may also limit the transmission to the master media player 3.2.
(46) On reception of the data corresponding to the new media content each media player that received this data may store it on a local storage for example on its non-volatile unit of the MEMO 3.14.
(47) At step S11, the server 1 sends instructions to the master media player as described in step S6. That is, the server 1 sends instructions to the master media player instructing it to send a multicast new media stream using the multicast address and the entry port. The multicast new media stream is obtained based on the new media content as described above with the media content.
(48) At step S12, the master media player performs the same as in step S7. That is, the master media player 3.2 sends the multicast new media stream using the same multicast address and the same entry port.
(49) The media players of the group which were registered in the multicast group to which are subscribed the different routers 2.41 and 2.42 receive on their port 1935 the multicast new media stream corresponding to the new media content.
(50) At step S13, the media players of the group display the new media content in place of the media content on the device as described in step S8.
(51) Therefore, replacing the media content by another media content (new media content) does not require specific action on the side of the media players. The main requirement is to transmit the new media content to the master media player for it to produce a new stream which replaces the multicast media stream in a transparent manner for the other media players.
(52) At step S14, the server 1 adds a new media player 3.7 to the group of media players, while the media players of the group are displaying the media content.
(53) At step S15, the server 1 transmits to the new media player 3.7 the configuration data sent to the other media players of the group.
(54) On reception of the configuration data the new media player 3.7 may create a file including the configuration data.
(55) At step S16 the server 1 transmits to the new media player 3.7 the data corresponding to a multicast address and to an entry port also sent at step S4 to the other media players of the group.
(56) At step S17, the new media player 3.7 is part of the group of media players and therefore is registered in the multicast group to which is subscribed the router 2.42 and thus will receive on the entry port the media stream corresponding to the media content.
(57) At step S18, the new media player 3.7 displays the media content on the device according to the configuration data (the same as for the other media players of the group) received as described in step S8.
(58) At step S19 the master media player suffers a failure that prevents it from continuing to send the multicast media stream. The other media players of the group may report to the server 1 this failure.
(59) At step S20, a new master media player is selected among the media player which has previously received the media content. This selection may be performed by the server 1 when this one receives a report from a media player of the failure of the master media player. The selection may also be done by the media players themselves or may be performed along with the selection of the master media player at step S5, therefore preselecting a new master media player to replace the master media player in case of failure.
(60) At step S21, the new master media player which has been selected, sends a remaining part of the multicast media stream (named multicast remaining media stream) in place of the master media player, as performed in step S7. The multicast remaining media stream is obtained with the media content as for the multicast media stream, but the stream starts where the multicast media stream was stopped (based for example on the multicast media stream received by the new master media player).
(61) At step S22, the media players of the group display the media content on the devices after decoding the remaining multicast media stream as performed in step S8.
(62) Therefore, replacing the master media player by the new master media player does not require specific action on the side of the media players since the multicast address and entry port are maintained, the stream is only sent by a different entity.
(63) The three specific procedures described in