System and Method for Highly Scalable Video on Demand
First Claim
1. A method for providing sequential data blocks having duration comprises:
- providing repeated pre-scheduled multicasts of a data block;
dynamically initiating a transmission of the front portion of the data block in response to a user request to receive the data block; and
merging the user into a pre-scheduled multicast of the data block;
wherein the dynamically initiated transmission is a multicast.
2 Assignments
0 Petitions
Accused Products
Abstract
An embodiment of a system and method for providing video on demand provides pre-scheduled multicasts of videos as well as dynamically initiated transmissions of the front portion of videos. Users may first receive a dynamically initiated front portion of a video and then be merged into a pre-scheduled multicast. Preferably, the dynamically initiated transmission is also a multicast. Preferably, multiple admission controllers and a single server coordinate the dynamically initiated transmissions for any one video. Preferably, interactive controls are supported without requiring extra server-side resources. Preferably, latency is automatically equalized between users admitted via the pre-scheduled and the dynamically initiated transmissions. Preferably, a user receiving a video via a pre-scheduled multicast does not need to change channels to finish receiving the video transmitted. Preferably, a module can model and quickly estimate expected latency given system parameters such as number and allocation of channels and expected user arrival time(s).
-
Citations
41 Claims
-
1. A method for providing sequential data blocks having duration comprises:
-
providing repeated pre-scheduled multicasts of a data block; dynamically initiating a transmission of the front portion of the data block in response to a user request to receive the data block; and merging the user into a pre-scheduled multicast of the data block; wherein the dynamically initiated transmission is a multicast. - View Dependent Claims (2)
-
-
3. A method for providing videos to users, the method comprising:
-
multicasting a video according to a predetermined schedule, the multicasting hereinafter referred to as the first multicasting; receiving an indication that a user desires to see the video; if the first multicasting will not multicast the video timely for the user to receive and view the video with acceptably low waiting time, then dynamically initiating transmission of a portion of the video, the portion hereinafter referred to as the first portion of the video, wherein the user will receive at least some of the first portion of the video, and the user will receive another portion of the video, hereinafter referred to as the second portion of the video, via the first multicasting; and if the first multicasting will multicast the video timely for the user to receive and view the video with acceptably low waiting time, then causing the user to receive the first multicasting without needing to receive the dynamically initiated transmission. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
accepting proposed system parameters including number of channels, number of videos, allocation of channels, and a threshold parameter that is indicative of acceptably low waiting time; accepting expected user arrival rates; computing and outputting an approximate expected average wait time for the method based on the proposed system parameters and the expected user arrival rates, using numeric solutions to a performance model; wherein sufficiency of proposed system parameters can be approximately determined.
-
-
23. A method for providing videos to users, the method comprising:
-
multicasting a video according to an earlier determined schedule, the multicasting hereinafter referred to as the first multicasting; receiving at least one request that is indicative that a user desires to see the video; and in response at least in part to the request, dynamically multicasting a portion of the video; wherein at least one user receives the portion of the video, hereinafter referred to as the first portion of the video, from the dynamically multicasting;
the at least one user receives, from the first multicasting, at least a portion of the video, hereinafter referred to as the second portion of the video; and
the at least one user plays the first portion of the video followed by the second portion of the video.- View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. A method for providing videos to users, the method comprising:
-
(a) receiving a request from a user to receive a video at a controller; (b) if an upcoming statically scheduled multicast of the video will begin within a threshold time parameter, then arranging for the user to receive the upcoming statically scheduled multicast of the video, thereby satisfying the request from the user and refraining from subsequent steps listed below; (c) otherwise, if no new multicast for the video is currently being dynamically scheduled, then sending a request toward a server to begin dynamically scheduling a new multicast for the video, and continuing with subsequent steps listed below; and (d) receiving a confirmation at the controller that the new multicast for the video has been dynamically scheduled, and, in response, arranging for the user to receive the upcoming dynamically scheduled new multicast for the video, wherein the new multicast for the video will include less than the entire video; (e) wherein the user receives and buffers an in-progress pre-scheduled multicast of the video, the user receives and views the dynamically scheduled new multicast for the video, and the users begins to view content from the user'"'"'s buffer from the in-progress pre-scheduled multicast after the dynamically scheduled new multicast has caught up to the content from the user'"'"'s buffer. - View Dependent Claims (30)
(f) receiving a number of additional requests from additional users to receive the video at the controller in between execution of the steps (c) and (d); and (g) refraining from sending additional requests toward the server in response to the additional requests until, in the step (d), receiving the confirmation at the controller that the new multicast for the video has been dynamically scheduled, and then;
-
-
31. A system for providing videos to users, the system comprising:
-
means for multicasting a video according to a predetermined schedule, the multicasting hereinafter referred to as the first multicasting; means for receiving an indication that a user desires to see the video; means for, if the first multicasting will not multicast the video timely for the user to receive and view the video with acceptably low waiting time according to a threshold parameter, then dynamically initiating transmission of a portion of the video, the portion hereinafter referred to as the first portion of the video, wherein the user will receive at least some of the first portion of the video, and the user will receive another portion of the video, hereinafter referred to as the second portion of the video, via the first multicasting; and means for, if the first multicasting will multicast the video timely for the user to receive and view the video with acceptably low waiting time according to the threshold parameter, then causing the user to receive the first multicasting without needing to receive the dynamically initiated transmission. - View Dependent Claims (32, 33, 34, 35)
the means for multicasting comprises a set of channels pre-assigned for multicasting the video according to the predetermined schedule; the means for dynamically initiating transmission comprises a second set of channels pre-assigned for dynamically initiated transmission for the video; and the number of channels in the second set of channels is allocated to be about the number of channels in the first set of channels.
-
-
36. A system for providing videos to users, the system comprising:
-
means for multicasting a video according to an earlier determined schedule, the multicasting hereinafter referred to as the first multicasting; means for receiving at least one request that is indicative that a user desires to see the video; and means for, in response at least in part to the request, dynamically multicasting a portion of the video; wherein at least one user receives the portion of the video, hereinafter referred to as the first portion of the video, from the dynamically multicasting;
the at least one user receives, from the first multicasting, at least a portion of the video, hereinafter referred to as the second portion of the video; and
the at least one user plays the first portion of the video followed by the second portion of the video.- View Dependent Claims (37, 38)
-
-
39. A system for providing videos to users, the system comprising:
-
means for receiving a request from a user to receive a video at a controller; means for, if an upcoming statically scheduled multicast of the video will begin within a threshold time parameter, then arranging for the user to receive the upcoming statically scheduled multicast of the video, thereby satisfying the request from the user; means for, otherwise, if no new multicast for the video is currently being dynamically scheduled, then sending a request toward a server to begin dynamically scheduling a new multicast for the video; and means for receiving a confirmation at the controller that the new multicast for the video has been dynamically scheduled, and, in response, arranging for the user to receive the upcoming dynamically scheduled new multicast for the video, wherein the new multicast for the video will include less than the entire video; wherein the user receives and buffers an in-progress pre-scheduled multicast of the video, the user receives and views the dynamically scheduled new multicast for the video, and the users begins to view content from the user'"'"'s buffer from the in-progress pre-scheduled multicast after the dynamically scheduled new multicast has caught up to the content from the user'"'"'s buffer. - View Dependent Claims (40)
means for receiving a number of additional requests from additional users to receive the video at the controller and refraining from sending additional requests toward the server in response to the additional requests until receiving the confirmation at the controller that the new multicast for the video has been dynamically scheduled; and means for then arranging for the additional users to receive the upcoming dynamically scheduled new multicast for the video and sending a request toward the server to increase the amount of the video to include in the new multicast for the video, to thereby accommodate the additional users.
-
-
41. A system for providing video content, the system comprising:
-
at least one server, the at least one server configured to multicast a video via a network according to a fixed predetermined schedule and to dynamically initiate transmission of a portion of the video, hereinafter referred to as the first portion of the video, for at least one user, hereinafter referred to as the at least one dynamic user; and a controller configured to receive requests from users to see a video and to indicate, to the at least one server, user interest to see the video, including interest by at least one of the at least one dynamic user; wherein the at least one dynamic user receives at least part of the first portion of the video, and the at least one dynamic user also receives a portion of the video, hereinafter referred to as the second portion of the video, via the multicast according to the fixed predetermined schedule, and the first portion of the video includes video content not within the second portion of the video, and the at least one dynamic user is able to begin viewing the at least part of the first portion of the video and then to switch to viewing the second portion of the video.
-
Specification