Method and apparatus for measuring stream availability, quality and performance
First Claim
1. A stream monitoring system, comprising:
- one or more stream monitoring computers including a first sub-system for provisioning a stream quality test;
a set of monitoring agents positioned at given network locations for executing the stream quality test, each of the monitoring agents associated with a streaming media player having a core and a renderer, each agent comprising;
code executed in association with the streaming media player for intercepting each useful packet of a given stream as the useful packet exits the core and before the useful packet enters the renderer, wherein each useful packet has a given set of properties, wherein the properties are that the packet has not been thinned by a server, that the packet was not lost in an unrecoverable manner during transport, and that the packet arrived at the renderer in time to be useful for rendering;
code for capturing a given stream quality metric from the intercepted useful packets; and
code for outputting data associated with the given stream quality metric;
the one or more stream monitoring computers also including a second sub-system for collecting the data from the set of monitoring agents.
1 Assignment
0 Petitions
Accused Products
Abstract
A streaming measurement agent designed to experience, measure, and report on a media stream as an actual end user would experience the stream. Preferably, agent resides transparently within a streaming media player itself so that it can monitor stream packet flows within the player as the measured streams are being played. In an illustrative embodiment, the agent comprises a performance monitoring module (PMM), which is software that resides in an interface between an existing core module and a renderer of a media player. The agent PMM intercepts each useful packet as it goes from the core to the renderer and, as a result, it is able to compute quality metrics about the playback. The agent functions “transparently” to the media player by presenting the core with an application programming interface (API) that emulates the API that the renderer normally presents to the core. Thus, when the core believes it is calling the renderer, it is actually calling the agent PMM, which can then receive all the packets from the core and process them. After computing relevant performance metrics using the packets it receives, the agent PMM calls the renderer. A set of performance agents can be managed by a service provider to enable a content provider to determine how a stream is perceived by end users.
-
Citations
11 Claims
-
1. A stream monitoring system, comprising:
-
one or more stream monitoring computers including a first sub-system for provisioning a stream quality test; a set of monitoring agents positioned at given network locations for executing the stream quality test, each of the monitoring agents associated with a streaming media player having a core and a renderer, each agent comprising; code executed in association with the streaming media player for intercepting each useful packet of a given stream as the useful packet exits the core and before the useful packet enters the renderer, wherein each useful packet has a given set of properties, wherein the properties are that the packet has not been thinned by a server, that the packet was not lost in an unrecoverable manner during transport, and that the packet arrived at the renderer in time to be useful for rendering; code for capturing a given stream quality metric from the intercepted useful packets; and code for outputting data associated with the given stream quality metric; the one or more stream monitoring computers also including a second sub-system for collecting the data from the set of monitoring agents. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A stream monitoring method, comprising:
-
delivering a media stream to each of a set of media players, each media player having a core and a renderer; at each media player, intercepting useful packets of the stream as those packets cross an interface between the core and the renderer, wherein each useful packet has a given set of properties, wherein the properties are that the packet has not been thinned by a server, that the packet was not lost in an unrecoverable manner during transport, and that the packet arrived at the renderer in time to be useful for rendering; capturing a given stream quality metric from the intercepted useful packets; outputting data associated with the given stream quality metric; and collecting data from each of the media players at a set of one or more stream monitoring computers. - View Dependent Claims (10, 11)
-
Specification