A SERVICE WORKER AND THE RELATED METHOD

20220263882 · 2022-08-18

    Inventors

    Cpc classification

    International classification

    Abstract

    A computer-implemented method for streaming media from a remote server in a client web browser supporting an operating streaming protocol is implemented within a client web application comprised in the client web browser. The method involves the following steps: intercepting data communications between the remote server and the client web browser for streaming the media in the client web browser; and converting the data communications into and respectively from the operating streaming protocol when the data communications are implemented in a native streaming protocol different from the operating streaming protocol of the client web browser, thereby allowing the client web browser to stream the media.

    Claims

    1.-8. (canceled)

    9. A computer-implemented method for streaming media from a remote server in a client web browser supporting an operating streaming protocol, wherein said method is implemented within a client web application comprised in said client web browser and wherein said method comprises the following steps: intercepting data communications between said remote server and said client web browser for streaming said media in said client web browser; and converting said data communications into and respectively from said operating streaming protocol when said data communications are implemented in a native streaming protocol different from said operating streaming protocol of said client web browser, thereby allowing said client web browser to stream said media.

    10. The computer-implemented method according to claim 9, wherein: said step of intercepting said data communications comprises intercepting a request generated in said operating streaming protocol to stream said media in said client web browser; and said step of converting said data communications comprises converting said request into a native streaming protocol different from said operating streaming protocol of said client web browser.

    11. The computer-implemented method according to claim 9, wherein: said step of intercepting said data communications comprises generating a response to said request to stream said media from said remote server in said client web browser; and said step of converting said data communications corresponds to converting said response into said operating streaming protocol of said client web browser when said response is implemented in a native streaming protocol different from said operating streaming protocol of said client web browser, thereby allowing said media to be streamed in said client web browser.

    12. The computer-implemented method according to claim 9, wherein said operating streaming protocol is the HTTP Live Streaming protocol.

    13. A service worker for streaming media from a remote server in a client web browser supporting an operating streaming protocol, wherein said service worker is supported by a client web application of said client web browser and wherein said service worker is configured to: intercept data communications between said remote server and said client web browser for streaming said media in said client web browser; and convert said data communications into and respectively from said operating streaming protocol when said data communications are implemented in a native streaming protocol different from said operating streaming protocol of said client web browser, thereby allowing said client web browser to stream said media.

    14. 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 9.

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

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

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0050] FIG. 1 schematically illustrates an embodiment of a service worker according to the present invention.

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

    [0052] FIG. 3 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)

    [0053] According to an embodiment shown in FIG. 1, a service worker 10 is supported by a client web application 301 comprised in a client web browser 300 running on a client device 302. The client device 302 may be a computer, a tablet, a smartphone or any other computing device provided with internet connectivity. Media 1 such as for example audio and/or video is stored and/or available on a remote server 200. The client web browser 300 supports an operating streaming protocol 30. The client web browser 300 is configured to stream media 1 from the remote server 200 over a communication network 6 such as for example the internet. The service worker 10 intercepts data communications 2;3 between the remote server 200 and the client web browser 300 for streaming the media 1 in the client web browser 300. The service worker 10 further converts the data communications 2;3 into and respectively from the operating streaming protocol 30 when the data communications 2;3 are implemented in a native streaming protocol 20 different from the operating streaming protocol 30 of the client web browser 300, thereby allowing the media 1 to be streamed in the client web browser 300. More particularly, the service worker 10 intercepts a request 3 generated in the operating streaming protocol 30 to stream the media 1 in the client web browser 300. The service worker 10 then converts the request 3 generated in the operating streaming protocol 30 into a native streaming protocol 20 different from the operating streaming protocol 30 of the client web browser 300 when the request 3 is not generated in a native streaming protocol that can be interpreted by the remote server 200, thereby generating a converted request 5 for streaming the media 1. The service worker 10 then transmits the converted request 5 to the remote server 200 on which the media 1 is stored. The converted request 5 is implemented in a native streaming protocol 20 which can be interpreted by the remote server 200. A response 2 to the converted request 5 to stream the media 1 from the remote server 200 in the client web browser 300 is generated. The service worker 10 intercepts the response 2 to the converted request 5 to stream the media 1 from the remote server 200 in the client web browser 300. The service worker 10 converts the response 2 into the operating streaming protocol 30 of the client web browser 300 when the response 2 is implemented in a native streaming protocol 20 different from the operating streaming protocol 30 of the client web browser 300, thereby generating a converted response 4. The server worker 10 then transmits the converted response 4 to the client web browser 300, thereby allowing the media 1 to be streamed in the client web browser 300. An operating streaming protocol of the client web browser 300 is for example a HTTP Live Streaming protocol. A native streaming protocol is for example one or more of the following: MPEG DASH, Adobe HTTP HDS Dynamic Streaming, Smooth Streaming from Microsoft, Real-Time Messaging Protocol or RTMP.

    [0054] According to an embodiment of the method steps illustrated in FIG. 2, the method comprises step 401 of providing a client web browser 300 supporting an operating streaming protocol 30. An operating streaming protocol of the client web browser 300 is for example a HTTP Live Streaming protocol. The method further comprises step 402 which comprises providing a client web application 301 comprised in the client web browser 300. In step 403, the method further comprises intercepting, in the client web application 301, data communications 2;3 between a remote server 200 on which media 1 is stored or available and the client browser 300 for streaming media 1 in the client web browser 300. In step 404, the method further comprises converting, in the client web application 301, the data communications 2;3 into and respectively from the operating streaming protocol 30 when the data communications 2;3 are implemented in a native streaming protocol 20 different from the operating streaming protocol 30 of the client web browser 300. A native streaming protocol is for example one or more of the following: MPEG DASH, Adobe HTTP HDS Dynamic Streaming, Smooth Streaming from Microsoft, Real-Time Messaging Protocol or RTMP. More particularly, step 403 comprises intercepting a request 3 generated in the operating streaming protocol 30 to stream the media 1 in the client web browser 300. In this case, step 404 comprises converting the request 3 into a native streaming protocol 20 different from the operating streaming protocol of the client web browser 300, wherein the native streaming protocol 20 can be interpreted by the remote server 200, thereby generating a converted request to stream the media 1 in the client web browser 300 and further comprises transmitting the converted request to the remote server 200. More particularly, step 403 comprises intercepting a response 2 to the request 3 to stream the media 1 in the client web browser 300, and step 404 comprises converting the response 2 into the operating streaming protocol 30 of the client web browser 300 when the response 2 is implemented in a native streaming protocol 20 different from the operating streaming protocol of the client web browser 300, thereby generating a converted response to the request 3 to stream the media 1 in the client web browser 300 and further comprises transmitting the converted response to the client web browser, thereby allowing the media 1 to be streamed in the client web browser 300.

    [0055] FIG. 3 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 computing devices 302. 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 302.

    [0056] As used in this application, the term “circuitry” may refer to one or more or all of the following: [0057] (a) hardware-only circuit implementations such as implementations in only analog and/or digital circuitry and [0058] (b) combinations of hardware circuits and software, such as (as applicable): [0059] (i) a combination of analog and/or digital hardware circuit(s) with software/firmware and [0060] (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 [0061] (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.

    [0062] 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.

    [0063] 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.

    [0064] 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.