Patent · US2013054728A1 · A1 · US
System and method for efficient caching and delivery of adaptive bitrate streaming
- (11) Publication number
- US2013054728A1
- (21) Application number
- 13/406,553
- (22) Filing date
- 2012-02-28
- (30) Priority date
- 2011-08-22
- (43) Publication date
- 2013-02-28
- (51) IPC
- G06F 15/167; G06F 15/16; H04N 21/2183; H04N 21/222; H04N 21/231; H04N 21/845
- (52) CPC
- H04N Pictorial communication, e.g. television: 21/8456, 21/2183, 21/222, 21/23106, 21/8455
- (73) Assignee
- Oversi Networks Ltd
- (72) Inventors
- Ofir Amir; Einat MAHAT; Or AMIZUR; Ohad DEKEL
- (54) Title
- System and method for efficient caching and delivery of adaptive bitrate streaming
- (57) Abstract
A non-transitory computer readable medium, a system and a method for streaming, the method may include: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached video file segment; sending from the streaming cache the cached video file segment.
- Full text
- View on Google Patents
Claims (1)
- A method for streaming, the method comprising: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 2. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments. 3. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate being un-popular. 4. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate differs from bit rate supported by a network of an communication service provider that is utilized for providing video file segments to the streaming application. 5. The method according to claim 1, comprising generating the metadata such as to include a trigger for repeating a request for receiving metadata. 6. The method according to claim 1, comprising updating the metadata based upon changes in a content of the streaming cache. 7. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 8. The method according to claim 1, comprising retrieving to the streaming cache video file segments of bit rates that are selected based upon bit rate versions of video file segments requested by streaming applications. 9. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 10. The method according to claim 1, comprising retrieving to the streaming cache video file segments of bit rates that are proximate in bit rate to bit rates of video file segments requested by streaming applications. 11. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; re-segmenting the video file to provide video file segments that differ in size from the retrieved video file segments. 12. The method according to claim 1, comprising storing video file segments of a same video file based upon an expected popularity or actual popularity of the video file segments. 13. The method according to claim 1, comprising storing video file segments of different video files based upon an expected popularity or actual popularity of the video file segments. 14. The method according to claim 1, wherein the metadata is arranged as a manifest file. 15. The method according to claim 1, wherein the metadata is arranged in a format that differs from a manifest file. 16. The method according to claim 1, comprising updating the metadata based upon changes in a state of the network. 17. A non-transitory computer readable medium that stores instructions for: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not streaming cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 18. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments. 19. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate being un-popular. 20. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate differs from bit rate supported by a network of an communication service provider that is utilized for providing video file segments to the streaming application. 21. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to include a trigger for repeating a request for receiving metadata. 22. The non-transitory computer readable medium according to claim 17, storing instructions for updating the metadata based upon changes in a content of the streaming cache. 23. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 24. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments of bit rates that are selected based upon bit rate versions of video file segments requested by streaming applications. 25. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 26. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments of bit rates that are proximate in bit rate to bit rates of video file segments requested by streaming applications. 27. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; re-segmenting the video file to provide video file segments that differ in size from the retrieved video file segments. 28. The non-transitory computer readable medium according to claim 17, storing instructions for storing video file segments of a same video file based upon an expected popularity or actual popularity of the video file segments. 29. The non-transitory computer readable medium according to claim 17, storing instructions for storing video file segments of different video files based upon an expected popularity or actual popularity of the video file segments. 30. A system comprising a streaming cache and a redirector; wherein the redirector is arranged to: intercept a request from a streaming application, to receive metadata indicative of location of multiple video file segments, and send or redirect the request to the streaming cache; wherein the streaming cache is arranged to: send to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not streaming cached; receive a request from the streaming application to receive a cached streaming video file segment; and send the cached streaming video file segment to the streaming application. 31. A method for streaming, the method comprising: intercepting, by a streaming cache, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 32. The method according to claim 31, comprising intercepting by the streaming cache, a responses provided from an entity that differs from the streaming cache to receive metadata indicative of the location of multiple video file segments.
Description
This application claims the priority of U.S. provisional patent Ser. No. 61/525,844, filing date Aug. 22, 2011 which is incorporated herein by reference.
Adaptive HTTP streaming becomes the dominant downloading protocol. In adaptive HTTP streaming a file is partitioned to a large number of file elements (can reach hundreds, thousands and even more file elements). In addition, a certain media stream can be represented by multiple versions that differ from each other by their bit rate, resolution, audio streams or other properties (each version is differed by a different group of properties). Thus, the same media stream can be represented by multiple files, each file may correspond to a certain version of the same media stream and may include a large number of file elements. Accordingly, the amount of metadata required to manage a file is very large.
There is a need to optimize the delivery of media using the HTTP streaming protocol.
There may be provided a method for streaming that may include intercepting by a redirector a request from a streaming application to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming caches of other video file segments that are not cached; receiving by the streaming cache a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming cached video file segment.
Citations (10)
- US6389462B1
- US7142509B1
- US20060064500A1
- US20040117455A1
- US20080250099A1
- US8756341B1
- US20130103642A1
- US20130166868A1
- US20120102226A1
- US20140245359A1
Record as JSON
{
"publication_number": "US2013054728A1",
"country": "US",
"kind": "A1",
"title": "System and method for efficient caching and delivery of adaptive bitrate streaming",
"abstract": "A non-transitory computer readable medium, a system and a method for streaming, the method may include: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached video file segment; sending from the streaming cache the cached video file segment.",
"claims": [
"1. A method for streaming, the method comprising: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 2. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments. 3. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate being un-popular. 4. The method according to claim 1, comprising generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate differs from bit rate supported by a network of an communication service provider that is utilized for providing video file segments to the streaming application. 5. The method according to claim 1, comprising generating the metadata such as to include a trigger for repeating a request for receiving metadata. 6. The method according to claim 1, comprising updating the metadata based upon changes in a content of the streaming cache. 7. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 8. The method according to claim 1, comprising retrieving to the streaming cache video file segments of bit rates that are selected based upon bit rate versions of video file segments requested by streaming applications. 9. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 10. The method according to claim 1, comprising retrieving to the streaming cache video file segments of bit rates that are proximate in bit rate to bit rates of video file segments requested by streaming applications. 11. The method according to claim 1, comprising retrieving to the streaming cache video file segments that form an entire video file; re-segmenting the video file to provide video file segments that differ in size from the retrieved video file segments. 12. The method according to claim 1, comprising storing video file segments of a same video file based upon an expected popularity or actual popularity of the video file segments. 13. The method according to claim 1, comprising storing video file segments of different video files based upon an expected popularity or actual popularity of the video file segments. 14. The method according to claim 1, wherein the metadata is arranged as a manifest file. 15. The method according to claim 1, wherein the metadata is arranged in a format that differs from a manifest file. 16. The method according to claim 1, comprising updating the metadata based upon changes in a state of the network. 17. A non-transitory computer readable medium that stores instructions for: intercepting, by a redirector, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not streaming cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 18. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments. 19. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate being un-popular. 20. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to exclude pointers to at least one bit rate version of the video file segments, the at least one bit rate differs from bit rate supported by a network of an communication service provider that is utilized for providing video file segments to the streaming application. 21. The non-transitory computer readable medium according to claim 17, storing instructions for generating the metadata such as to include a trigger for repeating a request for receiving metadata. 22. The non-transitory computer readable medium according to claim 17, storing instructions for updating the metadata based upon changes in a content of the streaming cache. 23. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 24. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments of bit rates that are selected based upon bit rate versions of video file segments requested by streaming applications. 25. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; generating multiple versions of the video file that comply to different video file formats; and providing to streaming applications video file segments that match video file formats supported by the streaming applications. 26. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments of bit rates that are proximate in bit rate to bit rates of video file segments requested by streaming applications. 27. The non-transitory computer readable medium according to claim 17, storing instructions for retrieving to the streaming cache video file segments that form an entire video file; re-segmenting the video file to provide video file segments that differ in size from the retrieved video file segments. 28. The non-transitory computer readable medium according to claim 17, storing instructions for storing video file segments of a same video file based upon an expected popularity or actual popularity of the video file segments. 29. The non-transitory computer readable medium according to claim 17, storing instructions for storing video file segments of different video files based upon an expected popularity or actual popularity of the video file segments. 30. A system comprising a streaming cache and a redirector; wherein the redirector is arranged to: intercept a request from a streaming application, to receive metadata indicative of location of multiple video file segments, and send or redirect the request to the streaming cache; wherein the streaming cache is arranged to: send to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not streaming cached; receive a request from the streaming application to receive a cached streaming video file segment; and send the cached streaming video file segment to the streaming application. 31. A method for streaming, the method comprising: intercepting, by a streaming cache, a request from a streaming application, to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming cache of other video file segments that are not cached; receiving, by the streaming cache, a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming video file segment. 32. The method according to claim 31, comprising intercepting by the streaming cache, a responses provided from an entity that differs from the streaming cache to receive metadata indicative of the location of multiple video file segments."
],
"description_excerpt": "This application claims the priority of U.S. provisional patent Ser. No. 61/525,844, filing date Aug. 22, 2011 which is incorporated herein by reference.\n\nAdaptive HTTP streaming becomes the dominant downloading protocol. In adaptive HTTP streaming a file is partitioned to a large number of file elements (can reach hundreds, thousands and even more file elements). In addition, a certain media stream can be represented by multiple versions that differ from each other by their bit rate, resolution, audio streams or other properties (each version is differed by a different group of properties). Thus, the same media stream can be represented by multiple files, each file may correspond to a certain version of the same media stream and may include a large number of file elements. Accordingly, the amount of metadata required to manage a file is very large.\n\nThere is a need to optimize the delivery of media using the HTTP streaming protocol.\n\nThere may be provided a method for streaming that may include intercepting by a redirector a request from a streaming application to receive metadata indicative of location of multiple video file segments; sending to the streaming application metadata that points to locations of cached streaming video file segments within a single streaming cache or multiple streaming caches and points to locations outside the streaming caches of other video file segments that are not cached; receiving by the streaming cache a request from the streaming application to receive a cached streaming video file segment; sending from the streaming cache the cached streaming cached video file segment.",
"cpc": [
"H04N 21/8456",
"H04N 21/2183",
"H04N 21/222",
"H04N 21/23106",
"H04N 21/8455"
],
"ipc": [
"G06F 15/167",
"G06F 15/16",
"H04N 21/2183",
"H04N 21/222",
"H04N 21/231",
"H04N 21/845"
],
"assignees": [
"Oversi Networks Ltd"
],
"inventors": [
"Ofir Amir",
"Einat MAHAT",
"Or AMIZUR",
"Ohad DEKEL"
],
"filing_date": "2012-02-28",
"publication_date": "2013-02-28",
"priority_date": "2011-08-22",
"application_number": "US-201213406553-A",
"family_id": "47745241",
"cited_by_count": 140,
"citations": [
"US6389462B1",
"US7142509B1",
"US20060064500A1",
"US20040117455A1",
"US20080250099A1",
"US8756341B1",
"US20130103642A1",
"US20130166868A1",
"US20120102226A1",
"US20140245359A1"
]
}
Record 5,216 of 8,000 in Patents full text (MLC-0201). Request the full dataset.