IP Library Granted Patent US 11,917,252
Granted Patent B2
US 11,917,252 · App. 17/851,579 · Granted Feb 27, 2024

Smart player stream switching for live content playback and navigation based on user action

Inventors: Ankit Rathi (Maharashtra, IN); Abhinav Puri (Punjab, IN)
Assignee: DISH Network Technologies India Private Limited
H04N21/47217H04N21/2187H04N21/437H04N21/438H04N21/44004H04N21/4622
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,917,252
App. No.
17/851,579
Granted
Feb 27, 2024
Kind
B2
Abstract

Techniques are described for transparent switching between live-edge and non-live-edge playback responsive to user navigation. For example, live content is available to a user both via a live stream from a remote live edge server, and via a recorded-live stream from a remote recording server. During playback of a live content stream, a player system uses a warm-up player to continually receive, pre-decode, and pre-buffer the live stream at the live edge to maintain a pre-buffered warm-up stream; and the player system uses a primary player to decode and generate a playback stream for playback. As the user navigates playback between live-edge and non-live-edge locations, the player system can seamlessly switch between generating the playback stream based on the recorded-live stream for non-live-edge playback, or based on the pre-buffered warm-up stream for live-edge playback.

Claims (58)

1. A method for media playback comprising:

generating a warm-up stream by pre-decoding, using a warm-up media player, a live content stream obtained from a live edge server via a content delivery network (CDN) as the live content stream is being published by the live edge server, such that the warm-up stream maintains at least a present live edge of the live programming content;

generating a recorded-live content stream, at a remote storage digital video recorder (RS-DVR) by a recording server, from the live content stream as the live content stream is being published by the live edge server;

detecting a user interaction command indicating user navigation of a present playback location indicating a resume-after-pause command received an amount of time after receipt of a preceding pause command; and

responsive to the resume-after-pause command:

determining whether the amount of time is greater than the window duration; and

outputting a playback stream, by a primary media player comprising a circular buffer to maintain a buffered window of the playback stream having a window duration, to correspond to a selected one of the warm-up stream or the recorded-live content stream based on the user interaction command, by:

when the amount of time is greater than the window duration, issuing a player request, by the primary media player to the recording server, for the recorded-live content stream at a playback location corresponding to when the preceding pause command was received and decoding the recorded-live content stream as obtained from the remote recording server responsive to the player request; and

when the amount of time is not greater than the window duration, resuming the playback at the resume playback location from the circular buffer.

2. The method of claim 1 , further comprising, prior to receiving the preceding pause command:

receiving another user interaction command that indicates user navigation of the present playback location away from the present live edge,

wherein the generating the warm-up stream is performed responsive to the another user interaction command.

3. The method of claim 2 , wherein:

responsive to the another user interaction command, the outputting the playback stream is to correspond to selecting the recorded-live content stream by obtaining the recorded-live content stream from the recording server via a provider communication network, and decoding the obtained recorded-live content stream to represent playback of the live programming content at the non-live playback location.

4. The method of claim 1 , further comprising, prior to receiving the preceding pause command:

receiving another user interaction command that indicates user navigation of the present playback location to a live playback location corresponding to the present live edge;

wherein responsive to the another user interaction command, the outputting the playback stream is to correspond to selecting the warm-up stream by obtaining the warm-up stream from the warm-up player, and decoding the obtained warm-up stream to represent playback of the live programming content at the live playback location.

5. The method of claim 1 , wherein:

the live content stream is one of a plurality of live content streams being concurrently published by the live edge server; and

the remote recording server concurrently provides a plurality of recorded-live content streams via one or more RS-DVRs, each of the plurality of recorded-live content streams corresponding to a respective one of the plurality of live content streams.

6. The method of claim 1 , wherein the live content stream is one of a plurality of live content streams being concurrently published by the live edge server via one or more CDNs as published via a provider communication network.

7. The method of claim 1 , wherein:

the generating the warm-up stream comprises continually updating pre-buffering of the pre-decoded live content stream to maintain at least the present live edge of the live programming content.

8. The method of claim 1 , wherein:

the preceding pause command is received at a first time during playback of the live programming content by the primary media player at the present live edge;

