A MEDIA CLIENT WITH ADAPTIVE BUFFER SIZE AND THE RELATED METHOD

20220286721 · 2022-09-08

    Inventors

    Cpc classification

    International classification

    Abstract

    A media client is configured to stream live media received from a communication network. The media client includes a playback buffer configured to temporarily store the live media. The media client is configured to adapt a size of the playback buffer when the media client streams the live media.

    Claims

    1.-13. (canceled)

    14. A media client configured to stream live media received from a communication network, wherein said media client comprises a playback buffer configured to temporarily store said live media, and wherein said media client is configured to adapt a size of said playback buffer when said media client streams said live media.

    15. The media client according to claim 14, wherein said media client is further configured to: monitor a live playback environment of said communication network; and adapt said size of said playback buffer as a function of said live playback environment.

    16. The media client according to claim 15, wherein said live playback environment comprises one or more of the following: a type of said communication network; a throughput of said communication network; packet loss; round-trip delay time or round-trip time; performance of a client device on which said media client runs; and latency of said live media played on said media client.

    17. The media client according to claim 15, wherein said media client is further configured to increase, respectively decrease, said size of said playback buffer when said live playback environment exceeds one or more predetermined thresholds.

    18. The media client according to claim 17, wherein said media client is further configured to play said live media at a lower playback rate, respectively at a higher playback rate, when said live playback environment exceeds one or more predetermined thresholds.

    19. The media client according to claim 17, wherein said media client is further configured to skip one or more frames of said live media and/or to skip one or more audio samples of said live media, thereby decreasing said size of said playback buffer.

    20. The media client according to claim 14, wherein said media client is further configured to monitor how often said playback buffer is empty when playing said live media and wherein said media client is further configured to increase said size of said playback buffer when a number of times that said playback buffer is empty when playing said live media exceeds a limit threshold.

    21. The media client according to claim 14, wherein said media client is further configured to monitor a number of dropped frames of said live media; and wherein said media client is further configured to increase said size of said playback buffer when said number of dropped frames of said live media exceeds a dropped frame threshold.

    22. A computer-implemented method for streaming live media over a communication network to a media client comprising a playback buffer configured to temporarily store said live media, wherein said method comprises the following step performed by said media client: adapting a size of said playback buffer when said media client streams said live media.

    23. The computer-implemented method according to claim 22, wherein said method further comprises the steps of: monitoring a live playback environment of said communication network; and adapting said size of said playback buffer as a function of said live playback environment.

    24. A media client comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the controller to perform the method according to claim 22.

    25. A computer program product comprising computer-executable instructions for causing a media client to perform at least the method according to claim 22.

    26. A computer readable storage medium comprising computer-executable instructions for performing the method according to claim 22 when the program is run on a computer.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0052] FIG. 1 schematically illustrates an embodiment of a media client according to the present invention.

    [0053] FIG. 2 schematically illustrates an embodiment of a media client which decreases a size of its playback buffer.

    [0054] FIG. 3 schematically illustrates an embodiment of a media client which increases a size of its playback buffer.

    [0055] FIG. 4 schematically illustrates an embodiment of the steps of a method according to the present invention.

    [0056] FIG. 5 schematically illustrates an embodiment of the steps of a method according to the present invention, wherein the media client monitors a live playback environment of the communication network.

    [0057] FIG. 6 shows an example embodiment of a suitable computing system for performing one or several steps in embodiments of the invention.

    DETAILED DESCRIPTION OF EMBODIMENT(S)

    [0058] According to an embodiment shown in FIG. 1, a media client 100 is configured to stream live media 1 received over and from a communication network 2. Live media 1 for example comprises audio content and/or video content. A media client 100 according to the present disclosure is for example a video player. According to an alternative embodiment, a media client 100 according to the present disclosure is for example any type of media player software or any type of application software for playing multimedia computer files like audio and video files. The media client 100 is for example comprised in a client device 103. The client device 103 may for example be a smartphone, a tablet, a portable computer, a computer, or any other client device 103 on which the media client 100 may be installed. The communication network 2 is for example a wireless communication network, or a type of 3G connection or 4G connection or 5G connection communication network. The live media 1 is for example filmed or recorded in another physical location than the location of the media client 100. The media client 100 comprises a playback buffer 101 which is configured to store the live media 1. The media client 100 adapts a size 10 of the playback buffer 101 when the media client 100 plays the live media 1. Optionally, the media client 100 further comprises a live playback environment monitor 102 which monitors a live playback environment 20 of the communication network 2. The live playback environment 20 comprises one or more of the following: a type of the communication network 2, a throughput of the communication network 2, a number of packet loss; a round-trip delay time or round-trip time; performance of a client device 103 on which said media client 100 runs; and latency of the live media 1 played on the media client 100. The media client 100 adapts the size 10 of the playback buffer 101 as a function of the live playback environment 20. The media client 100 increases, respectively decreases, the size 10 of the playback buffer 101 when the live playback environment 20 exceeds one or more thresholds. The media client 100 plays the live media 1 at a lower playback rate, respectively a higher playback rate, when the live playback environment 20 exceeds one or more predetermined thresholds, thereby increasing, respectively decreasing the size 10 of the playback buffer 101.

    [0059] According to an embodiment shown in FIG. 2, a media client 100 is configured to stream live media 1 received over and from a communication network 2. Components having similar reference numbers than in FIG. 1 fulfill the same function. Live media 1 for example comprises audio content and/or video content. A media client 100 according to the present disclosure is for example a video player. According to an alternative embodiment, a media client 100 according to the present disclosure is for example any type of media player software or any type of application software for playing multimedia computer files like audio and video files. The media client 100 is for example comprised in a client device 103. The client device 103 may for example be a smartphone, a tablet, a portable computer, a computer, or any other client device 103 on which the media client 100 may be installed. The communication network 2 is for example a wireless communication network, or a type of 3G connection or 4G connection or 5G connection communication network. The live media 1 is for example filmed or recorded in another physical location than the location of the media client 100. The media client 100 comprises a playback buffer 101 which is configured to store the live media 1. The media client 100 adapts a size 10 of the playback buffer 101 when the media client 100 plays the live media 1. Optionally, the media client 100 further comprises a live playback environment monitor 102 which monitors a live playback environment 20 of the communication network 2. The live playback environment 20 comprises one or more of the following: a type of the communication network 2, a throughput of the communication network 2, a number of packet loss; a round-trip delay time or round-trip time; performance of a client device 103 on which said media client 100 runs; and latency of the live media 1 played on the media client 100. The media client 100 adapts the size 10 of the playback buffer 101 as a function of the live playback environment 20. The media client 100 increases, respectively decreases, the size 10 of the playback buffer 101 when the live playback environment 20 exceeds one or more thresholds. The media client 100 plays the live media 1 at a lower playback rate, respectively a higher playback rate, when the live playback environment 20 exceeds one or more predetermined thresholds, thereby increasing, respectively decreasing the size 10 of the playback buffer 101. For example, on FIG. 2, the live playback environment monitor 102 determines that the live playback environment 20 exceeds one or more predetermined thresholds and the media client adapts a size of the playback buffer 101 from the size 11 to the size 10, thereby decreasing the size 10 of the playback buffer 101. For example, the media client 100 skips one or frames of the live media 1 and/or to skip one or more audio samples of the live media 1, thereby decreasing the size of the playback buffer 101 from the size 11 to the size 10 on FIG. 2.

    [0060] According to an embodiment shown in FIG. 3, a media client 100 is configured to stream live media 1 received over and from a communication network 2. Components having similar reference numbers than in FIG. 1 or FIG. 2 fulfill the same function. Live media 1 for example comprises audio content and/or video content. A media client 100 according to the present disclosure is for example a video player. According to an alternative embodiment, a media client 100 according to the present disclosure is for example any type of media player software or any type of application software for playing multimedia computer files like audio and video files. The media client 100 is for example comprised in a client device 103. The client device 103 may for example be a smartphone, a tablet, a portable computer, a computer, or any other client device 103 on which the media client 100 may be installed. The communication network 2 is for example a wireless communication network, or a type of 3G connection or 4G connection or 5G connection communication network. The live media 1 is for example filmed or recorded in another physical location than the location of the media client 100. The media client 100 comprises a playback buffer 101 which is configured to store the live media 1. The media client 100 adapts a size 10 of the playback buffer 101 when the media client 100 plays the live media 1. Optionally, the media client 100 further comprises a live playback environment monitor 102 which monitors a live playback environment 20 of the communication network 2. The live playback environment 20 comprises one or more of the following: a type of the communication network 2, a throughput of the communication network 2, a number of packet loss; a round-trip delay time or round-trip time; performance of a client device 103 on which said media client 100 runs; and latency of the live media 1 played on the media client 100. The media client 100 adapts the size 10 of the playback buffer 101 as a function of the live playback environment 20. The media client 100 increases, respectively decreases, the size 10 of the playback buffer 101 when the live playback environment 20 exceeds one or more thresholds. The media client 100 plays the live media 1 at a lower playback rate, respectively a higher playback rate, when the live playback environment 20 exceeds one or more predetermined thresholds, thereby increasing, respectively decreasing the size 10 of the playback buffer 101. For example, on FIG. 3, the live playback environment monitor 102 determines that the live playback environment 20 exceeds one or more predetermined thresholds and the media client adapts a size of the playback buffer 101 from the size 11 to the size 10, thereby increasing the size 10 of the playback buffer 101. For example, the media client 100 monitor how often the playback buffer 101 is empty when playing the live media 1 and the media client 100 increases the size of the playback buffer 101 from the size 11 to the size 10 when a number of times the playback buffer 101 is empty when playing the live media 1 exceeds a limit threshold, thereby increasing the size of the playback buffer 101 from the size 11 to the size 10 on FIG. 3.

    [0061] According to an embodiment of the method steps shown in FIG. 4, a method comprises a first step 301 of providing a media client 100 comprising a playback buffer 101, wherein the playback buffer 101 is configured to temporarily store live media 1 received over a communication network 2. Components having similar reference numbers than in FIG. 1 or FIG. 2 or FIG. 3 fulfill the same function. Live media 1 for example comprises audio content and/or video content. A media client 100 according to the present disclosure is for example a video player. According to an alternative embodiment, a media client 100 according to the present disclosure is for example any type of media player software or any type of application software for playing multimedia computer files like audio and video files. The media client 100 is for example comprised in a client device. The client device may for example be a smartphone, a tablet, a portable computer, a computer, or any other client device on which the media client 100 may be installed. The communication network 2 is for example a wireless communication network, or a type of 3G connection or 4G connection or 5G connection communication network. The live media 1 is for example filmed or recorded in another physical location than the location of the media client 100. In step 302 of the method of FIG. 4, the media client 100 adapts a size 10 of the playback buffer 101 when the media client 100 plays the live media 1.

    [0062] According to an embodiment of the method steps shown in FIG. 5, a method comprises a first step 301 of providing a media client 100 comprising a playback buffer 101, wherein the playback buffer 101 is configured to temporarily store live media 1 received over a communication network 2. Components having similar reference numbers than in FIG. 1 or FIG. 2 or FIG. 3 or FIG. 4 fulfill the same function. Live media 1 for example comprises audio content and/or video content. A media client 100 according to the present disclosure is for example a video player. According to an alternative embodiment, a media client 100 according to the present disclosure is for example any type of media player software or any type of application software for playing multimedia computer files like audio and video files. The media client 100 is for example comprised in a client device. The client device may for example be a smartphone, a tablet, a portable computer, a computer, or any other client device on which the media client 100 may be installed. The communication network 2 is for example a wireless communication network, or a type of 3G connection or 4G connection or 5G connection communication network. The live media 1 is for example filmed or recorded in another physical location than the location of the media client 100. In step 303 of the method of FIG. 5, the media client 100 optionally monitor a live playback environment of the communication network 2. In step 304, the media client 100 adapts a size 10 of the playback buffer 101 when the media client 100 plays the live media 1 as a function of the live playback environment 20.

    [0063] FIG. 6 shows a suitable computing system 800 enabling the performance of the described steps according to the various embodiments. Computing system 800 may in general be formed as a suitable general-purpose computer and comprise a bus 810, a processor 802, a local memory 804, one or more optional input interfaces 814, one or more optional output interfaces 816, a communication interface 812, a storage element interface 806, and one or more storage elements 808. Bus 810 may comprise one or more conductors that permit communication among the components of the computing system 800. Processor 802 may include any type of conventional processor or microprocessor that interprets and executes programming instructions. Local memory 804 may include a random-access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 802 and/or a read only memory (ROM) or another type of static storage device that stores static information and instructions for use by processor 802. Input interface 814 may comprise one or more conventional mechanisms that permit an operator or user to input information to the computing device 800, such as a keyboard 820, a mouse 830, a pen, voice recognition and/or biometric mechanisms, a camera, etc. Output interface 816 may comprise one or more conventional mechanisms that output information to the operator or user, such as a display 840, etc. Communication interface 812 may comprise any transceiver-like mechanism such as for example one or more Ethernet interfaces that enables computing system 800 to communicate with other devices and/or systems, for example with other media clients 100;103. The communication interface 812 of computing system 800 may be connected to such another computing system by means of a local area network (LAN) or a wide area network (WAN) such as for example the internet. Storage element interface 806 may comprise a storage interface such as for example a Serial Advanced Technology Attachment (SATA) interface or a Small Computer System Interface (SCSI) for connecting bus 810 to one or more storage elements 808, such as one or more local disks, for example SATA disk drives, and control the reading and writing of data to and/or from these storage elements 808. Although the storage element(s) 808 above is/are described as a local disk, in general any other suitable computer-readable media such as a removable magnetic disk, optical storage media such as a CD or DVD, -ROM disk, solid state drives, flash memory cards, . . . could be used. Computing system 500 could thus correspond to the circuitry for executing the steps of the media client 100 or 103.

    [0064] As used in this application, the term “circuitry” may refer to one or more or all of the following:

    [0065] (a) hardware-only circuit implementations such as implementations in only analog and/or digital circuitry and

    [0066] (b) combinations of hardware circuits and software, such as (as applicable): [0067] (i) a combination of analog and/or digital hardware circuit(s) with software/firmware and [0068] (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions) and

    [0069] (c) hardware circuit(s) and/or processor(s), such as microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g. firmware) for operation, but the software may not be present when it is not needed for operation.

    [0070] This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in a server, a cellular network device, or other computing or network device.

    [0071] Although the present invention has been illustrated by reference to specific embodiments, it will be apparent to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied with various changes and modifications without departing from the scope thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the scope of the claims are therefore intended to be embraced therein.

    [0072] It will furthermore be understood by the reader of this patent application that the words “comprising” or “comprise” do not exclude other elements or steps, that the words “a” or “an” do not exclude a plurality, and that a single element, such as a computer system, a processor, or another integrated unit may fulfil the functions of several means recited in the claims. Any reference signs in the claims shall not be construed as limiting the respective claims concerned. The terms “first”, “second”, third”, “a”, “b”, “c”, and the like, when used in the description or in the claims are introduced to distinguish between similar elements or steps and are not necessarily describing a sequential or chronological order. Similarly, the terms “top”, “bottom”, “over”, “under”, and the like are introduced for descriptive purposes and not necessarily to denote relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances and embodiments of the invention are capable of operating according to the present invention in other sequences, or in orientations different from the one(s) described or illustrated above.