Patent ID: 8312493

Claim:
A method for providing program restart functionality in a digital video network, the method comprising: receiving requests from different end-user devices to restart a program, wherein the program restart requests are requests to restart the program from the beginning; servicing the program restart requests from the different end-user devices via a single broadcast stream; wherein servicing the program restart requests comprises establishing an aggregation interval and servicing restart requests that occur within the aggregation interval via the single broadcast stream, wherein the single broadcast stream begins at the end of the aggregation interval, wherein minimum bandwidth consumption for the aggregation interval is 2√{square root over (N)}−1, wherein N is the total number of program restart requests, wherein the total number of end-user devices in the aggregation interval is estimated based on historical data, wherein the duration of the aggregation interval is calculated as a 0 = T N wherein a 0 is the optimal value, T is duration of the restarted program, and wherein N is the total number of program requests received; and providing personalized content to the end-user devices during the aggregation interval via multiple different unicast streams, wherein providing personalized content to the end-user devices via multiple different unicast streams comprises selecting a number of personalized content that fits into a remaining portion of the aggregation interval for each different end-user device before switchover to the single broadcast stream, wherein the number of personalized contents per aggregation interval is selected based on an estimated total number of program restart request received for the program to minimize a peak required bandwidth, wherein the remaining portion of the aggregation interval for each different end-user device is the time that remains in the aggregation interval between the time that the corresponding program restart request is received and the time that the switch over to the single broadcast stream begins; and wherein servicing the program restart requests comprises providing a switch buffer before the single broadcast stream, wherein the switch buffer comprises a buffer stream having a higher density of I-frames than the single broadcast stream, wherein the switch buffer and the multiple different unicast streams are streamed simultaneously during a period before the single broadcast stream begins; and instructing the end-user devices to tune to a channel that includes the switch buffer in order to switch the unicast streams of the end-user devices to the switch buffer before the single broadcast stream begins.