the outputting the playback stream comprises, responsive to the pause command, outputting a paused playback stream by the primary media player;

the resume-after pause command is received at a second time subsequent to the first time during the outputting the paused playback stream; and

the amount of time is a difference between the second time and the first time.

9. A system for media playback comprising:

one or more processors; and

a non-transitory memory having processor-readable instructions stored thereon, which, when executed, cause the one or more processors to perform steps comprising:

generating a warm-up stream by pre-decoding, using a warm-up media player, a live content stream obtained from a live edge server via a content delivery network (CDN) as the live content stream is being published by the live edge server, such that the warm-up stream maintains at least a present live edge of the live programming content;

generating a recorded-live content stream, at a remote storage digital video recorder (RS-DVR) by a recording server, from the live content stream as the live content stream is being published by the live edge server;

detecting a user interaction command indicating user navigation of a present playback location indicating a resume-after-pause command received an amount of time after receipt of a preceding pause command; and

responsive to the resume-after-pause command:

determining whether the amount of time is greater than the window duration; and

outputting a playback stream, by a primary media player comprising a circular buffer to maintain a buffered window of the playback stream having a window duration, to correspond to a selected one of the warm-up stream or the recorded-live content stream based on the user interaction command, by:

when the amount of time is greater than the window duration, issuing a player request, by the primary media player to the recording server, for the recorded-live content stream at a playback location corresponding to when the preceding pause command was received and decoding the recorded-live content stream as obtained from the remote recording server responsive to the player request; and

when the amount of time is not greater than the window duration, resuming the playback at the resume playback location from the circular buffer.

10. The system of claim 9 , further comprising, prior to receiving the preceding pause command:

receiving another user interaction command that indicates user navigation of the present playback location away from the present live edge,

wherein the generating the warm-up stream is performed responsive to the another user interaction command.

11. The system of claim 10 , wherein:

responsive to the another user interaction command, the outputting the playback stream is to correspond to selecting the recorded-live content stream by obtaining the recorded-live content stream from the recording server via a provider communication network, and decoding the obtained recorded-live content stream to represent playback of the live programming content at the non-live playback location.

12. The system of claim 9 , further comprising:

receiving another user interaction command that indicates user navigation of the present playback location to a live playback location corresponding to the present live edge,

wherein responsive to the another user interaction command, the outputting the playback stream is to correspond to selecting the warm-up stream by obtaining the warm-up stream from the warm-up player, and decoding the obtained warm-up stream to represent playback of the live programming content at the live playback location.

13. The system of claim 9 , wherein:

the live content stream is one of a plurality of live content streams being concurrently published by the live edge server; and

the remote recording server concurrently provides a plurality of recorded-live content streams via one or more RS-DVRs, each of the plurality of recorded-live content streams corresponding to a respective one of the plurality of live content streams.

14. The system of claim 9 , wherein the live content stream is one of a plurality of live content streams being concurrently published by the live edge server via one or more CDNs as published via a provider communication network.

15. The system of claim 9 , wherein:

the generating the warm-up stream comprises continually updating pre-buffering of the pre-decoded live content stream to maintain at least the present live edge of the live programming content.

16. The system of claim 9 , wherein:

the preceding pause command is received at a first time during playback of the live programming content by the primary media player at the present live edge;

the outputting the playback stream comprises, responsive to the pause command, outputting a paused playback stream by the primary media player;

the resume-after pause command is received at a second time subsequent to the first time during the outputting the paused playback stream; and

the amount of time is a difference between the second time and the first time.

Assignments (3)
CHANGE OF NAME Recorded Jul 27, 2022
From: SLING MEDIA PRIVATE LIMITED
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 060647/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2022
From: RATHI, ANKIT; PURI, ABHINAV
To: SLING MEDIA PVT. LTD.
Reel/Frame 060337/0764 →
CHANGE OF NAME Recorded Jun 28, 2022
From: SLING MEDIA PRIVATE LIMITED
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 060337/0895 →
Priority Claims (1)
IN 202141006625 · Feb 17, 2021 · national
Continuity (2)
Continuation 17307862 · May 4, 2021
Related Publication 20220329913A1 · Oct 13, 2022