IP Library Granted Patent US 9,979,926
Granted Patent B1
US 9,979,926 · App. 14/734,329 · Granted May 22, 2018

Dynamic segment slicing for faster video playback

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 9,979,926
App. No.
14/734,329
Granted
May 22, 2018
Kind
B1
Abstract

A method, system, computer program product, and computer readable storage medium provide the ability to control media content playback and reduce the time to commence playback of streamed media content. A client application receives a playback request to initiate playback of the media content. The client application downloads, from a server, a segment of the media content. The client application slices the segment into multiple smaller segments. The client application provides a subset of the multiple smaller segments to a video player. The subset of multiple smaller segments enable the video player to commence playback of the media content.

Claims (62)

1. A computer-implemented method for controlling media content playback comprising:

receiving, in a client application, from a user, a playback request to initiate playback of media content;

the client application receiving a master playlist from the server, wherein the master playlist identifies multiple streams, and for each of the multiple streams, the master playlist identifies a resolution and a playlist location for a playlist;

the client application providing the master playlist to a video player;

the client application downloading from a server, an original segment of the media content;

the client application slicing the downloaded original segment into multiple smaller segments;

the client application receiving a playlist request for one of the playlists in the master playlist;

the client application retrieving the playlist in the playlist request from the server;

the client application modifying the retrieved playlist to reflect the multiple smaller segments thereby producing a modified playlist;

the client application returning the modified playlist to the video player, and

the client application receiving a segment request from the video player for the one or more multiple smaller segments; and

the client application providing one or more of the multiple smaller segments to the video player, wherein the one or more multiple smaller segments enable the video player to commence playback of the media content without the video player requiring the original segment.

2. The computer-implemented method of claim 1 , wherein the server is within a content delivery network (CDN).

3. The computer-implemented method of claim 1 , wherein the client application comprises a media proxy that acts as an interface to all network requests to/from the video player.

4. The computer-implemented method of claim 1 , wherein the client application slices the original segment into the multiple smaller segments dynamically in real time.

5. The computer-implemented method of claim 1 , further comprising:

returning a size of segments in the media content to an original segment size once playback of the media content commences.

6. The computer-implemented method of claim 1 , further comprising:

maintaining the multiple smaller segments in a cache of the client application to serve to the video player when requested.

7. The computer-implemented method of claim 4 , wherein the client application slices the original segment into the multiple smaller segments dynamically in real time by adjusting a byte range of the downloaded segment.

8. A system for controlling media content playback comprising:

a client application comprising a video player and a media proxy, wherein the client application:

receives, from a user, a playback request to initiate playback of media content; and

the media proxy:

receives a master playlist from the server, wherein the master playlist identifies multiple streams, and for each of the multiple streams, the master playlist identifies a resolution and a playlist location for a playlist;

the media proxy provides the master playlist to the video player;

downloads from a server, an original segment of the media content;

slices the downloaded original segment into multiple smaller segments;

receives a playlist request for one of the playlists in the master playlist,

retrieves the playlist in the playlist request from the server;

modifies the retrieved playlist to reflect the multiple smaller segments thereby producing a modified playlist;

returns the modified playlist to the video player; and

receives a segment request from the video player for the one or more multiple smaller segments; and

provides one or more of the multiple smaller segments to the video player, wherein the one or more multiple smaller segments enable the video player to commence playback of the media content without the video player requiring the original segment.

9. The system of claim 8 , wherein the server is within a content delivery network (CDN).

10. The system of claim 8 , wherein the media proxy acts as an interface to all network requests to/from the video player.

11. The system of claim 8 , wherein the media proxy slices the original segment into the multiple smaller segments dynamically in real time.

12. The system of claim 8 , wherein the media proxy:

returns a size of segments in the media content to an original segment size once playback of the media content commences.

13. The system of claim 8 , wherein the media proxy:

maintains the multiple smaller segments in a cache to serve to the video player when requested.

14. The system of claim 11 , wherein the media proxy slices the original segment into the multiple smaller segments dynamically in real time by adjusting a byte range of the downloaded segment.

15. A non-transitory computer readable storage medium encoded with computer program instructions which when accessed by a computer cause the computer to load the program instructions to a memory therein creating a special purpose data structure causing the computer to operate as a specially programmed computer, executing a method of controlling media content playback, comprising:

receiving, in a client application in the specially programmed computer, from a user, a playback request to initiate playback of media content;

the client application receiving a master playlist from the server, wherein the master playlist identifies multiple streams, and for each of the multiple streams, the master playlist identifies a resolution and a playlist location for a playlist;

the client application providing the master playlist to a video player;

the client application in the specially programmed computer, downloading from a server, an original segment of the media content;

the client application in the specially programmed computer, slicing the downloaded original segment into multiple smaller segments;

the client application receiving a playlist request for one of the playlists in the master playlist;

the client application retrieving the playlist in the playlist request from the server;

the client application modifying the retrieved playlist to reflect the multiple smaller segments thereby producing a modified playlist;

the client application returning the modified playlist to the video player; and

the client application receiving a segment request from the video player for the one or more multiple smaller segments, and

the client application in the specially programmed computer, providing one or more of the multiple smaller segments to the video player, wherein the one or more multiple smaller segments enable the video player to commence playback of the media content without the video player requiring the original segment.

16. The non-transitory computer readable storage medium of claim 15 , wherein the server is within a content delivery network (CDN).

17. The non-transitory computer readable storage medium of claim 15 , wherein the client application comprises a media proxy that acts as an interface to all network requests to/from the video player.

18. The non-transitory computer readable storage medium of claim 15 , wherein the client application slices the original segment into the multiple smaller segments dynamically in real time.

19. The non-transitory computer readable storage medium of claim 15 , further comprising:

returning a size of segments in the media content to an original segment size once playback of the media content commences.

20. The non-transitory computer readable storage medium of claim 15 , further comprising:

maintaining the multiple smaller segments in a cache of the client application to serve to the video player when requested.

21. The non-transitory computer readable storage medium of claim 18 , wherein the client application slices the original segment into the multiple smaller segments dynamically in real time by adjusting a byte range of the downloaded segment.

Assignments (5)
SUCCESSION OF AGENCY IN PATENT SECURITY INTERESTS Recorded Oct 3, 2025
From: UBS AG, STAMFORD BRANCH (AS SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH)
To: UBS AG, STAMFORD BRANCH
Reel/Frame 072994/0001 →
SECURITY AGREEMENT Recorded Jan 25, 2024
From: DIRECTV, LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 066371/0690 →
SECURITY AGREEMENT Recorded Aug 5, 2021
From: DIRECTV, LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. AS COLLATERAL AGENT
Reel/Frame 058220/0531 →
SECURITY AGREEMENT Recorded Aug 3, 2021
From: DIRECTV, LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 057695/0084 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2021
From: THE DIRECTV GROUP, INC.
To: DIRECTV, LLC
Reel/Frame 057143/0641 →