System and method for uninterrupted streaming
First Claim
Patent Images
1. A method of presenting streaming media data received from a remote data processing apparatus via a communications network, the method comprising:
- presenting at least a portion of the streaming media data that is received via the communications network;
detecting an interruption to receiving the streaming media data, the interruption causing the reception to terminate;
reconnecting to the remote data processing apparatus via the communications network after detecting the interruption; and
presenting, without visible or audible interruption of the presentation of the at least the portion, the remainder of the streaming media data;
wherein the streaming media data comprises a plurality of discrete packets of media data that are presented in succession, each of the packets has an associated time marker that defines when said packet is to be presented relative to other packets from the data, and wherein each of the packets has an associated track, such that all packets associated with a particular track can be presented without regard to any packet associated with any other track; and
wherein reconnecting comprises providing time marker information for a plurality of packets received prior to the detected interruption, determining a largest time gap between successive data packets whose time markers are provided, selecting, for each track in the data, a time marker of the most current received packet out of those time markers provided,determining, out of the selected time markers, which is the earliest, selecting a time to resume presentation by subtracting the value of the largest time gap from the earliest of the selected time markers, and requesting new streaming media data to start from the selected time.
4 Assignments
0 Petitions
Accused Products
Abstract
A streaming media presentation transmission error recovery system and network. In one embodiment, in the event of a connection failure to a selected server, an alternative “mirrored” server is selected to resume the transmission of a selected streaming media presentation. One embodiment of the present invention provides for transparent switching from an interrupted media data stream to a stream from a newly-created network connection by providing an overlap between media that has been received and the data that is received via the new connection.
59 Citations
14 Claims
-
1. A method of presenting streaming media data received from a remote data processing apparatus via a communications network, the method comprising:
-
presenting at least a portion of the streaming media data that is received via the communications network; detecting an interruption to receiving the streaming media data, the interruption causing the reception to terminate; reconnecting to the remote data processing apparatus via the communications network after detecting the interruption; and presenting, without visible or audible interruption of the presentation of the at least the portion, the remainder of the streaming media data;
wherein the streaming media data comprises a plurality of discrete packets of media data that are presented in succession, each of the packets has an associated time marker that defines when said packet is to be presented relative to other packets from the data, and wherein each of the packets has an associated track, such that all packets associated with a particular track can be presented without regard to any packet associated with any other track; andwherein reconnecting comprises providing time marker information for a plurality of packets received prior to the detected interruption, determining a largest time gap between successive data packets whose time markers are provided, selecting, for each track in the data, a time marker of the most current received packet out of those time markers provided, determining, out of the selected time markers, which is the earliest, selecting a time to resume presentation by subtracting the value of the largest time gap from the earliest of the selected time markers, and requesting new streaming media data to start from the selected time. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A device for increasing reliable presentation of streaming media data received via a processing apparatus over a data communications network, the device comprising a presentation and connection module that perform a method comprising:
-
rendering a presentation of streaming media data that is at least partially received via a first communications network; detecting an interruption to the reception of the streaming media data, the interruption causing the reception of the streaming media data to end; connecting to the processing apparatus in response to detecting the interruption; receiving the remainder of the streaming media data; and rendering a presentation of the remainder of the data; wherein the streaming media data comprises a plurality of discrete packets of media data that are presented in succession, wherein each of the packets has an associated time marker that defines when it is to be rendered relative to other packets from the data, and wherein each of the packets has an associated track, such that all of the packets associated with a particular track can be rendered without regard to any packet associated with any other track; and wherein connecting to the processing apparatus in response to detecting the interruption comprises providing time marker information for a plurality of packets received prior to the detected interruption, determining a largest time gap between successive data packets whose time markers are provided, selecting, for each track in the data, a time marker of the most current received packet out of those time markers provided, determining, out of the selected time markers, which is the earliest, selecting a time to resume presentation by subtracting the value of the largest time gap from the earliest of the selected time markers, and requesting new streaming media data to start from the chosen time. - View Dependent Claims (7)
-
-
8. A method of automatically restoring a failed streaming media connection, the method comprising:
-
connecting a client processing apparatus to a first streaming media server to receive a streaming media data; detecting whether the transmission of the streaming media data being received via the data communications network can be sustained, or whether said transmission has delays exceeding a predetermined amount; establishing a new network connection between the client processing apparatus and a reconnection streaming media server to resume reception of the streaming media data; identifying a joint between information received via the new connection and information received prior to establishing the new connection; rendering the streaming media data received through the first network connection; and after the new streaming media connection is created, switching to rendering the streaming media data from the new network connection;
wherein the streaming media data comprises a plurality of discrete packets of media presentation data that are rendered in succession to display the streaming media data, each of the packets has an associated time marker that defines when it is to be rendered relative to other packets from the presentation, and each of the packets has an associated track, such that all of the packets associated with a particular track can be rendered without regard to any packet associated with any other track; andwherein the switching to rendering the streaming media data from the new network connection comprises providing time marker information for a plurality of packets received prior to via the first network connection, determining the largest time gap between successive data packets whose timer markers are provided, selecting, for each track, a time marker of the most current received packet out of those time markers provided, determining, out of the selected time markers, which is the earliest, choosing a time to resume rendering by subtracting the value of the largest time gap from the earliest of the selected time marker, and requesting new streaming media data to start from the chosen time.
-
-
9. A non-transitory computer readable medium containing instructions which, when executed, perform the method comprising:
-
creating a first network connection to a server via a data communications network to receive streaming media data; determining that the first network connection cannot be sustained or that a delay exists in the reception of the media data that exceeds a predetermined amount; creating a second network connection to resume reception of the streaming media data; identifying a joint between information received from via the new connection and information received prior to establishing the new connection; further comprising instructions which, when executed, perform rendering the streaming media data received through the first network connection, and after the new streaming media connection is created, switching to rendering the streaming media data from the new network connection; still further comprising instructions which, when executed, perform determining a connection time, and waiting until the remaining rendering time of the streaming media data received via the first network connection is the same as the desired connection time before creating a new connection; wherein the streaming media data comprises a plurality of discrete packets of media presentation data that are rendered in succession to display the streaming media data, each of the packets has an associated time marker that defines when it is to be presented relative to other packets from the streaming media data, and each of the packets has an associated track, such that all of the packets associated with a particular track can be rendered without regard to any packet associated with any other track; and
still further comprising instructions which, when executed, perform the actions of providing time marker information for a plurality of packets received via the first network connection, determining the largest time gap between successive data packets whose time marker are provided, selecting, for each track in the presentation, a time marker of the most current received packet out of those time markers provided, determining, out of the selected time markers, which is the earliest, choosing a time to resume rending by subtracting the value of the largest time gap from the earliest of the selected time markers, and requesting new streaming media data to start from the chosen time.
-
-
10. A method of presenting streaming media data via a communications network, the method comprising:
-
rendering streaming media data via a first network connection; detecting an interruption to receiving the streaming media data, the interruption causing the first network connection to end; providing a server information list containing connection information for at least one streaming media server where a new connection to the streaming media data can be established; selecting a server from the list; determining a desired connection time in which said new connection is expected to be established; determining for how much remaining time the streaming media data received from the first network connection can be rendered before a first portion, of streaming media data already received from said first network connection is exhausted; waiting until said remaining time is the same as said desired connection time before creating the new network connection; creating the new network connection with the selected server in response to detecting the interruption; receiving a second portion of the streaming media data; and rendering second portion of the streaming media data. - View Dependent Claims (11, 12, 13, 14)
-
Specification