USRE50355EActiveUtilityPatentIndex 54
Reducing unicast session duration with restart TV
Est. expiryNov 25, 2028(~2.4 yrs left)· nominal 20-yr term from priority
H04N 21/6408H04N 21/6405H04N 21/4622H04N 21/4334H04N 21/4325H04N 21/631
54
PatentIndex Score
0
Cited by
2,978
References
40
Claims
Abstract
A first portion of programming aired prior to a first time is obtained via a unicast session with a server, the first portion including previously aired programming. When the programming data being sent via the unicast session catches up to a multicast broadcast of the programming, the unicast session is terminated and a switch is made to obtaining a remaining portion of the programming from a different source other than the server. This different source can be, for example, a local storage device or a multicast broadcast of the programming.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method implemented in a consumer device, the method comprising:
receiving a request at a first time for programming that has already begun to air transmit, wherein the programming is scheduled for transmission to a plurality of users user devices during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval;
determining the beginning time of the scheduled time interval;
obtaining by the consumer device, based on determining the beginning time, via a unicast session with a server, a first portion of the programming aired transmitted prior to the first time, the first portion including previously aired transmitted programming, wherein the previously aired transmitted programming corresponds to programming transmitted to a the plurality of users user devices starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets;
obtaining by the consumer device, via a multicast broadcast of the programming concurrently with obtaining the first portion by the consumer device via the unicast session, at least part of a remaining portion of the programming that airs transmitted after the first time, wherein initiating said obtaining the first portion of the programming and said obtaining the remaining portion of the programming begin together at the consumer device, and wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets;
comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets;
determining, based on the comparing, whether the a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a second packet of the second plurality of packets;
in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the multicast broadcast; and
stopping, the unicast session when the unicast session has caught up to the multicast broadcast, to obtain the programming data from the unicast session, and continuing to obtain via the multicast broadcast the remaining portion of the programming from a different source other than the server.
2. A method as recited in claim 1 , further comprising:
storing at least the part of the remaining portion on a storage device of the consumer device; and
wherein the stopping comprises terminating the unicast session.
3. A method as recited in claim 2 , wherein the obtaining the first portion of programming comprises obtaining the first portion of the programming at a rate faster than a playback rate of the programming.
4. A method as recited in claim 1 , wherein the stopping comprises terminating the unicast session.
5. A method as recited in claim 4 , further comprising obtaining, via the unicast session with the server, an additional portion of programming aired transmitted after the request for the programming is received but before the unicast session catches up to the multicast broadcast of the programming.
6. A method as recited in claim 1 , wherein the programming is scheduled for transmission during a plurality of scheduled time intervals, wherein the scheduled time interval is a first of the plurality of scheduled time intervals, further comprising:
selecting a second of the plurality of scheduled time intervals that precedes the first scheduled time interval;
identifying a beginning time of the second scheduled time interval; and
wherein the obtaining comprises obtaining, via the unicast session, programming transmitted to a the plurality of users user devices starting from the beginning time of the second scheduled time interval.
7. A method as recited in claim 1 , wherein:
the request for the programming is a user request to playback particular programming; and
the obtaining and the stopping are performed in response to the user request.
8. A method as recited in claim 1 , wherein the stopping comprises sending a termination request to the server to terminate the unicast session.
9. A method as recited in claim 1 , further comprising playing back the first portion as the first portion is received via the unicast session, and playing back the remaining portion from the different source.
10. A method implemented in a computing device, the method comprising:
sending, to a consumer device via a unicast session with the consumer device, a first portion of programming aired transmitted prior to a first time that corresponds to a request to at least one of view or record the programming, the first portion including previously aired transmitted programming and being identifiable using metadata associated with the programming that indicates the previously aired transmitted programming spans from a beginning of the programming up to the first time that corresponds to the request to at least one of view or record the programming, wherein the programming is scheduled for transmission to a plurality of users user devices during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval, wherein the consumer device is initiated to obtain the first portion of the programming via the unicast session concurrently with obtaining a multicast broadcast of the programming via the multicast broadcast of the programming, wherein initiating said obtaining the first portion of the programming and said obtaining the multicast broadcast of the programming begin together at the consumer device, wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets, and the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets, wherein the first portion corresponds to programming transmitted to a the plurality of users user devices starting from the beginning time of the scheduled time interval, and wherein the multicast broadcast of the programming is configured for storage to enable playback by the consumer device after the first portion of the programming is played back by the consumer device;
comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets;
determining, based on the comparing, whether the a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a second packet of the second plurality of packets;
in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the stored multicast broadcast of the programming; and
stopping the unicast session when the unicast session has caught up to the stored multicast broadcast of the programming.
11. A method as recited in claim 10 , wherein the terminating comprises terminating the unicast session in response to a termination request received from the consumer device to terminate the unicast session.
12. A method as recited in claim 10 , wherein the sending comprising using excess bandwidth of the consumer device to send the first portion at a rate faster than a playback rate of the programming.
13. A method as recited in claim 10 , further comprising sending, via the unicast session with the consumer device, an additional portion of programming aired transmitted after the first time but before the unicast session catches up to the multicast broadcast of the programming.
14. A method as recited in claim 10 , wherein the request to view the programming comprises a request to restart a program at the consumer device, and wherein sending the first portion comprises sending the first portion in response to the request to restart the program.
15. A system for communication with a consumer device having a local storage device, the system comprising:
a server configured to establish a unicast session and/or a multicast broadcast with the consumer device, the server comprising:
memory circuitry configured to store content of the unicast session and/or the multicast broadcast for distribution to the consumer device; and
controlprocessing circuitry configured to:
receive a request from the consumer device at a first time for programming that has already begun to air transmit , wherein the programming is scheduled for transmission to a plurality of users user devices during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval; establish a the unicast session with a at the server based on the received request; determine the beginning time of the scheduled time interval; obtain, based on determining the beginning time, via the unicast session and in response to the request, a first portion of the programming that aired transmitted prior to a first time, the first portion including previously aired transmitted programming and being identifiable using metadata associated with the programming that indicates the previously aired transmitted programming spans from a beginning of the programming up to the first time, wherein the first portion is obtained at a rate faster than a playback rate of the programming, and wherein the first portion is obtained for playback by the consumer device, wherein the first portion corresponds to programming transmitted to a the plurality of users user devices starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets; obtain the first portion of the programming via the unicast session, together with obtaining and recording, via a the multicast broadcast of the programming, at least a first part of the multicast broadcast of the programming, at the consumer device, wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets; compare a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets; determine, based on the comparing, whether the a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a second packet of the second plurality of packets;
in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that data obtained via the unicast session has caught up to the recorded multicast broadcast; and
stop, based on determining that data obtained via the unicast session has caught up to the recorded multicast broadcast, obtaining via the unicast session, the first portion of the programming, and obtaining a remaining portion of the programming from a the local storage device of the consumer device on which the at least the first part of the multicast broadcast was recorded, wherein the remaining portion is obtained for playback by the consumer device.
16. The system defined by claim 15 , wherein the control processing circuitry is configured to record a second part of the multicast broadcast on the local storage device while the first part of the multicast broadcast is being played back from the local storage device.
17. The system defined by claim 15 , wherein the request for the programming corresponds to a user request, received by the consumer device, to restart a television program.
18. The method defined by claim 1 , further comprising storing the first portion of the programming and the at least part of the remaining portion of the programming concurrently to memory.
19. The method defined by claim 10 , wherein the first portion of the programming and the at least part of the remaining portion of the programming are stored concurrently to memory.
20. The system defined by claim 15 , wherein the control processing circuitry is further configured to store the first portion of the programming and the at least part of the remaining portion of the programming concurrently to memory.
21. A method for playing, on a media device, a portion of programming that was broadcast prior to a time at which the media device began playing the programming the method comprising:
beginning to obtain, at a first time, via a first stream, programming that is scheduled for broadcast during a scheduled time interval, wherein the first time corresponds to a point after a beginning time of the scheduled time interval; receiving, at a second time later than the first time, a request for a portion of the programming that was broadcast prior to the first time; in response to receiving the request:
obtaining, via a second stream, a first plurality of packets containing media data of a first portion of the programming that was broadcast prior to the first time, each packet of the first plurality of packets having a presentation timestamp that indicates a respective play time of media data;
continuing to obtain, via the first stream, the programming, wherein the first stream is obtained as a second plurality of packets, each packet of the second plurality of packets having respective a presentation timestamp that indicates a play time of media data;
in response to determining that a presentation timestamp of the most recently obtained packet of the second plurality of packets matches a presentation timestamp of a most recently obtained packet of the first plurality of packets, determining, when playing the programming, that the second stream has caught up to the first stream; and
in response to determining that the second stream has caught up to the first stream, ending obtaining the second stream, and continuing to obtain via the first stream a remaining portion of the programming;
wherein the first stream is a multicast broadcast and the second stream is a unicast session.
22. The method of claim 21 , further comprising storing at least the part of the remaining portion on a storage device of the media device.
23. The method of claim 21 , wherein obtaining the first portion of programming comprises obtaining the first portion of the programming at a rate faster than a playback rate of the programming.
24. The method of claim 21 , wherein at least part of the first portion of programming is stored on a storage device of the media device.
25. The method of claim 21 , further comprising:
obtaining, via the unicast session, an additional portion of programming that is broadcast after the request is received but before the unicast session catches up to the multicast broadcast of the programming.
26. The method of claim 21 , wherein the programming is scheduled for transmission during a plurality of scheduled time intervals, wherein the scheduled time interval is a first of the plurality of scheduled time intervals, further comprising:
selecting a second of the plurality of scheduled time intervals that precedes the first scheduled time interval; identifying a beginning time of the second scheduled time interval; and wherein the obtaining comprises obtaining, via the second stream, programming transmitted to a plurality of user devices starting from the beginning time of the second scheduled time interval.
27. The method of claim 21 , wherein:
the request for the programming is a user request to play particular programming; and the obtaining, via the second stream, and the ending of the second stream are performed in response to the user request.
28. The method of claim 21 , wherein the ending comprises sending a termination request to a server to terminate the second stream.
29. The method of claim 21 , further comprising playing the first portion as the first portion is received via the second stream and playing the remaining portion from the different source.
30. The method of claim 21 , further comprising generating for display a notification to at least one of the plurality of user devices that the second stream is ending.
31. A system for playing a portion of programming that was broadcast prior to a time at which the media device began playing the programming, the system comprising:
a server configured to establish a second stream and/or a first stream with the media device, the server comprising:
memory circuitry configured to store content of the second stream and/or the first stream for distribution to the media device; and
processing circuitry configured to:
begin to obtain, at a first time, via the first stream, programming that is scheduled for broadcast during a scheduled time interval, wherein the first time corresponds to a point after a beginning time of the scheduled time interval;
receive, at a second time later than the first time, a request from the media device for a portion of the programming that was broadcast prior to the first time;
in response to receiving the request:
obtain, via the second stream, a first plurality of packets containing media data of a first portion of the programming that was broadcast prior to the first time, each packet of the first plurality of packets having a presentation timestamp that indicates a respective play time of media data;
continue to obtain, via the first stream, the programming, wherein the first stream is obtained as a second plurality of packets, each packet of the second plurality of packets having respective a presentation timestamp that indicates a play time of media data;
in response to determining that a presentation timestamp of the most recently obtained packet of the second plurality of packets matches a presentation timestamp of a most recently obtained packet of the first plurality of packets, determine, when playing the programming, that the second stream has caught up to the first stream; and
in response to determining that the second stream has caught up to the first stream, end obtaining the second stream, and continue to obtain via the first stream a remaining portion of the programming;
wherein the first stream is a multicast broadcast and the second stream is a unicast session.
32. The system of claim 31 , further comprising a storage device, wherein the processing circuitry is further configured to store at least the part of the remaining portion on the storage device.
33. The system of claim 31 , wherein the processing circuitry configured to obtain the first portion of programming is further configured to obtain the first portion of the programming at a rate faster than a playback rate of the programming.
34. The system of claim 31 , further comprising a storage device, wherein at least part of the first portion of programming is stored on the storage device.
35. The system of claim 31 , wherein the processing circuitry is further configured to obtain, via the second stream, an additional portion of programming that is broadcast after the request is received but before the second stream catches up to the first stream of the programming.
36. The system of claim 31 , wherein the programming is scheduled for transmission during a plurality of scheduled time intervals, wherein the scheduled time interval is a first of the plurality of scheduled time intervals, and wherein the processing circuitry is further configured to:
select a second of the plurality of scheduled time intervals that precedes the first scheduled time interval; identify a beginning time of the second scheduled time interval; and wherein the obtaining comprises obtaining, via the second stream, programming transmitted to a plurality of user devices starting from the beginning time of the second scheduled time interval.
37. The system of claim 31 , wherein:
the request for the programming is a user request to play particular programming; and the processing circuitry is further configured to perform the obtaining, via the second stream, and the ending of the second stream in response to the user request.
38. The system of claim 31 , wherein the processing circuitry configured to end the second stream is further configured to send a termination request to a server to terminate the second stream.
39. The system of claim 31 , wherein the processing circuitry is further configured to play the first portion as the first portion is received via the second stream and playing the remaining portion from the different source.
40. The system of claim 31 , wherein the processing circuitry is further configured to generate for display a notification to at least one of the plurality of user devices that the second stream is ending.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.