Optimized video streaming using cloud computing platform
First Claim
1. A method for streaming videos to a computing device, the method comprising:
- monitoring, by a cloud server, a video streaming application executing at the computing device to identify a service component and a user interface component of the video streaming application, the video streaming application executing as a multi-threaded application, the service component executing as a background thread to obtain video streaming data from a video server, the user interface component executing as a foreground thread to present a user interface for displaying the video streaming data obtained by the service component on the computing device;
determining, by the cloud server, an optimization factor for the service component of video streaming application, the optimization factor determined as a function of consumption of computing resources of the computing device by the video streaming application;
responsive to a determination that the optimization factor is below a predetermined value, requesting the computing device to transmit an instance of the service component to the cloud server, wherein the computing device is switched to a high power consumption state for transmitting the instance of the service component to the cloud server, wherein the computing device is switched to a low power consumption state after transmitting the instance of the service component to the cloud server;
receiving the instance of the service component at the cloud server;
executing the instance of the service component at the cloud server to obtain the video streaming data from the video server at the cloud server;
monitoring the computing device to determine if the user interface component of the video streaming application is executing in a foreground or a background of the operating system of the computing device; and
responsive to a determination that the user interface component is executing in the foreground, transmitting the video streaming data obtained by the cloud server to the user interface component of the video streaming application at the computing device.
4 Assignments
0 Petitions
Accused Products
Abstract
Technology is disclosed for migrating at least portions of a video streaming application to a cloud server. The migration is based on an optimization factor of a video streaming application. The optimization factor can be computed based on consumption of computing resources of the computing device. The video streaming application is a multi-threaded application in which a background thread performs tasks that may not require user interaction and a foreground thread performs tasks that may require user interaction. A service component of the video streaming application that obtains video streaming data from video servers is one example of the background thread. A user interface component that displays the video streaming data to a user via a user interface is an example of the foreground thread. If the optimization factor of the service component is below a predefined threshold, the service component is transferred to the cloud server for further processing.
-
Citations
17 Claims
-
1. A method for streaming videos to a computing device, the method comprising:
-
monitoring, by a cloud server, a video streaming application executing at the computing device to identify a service component and a user interface component of the video streaming application, the video streaming application executing as a multi-threaded application, the service component executing as a background thread to obtain video streaming data from a video server, the user interface component executing as a foreground thread to present a user interface for displaying the video streaming data obtained by the service component on the computing device; determining, by the cloud server, an optimization factor for the service component of video streaming application, the optimization factor determined as a function of consumption of computing resources of the computing device by the video streaming application; responsive to a determination that the optimization factor is below a predetermined value, requesting the computing device to transmit an instance of the service component to the cloud server, wherein the computing device is switched to a high power consumption state for transmitting the instance of the service component to the cloud server, wherein the computing device is switched to a low power consumption state after transmitting the instance of the service component to the cloud server; receiving the instance of the service component at the cloud server; executing the instance of the service component at the cloud server to obtain the video streaming data from the video server at the cloud server; monitoring the computing device to determine if the user interface component of the video streaming application is executing in a foreground or a background of the operating system of the computing device; and responsive to a determination that the user interface component is executing in the foreground, transmitting the video streaming data obtained by the cloud server to the user interface component of the video streaming application at the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device for streaming videos, the computing device comprising:
-
a processor; a networking interface configured to facilitate transmission of data, including video streaming data, between a cloud server, a video server and the computing device; and a memory storing instructions which, when executed by the processor, cause a migration module of the computing device to perform a process including; monitoring a video streaming application executing at the computing device to identify a service component and a user interface component of the video streaming application, the video streaming application executing as a multi-threaded application, the service component executing as a background thread to obtain video streaming data from the video server, the user interface component executing as a foreground thread to present a user interface for displaying the video streaming data obtained by the service component on a display of the computing device, determining an optimization factor for the service component as a function of computing resources consumed by the video streaming application, responsive to a determination that the optimization factor is below a predetermined value, transmitting an instance of the service component to the cloud server, the cloud server configured to execute the instance of the service component at the cloud server to obtain the video streaming data from the video server at the cloud server, wherein the computing device is switched to a high power consumption state for transmitting the instance of the service component to the cloud server, wherein the computing device is switched to a low power consumption state after transmitting the instance of the service component to the cloud server, transmitting information regarding last video streaming data obtained by the service component executing on the computing device, determining if the user interface component of the video streaming application is executing as a foreground process or a background process of the operating system of the computing device; and responsive to a determination that the user interface component is executing as the foreground process, receiving the video streaming data obtained by the instance of the service component executing at the cloud server. - View Dependent Claims (12, 13, 14)
-
-
15. A method for streaming videos, the method comprising:
-
receiving, by a video streaming application executing at a computing device, video streaming data from a video server, the video streaming application including a service component and a user interface component, the service component executing as a background thread to obtain video streaming data from the video server, the user interface component executing as a foreground thread to present a user interface for displaying the video streaming data obtained by the service component on the computing device; determining, by the computing device, an optimization factor for the service component of video streaming application, the optimization factor determined based on an amount of computing resources consumed by the video streaming application; responsive to a determination that the optimization factor is below a predetermined value, switching the computing device to a high power consumption state for preparing to transmit an instance of the service component to a cloud server, the cloud server configured to execute the instance of the service component at the cloud server to obtain at least a portion of remainder of the video streaming data from the video server to the cloud server, and transmitting the instance of the service component and information regarding last video streaming data obtained by the service component executing on the computing device to the cloud server; switching the computing device to a low power consumption state, after successfully completing the transmission of the instance of the service component and the information regarding last video streaming data; determining if the user interface component of the video streaming application is executing as a foreground process or a background process of the operating system of the computing device; and responsive to a determination that the user interface component is executing as the foreground process, switching the computing device to a high power consumption state for preparing to receive, from the cloud server, the at least portion of remainder of the video streaming data obtained by the instance of the service component executing at the cloud server, and receiving the at least portion of remainder of video streaming data from the cloud server. - View Dependent Claims (16, 17)
-
Specification