Network video streaming with trick play based on separate trick play files

Information

  • Patent Grant
  • 10462537
  • Patent Number
    10,462,537
  • Date Filed
    Monday, July 17, 2017
    6 years ago
  • Date Issued
    Tuesday, October 29, 2019
    4 years ago
Abstract
Network services encode multimedia content, such as video, into multiple adaptive bitrate streams of encoded video and a separate trick play stream of encoded video to support trick play features. The trick play stream is encoded at a lower encoding bitrate and frame rate than each of the adaptive bitrate streams. The adaptive bitrate streams and the trick play stream are stored in the network services. During normal content streaming and playback, a client device downloads a selected one of the adaptive bitrate streams from network serviced for playback at the client device. To implement a trick play feature, the client device downloads the trick play stream from the network services for trick play playback.
Description
BACKGROUND

Distribution of multimedia video (also referred to herein as “media” and/or “program(s)”), such as movies and the like, from network services to a client device, may be achieved through adaptive bitrate streaming of the video. Prior to streaming, the video may be encoded at different bitrates and resolutions into multiple bitrate streams that are stored in the network services. Typically, each of the bitstreams includes time-ordered segments of encoded video.


Adaptive bitrate streaming includes determining an available streaming bandwidth at the client device, and then downloading a selected one of the different bitrate streams from the network services to the client device based on the determined available bandwidth. While streaming, the client device downloads and buffers the successive encoded video segments associated with the selected bitstream. The client device decodes the buffered encoded video segments to recover the video therein, and then plays back the recovered video on the client device, e.g., in audio-visual form.


In normal playback, the client device plays back the video recovered from each of the buffered segments in the order in which the video was originally encoded, i.e., in a forward direction. The client device may offer playback modes or features in addition to normal playback. Such additional playback features may include rewind, fast forward, skip, and so on, as is known.


The additional playback features are referred to herein as trick play features. In order to implement trick play features, such as rewind, the client device requires access to video that has already been played. Therefore, the client device may be required to store large amounts of already downloaded and played video in order to meet the demands of a selected trick play feature. However, many client devices, especially small, hand-held devices, have limited memory capacity and, therefore, may be unable to store the requisite amount of video.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of an example network environment that supports adaptive bitrate streaming of multimedia content, such as video, with trick play features.



FIG. 2 is an illustration of an example encoded multimedia video program generated by and stored in network services of FIG. 1.



FIG. 3A is an illustration of an example adaptive bitrate frame structure of an encoded video block of FIG. 2.



FIG. 3B is an illustration of an example trick play frame structure of an encoded video block of FIG. 2.



FIG. 4 is a sequence diagram of example high-level interactions between network services and a client device used to initiate streaming, implement normal streaming and playback, and implement trick play features in streaming embodiments.



FIG. 5 is an example Profile message used in streaming.



FIG. 6 is an example Playlist message used in streaming.



FIG. 7 is a flowchart of an example network-side method of multimedia content streaming with trick play support based on trick play files, which may be implemented in the network services of FIG. 1.



FIG. 8 is a flowchart of an example client-side method of multimedia content streaming with trick play support based on trick play files, which may be implemented in the client device of FIG. 1.



FIG. 9A is a block diagram of an example computer system.



FIG. 9B is a block diagram of network/server-side application instructions which may execute in on a processor system similar to that of FIG. 9A.



FIG. 10 is a block diagram of an example computer system corresponding to any of the network servers in the environment of FIG. 1.



FIG. 11 is a block diagram of an example system representing a client device of FIG. 1.





In the drawings, the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears.


DETAILED DESCRIPTION











Table of Contents

















1
Network Environment
4


2
Container Files-Streaming Sources
8


2.1
Encoded Video Frame Structure
12


3
Sequence Diagram
14


3.1
Start-up
14


3.2
Normal Streaming and Playback
16


3.3
Trick Play
17


4
Profile and Playlist Messages
19


4.1
Profile Message
19


4.2
Playlist Message
20


5
Method Flowcharts
21


5.1
Network Side
21


5.2
Client Side
22


6
Systems
24










1 Network Environment



FIG. 1 is a block diagram of an example network environment 100 that supports adaptive bitrate streaming of multimedia content with trick play features. Network services 102 encode multimedia content, such as video, into multiple adaptive bitrate streams of encoded video and a separate trick play stream of encoded video to support trick play features. The trick play stream may be encoded at a lower encoding bitrate and a lower frame than each of the adaptive bitrate streams. The adaptive bitrate and trick play streams are stored in network services 102. For normal content streaming and playback, a client device 104 downloads a selected one of the adaptive bitrate streams from network services 102 for playback at the client device. When a user of client device 104 selects a trick play feature, such as rewind, the client device 104 downloads the trick play stream from network services 102 for trick play playback.


Environment 100 supports trick play features in different adaptive bitrate streaming embodiments, including on-demand streaming, live streaming, and real-time streaming embodiments. On-demand streaming includes encoding the content of a program from start to end in its entirety and then, after the entire program has been encoded, streaming, i.e., downloading, the encoded program to a client device. An example of on-demand streaming includes streaming a movie from a Video-on-Demand (VOD) service to a client device.


Live streaming includes encoding successive blocks of live content, i.e., a live program, as they are received from a content source, and then streaming each encoded block as it becomes available for download. Live streaming may include streaming live scenes, i.e., video, captured with a video camera.


Real-time streaming is similar in most aspects to live streaming, except that the input to real-time streaming is not a live video feed. Rather, the input, or source, may include successive encoded blocks, or input blocks, that have a format not suitable for streaming (e.g., for a given system) and must, therefore, be decoded and re-encoded (i.e., transcoded) into an encoded format that is suitable for streaming (in the given system). Real-time streaming handles the successive incompatible input blocks similar to the way live streaming handles the successive blocks of live content.


Network environment 100 is now described in detail. Network environment 100 includes server-side or network services 102 (also referred to simply as “services 102”) and client-side device 104. Network services 102 may be implemented as Internet cloud-based services. Network services 102 interact and cooperate with each other, and with client device 104, to manage and distribute, e.g., stream, multimedia content from content sources 108 to the client devices, over one or more communication network 106, such as the Internet. Network services 102 communicate with each other and with client devices 104 using any suitable communication protocol, such as an Internet protocol, which may include Transmission Control Protocol/Internet Protocol (TCP/IP), Hypertext Transfer Protocol (HTTP), etc., and other non-limiting protocols described herein.


Content sources 108 may include any number of multimedia content sources or providers that originate live and/or pre-recorded multimedia content (also referred to herein simply as “content”), and provide the content to services 102, directly, or indirectly through communication network 106. Content sources 108, such as Netflix®, HBO®, cable and television networks, and so on, may provide their content in the form of programs, including, but not limited to, entertainment programs (e.g., television shows, movies, cartoons, news programs, etc.), educational programs (e.g., classroom video, adult education video, learning programs, etc.), and advertising programs (e.g., commercials, infomercials, or marketing content). Content sources 108, such as, e.g., video cameras, may capture live scenes provide the resulting real-time video to services 102. Content sources may also include live broadcast feeds deployed using protocols such as Real-time Transport Protocol (RTP), and Real-time Messaging Protocol (RTMP).


Network services 102 include, but are not limited to: an encoder 110 to encode content from content sources 108; a content delivery network (CDN) 112 (also referred to as a “download server 112”) to store the encoded content, and from which the stored, encoded content may be streamed or downloaded to client device 104; and a real-time service (RTS) 114 (also referred to as a “real-time server (RTS) 114”) to (i) control services 102, and (ii) implement an RTS streaming control interface through which client device 104 may initiate and then monitor both on-demand, live, and real-time streaming sessions. Each of services 102 may be implemented as one or more distinct computer servers that execute one or more associated server-side computer program applications suited to the given service.


Encoder 110 may be implemented as a cloud encoder accessible over communication network 106. Encoder 110 encodes content provided thereto into a number of alternative bitstreams 120 (also referred to as encoded content) to support adaptive bitrate streaming of the content. For increased efficiency, encoder 110 may be implemented as a parallel encoder that includes multiple parallel encoders. In such an embodiment, encoder 110 divides the content into successive blocks or clips each of a limited duration in time. Each block may include a number of successive picture frames, referred to collectively as a group of pictures (GOPs). Encoder 110 encodes the divided blocks or GOPs in parallel to produce alternative bitstreams 120. Encoder 110 may also include transcoders to transcode input files from one encoded format to another, as necessary.


Alternative bitstreams 120 encode the same content in accordance with different encoding parameters/settings, such as at different encoding bitrates, resolutions, frame rates, and so on. In an embodiment, each of bitstreams 120 comprises a large number of sequential (i.e., time-ordered) files of encoded content, referred to herein as container files (CFs), as will be described further in connection with FIG. 2.


After encoder 110 has finished encoding content, e.g., after each of the content blocks is encoded, the encoder uploads the encoded content to CDN 112 for storage therein. CDN 112 includes one or more download servers (DSs) to store the uploaded container files at corresponding network addresses, so as to be accessible to client device 104 over communication network 106.


RTS 114 acts as a contact/control point in network services 102 for client device 104, through which the client device may initiate and then monitor its respective on-demand, live, and real-time streaming sessions. To this end, RTS 114 collects information from services 102, e.g., from encoder 110 and CDN 112, that client device 104 may use to manage its respective streaming sessions, and provides the collected information to the client device via messages (described below) when appropriate during streaming sessions, thus enabling the client device to manage its streaming sessions. The information collected by RTS 114 (and provided to client device 104) identifies the encoded content, e.g., the container files, stored in CDN 112, and may include, but is not limited to, network addresses of the container files stored in the CDN, encoding parameters use to encode the container files, such as their encoding bitrates, resolutions, and video frame rates, and file information, such as file sizes, and file types.


Client device 104 may be capable of wireless and/or wired communication with network services 102 over communication network 106, and includes processing, storage, communication, and user interface capabilities sufficient to provide all of the client device functionality described herein. Such functionality may be provided, at least in part, by one or more client applications 107, such as computer programs, that execute on client device 104. Client applications 107 may include:

    • a. a Graphical User Interface (GUI) through which a user of the client device may interact with and request services from corresponding server-side applications hosted in services 102. The GUI may also present trick play feature selections to the user, such as rewind and fast forward. Under user control through the GUI, client device 104 may request/select (i) programs to be streamed from services 102, and (ii) trick play features to control trick play playback of the streamed programs;
    • b. streaming and playback applications to stream/download the selected programs from the services, and playback, i.e., present, the streamed programs on client device 104, under user control, through the GUI; and
    • c. a trick play application, integrated with the GUI and the streaming and playback applications, to implement the trick play features as described herein.


      2 Container Files—Streaming Sources


As described above, encoder 110 encodes multimedia content from content sources 108, and CDN 112 stores the encoded content. To support adaptive bitrate streaming and trick play features, encoder 110 encodes the content at multiple encoding levels, where each level represents a distinct combination of an encoding bitrate, a video resolution (for video content), and a video frame rate, to produce (i) multiple adaptive bitrate streams for the content, and (ii) a trick play stream for the content. The multiple streams may be indexed according to their respective encoding levels. While streaming the encoded program from CDN 112, client device 104 may switch between streams, i.e., levels (and thus encoded bitrates and resolutions), according to conditions at the client device. Also, while streaming the encoded program, client device 104 may download portions of the trick play stream from CDN 112 to implement trick play features in the client device.



FIG. 2 is an illustration of an example encoded multimedia video program 200 generated by encoder 110 and stored in CDN 112. Encoded video program 200 includes:

    • a. two encoded adaptive bitrate (ABR) video streams 1, 2 encoded at corresponding encoding levels L1, L2 and available for adaptive bitrate streaming; and
    • b. a trick play stream encoded at an encoding level L3. The trick play stream corresponds to, i.e., encodes the same video as, the two ABR streams 1, 2.


Each of encoding levels L1-L3 corresponds to a distinct combination of an encoding bitrate (Rate), a video resolution (Res), and a video frame rate (FR). In the example, encoding levels L1, L2, L3 correspond to encoder settings Rate1/Res1/FR1, Rate2/Res2/FR2, Rate3/Res3/FR3, respectively. In an embodiment, the encoding bitrate Rate3 and the video frame rate FR3 used to encode the trick play stream are less than the encoding bitrates Rate1, Rate2 and the frame rates FR1, FR2, respectively, used to encode adaptive bitrate streams 1, 2.


Although the example of FIG. 2 includes only two encoding levels for the ABR streams, in practice, an encoded video program typically includes many more than two levels of encoding for ABR streaming, such as 8 to 15 levels of encoding.


Each of streams 1-3 includes a distinct, time-ordered, sequence of container files CF (i.e., successive container files CF), where time is depicted in FIG. 2 as increasing in a downward vertical direction. Each of the successive container files CF, of each of streams 1-3, includes (i.e., encodes) a block or segment of video (also referred to herein as an encoded video block or segment) so that the successive container files encode successive contiguous encoded video blocks. Each of container files CF includes a time code TC to indicate a duration of the video encoded in the block of the container file, and/or a position of the container file in the succession of container files comprising the corresponding stream. The time code TC may include a start time and end time for the corresponding encoded video block. In an example in which each of container files CF encodes two seconds of video, time codes TC1, TC2, and TC3 may represents start and end times of 0 s (seconds) and 2 s, 2 s and 4 s, and 4 s and 6 s, respectively, and so down the chain of remaining successive container files.


The encoded blocks of the container files CF in a given stream may encode the same content (e.g., video content) as corresponding blocks in the other streams. For example, the stream 1 block corresponding to time code TC1 has encoded therein the same video as that in the stream 2 block corresponding to TC1. Such corresponding blocks encode the same content and share the same time code TC, i.e., they are aligned or coincide in time.


In an embodiment, a program stream index 204 may be associated with encoded video program 200 to identify each of the streams therein (e.g., the ABR streams 1, 2, and the trick play stream). RTS 114 may create (and store) program stream index 204 based on the information collected from encoder 110 and CDN 112, as described above in connection with FIG. 1. Then, during a live streaming session, for example, RTS 114 may provide information from program stream index 204 to client device 104 so as to identify appropriate container file addresses to the client device. Program stream index 204 may include:

    • a. address pointers (e.g., network addresses, such as Uniform Resource Locators (URLs)) 210-1, 210-2, 210-3 to corresponding streams 1, 2, and the trick play stream;
    • b. encoder parameters/settings associated with the encoded streams including, but not limited to, encoding levels L1, L2, L3 (also referred to as “Video ID” in FIG. 2, and including the encoding bitrates and resolutions Rate1/Res1, Rate2/Res2, Rate3/Res3), encoding techniques/standards, and file types and sizes of the container files CF; and
    • c. a trick play flag (TP flag) associated with URL 210-3 that, when set, indicates the associated stream is a trick play stream.


Address pointers 210-1, 210-2, 210-3 may point to respective lists of addresses A1, A2, A3 of the container files CF comprising each of streams 1, 2, 3. Address lists A1, A2, A3 may each be represented as an array or linked list of container file network addresses, e.g., URLs. Accordingly, access to the information in program stream index 204 results in possible access to all of the container files associated with streams 1, 2, 3.


Although each of container files CF depicted in FIG. 2 represents a relatively small and simple container structure, larger and more complicated container structures are possible. For example, each container file may be expanded to include multiple clusters of encoded media, each cluster including multiple blocks of encoded media, to thereby form a larger container file also suitable for embodiments described herein. The larger container files encode an equivalent amount of content as a collection of many smaller container files.


Container files may encode a single stream, such as a video stream (as depicted in FIG. 2), an audio stream, or a text stream (e.g., subtitles). Alternatively, each container file may encode multiple multiplexed streams, such as a mix of video, audio, and text streams. In addition, a container file may encode only a metadata stream at a relatively low bitrate.


In embodiments: the container files may be Matroska (MKV) containers based on Extensible Binary Meta Language (EBML), which is a derivative of Extensible Binary Meta Language (XML), or files encoded in accordance with the Moving Picture Experts Group (MPEG) standard; the program stream index may be provided in a Synchronized Multimedia Integration Language (SMIL) format; and client device 104 may download container files from CDN 114 over networks 106 using the HTTP protocol. In other embodiments, the container file formats may include OGG, flash video (FLV), Windows Media Video (WMV), or any other format.


Exemplary, non-limiting, encoding bitrates for different levels, e.g., levels L1, L2, L3 may range from below 125 kilo-bits-per-second (kbps) up to 15,000 kbps, or even higher, depending on the type of encoded media (i.e., content). Video resolutions Res 1-Res 4 may be equal to or different from each other.


The container files may support adaptive streaming of encoded video programs across an available spectrum bandwidth that is divided into multiple, i.e., n, levels. Video having a predetermined video resolution for each level may be encoded at a bitrate corresponding to the bandwidth associated with the given level. For example, in DivX® Plus Streaming, by Rovi Corporation, the starting bandwidth is 125 kbps and the ending bandwidth is 8400 kbps, and the number n of bandwidth levels is eleven (11). Each bandwidth level encodes a corresponding video stream, where the maximum encoded bitrate of the video stream (according to a hypothetical reference decoder model of the video coding standard H.264) is set equal to the bandwidth/bitrate of the given level. In DivX® Plus Streaming, the 11 levels are encoded according to 4 different video resolution levels, in the following way: mobile (2 levels), standard definition (4 levels), 720p (2 levels), and 1080p (3 levels).


2.1 Encoded Video Frame Structure



FIG. 3A is an illustration of an example frame structure 300 of an encoded video block for container files from adaptive bitrate streams 1 and 2 of FIG. 2. Video encoding by encoder 110 includes capturing a number of successive picture frames, i.e., a GOP, at a predetermined video frame rate, and encoding each of the captured frames, in accordance with an encoding standard/technique, into a corresponding encoded video frame. Exemplary encoding standards include, but are not limited to, block encoding standards, such as H.264 and Moving Picture Experts Group (MPEG) standards. Collectively, the encoded video frames form an encoded video block, such as an encoded video block in one of container files CF. The process repeats to produce contiguous encoded video blocks.


The encoding process may encode a video frame independent of, i.e., without reference to, any other video frames, such as preceding frames, to produce an encoded video frame referred to herein as a key frame. For example, the video frame may be intra-encoded, or intra-predicted. Such key frames are referred to as I-Frames in the H.264/MPEG standard set. Since the key frame was encoded independent of other encoded video frames, it may be decoded to recover the original video content therein independent of, i.e., without reference to, any other encoded video frames. In the context of streaming, the key frame may be downloaded from CDN 112 to client device 104, decoded independent of other encoded frames, and the recovered (decoded) video played back, i.e., presented, on the client device.


Alternatively, the encoding process may encode a video frame based on, or with reference to, other video frames, such as one or more previous frames, to produce an encoded video frame referred to herein as a non-key frame. For example, the video frame may be inter-encoded, i.e., inter-predicted, to produce the non-key frame. Such non-key frames include P-Frames and B-frames in the H.264/MPEG standard set. The non-key frame is decoded based on one or more other encoded video frames, e.g., key-frames, reference frames, etc. In the context of streaming, the non-key frame may be downloaded from CDN 112 to client device 104, decoded based on other encoded frames, and the recovered video played back.


With reference again to FIG. 3A, frame structure 300 of the encoded video block for container files in the adaptive bitrate streams includes, in a time-ordered sequence, a first set of successive non-key frames 304, a key frame 306, and a second set of successive non-key frames 308. Accordingly, key frame 306 is interspersed among the encoded video frames of the encoded video block. The position of key frame 306 relative to the non-key frames in block 300 may vary, e.g., the position may be at the top, the middle, the bottom, or elsewhere in the block. Moreover, multiple key frames may be interspersed among the encoded video frames of the encoded video block, and separated from each other by multiple non-key frames.


A key/non-key (K/NK) flag associated with each of the frames 304, 306, and 308 indicates whether the associated frame is a key-frame or a non-key frame. Each of the key and the non-key frames may include a predetermined number of bytes of encoded video.


In an example in which the encoded video block represented by frame structure 300 encodes 2 seconds of video captured at a video frame rate of 30 frames per second (fps), the frame structure includes 60 encoded video frames, which may include N (i.e., one or more) interspersed key frames, and 60-N non-key frames. Typically, the number of non-key frames exceeds the number of key frames.



FIG. 3B is an illustration of an example frame structure 320 of an encoded video block for container files from the trick play stream of FIG. 2. Trick play frame structure 320 includes, in a time-ordered sequence, key frames 322. In other words, trick play frame structure 320 includes only key frames, i.e., key frames without non-key frames.


In the example in which the encoded video block represented by frame structure 300 encodes 2 seconds of video captured at a video frame rate of 30 frames per second (fps), the encoded video block represented by frame structure 320 also encodes 2 seconds of video. However the video frame rate for structure 320 is reduced to 5 fps, which yields 10 encoded video frames (key frames) every 2 seconds.


3 Sequence Diagram



FIG. 4 is a sequence diagram of example high-level interactions 400 between network services 102 and client device 104 used to initiate, i.e., start-up, streaming, implement normal streaming and playback, and implement trick play features in on-demand, live, and real-time streaming embodiments. Interactions 400 progress in time from top-to-bottom in FIG. 4, and are now described in that order. It is assumed that prior to startup, encoder 110 is in the process of, or has finished, encoding video content into multiple adaptive bitrate streams and a corresponding trick play stream, and storing the resulting container files in CDN 112 for subsequent download to client device 104.


3.1 Start-Up


At 410, a user of client device 104 selects content, such as a video program, to be streamed using the client device GUI.


At 422, client device 104 sends a “Start” message (also referred to as a “begin playback” message) to RTS 114 to start a streaming session. The Start message includes an identifier (ID) of the content to be streamed and a current time stamp. The ID identifies content from a content source that is to be streamed to client 104, and may indicate, e.g., a channel, program name, and/or source originating the content to be streamed. The current time stamp (also referred to as “current time”) indicates a current time, such as a Universal Time Code (UTC). The UTC may be acquired from any available UTC time service, as would be appreciated by those or ordinary skill in the relevant arts.


As mentioned above, it is assumed that at the time the Start message is issued, the content identified therein has already been encoded and is available for streaming, e.g., for video-on-demand streaming, or will begin to be encoded shortly after the time of the Start message, e.g., for live and real-time streaming. It is also assumed that RTS 114 has collected, or will be collecting, the information related to the encoded program from encoder 110 or CDN 115, such as a program stream index, e.g., program stream index 204, sufficient to identify the identified content in network services 102.


At 424, in response to the Start message, RTS 114 sends an encoding profile message (referred to as a “Profile” message) to client 104. The Profile message lists different encoding profiles used to encode the identified content, e.g., as available from the program stream index for the identified content. Each of the profiles specifies encoding parameters/settings, including, but not limited to: content type (e.g., audio, video, or subtitle); an encoding level corresponding to an encoding bitrate, resolution, and video frame rate (e.g., levels L1, L2, L3); and a container file type, e.g., a Multipurpose Internet Mail Extensions (MIME) type. The Profile message also indicates which encoding level among the multiple encoding levels e.g., encoding level L3, represents or corresponds to a trick play stream.


In response to the Profile message, client device 104 selects an appropriate encoding level (e.g., an appropriate combination of an encoding bitrate and a resolution) among the levels indicated in the Profile message (not including the level indicating the trick play stream) for normal streaming and playback of the identified content. Client device 104 may determine the appropriate encoding level based on a communication bandwidth at the client device.


3.2 Normal Streaming and Playback


After startup, normal streaming and playback begins, as follows.


At 432, after client device 104 has selected the encoding level, the client device sends a GetPlaylist message to RTS 114 to request a list of any new container files that have been uploaded since the client device last downloaded container files (if any) from CDN 112. The GetPlaylist message includes selection criteria for uploaded container files, namely, a current time and the selected encoding level. The current time represents a time code associated with the last container file downloaded by client device 104 (if any) in the current streaming session.


In response to the GetPlaylist message, RTS 114:

    • a. selects the uploaded container files, as identified to the RTS that meet the criteria specified in the GetPlaylist message. The selected, uploaded container files are those container files that have (i) a time code greater than the current time, and (ii) an encoding level that matches the level specified in the GetPlaylist message from the client device;
    • b. generates a Playlist message identifying the selected container files; and
    • c. at 433, sends the Playlist message to client device 104.


For each of the selected container files, the Playlist message includes the following information: the type of content encoded in the container file (e.g., video, audio, or subtitle); an address (e.g., URL) of the container file in CDN 112 (e.g., a subset of the addresses A1 or A2); a time code, e.g., a start time and an end time, associated with the content block encoded in the container file; and a file size of the container file.


At 434, in response to the Playlist message, client device 104 downloads container files from addresses in CDN 112 based on, i.e., as identified in, the Playlist message.


At 436, client device 104 decodes all of the key frames and the non-key frames of the encoded content block from each of the downloaded container files to recover the original content therein, and then presents the recovered content, whether in audio, visual, or in other form, on client device 104. The process of decoding the encoded content from the key and non-key frames and then presenting the recovered content on client device 104 is referred to as “normal playback” on the client device. In normal playback, the content recovered from successive downloaded container files is played back on client device 104 in a forward (play) direction, i.e., in an order of increasing time code. For example, with reference again to FIG. 2, the content is played back from container files CF in the time code order of 0 s-2 s, 2 s-4 s, 4 s-6 s, and so on. For normal playback, the decoded video frames are presented at a frame rate equal to the frame rate at which the video was original captured and encoded, e.g., at a rate of 30 fps.


The normal streaming and playback sequence repeats. Therefore, in summary, in the streaming and playback sequence, client device 104 periodically requests and downloads Playlist messages, downloads container files indicated in the Playlist messages, and plays back the content from the downloaded container files in the forward direction.


3.3 Trick Play


At any time during the normal streaming and playback sequence, the user may select a trick play (TP) feature through the GUI. Trick play features include, but are not limited to, rewind and fast forward, in which client device 104 rewinds and fast forwards through previously played back content.


At 440, assume the user selects the rewind trick play feature while client device 104 is performing the normal playback of content.


At 442, in response to the rewind request, client device 104 sends a GetPlaylist message to RTS 114 to solicit appropriate trick play video (container files) from network services 102. Therefore, in this case, the GetPlaylist message may also be referred to as a “GetTrickPlayPlaylist” message. The GetPlaylist message sent at 442 includes the following trick play file selection criteria:

    • a. a time (referred to as a “trick play time”) when the user selected the trick play feature;
    • b. the encoding level that was indicated in the Profile message (at 424) as corresponding to the trick play video (e.g., level 3 in the example of FIG. 2); and
    • c. a trick play direction (depicted as “Dir” in FIG. 4) indicating rewind (RWD).


At 444, in response to the GetPlaylist message sent at 442, RTS 114 generates and sends a trick play Playlist message to client device 104. The trick play Playlist message identifies those container files from the trick play stream (e.g., the stream associated with encoding level L3 in the example of FIG. 2) that meet the selection criteria, namely, that are associated with (i) successive time code less than the trick play time because the trick play direction is RWD, and (ii) an encoding level that matches the specified level (e.g., encoding level L3). The Playlist message lists URLs of the appropriate trick play container files.


At 446, client device 104 downloads the trick play container files identified in the Playlist message from 444. For example, client device 104 downloads the trick play container files from their corresponding URLs.


At 448, client device 104 plays back video from the downloaded trick play container files, i.e., the client device decodes the key frames from each of the trick play container files and then presents the decoded video in a rewind play direction, i.e., in an order of decreasing time codes beginning with the trick play time.


The trick play sequence 442-448 repeats.


During trick play, the video from the key frames may be played back at a reduced video frame rate relative to that used for normal playback. For example, the trick play playback video frame rate may be 5 fps, instead of 30 fps.


Also, to implement a faster rewind, key frames may be skipped, e.g., every other key frame may be played back. In other words, only a subset of key frames in each of the downloaded trick play container files may be used in trick play playback.


The above described trick play sequence results when the user selects RWD at 440. Alternatively, the user may select fast forward (FFWD) at 440. The trick play sequence that results when the user selects FFWD is similar to that for RWD, except that the GetPlaylist message at 442 indicates FFWD instead of RWD. In response to the FFWD indication in the GetPlaylist message, at 444, RTS 114 returns a Playlist message identifying trick play files associated with successive time codes greater than (not less than) the trick play time. Then, at 448, client device 104 plays back the downloaded trick play files in the forward direction.


4 Profile and Playlist Messages


4.1 Profile Message



FIG. 5 is an example Profile message 500. In an embodiment, the Profile message format is in accordance with the World Wide Web Consortium (W3C) recommended Extensible Markup Language (XML) markup language, Synchronized Multimedia Integration Language (SMIL) 3.0 Tiny profile. This profile is well-suited to descriptions of web-based multimedia. However, other protocols may be used to format the Profile message.


Profile message 500 includes a header 501 to specify the base profile as SMIL 3.0 (Tiny), and a body including video encoding (VE) profiles 502, 504, 505 and an audio encoding (AE) profile 506. Profile message 500 corresponds to a requested program ID, such as encoded program 200 of FIG. 2, and includes information from the associated index, e.g., index 204. Each of VE profiles 502, 504, 505 specifies the following encoding settings or parameters:

    • a. a content type, e.g., video;
    • b. an encoding level “Video ID” (e.g., level 1=L2, level 2=L2, level 3=L3) with its corresponding
      • i. encoding bitrate (e.g., Rate1, Rate2, or Rate3, such as a bitrate=400000 bps, 600000 bps, or 150000 bps), and
      • ii. video resolution (e.g., Res1, Res2, or Res3) in terms of, e.g., pixel width and height dimensions (e.g., 768×432); and
    • c. MIME type.


Similarly, AE profile 506 specifies:

    • a. a content type, e.g., audio;
    • b. an encoding bitrate/reserved bandwidth value (e.g., 192000); and
    • c. a MIME type.


The Profile message may also include a video frame rate at which each level was encoded.


As mentioned above in connection with FIG. 4, Profile message 500 also includes a field 510 to indicate which of encoding profiles 502-505, if any, represents a trick play stream. In the example of FIG. 5, the stream associated with level 3 (similar to FIG. 2) is indicated as the trick play stream.


4.2 Playlist Message



FIG. 6 is an example Playlist message 600 generated in response to a GetPlaylist message selection criteria including a current time of 40 (seconds) and specifying a level 1 encoding level. Like the Profile message, the example Playlist message is formatted in accordance with SMIL 3.0.


Playlist message 600 includes a header 601 to specify the base profile as 3.0, and a body that includes sequential records or elements 602-610, each of which is defined as a seq element <seq>. In an embodiment, each seq element 602-610 corresponds to an uploaded container file. Using seq elements, RTS 114 is able to specify a sequence of real-time media streams for playback. A sequence tag is used with each element to indicate one of <video>, <audio> or <subtitle/text> encoded content for streaming. Elements 602-610 identify respective uploaded elements (e.g., container files) that meet the Playlist message criteria (i.e., encoding level 1 and a time code equal to or greater than 40). In the example of FIG. 6, elements 602-608 identify three container files containing successive or time-ordered two second blocks of encoded video. Element 610 identifies a container file containing a two second segment of encoded audio. Each of the Playlist message records 602-610 includes:

    • a. a content type identifier (e.g., video or audio);
    • b. a URL of the identified container file (e.g., src=http:10.180.14.232/I140.mkv). For example, the URLs correspond to container file addresses from the list of addresses A1 or A2 from FIG. 2;
    • c. a time code in seconds (e.g., a start time and an end time, referred to as “ClipBegin” and “ClipEnd,” respectively,) associated with the segment encoded in the identified container file. The example time codes for each of the container files are 40-42, 42-44, and 46-48); and
    • d. a file size of the identified container file (e.g., 3200 kilobits).


      5 Method Flowcharts


      5.1 Network Side



FIG. 7 is a flowchart of an example network-side method 700 of multimedia content streaming with trick play support based on trick play files, which may be implemented in network services 102. Method 700 may be executed in accordance with sequence 400 of FIG. 4. The multimedia content includes video, and may also include audio and/or text (e.g., subtitles). Method 700 may be implemented in any of the contexts of on-demand, live, and real-time streaming.



715 includes encoding video into (i) multiple adaptive bitrate streams, and (ii) a corresponding trick play stream in accordance with corresponding distinct sets of encoder settings or levels, such as an encoding bitrate, a resolution, and a video frame rate. Each of the streams comprises container files of encoded video associated with successive time codes.



720 includes storing (i) the container files for each stream at corresponding addresses, such as network addresses, e.g., URLs, in a download server, e.g., in CDN 114, and (ii) an index identifying the container files of each stream in RTS 114.



725 includes receiving a playlist request (e.g., a GetPlaylist message) from a client device, e.g., over a communication network, for a selected one of the adaptive bitrate streams. The playlist request includes container file selection criteria, including a current time, an encoding level.



730 includes sending, to the client device over the communication network, a playlist (e.g., a Playlist message) identifying the stored files of the selected stream that meet the selection criteria, i.e., that are associated with time codes greater than the current time. The playlist may list URLs where the identified container files are stored and sizes of the files.



735 includes receiving, from the client device, a playlist request (e.g., another GetPlaylist message) for the trick play stream corresponding to the selected stream. The trick play playlist request includes a trick play time code, a trick play encoding level, and a trick play direction, e.g., fast forward or rewind.



740 includes sending, to the client device, a trick play playlist (e.g., another Playlist message) identifying the stored files (e.g., URLs of the stored files) of the trick play stream that are associated with successive time codes that are (i) less than the trick play time if the trick play direction is rewind, and (ii) greater than the trick play time if the trick play direction is fast forward.


5.2 Client Side



FIG. 8 is a flowchart of an example client-side method 800 of multimedia content streaming with trick play support based on trick play files, which may be implemented in client device 104. Method 800 is a client side method complementary to network side method 700. Method 800 may be executed in accordance with sequence 400 of FIG. 4. The multimedia content includes video, and may also include audio and/or text (e.g., subtitles). Method 700 may be implemented in any of the contexts of on-demand, live, and real-time streaming.


Together, operations 802-815 described below are considered precursor, or initialization, operations that lead to subsequent downloading of an adaptive bitrate stream.



802 includes requesting to stream a video program from network services over a communication network and, in response, receiving a Profile message over the communication network identifying multiple adaptive bitrate streams of encoded video and a trick play stream of encoded video that are stored in, and available for streaming from, network services. The streams may be identified according to their respective encoding levels (e.g., encoding bitrate, resolution, frame rate, etc.). Each of the streams comprises container files of the encoded video. The container files of each stream are associated with successive time codes.



805 includes selecting an adaptive bitrate stream from among the multiple adaptive bitrate streams. A client device may select an adaptive bitrate stream based an available communication bandwidth.



810 includes sending, to the network services over the communication network, a playlist request (e.g., a GetPlaylist message) for (container) files from the selected stream. The playlist request includes file selection criteria that includes a current time and specifies an encoding level corresponding to, e.g., an encoding bitrate and a resolution, of the selected stream.



815 includes receiving, from the network services over the communication network, a playlist (e.g., a Playlist message) identifying the files from the selected stream that meet the file selection criteria, i.e., that are associated with successive time codes greater than the current time.



820 includes downloading, from the network services over the communication network, files of encoded video from the selected stream as identified in the playlist, e.g., from URLs listed in the playlist.



825 includes playing back video from the downloaded files in an order of increasing time codes. This includes playing back video from both key and non-key frames at a normal video frame rate, such as 30 fps.



830 includes receiving a trick play feature request, such as a video rewind request, from a user of the client device. Next operations 835-850 are performed in response to the trick play request received at 830.



835 includes sending, to the network services over the communication network, a trick play playlist request (e.g., a GetTrickPlayPlayist message) for appropriate trick play files from the trick play stream corresponding to the selected stream. The request includes a trick play time (corresponding to a time when the user selected the trick play feature), a trick play encoding level as indicated in the Profile message received earlier by the client device at 802 (e.g., level L3), and a trick play direction (e.g., rewind or fast forward).



840 includes receiving, from the network services over the communication network, a trick play playlist (e.g., a Playlist message) identifying files from the trick play stream that meet the file selection criteria, i.e., that are associated with successive time codes (i) less than the trick play time if the direction is rewind, and (ii) greater than the trick play time if the direction is fast forward.



845 includes downloading the trick play files identified in the playlist from 840, e.g., from URLs listed in the playlist.



850 includes playing back video from the downloaded files in either the rewind direction, i.e., in an order of decreasing time codes, or in the forward direction, as appropriate. This includes playing back video only from key frames at a trick play video frame rate, such as 5 fps, which is reduced relative to the normal frame rate.


6 Systems



FIG. 9A is a block diagram of a computer system 900 configured to support/perform streaming and trick play features as described herein.


Computer system 900 includes one or more computer instruction processing units and/or processor cores, illustrated here as processor 902, to execute computer readable instructions, also referred to herein as computer program logic.


Computer system 900 may include memory, cache, registers, and/or storage, illustrated here as memory 904, which may include a non-transitory computer readable medium encoded with computer programs, illustrated here as computer program 906.


Memory 904 may include data 908 to be used by processor 902 in executing computer program 906, and/or generated by processor 902 during execution of computer program 906. Data 908 may include container files 908a from adaptive bitrate streams and trick play streams, and message definitions 908b for GetPlaylist, Playlist, and Profile messages, such as used in the methods described herein.


Computer program 906 may include:


Client application instructions 910 to cause processor 902 to perform client device functions as described herein. Instructions 910 include:


GUI instructions 912 to implement a GUI through which a user may select to stream a program and select trick play features;


streaming and playback instructions 914 to download, decode, and playback streamed video content;


trick play instructions 916 to implement trick play features; and


message protocol instructions 918 to implement client side message exchange protocols/sequences (sending and receiving of messages) as described in one or more examples above.


Instructions 910-918 cause processor 902 to perform functions such as described in one or more examples above.



FIG. 9B is a block diagram of network/server-side application instructions 960 which may execute in a processing environment similar to that of computer system 900, and which may be hosted in encoder 110, RTS 114, and/or CDN 112, as appropriate.


Network/server-side application instructions 960 cause a processor to perform network-side (network services) functions as described herein. Instructions 960 have access to adaptive bitrate streams, trick play streams, indexes identifying the streams, and message definitions as described in one or more example above. Instructions 960 include:


encoder instructions 962 to encode multimedia content into adaptive bitrate streams and trick play streams, as described in one or more example above; and


message protocol instructions 964, including RTS instructions, to implement network side message exchange protocols/sequences (sending and receiving of messages) in support of adaptive bitrate streaming and trick play streaming, e.g., between RTS 114, client device 104, encoder 110, and CDN 112, as described in one or more examples above. For example, instructions 964 include instructions to create and send Profile and Playlist messages, and to respond to GetPlaylist messages.


Methods and systems disclosed herein may be implemented with respect to one or more of a variety of systems including one or more consumer systems, such as described below with reference to FIGS. 10 and 11. Methods and systems disclosed herein are not, however, limited to the examples of FIGS. 10 and 11.



FIG. 10 is a block diagram of an example computer system 1000 corresponding to any of network services 102, including encoder 110, CDN 112, and RTS 114. Computer system 1000, which may be, e.g., a server, includes one or more processors 1005, a memory 1010 in which instruction sets and databases for computer program applications are stored, a mass storage 1020 for storing, e.g., encoded programs, and an input/output (I/O) module 1015 through which components of computer system 1100 may communicate with communication network 106.



FIG. 11 is a block diagram of an example system 1100 representing, e.g., client device 104, and may be implemented, and configured to operate, as described in one or more examples herein.


System 1100 or portions thereof may be implemented within one or more integrated circuit dies, and may be implemented as a system-on-a-chip (SoC).


System 1100 may include one or more processors 1104 to execute client-side application programs stored in memory 1105.


System 1100 may include a communication system 1106 to interface between processors 1104 and communication networks, such as networks 106. Communication system 1106 may include a wired and/or wireless communication system.


System 1100 may include a stream processor 1107 to process program (i.e., content) streams, received over communication channel 1108 and through communication system 1106, for presentation at system 1100. Stream processor 1107 includes a buffer 1107a to buffer portions of received, streamed programs, and a decoder 1107b to decode and decrypt the buffered programs in accordance with encoding and encryption standards, and using decryption keys. In an alternative embodiment, decoder 1107b may be integrated with a display and graphics platform of system 1100. Stream processor 1107 together with processors 1104 and memory 1105 represent a controller of system 1100. This controller includes modules to perform the functions of one or more examples described herein, such as a streaming module to stream programs through communication system 1106.


System 1100 may include a user interface system 1110.


User interface system 1110 may include a monitor or display 1132 to display information from processor 1104, such as a client-side GUI.


User interface system 1110 may include a human interface device (HID) 1134 to provide user input to processor 1104. HID 1134 may include, for example and without limitation, one or more of a key board, a cursor device, a touch-sensitive device, and or a motion and/or image sensor. HID 1134 may include a physical device and/or a virtual device, such as a monitor-displayed or virtual keyboard.


User interface system 1110 may include an audio system 1136 to receive and/or output audible sound.


System 1100 may correspond to, for example, a computer system, a personal communication device, and/or a television set-top box.


System 1100 may include a housing, and one or more of communication system 1106, processors 1104, memory 1105, user interface system 1110, or portions thereof may be positioned within the housing. The housing may include, without limitation, a rack-mountable housing, a desk-top housing, a lap-top housing, a notebook housing, a net-book housing, a set-top box housing, a portable housing, and/or other conventional electronic housing and/or future-developed housing. For example, communication system 1102 may be implemented to receive a digital television broadcast signal, and system 1100 may include a set-top box housing or a portable housing, such as a mobile telephone housing.


Methods and systems disclosed herein may be implemented in circuitry and/or a machine, such as a computer system, and combinations thereof, including discrete and integrated circuitry, application specific integrated circuitry (ASIC), a processor and memory, and/or a computer-readable medium encoded with instructions executable by a processor, and may be implemented as part of a domain-specific integrated circuit package, a system-on-a-chip (SOC), and/or a combination of integrated circuit packages.


Methods and systems are disclosed herein with the aid of functional building blocks illustrating functions, features, and relationships thereof. At least some of the boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries may be defined so long as the specified functions and relationships thereof are appropriately performed. While various embodiments are disclosed herein, it should be understood that they are presented as examples. The scope of the claims should not be limited by any of the example embodiments disclosed herein.

Claims
  • 1. A playback device, comprising: a set of one or more processors; anda non-volatile storage containing an application for causing the set of one or more processors to perform the steps of:receiving a playback request for a selected one of a plurality of adaptive bitrate streams at a first time using a playback device, and in response thereto:sending a playlist request and the first time to a server;receiving a playlist identifying a set of successive container files storing segments of encoded video from the selected adaptive bitrate stream from the server, the set of successive container files starting at the first time;downloading segments of encoded video from the selected adaptive bitrate stream according to the received playlist;playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream; andreceiving a trick play request for a trick play stream corresponding to the plurality of adaptive bitrate streams using the playback device, the trick play request including a second time and a particular direction, and in response thereto:sending a trick play playlist request, the second time, and the particular direction to the server, wherein the server generates a trick play playlist identifying a different set of container files storing segments of encoded video from the trick play stream upon receipt of the trick play playlist request, the different set of container files starting at the second time and in the particular direction;receiving the generated trick play playlist from the server;downloading segments of encoded video from the trick play stream according to the generated trick play playlist; andplaying back video from the downloaded segments of encoded video from the trick play stream in the particular direction.
  • 2. The playback device claim 1, wherein: the encoded segments of encoded video from the selected adaptive bitrate stream comprise encoded video frames, including non-key frames each encoded based on video from one or more previous video frames, and key frames interspersed among the non-key frames, each of the key frames encoded independent of previous video frames; andthe segments of encoded video from the trick play stream comprise encoded video frames, including key frames without non-key frames.
  • 3. The playback device of claim 2, wherein: the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back video from the non-key frames and the key frames at a normal video frame rate; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back video from the key frames at a trick play video frame rate.
  • 4. The playback device of claim 3, wherein the playing back video at the trick play video frame rate includes, selectively: playing back all of the video from each segment of encoded video from the trick play stream file to achieve a normal trick play playback rate; andplaying back a subset of the video in each segment of encoded video from the trick play stream to achieve an accelerated trick play playback rate.
  • 5. The playback device of claim 1, wherein: the downloaded segments of encoded video from the selected adaptive bitrate stream are associated with successive time codes;the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back the video in a forward direction of increasing time codes;the downloaded segments of encoded video from the trick play stream are associated with successive time codes; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back the video in a rewind direction of decreasing time codes.
  • 6. The playback device of claim 1, further comprising, prior to downloading of the segments of encoded video from the selected adaptive bitrate stream: sending a playlist request for segments of encoded video from the selected adaptive bitrate stream associated with time codes greater than a current time specified in the playlist request; andreceiving a playlist listing network addresses where the segments of encoded video from the selected adaptive bitrate stream associated with successive time codes greater than the current time are stored, wherein the downloading includes downloading the segments of encoded video from the selected adaptive bitrate stream from the network addresses, and the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream in an order of increasing time codes.
  • 7. The playback device of claim 1, wherein: the trick play playlist request is a request for a trick play playlist of segments of encoded video from the trick play stream associated with time codes less than a trick play time when the trick play request was received;the trick play playlist lists network addresses of the segments of encoded video from the trick play stream associated with time codes less than the trick play time;the downloading the segments of encoded video from the trick play stream include downloading the segments of encoded video from the trick play stream from their network addresses; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back video in an order of decreasing time codes.
  • 8. A method for playing back content on a playback device, comprising: receiving a playback request for a selected one of a plurality of adaptive bitrate streams at a first time using a playback device, and in response thereto:sending a playlist request and the first time to a server;receiving a playlist identifying a set of successive container files storing segments of encoded video from the selected adaptive bitrate stream from the server, the set of successive container files starting at the first time;downloading segments of encoded video from the selected adaptive bitrate stream according to the received playlist;playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream; andreceiving a trick play request for a trick play stream corresponding to the plurality of adaptive bitrate streams using the playback device, the trick play request including a second time and a particular direction, and in response thereto:sending a trick play playlist request, the second time, and the particular direction to the server, wherein the server generates a trick play playlist identifying a different set of container files storing segments of encoded video from the trick play stream upon receipt of the trick play playlist request, the different set of container files starting at the second time and in the particular direction;receiving the generated trick play playlist from the server;downloading segments of encoded video from the trick play stream according to the generated trick play playlist; andplaying back video from the downloaded segments of encoded video from the trick play stream in the particular direction.
  • 9. The method of claim 8, wherein: the encoded segments of encoded video from the selected adaptive bitrate stream comprise encoded video frames, including non-key frames each encoded based on video from one or more previous video frames, and key frames interspersed among the non-key frames, each of the key frames encoded independent of previous video frames; andthe segments of encoded video from the trick play stream comprise encoded video frames, including key frames without non-key frames.
  • 10. The method claim 9, wherein: the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back video from the non-key frames and the key frames at a normal video frame rate; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back video from the key frames at a trick play video frame rate.
  • 11. The method of claim 10, wherein the playing back video at the trick play video frame rate includes, selectively: playing back all of the video from each segment of encoded video from the trick play stream file to achieve a normal trick play playback rate; andplaying back a subset of the video in each segment of encoded video from the trick play stream to achieve an accelerated trick play playback rate.
  • 12. The method of claim 8, wherein: the downloaded segments of encoded video from the selected adaptive bitrate stream are associated with successive time codes;the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back the video in a forward direction of increasing time codes;the downloaded segments of encoded video from the trick play stream are associated with successive time codes; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back the video in a rewind direction of decreasing time codes.
  • 13. The method of claim 8, further comprising, prior to downloading of the segments of encoded video from the selected adaptive bitrate stream: sending a playlist request for segments of encoded video from the selected adaptive bitrate stream associated with time codes greater than a current time specified in the playlist request; andreceiving a playlist listing network addresses where the segments of encoded video from the selected adaptive bitrate stream associated with successive time codes greater than the current time are stored, wherein the downloading includes downloading the segments of encoded video from the selected adaptive bitrate stream from the network addresses, and the playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream includes playing back video from the downloaded segments of encoded video from the selected adaptive bitrate stream in an order of increasing time codes.
  • 14. The method of claim 8, wherein: the trick play playlist request is a request for a trick play playlist of segments of encoded video from the trick play stream associated with time codes less than a trick play time when the trick play request was received;the trick play playlist lists network addresses of the segments of encoded video from the trick play stream associated with time codes less than the trick play time;the downloading the segments of encoded video from the trick play stream include downloading the segments of encoded video from the trick play stream from their network addresses; andthe playing back video from the downloaded segments of encoded video from the trick play stream includes playing back video in an order of decreasing time codes.
CROSS-REFERENCE TO RELATED APPLICATION

The current application is a continuation of U.S. patent application Ser. No. 14/810,345 entitled “Network Video Streaming with Trick Play Based on Separate Trick Play Files” to Shivadas et al., filed Jul. 27, 2015, which is a continuation of U.S. patent application Ser. No. 13/905,852 entitled “Network Video Streaming with Trick Play Based on Separate Trick Play Files” to Shivadas et al., filed May 30, 2013 and issued as U.S. Pat. No. 9,094,737 on Jul. 28, 2015. The disclosures of U.S. patent application Ser. Nos. 14/810,345 and 13/905,852 are hereby incorporated by reference in their entireties.

US Referenced Citations (742)
Number Name Date Kind
4009331 Goldmark et al. Feb 1977 A
4694357 Rahman et al. Sep 1987 A
4802170 Trottier Jan 1989 A
4964069 Ely Oct 1990 A
5119474 Beitel et al. Jun 1992 A
5274758 Beitel et al. Dec 1993 A
5361332 Yoshida et al. Nov 1994 A
5396497 Veltman Mar 1995 A
5404436 Hamilton Apr 1995 A
5420801 Dockter et al. May 1995 A
5420974 Morris et al. May 1995 A
5471576 Yee Nov 1995 A
5479303 Suzuki et al. Dec 1995 A
5487167 Dinallo et al. Jan 1996 A
5502766 Boebert et al. Mar 1996 A
5509070 Schull Apr 1996 A
5533021 Branstad et al. Jul 1996 A
5537408 Branstad et al. Jul 1996 A
5539908 Chen et al. Jul 1996 A
5541662 Adams et al. Jul 1996 A
5583652 Ware Dec 1996 A
5589993 Naimpally et al. Dec 1996 A
5621794 Matsuda et al. Apr 1997 A
5627936 Prasad May 1997 A
5633472 DeWitt et al. May 1997 A
5642171 Baumgartner et al. Jun 1997 A
5655117 Goldberg et al. Aug 1997 A
5664044 Ware Sep 1997 A
5675382 Bauchspies Oct 1997 A
5675511 Prasad et al. Oct 1997 A
5684542 Tsukagoshi Nov 1997 A
5715403 Stefik Feb 1998 A
5717816 Boyce et al. Feb 1998 A
5719786 Nelson et al. Feb 1998 A
5745643 Mishina Apr 1998 A
5751280 Abbott May 1998 A
5754648 Ryan et al. May 1998 A
5763800 Rossum et al. Jun 1998 A
5765164 Prasad et al. Jun 1998 A
5794018 Vrvilo et al. Aug 1998 A
5805700 Nardone et al. Sep 1998 A
5822524 Chen et al. Oct 1998 A
5828370 Moeller et al. Oct 1998 A
5841432 Carmel et al. Nov 1998 A
5844575 Reid Dec 1998 A
5848217 Tsukagoshi et al. Dec 1998 A
5867625 McLaren Feb 1999 A
5887110 Sakamoto et al. Mar 1999 A
5892900 Ginter et al. Apr 1999 A
5903261 Walsh et al. May 1999 A
5907597 Mark May 1999 A
5946446 Yanagihara Aug 1999 A
5956729 Goetz et al. Sep 1999 A
5959690 Toebes, VIII et al. Sep 1999 A
5970147 Davis Oct 1999 A
5999812 Himsworth Dec 1999 A
6031622 Ristow et al. Feb 2000 A
6038257 Brusewitz et al. Mar 2000 A
6044469 Horstmann Mar 2000 A
6046778 Nonomura et al. Apr 2000 A
6047100 McLaren Apr 2000 A
6058240 McLaren May 2000 A
6064794 McLaren et al. May 2000 A
6065050 DeMoney May 2000 A
6018611 Nogami et al. Jun 2000 A
6079566 Eleftheriadis et al. Jun 2000 A
6097877 Katayama et al. Aug 2000 A
6141754 Choy Oct 2000 A
6155840 Sallette Dec 2000 A
6169242 Fay et al. Jan 2001 B1
6175921 Rosen Jan 2001 B1
6195388 Choi et al. Feb 2001 B1
6204883 Tsukagoshi Mar 2001 B1
6222981 Rijckaert Apr 2001 B1
6282653 Berstis et al. Aug 2001 B1
6289450 Pensak et al. Sep 2001 B1
6292621 Tanaka et al. Sep 2001 B1
6308005 Ando et al. Oct 2001 B1
6330286 Lyons et al. Dec 2001 B1
6374144 Viviani et al. Apr 2002 B1
6389218 Gordon et al. May 2002 B2
6389473 Carmel et al. May 2002 B1
6395969 Fuhrer May 2002 B1
6397230 Carmel et al. May 2002 B1
6418270 Steenhof et al. Jul 2002 B1
6449719 Baker Sep 2002 B1
6466671 Maillard et al. Oct 2002 B1
6466733 Kim Oct 2002 B1
6510513 Danieli Jan 2003 B1
6510554 Gordon et al. Jan 2003 B1
6621979 Eerenberg et al. Sep 2003 B1
6625320 Ghanbari Sep 2003 B1
6658056 Duruöz et al. Dec 2003 B1
6665835 Gutfreund et al. Dec 2003 B1
6671408 Kaku Dec 2003 B1
6697568 Kaku Feb 2004 B1
6714909 Gibbon et al. Mar 2004 B1
6725281 Zintel Apr 2004 B1
6771703 Oguz et al. Aug 2004 B1
6807306 Girgensohn et al. Oct 2004 B1
6810031 Hegde et al. Oct 2004 B1
6810389 Meyer Oct 2004 B1
6819394 Nomura et al. Nov 2004 B1
6850252 Hoffberg Feb 2005 B1
6856997 Lee et al. Feb 2005 B2
6859496 Boroczky et al. Feb 2005 B1
6917652 Lyu Jul 2005 B2
6931531 Takahashi Aug 2005 B1
6944621 Collart Sep 2005 B1
6944629 Shioi et al. Sep 2005 B1
6956901 Boroczky et al. Oct 2005 B2
6965724 Boccon-Gibod et al. Nov 2005 B1
6965993 Baker Nov 2005 B2
6985588 Glick et al. Jan 2006 B1
6988144 Luken et al. Jan 2006 B1
7007170 Morten Feb 2006 B2
7023924 Keller et al. Apr 2006 B1
7043473 Rassool et al. May 2006 B1
7103906 Katz et al. Sep 2006 B1
7127155 Ando et al. Oct 2006 B2
7150045 Koelle et al. Dec 2006 B2
7151832 Fetkovich et al. Dec 2006 B1
7151833 Candelore et al. Dec 2006 B2
7165175 Kollmyer et al. Jan 2007 B1
7185363 Narin et al. Feb 2007 B1
7197234 Chatterton Mar 2007 B1
7206940 Evans et al. Apr 2007 B2
7209892 Galuten et al. Apr 2007 B1
7231132 Davenport Jun 2007 B1
7237061 Boic Jun 2007 B1
7242772 Tehranchi Jul 2007 B1
7243346 Seth et al. Jul 2007 B1
7295673 Grab et al. Nov 2007 B2
7328345 Morten et al. Feb 2008 B2
7330875 Parasnis et al. Feb 2008 B1
7340528 Noblecourt et al. Mar 2008 B2
7349886 Morten et al. Mar 2008 B2
7356143 Morten Apr 2008 B2
7356245 Belknap et al. Apr 2008 B2
7366788 Jones et al. Apr 2008 B2
7376831 Kollmyer et al. May 2008 B2
7406174 Palmer Jul 2008 B2
7421411 Kontio et al. Sep 2008 B2
7454780 Katsube et al. Nov 2008 B2
7457359 Mabey et al. Nov 2008 B2
7460668 Grab et al. Dec 2008 B2
7472280 Giobbi Dec 2008 B2
7478325 Foehr Jan 2009 B2
7484103 Woo et al. Jan 2009 B2
7493018 Kim Feb 2009 B2
7499938 Collart Mar 2009 B2
7515710 Russell et al. Apr 2009 B2
7526450 Hughes et al. Apr 2009 B2
7594271 Zhuk et al. Sep 2009 B2
7610365 Kraft et al. Oct 2009 B1
7640435 Morten Dec 2009 B2
7676555 Bushee et al. Mar 2010 B2
7689510 Lamkin et al. Mar 2010 B2
7720352 Belknap et al. May 2010 B2
7747853 Candelore et al. Jun 2010 B2
7761892 Ellis et al. Jul 2010 B2
7779097 Lamkin et al. Aug 2010 B2
7788271 Soma et al. Aug 2010 B2
7817608 Rassool et al. Oct 2010 B2
7869691 Kelly et al. Jan 2011 B2
7882034 Hug et al. Feb 2011 B2
7949703 Matsuzaki et al. May 2011 B2
7962942 Craner Jun 2011 B1
7974714 Hoffberg Jul 2011 B2
7991156 Miller Aug 2011 B1
8023562 Zheludkov et al. Sep 2011 B2
8046453 Olaiya Oct 2011 B2
8054880 Yu et al. Nov 2011 B2
8065708 Smyth et al. Nov 2011 B1
8069260 Speicher et al. Nov 2011 B2
8082442 Keljo et al. Dec 2011 B2
8195714 Mckibben et al. Jun 2012 B2
8201264 Grab et al. Jun 2012 B2
8225061 Greenebaum Jul 2012 B2
8233768 Soroushian et al. Jul 2012 B2
8245124 Gupta Aug 2012 B1
8249168 Graves Aug 2012 B2
8261356 Choi et al. Sep 2012 B2
8265168 Masterson et al. Sep 2012 B1
8270473 Chen et al. Sep 2012 B2
8270819 Vannier Sep 2012 B2
8275871 Ram et al. Sep 2012 B2
8289338 Priyadarshi et al. Oct 2012 B2
8291460 Peacock Oct 2012 B1
8296434 Miller et al. Oct 2012 B1
8311111 Xu Nov 2012 B2
8311115 Gu et al. Nov 2012 B2
8321556 Chatterjee et al. Nov 2012 B1
8341715 Sherkin et al. Dec 2012 B2
8346753 Hayes Jan 2013 B2
8386621 Park Feb 2013 B2
8396114 Gu et al. Mar 2013 B2
8401900 Cansler et al. Mar 2013 B2
8407753 Kuo Mar 2013 B2
8412841 Swaminathan et al. Apr 2013 B1
8423889 Zagorie et al. Apr 2013 B1
8452110 Shoham et al. May 2013 B2
8456380 Pagan Jun 2013 B2
8464066 Price et al. Jun 2013 B1
8472792 Butt Jun 2013 B2
8473630 Galligan et al. Jun 2013 B1
8510303 Soroushian et al. Aug 2013 B2
8510404 Carmel et al. Aug 2013 B2
8515265 Kwon et al. Aug 2013 B2
8516529 Lajoie et al. Aug 2013 B2
8527645 Proffit et al. Sep 2013 B1
8595378 Cohn Nov 2013 B1
8606069 Okubo et al. Dec 2013 B2
8640166 Craner et al. Jan 2014 B1
8649669 Van Der et al. Feb 2014 B2
8656183 Russell et al. Feb 2014 B2
8677428 Lewis et al. Mar 2014 B2
8681866 Jia Mar 2014 B1
8689267 Hunt Apr 2014 B2
8726264 Allen et al. May 2014 B1
RE45052 Li Jul 2014 E
8767825 Wang et al. Jul 2014 B1
8774609 Drake et al. Jul 2014 B2
8781122 Chan et al. Jul 2014 B2
8805109 Shoham et al. Aug 2014 B2
8806188 Braness et al. Aug 2014 B2
8832434 Apostolopoulos et al. Sep 2014 B2
8843586 Pantos et al. Sep 2014 B2
8856218 Inskip Oct 2014 B1
8908984 Shoham et al. Dec 2014 B2
8909922 Kiefer et al. Dec 2014 B2
8914534 Braness et al. Dec 2014 B2
8914836 Shivadas et al. Dec 2014 B2
8918535 Ma et al. Dec 2014 B2
8918636 Kiefer Dec 2014 B2
8918908 Ziskind et al. Dec 2014 B2
8948249 Sun et al. Feb 2015 B2
8997161 Priyadarshi et al. Mar 2015 B2
8997254 Amidei et al. Mar 2015 B2
9014471 Shoham et al. Apr 2015 B2
9025659 Soroushian et al. May 2015 B2
9042670 Carmel et al. May 2015 B2
9060207 Sherkin et al. Jun 2015 B2
9094737 Shivadas et al. Jul 2015 B2
9098335 Muthiah et al. Aug 2015 B2
9124773 Chan et al. Sep 2015 B2
9125073 Oyman et al. Sep 2015 B2
9184920 Grab et al. Nov 2015 B2
9191457 Van der Schaar Nov 2015 B2
9197685 Soroushian Nov 2015 B2
9201922 Soroushian et al. Dec 2015 B2
9203816 Brueck et al. Dec 2015 B2
9210481 Braness et al. Dec 2015 B2
9215466 Zhai et al. Dec 2015 B2
9247311 Kiefer Jan 2016 B2
9247312 Braness et al. Jan 2016 B2
9247317 Shivadas et al. Jan 2016 B2
9253178 Blom et al. Feb 2016 B2
9264475 Shivadas et al. Feb 2016 B2
9294531 Zhang et al. Mar 2016 B2
9313510 Shivadas et al. Apr 2016 B2
9343112 Amidei et al. May 2016 B2
9344517 Shivadas et al. May 2016 B2
9344721 Dikvall May 2016 B2
9479805 Rothschild et al. Oct 2016 B2
9485546 Chen et al. Nov 2016 B2
9571827 Su et al. Feb 2017 B2
9584557 Panje et al. Feb 2017 B2
9584847 Ma et al. Feb 2017 B2
9621522 Kiefer et al. Apr 2017 B2
9672286 Soroushian et al. Jun 2017 B2
9706259 Chan et al. Jul 2017 B2
9712890 Shivadas et al. Jul 2017 B2
9798863 Grab et al. Oct 2017 B2
9813740 Panje et al. Nov 2017 B2
9866878 van der Schaar et al. Jan 2018 B2
9883204 Braness et al. Jan 2018 B2
9906785 Naletov et al. Feb 2018 B2
9967189 Patel et al. May 2018 B2
9967305 Braness May 2018 B2
10244272 Kiefer et al. Mar 2019 B2
20010030710 Werner Oct 2001 A1
20010036355 Kelly et al. Nov 2001 A1
20010046299 Wasilewski et al. Nov 2001 A1
20010053222 Wakao et al. Dec 2001 A1
20020026560 Jordan et al. Feb 2002 A1
20020034252 Owen et al. Mar 2002 A1
20020051494 Yamaguchi et al. May 2002 A1
20020057898 Normile May 2002 A1
20020062313 Lee et al. May 2002 A1
20020076112 Devara Jun 2002 A1
20020087569 Fischer et al. Jul 2002 A1
20020091665 Beek et al. Jul 2002 A1
20020093571 Hyodo Jul 2002 A1
20020110193 Yoo et al. Aug 2002 A1
20020116481 Lee Aug 2002 A1
20020118953 Kim Aug 2002 A1
20020120934 Abrahams et al. Aug 2002 A1
20020136298 Anantharamu et al. Sep 2002 A1
20020143413 Fay et al. Oct 2002 A1
20020143547 Fay et al. Oct 2002 A1
20020147980 Satoda Oct 2002 A1
20020159598 Rubinstein et al. Oct 2002 A1
20020161462 Fay Oct 2002 A1
20020180929 Tseng et al. Dec 2002 A1
20020184159 Tadayon et al. Dec 2002 A1
20020184515 Oho et al. Dec 2002 A1
20020191112 Akiyoshi et al. Dec 2002 A1
20020191959 Lin et al. Dec 2002 A1
20020191960 Fujinami et al. Dec 2002 A1
20030001964 Masukura et al. Jan 2003 A1
20030002578 Tsukagoshi et al. Jan 2003 A1
20030005442 Brodersen et al. Jan 2003 A1
20030021296 Wee et al. Jan 2003 A1
20030031178 Haeri Feb 2003 A1
20030035488 Barrau Feb 2003 A1
20030035545 Jiang Feb 2003 A1
20030035546 Jiang et al. Feb 2003 A1
20030041257 Wee Feb 2003 A1
20030061305 Copley et al. Mar 2003 A1
20030061369 Aksu et al. Mar 2003 A1
20030065777 Mattila et al. Apr 2003 A1
20030078930 Surcouf et al. Apr 2003 A1
20030093799 Kauffman et al. May 2003 A1
20030123855 Okada et al. Jul 2003 A1
20030128296 Lee Jul 2003 A1
20030133506 Haneda Jul 2003 A1
20030152370 Otomo et al. Aug 2003 A1
20030163824 Gordon et al. Aug 2003 A1
20030165328 Grecia Sep 2003 A1
20030174844 Candelore Sep 2003 A1
20030185302 Abrams Oct 2003 A1
20030185542 McVeigh et al. Oct 2003 A1
20030206558 Parkkinen et al. Nov 2003 A1
20030216922 Gonzales et al. Nov 2003 A1
20030229900 Reisman Dec 2003 A1
20030231863 Eerenberg et al. Dec 2003 A1
20030231867 Gates et al. Dec 2003 A1
20030233464 Walpole et al. Dec 2003 A1
20030236836 Borthwick Dec 2003 A1
20030236907 Stewart et al. Dec 2003 A1
20040006701 Kresina Jan 2004 A1
20040021684 Millner Feb 2004 A1
20040024688 Bi et al. Feb 2004 A1
20040025180 Begeja et al. Feb 2004 A1
20040031058 Reisman Feb 2004 A1
20040039916 Aldis et al. Feb 2004 A1
20040047614 Green Mar 2004 A1
20040052501 Tam Mar 2004 A1
20040071453 Valderas Apr 2004 A1
20040081333 Grab et al. Apr 2004 A1
20040081434 Jung et al. Apr 2004 A1
20040093618 Baldwin et al. May 2004 A1
20040105549 Suzuki et al. Jun 2004 A1
20040114687 Ferris et al. Jun 2004 A1
20040117347 Seo et al. Jun 2004 A1
20040136698 Mock Jul 2004 A1
20040139335 Diamand et al. Jul 2004 A1
20040143760 Alkove et al. Jul 2004 A1
20040146276 Ogawa Jul 2004 A1
20040158878 Ratnakar et al. Aug 2004 A1
20040184534 Wang Sep 2004 A1
20040184616 Morten et al. Sep 2004 A1
20040202320 Amini et al. Oct 2004 A1
20040217971 Kim Nov 2004 A1
20040255115 DeMello et al. Dec 2004 A1
20040255236 Collart Dec 2004 A1
20050004875 Kontio et al. Jan 2005 A1
20050005025 Harville et al. Jan 2005 A1
20050015797 Noblecourt et al. Jan 2005 A1
20050038826 Bae et al. Feb 2005 A1
20050055399 Savchuk Mar 2005 A1
20050071280 Irwin et al. Mar 2005 A1
20050108320 Lord et al. May 2005 A1
20050114534 Lee May 2005 A1
20050114896 Hug May 2005 A1
20050149450 Stefik et al. Jul 2005 A1
20050180641 Clark Aug 2005 A1
20050183120 Jain et al. Aug 2005 A1
20050193070 Brown et al. Sep 2005 A1
20050193322 Lamkin et al. Sep 2005 A1
20050196147 Seo et al. Sep 2005 A1
20050204289 Mohammed et al. Sep 2005 A1
20050207442 van Zoest et al. Sep 2005 A1
20050207578 Matsuyama et al. Sep 2005 A1
20050254508 Aksu et al. Nov 2005 A1
20050273695 Schnurr Dec 2005 A1
20050275656 Corbin et al. Dec 2005 A1
20060015580 Gabriel et al. Jan 2006 A1
20060026294 Virdi et al. Feb 2006 A1
20060026302 Bennett et al. Feb 2006 A1
20060036549 Wu Feb 2006 A1
20060037057 Xu Feb 2006 A1
20060052095 Vazvan Mar 2006 A1
20060053080 Edmonson et al. Mar 2006 A1
20060064605 Giobbi Mar 2006 A1
20060078301 Ikeda et al. Apr 2006 A1
20060093320 Hallberg et al. May 2006 A1
20060120378 Usuki et al. Jun 2006 A1
20060129909 Butt et al. Jun 2006 A1
20060168639 Gan et al. Jul 2006 A1
20060173887 Breitfeld et al. Aug 2006 A1
20060179239 Fluhr Aug 2006 A1
20060181965 Collart Aug 2006 A1
20060235880 Qian Oct 2006 A1
20060245727 Nakano et al. Nov 2006 A1
20060259588 Lerman et al. Nov 2006 A1
20060263056 Lin et al. Nov 2006 A1
20060267986 Bae Nov 2006 A1
20060274835 Hamilton et al. Dec 2006 A1
20060294164 Armangau et al. Dec 2006 A1
20070005333 Setiohardjo et al. Jan 2007 A1
20070031110 Rijckaert Feb 2007 A1
20070033419 Kocher et al. Feb 2007 A1
20070044010 Sull et al. Feb 2007 A1
20070047901 Ando et al. Mar 2007 A1
20070053513 Hoffberg Mar 2007 A1
20070058928 Naito et al. Mar 2007 A1
20070083617 Chakrabarti et al. Apr 2007 A1
20070086528 Mauchly et al. Apr 2007 A1
20070100757 Rhoads May 2007 A1
20070101271 Hua et al. May 2007 A1
20070101387 Hua et al. May 2007 A1
20070133603 Weaver Jun 2007 A1
20070136817 Nguyen Jun 2007 A1
20070140647 Kusunoki et al. Jun 2007 A1
20070154165 Hemmeryckz-Deleersnijder et al. Jul 2007 A1
20070156770 Espelien Jul 2007 A1
20070168541 Gupta et al. Jul 2007 A1
20070168542 Gupta et al. Jul 2007 A1
20070178933 Nelson Aug 2007 A1
20070180125 Knowles et al. Aug 2007 A1
20070185982 Nakanowatari et al. Aug 2007 A1
20070192810 Pritchett et al. Aug 2007 A1
20070217339 Zhao Sep 2007 A1
20070217759 Dodd Sep 2007 A1
20070234391 Hunter et al. Oct 2007 A1
20070239839 Buday et al. Oct 2007 A1
20070255940 Ueno Nov 2007 A1
20070271317 Carmel et al. Nov 2007 A1
20070271385 Davis et al. Nov 2007 A1
20070274679 Yahata et al. Nov 2007 A1
20070277219 Toebes et al. Nov 2007 A1
20070277234 Bessonov et al. Nov 2007 A1
20070280298 Hearn et al. Dec 2007 A1
20070288745 Kwan Dec 2007 A1
20070292107 Yahata et al. Dec 2007 A1
20070297422 Matsuo et al. Dec 2007 A1
20080005175 Bourke et al. Jan 2008 A1
20080008455 De Lange et al. Jan 2008 A1
20080043832 Barkley et al. Feb 2008 A1
20080046718 Grab et al. Feb 2008 A1
20080046925 Lee et al. Feb 2008 A1
20080066099 Brodersen et al. Mar 2008 A1
20080066181 Haveson et al. Mar 2008 A1
20080077592 Brodie et al. Mar 2008 A1
20080086456 Rasanen et al. Apr 2008 A1
20080086747 Rasanen et al. Apr 2008 A1
20080101466 Swenson et al. May 2008 A1
20080104633 Noblecourt et al. May 2008 A1
20080120330 Reed et al. May 2008 A1
20080120342 Reed et al. May 2008 A1
20080120389 Bassali et al. May 2008 A1
20080126248 Lee et al. May 2008 A1
20080134043 Georgis Jun 2008 A1
20080137541 Agarwal et al. Jun 2008 A1
20080137736 Richardson et al. Jun 2008 A1
20080151817 Fitchett Jun 2008 A1
20080172441 Speicher et al. Jul 2008 A1
20080184119 Eyal et al. Jul 2008 A1
20080187283 Takahashi Aug 2008 A1
20080192818 DiPietro et al. Aug 2008 A1
20080195664 Maharajh et al. Aug 2008 A1
20080195744 Bowra et al. Aug 2008 A1
20080201705 Wookey Aug 2008 A1
20080205860 Holtman Aug 2008 A1
20080209534 Keronen et al. Aug 2008 A1
20080240144 Kruse et al. Oct 2008 A1
20080256105 Nogawa et al. Oct 2008 A1
20080263354 Beuque et al. Oct 2008 A1
20080279535 Haque et al. Nov 2008 A1
20080294453 Baird-Smith et al. Nov 2008 A1
20080298358 John et al. Dec 2008 A1
20080310454 Bellwood et al. Dec 2008 A1
20080310496 Fang Dec 2008 A1
20080313541 Shafton et al. Dec 2008 A1
20090031220 Tranchant et al. Jan 2009 A1
20090037959 Suh et al. Feb 2009 A1
20090048852 Burns et al. Feb 2009 A1
20090055546 Jung et al. Feb 2009 A1
20090060452 Chaudhri Mar 2009 A1
20090064341 Hartung et al. Mar 2009 A1
20090066839 Jung et al. Mar 2009 A1
20090097644 Haruki Apr 2009 A1
20090132599 Soroushian et al. May 2009 A1
20090132721 Soroushian et al. May 2009 A1
20090132824 Terada et al. May 2009 A1
20090136216 Soroushian et al. May 2009 A1
20090150406 Giblin Jun 2009 A1
20090150557 Wormley et al. Jun 2009 A1
20090165148 Frey et al. Jun 2009 A1
20090168795 Segel et al. Jul 2009 A1
20090169181 Priyadarshi et al. Jul 2009 A1
20090172201 Carmel et al. Jul 2009 A1
20090178090 Oztaskent Jul 2009 A1
20090196139 Bates et al. Aug 2009 A1
20090201988 Gazier et al. Aug 2009 A1
20090217317 White et al. Aug 2009 A1
20090226148 Nesvadba et al. Sep 2009 A1
20090228395 Wegner et al. Sep 2009 A1
20090265737 Issa et al. Oct 2009 A1
20090276636 Grab et al. Nov 2009 A1
20090290706 Amini et al. Nov 2009 A1
20090290708 Schneider et al. Nov 2009 A1
20090293116 DeMello Nov 2009 A1
20090303241 Priyadarshi et al. Dec 2009 A1
20090307258 Priyadarshi et al. Dec 2009 A1
20090307267 Chen et al. Dec 2009 A1
20090310933 Lee Dec 2009 A1
20090313544 Wood et al. Dec 2009 A1
20090313564 Rottler et al. Dec 2009 A1
20090316783 Au et al. Dec 2009 A1
20090328124 Khouzam et al. Dec 2009 A1
20090328228 Schnell Dec 2009 A1
20100005393 Tokashiki et al. Jan 2010 A1
20100040351 Toma et al. Feb 2010 A1
20100057928 Kapoor et al. Mar 2010 A1
20100058405 Ramakrishnan et al. Mar 2010 A1
20100074324 Qian et al. Mar 2010 A1
20100074333 Au et al. Mar 2010 A1
20100083322 Rouse Apr 2010 A1
20100094969 Zuckerman et al. Apr 2010 A1
20100095121 Shetty et al. Apr 2010 A1
20100106968 Mori et al. Apr 2010 A1
20100107260 Orrell et al. Apr 2010 A1
20100111192 Graves May 2010 A1
20100138903 Medvinsky Jun 2010 A1
20100142917 Isaji Jun 2010 A1
20100158109 Dahlby et al. Jun 2010 A1
20100161825 Ronca et al. Jun 2010 A1
20100166060 Ezure et al. Jul 2010 A1
20100186092 Takechi et al. Jul 2010 A1
20100189183 Gu et al. Jul 2010 A1
20100218208 Holden Aug 2010 A1
20100228795 Hahn Sep 2010 A1
20100235472 Sood et al. Sep 2010 A1
20100250532 Soroushian et al. Sep 2010 A1
20100290761 Drake et al. Nov 2010 A1
20100299522 Khambete et al. Nov 2010 A1
20100306249 Hill et al. Dec 2010 A1
20100313225 Cholas et al. Dec 2010 A1
20100313226 Cholas et al. Dec 2010 A1
20100319014 Lockett et al. Dec 2010 A1
20100319017 Cook Dec 2010 A1
20100332595 Fullagar et al. Dec 2010 A1
20110002381 Yang et al. Jan 2011 A1
20110016225 Park Jan 2011 A1
20110047209 Lindholm et al. Feb 2011 A1
20110055585 Lee Mar 2011 A1
20110060808 Martin et al. Mar 2011 A1
20110066673 Outlaw Mar 2011 A1
20110067057 Karaoguz et al. Mar 2011 A1
20110078440 Feng et al. Mar 2011 A1
20110080940 Bocharov Apr 2011 A1
20110082924 Gopalakrishnan Apr 2011 A1
20110096828 Chen et al. Apr 2011 A1
20110107379 Lajoie et al. May 2011 A1
20110116772 Kwon et al. May 2011 A1
20110126191 Hughes et al. May 2011 A1
20110129011 Cilli et al. Jun 2011 A1
20110135090 Chan et al. Jun 2011 A1
20110138018 Raveendran et al. Jun 2011 A1
20110142415 Rhyu Jun 2011 A1
20110145726 Wei et al. Jun 2011 A1
20110149753 Bapst et al. Jun 2011 A1
20110150100 Abadir Jun 2011 A1
20110153785 Minborg et al. Jun 2011 A1
20110153835 Rimac et al. Jun 2011 A1
20110184738 Kalisky et al. Jul 2011 A1
20110191439 Dazzi et al. Aug 2011 A1
20110191803 Baldwin et al. Aug 2011 A1
20110197237 Turner Aug 2011 A1
20110197267 Gravel et al. Aug 2011 A1
20110213827 Kaspar et al. Sep 2011 A1
20110222786 Carmel et al. Sep 2011 A1
20110225302 Park et al. Sep 2011 A1
20110225315 Wexler et al. Sep 2011 A1
20110225417 Maharajh et al. Sep 2011 A1
20110239078 Luby et al. Sep 2011 A1
20110246657 Glow Oct 2011 A1
20110246659 Bouazizi Oct 2011 A1
20110252118 Pantos et al. Oct 2011 A1
20110264530 Santangelo et al. Oct 2011 A1
20110268178 Park et al. Nov 2011 A1
20110276555 Fiero Nov 2011 A1
20110276695 Maldaner et al. Nov 2011 A1
20110283012 Melnyk Nov 2011 A1
20110291723 Hashimoto Dec 2011 A1
20110302319 Ha et al. Dec 2011 A1
20110305273 He et al. Dec 2011 A1
20110314176 Frojdh et al. Dec 2011 A1
20110314500 Gordon Dec 2011 A1
20120005368 Knittle et al. Jan 2012 A1
20120017282 Kang et al. Jan 2012 A1
20120023251 Pyle et al. Jan 2012 A1
20120036365 Kyslov et al. Feb 2012 A1
20120036544 Chen et al. Feb 2012 A1
20120066360 Ghosh Mar 2012 A1
20120093214 Urbach Apr 2012 A1
20120114302 Randall et al. May 2012 A1
20120124191 Lyon May 2012 A1
20120137336 Applegate et al. May 2012 A1
20120144117 Weare et al. Jun 2012 A1
20120144445 Bonta et al. Jun 2012 A1
20120166633 Baumback et al. Jun 2012 A1
20120170642 Braness et al. Jul 2012 A1
20120170643 Soroushian et al. Jul 2012 A1
20120170906 Soroushian et al. Jul 2012 A1
20120170915 Braness et al. Jul 2012 A1
20120173751 Braness et al. Jul 2012 A1
20120177101 van der Schaar Jul 2012 A1
20120179834 van der Schaar et al. Jul 2012 A1
20120201475 Carmel et al. Aug 2012 A1
20120201476 Carmel et al. Aug 2012 A1
20120233345 Hannuksela Sep 2012 A1
20120240176 Ma et al. Sep 2012 A1
20120254455 Adimatyam et al. Oct 2012 A1
20120260277 Kosciewicz Oct 2012 A1
20120263434 Wainner et al. Oct 2012 A1
20120265562 Daouk et al. Oct 2012 A1
20120278496 Hsu Nov 2012 A1
20120289147 Raleigh et al. Nov 2012 A1
20120294355 Holcomb et al. Nov 2012 A1
20120297039 Acuna et al. Nov 2012 A1
20120307883 Graves Dec 2012 A1
20120311094 Biderman Dec 2012 A1
20120314778 Salustri et al. Dec 2012 A1
20120317235 Nguyen et al. Dec 2012 A1
20130007223 Luby et al. Jan 2013 A1
20130013730 Li et al. Jan 2013 A1
20130019107 Grab et al. Jan 2013 A1
20130019273 Ma et al. Jan 2013 A1
20130041808 Pham et al. Feb 2013 A1
20130044821 Braness et al. Feb 2013 A1
20130046849 Wolf Feb 2013 A1
20130046902 Villegas Nuñez et al. Feb 2013 A1
20130051554 Braness et al. Feb 2013 A1
20130054958 Braness et al. Feb 2013 A1
20130055084 Soroushian et al. Feb 2013 A1
20130058480 Ziskind et al. Mar 2013 A1
20130061040 Kiefer et al. Mar 2013 A1
20130061045 Kiefer et al. Mar 2013 A1
20130064466 Carmel et al. Mar 2013 A1
20130066838 Singla et al. Mar 2013 A1
20130094565 Yang et al. Apr 2013 A1
20130097309 Ma et al. Apr 2013 A1
20130114944 Soroushian et al. May 2013 A1
20130124859 Pestoni et al. May 2013 A1
20130128962 Rajagopalan et al. May 2013 A1
20130152767 Katz et al. Jun 2013 A1
20130166580 Maharajh Jun 2013 A1
20130166765 Kaufman Jun 2013 A1
20130166906 Swaminathan et al. Jun 2013 A1
20130170561 Hannuksela Jul 2013 A1
20130170764 Carmel et al. Jul 2013 A1
20130173513 Chu et al. Jul 2013 A1
20130179199 Ziskind et al. Jul 2013 A1
20130179992 Ziskind et al. Jul 2013 A1
20130182952 Carmel et al. Jul 2013 A1
20130196292 Brennen et al. Aug 2013 A1
20130212228 Butler Aug 2013 A1
20130223812 Rossi Aug 2013 A1
20130226578 Bolton et al. Aug 2013 A1
20130226635 Fisher Aug 2013 A1
20130227081 Luby et al. Aug 2013 A1
20130227122 Gao Aug 2013 A1
20130297602 Soroushian et al. Nov 2013 A1
20130301424 Kotecha et al. Nov 2013 A1
20130311670 Tarbox et al. Nov 2013 A1
20130329781 Su et al. Dec 2013 A1
20140003516 Soroushian Jan 2014 A1
20140019593 Reznik et al. Jan 2014 A1
20140037620 Ferree et al. Feb 2014 A1
20140052823 Gavade et al. Feb 2014 A1
20140059156 Freeman, II et al. Feb 2014 A1
20140096171 Shivadas et al. Apr 2014 A1
20140101722 Moore Apr 2014 A1
20140115650 Zhang et al. Apr 2014 A1
20140119432 Wang et al. May 2014 A1
20140140396 Wang et al. May 2014 A1
20140140417 Shaffer et al. May 2014 A1
20140143301 Watson et al. May 2014 A1
20140143431 Watson et al. May 2014 A1
20140143440 Ramamurthy et al. May 2014 A1
20140177734 Carmel et al. Jun 2014 A1
20140189065 van der Schaar et al. Jul 2014 A1
20140201382 Shivadas et al. Jul 2014 A1
20140211840 Butt et al. Jul 2014 A1
20140211859 Carmel et al. Jul 2014 A1
20140241420 Orton-jay et al. Aug 2014 A1
20140241421 Orton-jay et al. Aug 2014 A1
20140247869 Su Sep 2014 A1
20140250473 Braness et al. Sep 2014 A1
20140258714 Grab Sep 2014 A1
20140269927 Naletov et al. Sep 2014 A1
20140269936 Shivadas et al. Sep 2014 A1
20140280763 Grab et al. Sep 2014 A1
20140297804 Shivadas et al. Oct 2014 A1
20140297881 Shivadas et al. Oct 2014 A1
20140355668 Shoham et al. Dec 2014 A1
20140359678 Shivadas et al. Dec 2014 A1
20140359679 Shivadas et al. Dec 2014 A1
20140359680 Shivadas et al. Dec 2014 A1
20140376720 Chan et al. Dec 2014 A1
20150006662 Braness Jan 2015 A1
20150026677 Stevens et al. Jan 2015 A1
20150049957 Shoham et al. Feb 2015 A1
20150063693 Carmel et al. Mar 2015 A1
20150067715 Koat et al. Mar 2015 A1
20150104153 Braness et al. Apr 2015 A1
20150117836 Amidei et al. Apr 2015 A1
20150117837 Amidei et al. Apr 2015 A1
20150139419 Kiefer et al. May 2015 A1
20150188758 Amidei et al. Jul 2015 A1
20150188842 Amidei et al. Jul 2015 A1
20150188921 Amidei et al. Jul 2015 A1
20150189017 Amidei et al. Jul 2015 A1
20150189373 Amidei et al. Jul 2015 A1
20150288996 Van Der Schaar et al. Oct 2015 A1
20150334435 Shivadas et al. Nov 2015 A1
20150373421 Chan Dec 2015 A1
20160048593 Soroushian et al. Feb 2016 A1
20160070890 Grab et al. Mar 2016 A1
20160112382 Kiefer et al. Apr 2016 A1
20160149981 Shivadas et al. May 2016 A1
20160219303 Braness et al. Jul 2016 A1
20170214947 Kiefer et al. Jul 2017 A1
20170223389 Soroushian et al. Aug 2017 A1
20170280203 Chan et al. Sep 2017 A1
20180060543 Grab et al. Mar 2018 A1
20180131980 Van Der Schaar et al. May 2018 A1
20180220153 Braness et al. Aug 2018 A1
Foreign Referenced Citations (166)
Number Date Country
2010203605 May 2015 AU
2749170 Jul 2010 CA
2749170 Jun 2016 CA
1169229 Dec 1997 CN
1221284 Jun 1999 CN
1235473 Nov 1999 CN
1629939 Jun 2005 CN
1723696 Jan 2006 CN
101252401 Aug 2008 CN
102549557 Jul 2012 CN
102549557 Sep 2015 CN
105072454 Nov 2015 CN
757484 Feb 1997 EP
813167 Dec 1997 EP
0936812 Aug 1999 EP
1056273 Nov 2000 EP
1187483 Mar 2002 EP
1420580 May 2004 EP
1553779 Jul 2005 EP
1657835 May 2006 EP
1718074 Nov 2006 EP
2384475 Nov 2011 EP
2486517 Aug 2012 EP
2486727 Aug 2012 EP
2507995 Oct 2012 EP
2564354 Mar 2013 EP
2616991 Jul 2013 EP
2617192 Jul 2013 EP
2661696 Nov 2013 EP
2661875 Nov 2013 EP
2661895 Nov 2013 EP
2486727 Mar 2014 EP
2564354 Mar 2014 EP
2616991 Mar 2014 EP
2617192 Mar 2014 EP
2716048 Apr 2014 EP
2721826 Apr 2014 EP
2486517 Jun 2014 EP
2751990 Jul 2014 EP
2807821 Dec 2014 EP
2751990 Apr 2015 EP
1125765 Aug 2009 HK
08046902 Feb 1996 JP
8111842 Apr 1996 JP
08163488 Jun 1996 JP
08287613 Nov 1996 JP
09037225 Feb 1997 JP
11164307 Jun 1999 JP
11275576 Oct 1999 JP
11328929 Nov 1999 JP
2000201343 Jul 2000 JP
02001043668 Feb 2001 JP
2001209726 Aug 2001 JP
2001346165 Dec 2001 JP
2002164880 Jun 2002 JP
2002170363 Jun 2002 JP
2002518898 Jun 2002 JP
2002218384 Aug 2002 JP
2003179597 Jun 2003 JP
2003250113 Sep 2003 JP
2004013823 Jan 2004 JP
2004515941 May 2004 JP
2004172830 Jun 2004 JP
2004187161 Jul 2004 JP
2004234128 Aug 2004 JP
2004304767 Oct 2004 JP
2005027153 Jan 2005 JP
2005080204 Mar 2005 JP
2006155500 Jun 2006 JP
2006524007 Oct 2006 JP
2007036666 Feb 2007 JP
2007174375 Jul 2007 JP
2007235690 Sep 2007 JP
2007535881 Dec 2007 JP
2008235999 Oct 2008 JP
2009530917 Aug 2009 JP
2012514951 Jun 2012 JP
2013513298 Apr 2013 JP
5200204 Jun 2013 JP
2014506430 Mar 2014 JP
5681641 Mar 2015 JP
5723888 May 2015 JP
2015167357 Sep 2015 JP
6038805 Dec 2016 JP
6078574 Feb 2017 JP
201763453 Mar 2017 JP
2018160923 Oct 2018 JP
100221423 Jun 1999 KR
100221423 Sep 1999 KR
2002013664 Feb 2002 KR
1020020064888 Aug 2002 KR
100669616 Sep 2007 KR
20110133024 Dec 2011 KR
1020130133830 Dec 2013 KR
101635876 Jul 2016 KR
101874907 Jul 2018 KR
2011007344 Feb 2012 MX
316584 Dec 2013 MX
146026 Dec 2010 SG
1995015660 Jun 1995 WO
1996013121 May 1996 WO
1997031445 Apr 1998 WO
1999010836 Mar 1999 WO
1999065239 Dec 1999 WO
2001004892 Jan 2001 WO
2001031497 May 2001 WO
2001050732 Jul 2001 WO
2001065762 Sep 2001 WO
2002001880 Jan 2002 WO
2002008948 Jan 2002 WO
2002035832 May 2002 WO
2002037210 May 2002 WO
2002054196 Jul 2002 WO
2003030000 Apr 2003 WO
2003096136 Nov 2003 WO
2004054247 Jun 2004 WO
2004097811 Nov 2004 WO
2004102571 Nov 2004 WO
2005050373 Jun 2005 WO
2006012398 Feb 2006 WO
2006018843 Feb 2006 WO
2006018843 Dec 2006 WO
2007044590 Apr 2007 WO
2007073347 Jun 2007 WO
2007113836 Oct 2007 WO
2008010275 Jan 2008 WO
2008042242 Apr 2008 WO
2008086313 Jul 2008 WO
2008090859 Jul 2008 WO
2007113836 Nov 2008 WO
2008135932 Nov 2008 WO
2007113836 Dec 2008 WO
2009065137 May 2009 WO
2010060106 May 2010 WO
2010080911 Jul 2010 WO
2010089962 Aug 2010 WO
2010108053 Sep 2010 WO
2010111261 Sep 2010 WO
2010122447 Oct 2010 WO
2010147878 Dec 2010 WO
2011042898 Apr 2011 WO
2011042900 Apr 2011 WO
2011068668 Jun 2011 WO
2011103364 Aug 2011 WO
2011132184 Oct 2011 WO
2011135558 Nov 2011 WO
2012035533 Mar 2012 WO
2012035534 Mar 2012 WO
2012035534 Jul 2012 WO
2012094171 Jul 2012 WO
2012094181 Jul 2012 WO
2012094189 Jul 2012 WO
2012035533 Aug 2012 WO
2012162806 Dec 2012 WO
2012171113 Dec 2012 WO
2013030833 Mar 2013 WO
2013032518 Mar 2013 WO
2013103986 Jul 2013 WO
2013111126 Aug 2013 WO
2013111126 Aug 2013 WO
2013032518 Sep 2013 WO
2013144942 Oct 2013 WO
2014145901 Sep 2014 WO
2014193996 Dec 2014 WO
2014193996 Feb 2015 WO
2015031982 Mar 2015 WO
Non-Patent Literature Citations (211)
Entry
Author Unknown, “Blu-ray Disc—Blu-ray Disc—Wikipedia, the free encyclopedia”, printed Oct. 30, 2008 from http://en.wikipedia.org/wiki/Blu-ray_Disc, 11 pgs.
Author Unknown, “Blu-ray Movie Bitrates Here—Blu-ray Forum”, printed Oct. 30, 2008 from http://forum.blu-ray.com/showthread.php?t=3338, 6 pgs.
Author Unknown, “MPEG-4 Video Encoder: Based on International Standard ISO/IEC 14496-2”, Patni Computer Systems, Ltd., printed Jan. 24, 2007, USA, pp. 1-15.
Author Unknown, “O'Reilly—802.11 Wireless Networks: The Definitive Guide, Second Edition”, printed Oct. 30, 2008 from http://oreilly.com/catalog/9780596100520, 2 pgs.
Author Unknown, “Tunneling QuickTime RTSP and RTP over HTTP”, Published by Apple Computer, Inc.: 1999 (month unknown) 6 pages.
Author Unknown, “Turbo-Charge Your Internet and PC Performance”, printed Oct. 30, 2008 from Speedtest.net—The Global Broadband Speed Test, 1 pg.
Author Unknown, “When is 54 Not Equal to 54? A Look at 802.11a, b and g Throughput”, printed Oct. 30, 2008 from www.oreillynet.com/pub/a/wireless/2003/08/08/wireless_throughput.html, 4 pgs.
Author Unknown, “White paper, The New Mainstream Wireless LAN Standard”, Broadcom Corporation, Jul. 2003, 12 pgs.
Blasiak, “Video Transrating and Transcoding: Overview of Video Transrating and Transcoding Technologies,”,Ingenient Technologies, TI Developer Conference, Aug. 6-8, 2002, 22 pgs.
Bross et al., “High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call)”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Document: JCTVC-L1003_v34, 12th Meeting: Geneva, CH, Jan. 14-23, 2013 (presented in three parts).
Casares et al., “Simplifying Video Editing Using Metadata”, DIS2002, 2002, pp. 157-166.
Deutscher, “IIS Transform Manager Beta—Using the MP4 to Smooth Task”, Retrieved from: https://web.archive.org/web/20130328111303/http://blog.johndeutscher.com/category/smooth-streaming, Blog post of Apr. 17, 2010, 14 pgs.
Gannes, “The Lowdown on Apple's HTTP Adaptive Bitrate Streaming”, GigaOM, Jun. 10, 2009, 12 pgs.
Garg et al., “An Experimental Study of Throughput for UDP and VoIP Traffic in IEEE 802.11b Networks”, Wireless Communications and Networkings, Mar. 2003, pp. 1748-1753.
Ghosh, “Enhancing Silverlight Video Experiences with Contextual Data”, Retrieved from: http://msdn.microsoft.com/en-us/magazine/ee336025.aspx, 2010, 15 pgs.
Griffith, Eric , “Wi-Fi Planet, The Wireless Digital Picture Fram Arrives”, printed May 4, 2007 from http://www.wi-fiplanet.com/news/article.php/3093141, Oct. 16, 2003, 3 pgs.
Inlet Technologies, “Adaptive Delivery to iDevices”, 2010, 2 pages.
Inlet Technologies, “Adaptive delivery to iPhone 3.0”, 2009, 2 pages.
Inlet Technologies, “HTTP versus RTMP”, 2009, 3 pages.
Inlet Technologies, “The World's First Live Smooth Streaming Event: The French Open”, 2009, 2 pages.
Kaspar et al., “Using HTTP Pipelining to Improve Progressive Download over Multiple Heterogeneous Interfaces”, IEEE ICC proceedings, 2010, 5 pgs.
Kim, Kyuheon “MPEG-2 ES/PES/TS/PSI”, Kyung-Hee University, Oct. 4, 2010, 66 pages.
Kozintsev et al., “Improving last-hop multicast streaming video over 802.11”, Workshop on Broadband Wireless Multimedia, Oct. 2004, pp. 1-10.
Kurzke et al., “Get Your Content Onto Google TV”, Google, Retrieved from: http://commondatastorage.googleapis.com/io2012/presentations/live%20to%20website/1300.pdf, 2012, 58 pgs.
Lang, “Expression Encoder, Best Practices for live smooth streaming broadcasting”, Microsoft Corporation, 2010, retrieved from http://www.streamingmedia.com/conferences/west2010/presentations/SMWest-12010-Expression-Encoder.pdf, 20 pgs.
Levkov, “Mobile Encoding Guidelines for Android Powered Devices”, Adobe Systems Inc., Addendum B, Dec. 22, 2010, 42 pgs.
Long et al., “Silver: Simplifying Video Editing with Metadata”, CHI 2003: New Horizons, Apr. 5-10, 2003, pp. 628-629.
Matroska, “Diagram”, Matroska, Technical/Info, Diagram, 2016, retrieved from https://www.matroska.org/technical/diagram/index.html on Jul. 20, 2017, 9 pages.
Matroska, “Specifications”, Matroska, Technical/Info, Specifications, Jun. 25, 2017, retrieved from https://www.matroska.org/technical/specs/index.html on Jul. 20, 2017, 20 pages.
Morrison, “EA IFF 85 Standard for Interchange Format Files”, Jan. 14, 1985, printed from http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/IFF.txt on Mar. 6, 2006, 24 pgs.
MSDN, “Adaptive streaming, Expression Studio 2.0”, Apr. 23, 2009, 2 pgs.
Nelson, “Arithmetic Coding + Statistical Modeling = Data Compression: Part 1—Arithmetic Coding”, Doctor Dobb's Journal, Feb. 1991, USA, pp. 1-12.
Nelson, “Smooth Streaming Deployment Guide”, Microsoft Expression Encoder, Aug. 2010, 66 pgs.
Nelson, Michael, “IBM's Cryptolopes”, Complex Objects in Digital Libraries Course, Spring 2001, Retrieved from http://www.cs.odu.edu/˜mln/teaching/unc/inls210/?method=display&pkg_name=cryptolopes.pkg&element_name=cryptolopes.ppt, 12 pages.
Noboru, “Play Fast and Fine Video on Web! codec”, Co. 9 No. 12, Dec. 1, 2003, pp. 178-179.
Noe, A., “Matroska File Format (under construction!)”, Retrieved from the Internet: URL:http://web.archive.org web/20070821155146/www.matroska.org/technical/specs/matroska.pdf [retrieved on Jan. 19, 2011], Jun. 24, 2007, 1-51.
Noe, Alexander, “AVI File Format”, http://www.alexander-noe.com/video/documentation/avi.pdf, Dec. 14, 2006, pp. 1-26.
Noe, Alexander, “Definitions”, Apr. 11, 2006, retrieved from http://www.alexander-noe.com/video/amg/definitions.html on Oct. 16, 2013, 2 pages.
Ooyala, “Widevine Content Protection”, Ooyala Support Center for Developers. Ooyala, Inc., 2013. Jun. 3, 2013. http://support.ooyala.com/developers/documentation/concepts/player_v3_widevine_integration.html.
Ozer, “The 2012 Encoding and Transcoding Buyers' Guide”, Streamingmedia.com, Retrieved from: http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/The-2012-Encoding-and-Transcoding-Buyers-Guide-84210.aspx, 2012, 8 pgs.
Pantos, “HTTP Live Streaming, draft-pantos-http-live-streaming-10”, IETF Tools, Oct. 15, 2012, Retrieved from http://tools.ietf.org/html/draft-pantos-http-live-streaming-10, 37 pgs.
Pantos, R, “HTTP Live Streaming: draft-pantos-http-live-streaming-06”, Published by the Internet Engineering Task Force (IETF), Mar. 31, 2011, 24 pages.
Papagiannaki et al., “Experimental Characterization of Home Wireless Networks and Design Implications”, INFOCOM 2006, 25th IEEE International Conference of Computer Communications, Proceedings, Apr. 2006, 13 pgs.
Phamdo, Nam, “Theory of Data Compression”, printed from http://www.data-compression.com/theoroy.html on Oct. 10, 2003, 12 pgs.
RGB Networks, “Comparing Adaptive HTTP Streaming Technologies”, Nov. 2011, Retrieved from: http://btreport.net/wp-content/uploads/2012/02/RGB-Adaptive-HTTP-Streaming-Comparison-1211-01.pdf, 20 pgs.
Schulzrinne, H, “Real Time Streaming Protocol 2.0 (RTSP): draft-ietfmmusic-rfc2326bis-27”, MMUSIC Working Group of the Internet Engineering Task Force (IETF), 296 pgs., Mar. 9, 2011, (presented in two parts).
Siglin, “HTTP Streaming: What You Need to Know”, streamingmedia.com, 2010, 15 pages.
Siglin, “Unifying Global Video Strategies, MP4 File Fragmentation for Broadcast, Mobile and Web Delivery”, Nov. 16, 2011, 16 pgs.
Tan, Yap-Peng et al., “Video transcoding for fast forward/reverse video playback”, IEEE ICIP, 2002, pp. I-713 to I-716.
Unknown, “AVI RIFF File Reference (Direct X 8.1 C++ Archive)”, printed from http://msdn.microsoft.com/archive/en-us/dx81_c/directx_cpp/htm/avirifffilereference.asp?fr . . . on Mar. 6, 2006, 7 pgs.
Unknown, “Entropy and Source Coding (Compression)”, TCOM 570, Sep. 1999, pp. 1-22.
Wang et al., “Image Quality Assessment: From Error Visibility to Structural Similarity”, IEEE Transactions on Image Processing, Apr. 2004, vol. 13, No. 4, pp. 600-612.
Wu, Feng et al., “Next Generation Mobile Multimedia Communications: Media Codec and Media Transport Perspectives”, In China Communications, Oct. 2006, pp. 30-44.
Zambelli, Alex, “IIS Smooth Streaming Technical Overview”, Microsoft Corporation, Mar. 2009.
International Preliminary Report for Application No. PCT/US2011/066927, Filed Dec. 22, 2011, dated Jul. 10, 2013, 13 pgs.
International Preliminary Report for International Application No. PCT/US2011/067243, International Filing Date Dec. 23, 2011, dated Jul. 10, 2013, 7 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2011/067243, International Filing Date Dec. 23, 2011, Search Completed Apr. 24, 2012, dated May 8, 2012, 8 pgs.
Supplementary European Search Report for EP Application 11774529, completed Jan. 31, 2014, 2 pgs.
Invitation to Pay Add'l Fees Rcvd for International Application PCT/US14/39852, dated Sep. 25, 2014, 2 Pgs.
“MPEG-4 File Format, Version 2”, Sustainability of Digital Formats: Planning for Library of Congress Collections, Retrieved from: https://www.loc.gov/preservation/digital/formats/fdd/fdd000155.shtml, Last updated Feb. 21, 2017, 8 pgs.
Microsoft Windows® XP Media Center Edition 2005: Features, printed May 9, 2007, from http://www.microsoft.com/windowsxp/mediacenter/evaluation/features.mspx, 4 pgs.
Office Action for Chinese Patent Application No. CN200880127596.4, dated May 6, 2014, 8 pgs.
Office Action for U.S. Appl. No. 13/223,210, dated Apr. 30, 2015, 14 pgs.
Office Action for U.S. Appl. No. 14/564,003, dated Apr. 17, 2015, 28 pgs.
Open DML AVI-M-JPEG File Format Subcommittee, “Open DML AVI File Format Extensions”, Version 1.02, Feb. 28, 1996, 29 pgs.
PC world.com, Future Gear: PC on the HiFi, and the TV, from http://www.pcworld.com/article/id,108818-page,1/article.html, printed May 4, 2007, from IDG Networks, 2 pgs.
Qtv—About BroadQ, printed May 11, 2009 from http://www.broadq.com/en/about.php, 1 pg.
Taxan, AVel LinkPlayer2 for Consumer, I-O Data USA—Products—Home Entertainment, printed May 4, 2007 from http://www.iodata.com/usa/products/products.php?cat=HNP&sc=AVEL&pld=AVLP2/DVDLA&ts=2&tsc, 1 pg.
Windows Media Center Extender for Xbox, printed May 9, 2007 from http://www.xbox.com/en-US/support/systemuse/xbox/console/mediacenterextender.htm, 2 pgs.
Windows® XP Media Center Edition 2005, “Experience more entertainment”, retrieved from http://download.microsoft.com/download/c/9/a/c9a7000a-66b3-455b-860b-1c16f2eecfec/MCE.pdf on May 9, 2007, 2 pgs.
“Adaptive Streaming Comparison”, Jan. 28, 2010, 5 pgs.
“Best Practices for Multi-Device Transcoding”, Kaltura Open Source Video, Printed on Nov. 27, 2013 from knowledge.kaltura.com/best-practices-multi-device-transcoding, 13 pgs.
“Container format (digital)”, printed Aug. 22, 2009 from http://en.wikipedia.org/wiki/Container_format_(digital), 4 pgs.
“Diagram | Matroska”, Dec. 17, 2010, Retrieved from http://web.archive.org/web/201 01217114656/http:l/matroska.org/technical/diagram/index.html on Jan. 29, 2016, 5 pages, Dec. 17, 2010.
“DVD—MPeg differences”, printed Jul. 2, 2009 from http://dvd.sourceforge.net/dvdinfo/dvdmpeg.html, 1 pg.
“DVD subtitles”, sam.zoy.org/writings/dvd/subtitles, dated Jan. 9, 2001, printed Jul. 2, 2009, 4 pgs.
“Final Committee Draft of MPEG-4 streaming text format”, International Organisation for Standardisation, Feb. 2004, 22 pgs.
“IBM Spearheading Intellectual Property Protection Technology for Information on the Internet; Cryptolope Containers Have Arrived”, May 1, 1996, Business Wire, Printed on Aug. 1, 2014 from http://www.thefreelibrary.com/IBM+Spearheading+Intellectual+Property+Protection+Technology+for...-a018239381, 6pg.
“Information Technology—Coding of audio-visual objects—Part 14: MP4 file format”, International Standard, ISO/IEC 14496-14, First Edition, Nov. 15, 2003, 18 pages.
“Information Technology—Coding of audio-visual objects—Part 17: Streaming text”, International Organisation for Standardisation, Feb. 2004, 22 pgs.
“Information technology—Coding of audio-visual objects—Part 18: Font compression and streaming”, ISO/IEC 14496-18, First edition Jul. 1, 2004, 26 pgs.
“Information technology—Generic coding of moving pictures and associated audio information: Systems”, International Standard ISO/IEC 13818-1, Second Edition, Dec. 1, 2000, 174 pages (presented in two parts).
“Information-Technology—Generic coding of moving pictures and associated audio: Systems, Recommendation H.222.0”, International Standard, ISO/IEC 13818-1, Draft 1209, Apr. 25, 1995, 151 pages.
“Information-Technology—Generic coding of moving pictures and associated audio: Systems, Recommendation H.222.0”, International Standard, ISO/IEC 13818-1, Draft 1540, Nov. 13, 1994, 161 pages.
“Innovation of technology arrived”, Retrieved from http://www.iodata.com/catalogs/AVLP2DVDLA_Flyer200505.pdf on May 30, 2013, 2 pgs., I-O Data, 2 pgs.
KISS Players, “KISS DP-500”, retrieved from http://www.kiss-technology.com/?p=dp500 on May 4, 2007, 1 pg.
“Matroska”, Wikipedia, Jul. 10, 2017, retrieved from https://en.wikipedia.org/wiki/Matroska on Jul. 26, 2017, 3 pages.
“Matroska Streaming | Matroska”, Retrieved from the Internet: URL:http://web.archive.org/web/201 0121711431 O/http://matroska.org/technical!streaming/index.html [retrieved on Jan. 29, 2016], Dec. 17, 2010.
“MovieLabs Specification for Next Generation Video—Version 1.0”, Motion Picture Laboratories, Inc., 2013, Retrieved from: http://movielabs.com/ngvideo/MovieLabs%20Specification%20for%20Next%20Generation%20Video%20v1.0.pdf, 5 pgs.
“MPEG-2”, Wikipedia, Jun. 13, 2017, retrieved from https://en.wikipedia.org/wiki/MPEG-2 on Jul. 20, 2017, 13 pages.
“MPEG-4 Part 14”, Wikipedia, Jul. 10, 2017, retrieved from https://en.wikipedia.org/wiki/MPEG-4_Part_14 on Jul. 20, 2017, 5 pages.
“Netflix turns on subtitles for PC, Mac streaming”, Yahoo! News, Apr. 21, 2010, Printed on Mar. 26, 2014, 3 pgs.
“OpenDML AVI File Format Extensions”, OpenDML AVI M-JPEG File Format Subcommittee, retrieved from www.the-labs.com/Video/odmlff2-avidef.pdf, Sep. 1997, 42 pgs.
“QCast Tuner for PS2”, printed May 11, 2009 from http://web.archive.org/web/20030210120605/www.divx.com/software/detail.php?ie=39, 2 pgs.
“Series H: Audiovisual and Multimedia Systems Infrastructure of audiovisual services—Coding of moving video; High efficiency video coding”, International Telecommunication Union, ITU-T H.265, Apr. 2015, 634 pages (presented in six parts).
“Smooth Streaming Client”, The Official Microsoft IIS Site, Sep. 24, 2010, 4 pages.
“Specifications | Matroska”, Retrieved from the Internet: URL:http://web.archive.org/web/201 00706041303/http:/1www.matroska.org/technical/specs/index.html [retrieved on Jan. 29, 2016, Jul. 6, 2010.
“Supported Media Formats”, Supported Media Formats, Android Developers, Printed on Nov. 27, 2013 from developer.android.com/guide/appendix/media-formats.html, 3 pgs.
“Text of ISO/IEC 14496-18/COR1, Font compression and streaming”, ITU Study Group 16—Video Coding Experts Group—ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 06), No. N8664, Oct. 27, 2006, 8 pgs.
“Text of ISO/IEC 14496-18/FDIS, Coding of Moving Pictures and Audio”, ITU Study Group 16—Videocoding Experts Group—ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 06), No. N6215, Dec. 2003, 26 pgs.
“Thread: SSME (Smooth Streaming Medial Element) config.xml review (Smooth Streaming Client configuration file)”, Printed on Mar. 26, 2014, 3 pgs.
“Transcoding Best Practices”, From movideo, Printed on Nov. 27, 2013 from code.movideo.com/Transcoding_Best_Practices, 5 pgs.
“Using HTTP Live Streaming”, iOS Developer Library, http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/UsingHTTPLiveStreaming/UsingHTTPLiveStreaming.html#//apple_ref/doc/uid/TP40008332-CH102-SW1, Feb. 11, 2014, 10 pgs.
“Video Manager and Video Title Set IFO file headers”, printed Aug. 22, 2009 from http://dvd.sourceforge.net/dvdinfo/ifo.htm, 6 pgs.
“What is a DVD?”, printed Aug. 22, 2009 from http://www.videohelp.com/dvd, 8 pgs.
“What is a VOB file”, http://www.mpucoder.com/DVD/vobov.html, printed on Jul. 2, 2009, 2 pgs.
“What's on a DVD?”, printed Aug. 22, 2009 from http://www.doom9.org/dvd-structure.htm, 5 pgs.
U.S. Appl. No. 13/224,298, “Final Office Action Received”, dated May 19, 2014, 26 pgs.
U.S. Appl. No. 13/905,804, “Non-Final Office Action Received”, U.S. Appl. No. 13/905,804, “Non-Final Office Action Received”, dated Jul. 25, 2014, 15 pgs.
Akhshabi et al., “An Experimental Evaluation of Rate-Adaptation Algorithms in Adaptive Streaming over HTTP”, MMSys'11, Feb. 23-25, 2011, 12 pgs.
Anonymous, “Method for the encoding of a compressed video sequence derived from the same video sequence compressed at a different bit rate without loss of data”, ip.com, ip.com No. IPCOM000008165D, May 22, 2002, pp. 1-9.
“IBM Closes Cryptolopes Unit,” Dec. 17, 1997, CNET News, Printed on Apr. 25, 2014 from http://news.cnet.com/IBM-closes-Cryptolopes-unit/2100-1001_3206465.html, 3 pages.
“Information Technology—Coding of Audio Visual Objects—Part 2: Visual” International Standard, ISO/IEC 14496-2, Third Edition, Jun. 1, 2004, pp. 1-724. (presented in three parts).
“OpenDML AVI File Format Extensions,” Sep. 1997, Version 1.02, XP-002179318, OpenDML AVI M-JPEG File Format Subcommitee, 42 pgs.
Broadq—The Ultimate Home Entertainment Software, printed May 11, 2009 from ittp://web.srchive.org/web/20030401122010/www.broadq.com/qcasttuner/, 1 pg.
Cloakware Corporation, “Protecting Digital Content Using Cloakware Code Transformation Technology”, Version 1.2, May 2002, pp. 1-10.
EP11774529 Supplementary European Search Report, completed Jan. 31, 2014, 2 pgs.
European Search Report Application No. EP 08870152, Completed May 19, 2011, dated May 26, 2011, 9pgs.
European Search Report for Application 11855103.5, completed Jun. 26, 2014, 9 pgs.
European Search Report for Application 11855237.1, search completed Jun. 12, 2014, 9 pgs.
European Supplementary Search Report for Application EP09759600, completed Jan. 25, 2011, 11 pgs.
Extended European Search Report for European Application EP10821672, completed Jan. 30, 2014, 3 pgs.
Extended European Search Report for European Application EP11824682, completed Feb. 6, 2014, 4 pgs.
Extended European Search Report for European Application No. 14763140.2, Search completed Sep. 26, 2016, dated Oct. 5, 2016, 9 Pgs.
Supplementary European Search Report for Application No. EP 04813918, Search Completed Dec. 19, 2012, 3 pgs.
Supplementary European Search Report for Application No. EP 10729513, completed Dec. 9, 2013, 4 pgs.
Supplementary European Search Report for Application No. EP 10834935, International Filing Date Nov. 15, 2010, Search Completed May 27, 2014, 9 pgs.
Federal Computer Week, “Tool Speeds Info to Vehicles”, Jul. 25, 1999, 5 pages.
HTTP Live Streaming Overview, Networking & Internet, Apple, Inc., Apr. 1, 2011, 38 pages.
IBM Corporation and Microsoft Corporation, “Multimedia Programming Interface and Data Specifications 1.0”, Aug. 1991, printed from http://www.kk.iij4u.or.jp/˜kondo/wave/mpidata.txt on Mar. 6, 2006, 100 pgs.
InformationWeek, “Internet on Wheels”, InformationWeek: Front End: Daily Dose, Jul. 20, 1999, Printed on Mar. 26, 2014, 3 pgs.
International Preliminary Report on Patentability for International Application PCT/US14/30747, dated Sep. 15, 2015, dated Sep. 24, 2015, 6 Pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2008/083816, dated May 18, 2010, 6 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2011/068276, dated Mar. 4, 2014, 23 pgs.
International Preliminary Report on Patentability for International Application PCT/US2013/043181, dated Dec. 31, 2014, dated Jan. 8, 2015, 11 Pgs.
International Preliminary Report on Patentability for International Application PCT/US2014/039852, dated Dec. 1, 2015, dated Dec. 5, 2015, 8 Pgs.
International Search Report and Written Opinion for International Application No. PCT/US07/63950, completed Feb. 19, 2008; dated Mar. 19, 2008, 9 pgs.
International Search Report and Written Opinion for International Application No. PCT/US08/87999, completed Feb. 7, 2009, dated Mar. 19, 2009, 6 pgs.
International Search Report and Written Opinion for International Application No. PCT/US09/46588, completed Jul. 13, 2009, dated Jul. 23, 2009, 7 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2004/041667, Completed Jun. 20, 2007, 6 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2005/025845, completed Feb. 5, 2007 and dated May 10, 2007, 8 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2008/083816, completed Jan. 10, 2009, dated Jan. 22, 2009, 7 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2010/020372, Completed Feb. 10, 2009, dated Mar. 1, 2010, 8 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2010/56733, Completed Jan. 3, 2011, dated Jan. 14, 2011, 9 pgs.
International Search Report and Written Opinion for International Application No. PCT/US2013/043181, completed Nov. 27, 2013, dated Dec. 6, 2013, 12 pgs.
International Search Report and Written Opinion for International Application PCT/US14/30747, completed Jul. 30, 2014, dated Aug. 22, 2014, 7 Pgs.
International Search Report and Written Opinion for International Application PCT/US14/39852, completed Oct. 21, 2014, dated Dec. 5, 2014, 11 pgs.
International Search Report and Written Opinion for International Application PCT/US2011/066927, completed Apr. 3, 2012, dated Apr. 20, 2012, 14 pgs.
International Search Report and Written Opinion for International Application PCT/US2011/067167, completed Jun. 19, 2012, dated Jul. 2, 2012, 11 pgs.
International Search Report and Written Opinion for International Application PCT/US2011/068276, completed Jun. 19, 2013, dated Jul. 8, 2013, 24 pgs.
International Search Report and Written Opinion for PCT/US2013/020572, Completed Mar. 19, 2013, dated Apr. 29, 2013, 10 pgs.
ITS International, “Fleet System Opts for Mobile Server”, Aug. 26, 1999, Printed on Oct. 21, 2011 from http://www.itsinternational.com/News/article.cfm?recordID=547, 2 pgs.
Lifehacker—Boxqueue Bookmarklet Saves Videos for Later Boxee Watching, printed Jun. 16, 2009 from http://feeds.gawker.com/˜r/lifehacker/full/˜3/OHvDmrlgZZc/boxqueue-bookmarklet-saves-videos-for-late-boxee-watching, 2 pgs.
Linksys Wireless-B Media Adapter Reviews, printed May 4, 2007 from http://reviews.cnet.com/Linksys_Wireless_B_Media_Adapter/4505-6739_7-30421900.html?tag=box, 5 pgs.
Linksys, KISS DP-500, printed May 4, 2007 from http://www.kiss-technology.com/?p=dp500, 2 pgs.
Linksys® : “Enjoy your digital music and pictures on your home entertainment center, without stringing wires!”, Model No. WMA 11B, printed May 9, 2007 from http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US/Layout&cid=1115416830950&p.
Microsoft Corporation, “Chapter 8, Multimedia File Formats” 1991, Microsoft Windows Multimedia Programmer's Reference, 3 cover pgs., pp. 8-1 to 8-20.
Microsoft Media Platform: Player Framework, “Microsoft Media Platform: Player Framework v2.5 (formerly Silverlight Media Framework)”, May 3, 2011, 2 pages.
Microsoft Media Platform: Player Framework, “Silverlight Media Framework v1.1”, Jan. 2010, 2 pages.
Microsoft Windows® XP Media Center Edition 2005, Frequently asked Questions, printed May 4, 2007 from http://www.microsoft.com/windowsxp/mediacenter/evaluation/faq.mspx, 6 pgs.
U.S. Appl. No. 13/905,804, “Notice of Allowance,” dated Aug. 12, 2015, 8 pgs.
Final draft ETSI ES 202 109, V1.1.1, ETSI Standard, Terrestrial Trunked Radio (TETRA); Security; Synchronization mechanism for end-to-end encryption, Oct. 2002, 17 pgs.
International Preliminary Report on Patentability for International Application PCT/US2011/067167, dated Feb. 25, 2014, 8 pgs.
International Telecommunication Union, Telecommunication Standardization Sector of ITU, H.233, Line Transmission of Non-Telephone Signals, Confidentiality System for Audiovisual Services, ITU-T Recommendation H.233, Mar. 1993, 18 pgs.
3GPP TS 26.247, V1.3.0, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects Transparent end-to-end Packet-switches Streaming Services (PSS);, Progressive Download and Dynamic Adaptive Streaming over HTTP (3GP-DASH) (Release 10), Mar. 2011, 72 pgs.
“Draft CR: Trick Mode for HTTP Streaming”, 3GPP TSG-SA4 Meeting #58, Apr. 26-30, 2010, Vancouver, Canada, S4-100237, 3 pgs.
“Specifications Matroska”, Dec. 17, 2010, retrieved on Mar. 2, 2018, 12 pages.
Adams et al, “Will http adaptive streaming become the dominant mode of video delivery in cable networks?”, https://www.nctatechnicalpapers.com/Paper/2011/2011-will-http-adaptive-streaming-become-the-dominant-mode-of-video-delivery-in-cable-networks-, 10 pgs.
Adhikari et al., “Unreeling Netflix: Understanding and Improving Multi-CDN Movie Delivery”, 2012 Proceedings IEEE InfoCom, Mar. 25-30, 2012, Orlando, Florida, 9 pgs.
Adzic et al, “Optimized Adaptive HTTP Streaming for Mobile Devices”, International Society for Optics and Photonics, Applications of Digital Image Processing XXXIV, vol. 8135, Sep. 2011, p. 81350T, 10 pgs.
Bloom et al., “Copy Protection for DVD Video”, Proceedings of the IEEE, vol. 87, No. 7, Jul. 1999, pp. 1267-1276.
Concolato et al., “Live HTTP Streaming of Video and Subtitles within a Browser”, MMSys 2013, Feb. 26-Mar. 1, 2013, Oslo, Norway, 5 pgs.
Eskicioglu et al., “An Integrated Approach to Encrypting Scalable Video”, Proceedings IEEE International Conference on Multimedia and Expo, Aug. 26-29, 2002, Lausanne, Switzerland, 4 pgs.
Fecheyr-Lippens, “A Review of HTTP Live Streaming”, Jan. 25, 2010, pp. 1-37.
Hartung et al., “DRM Protected Dynamic Adaptive HTTP Streaming”, MMSys 2011 Proceedings of the Second Annual ACM Conference on Multimedia Systems, San Jose, California, Feb. 23-25, 2011, pp. 277-282.
Hurtado Guzman et al., “Development and Implementation of an Adaptive HTTP Streaming Framework for H264/MVC Coded Media”, Politecnico di Torino, Nov. 2010, 108 pgs.
Hwang et al., “Efficient and User Friendly Inter-domain Device Authentication/Access control for Home Networks”, Proceedings of the 2006 International Conference on Embedded and Ubiquitous Computing, Seoul, Korea, Aug. 1-4, 2006, pp. 131-140.
Li et al, “Content-Aware Playout and Packet Scheduling for Video Streaming Over Wireless Links”, IEEE Transactions on Multimedia, vol. 10, No. 5, Aug. 2008, pp. 885-895.
Liu et al., “A Formal Framework for Component Deployment”, OOPSLA 2006, Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Language, and Applications, Portland, Oregon, Oct. 22-26, 2006, pp. 325-344.
Moscoso, “Interactive Internet TV Architecture Based on Scalable Video Coding”, Instituto Superior Techico, Universidad Technica de Lisboa, May 2011, 103 pgs.
Oyman et al, “Quality of Experience for HTTP Adaptive Streaming Services”, IEEE Communications Magazine, Apr. 2012, vol. 50, No. 4, pp. 20-27, DOI: 10.1109/MCOM.2012.6178830.
Ozer, Jan, “Adaptive Streaming in the Field”, Streaming Media, Dec. 2010-Jan. 2011, pp. 36-47.
Padiadpu, Rashmi, “Towards Mobile Learning: A SCORM Player for the Google Android Platform”, Master Thesis, Hamburg University of Applied Sciences, 2008, 66 pgs.
Peek, David, “Consumer Distributed File Systems”, Dissertation, Doctor of Philosophy, Computer Science and Engineering, The University of Michigan, 2009, 118 pgs.
Rosenberg et al., “Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)”, Network Working Group, RFC 3840, Aug. 2004, 36 pgs.
Silvio, “adaptive HTTP streaming for open codecs”, Oct. 9, 2010, retrieved on: Mar. 2, 2018, 15 pgs.
Tripathi et al, “Improving Multimedia Streaming with Content-Aware Video Scaling”, Retrieved from: http://digitalcommons.wpi.edu/computerscience-pubs/96, 2001, 17 pgs.
Venkatramani et al., “Securing Media for Adaptive Streaming”, Multimedia 2003 Proceedings of the Eleventh ACM International Conference on Multimedia, Nov. 2-8, 2003, Berkeley, California, 4 pgs.
International Preliminary Report on Patentability for International Application PCT/US2010/020372, Completed Oct. 6, 2011, 6 Pgs.
Grooveshark—Features, All Your Music in One Place, Wayback Machine, 2008, printed Aug. 15, 2016 from https://web.archive.org/web/20081013115837/http://www,grooveshark.com/features, 6 pgs.
“Free music was never so cool before Grooveshark”, Wayback Machine, Grooveshark, Startup Meme, May 31, 2008, printed Aug. 15, 2016 from https://web.archive.org/web/20080601173852/http://startupmeme.com/2008/05/31/free-music-was-never-so-wool-before-grooveshark/, 2 pgs.
“Instantly convert songs into tiny URLs with TinySong”, Wayback Machine, Startup Memo Technology Blog, Jul. 1, 2008, printed Aug. 15, 2016 from https://seb.archive.org/web/2008919133853/http://startupmeme.com/instantly-convert-songs-into-tiny-urls-with-tinysong/, 4pgs.
“Twitpic's Future”, Twitpic, Oct. 25, 2014, Retrieved from: https://web.archive.org/web/20150521043642/https://blog.twitpic.com/index.html, 12 pgs.
“What is Fliggo?”, Wayback Machine, printed Aug. 15, 2016 from https://web.archive.org/web/20080623065120/http://www.fliggo.com/about, 3 pgs.
Catone, Josh, “10 Ways to Share Music on Twitter”, Mashable, May 29, 2009, Retrieved from: https://mashable.com/2009/05/29/twitter-music/#vJCdrVzNOOqx, 5 pgs.
Chesler, Oliver, “TinySong is like TinyURL for music”, wire to the ear, Jun. 30, 2008, printed Aug. 15, 2016 from https://web.archive.org/web/20080907100459/http://www.wiretotheear.com/2008/06/30/tinysongis-like-tinyurl-for-music, 8 pgs.
Lew et al., “Content-Based Multimedia Information Retrieval: State of the Art and Challenges”, ACM Transactions on Multimedia Computing, Communications and Applications, Feb. 2006, vol. 2, No. 1, pp. 1-19.
Lomas et al., “Educause Learning Initiative, Collaboration Tools”, Educause Learning Initiative, Aug. 2008, ELI Paper 2: 2008, 11 pgs.
Montes, “Muusic: mashup de servicios web musicales”, Ingenieria Tecnica en Informatica de Gestion, Nov. 2008, 87 pgs.
Van Grove, Jennifer, “Top 5 Ways to Share Videos on Twitter”, Mashable, May 23, 2009, Retrieved from: https://mashable.com/2009/05/23/video-for-twitter/#Jvn9IIYy6qqA, 6 pgs.
Weng, “A Multimedia Social-Networking Community for Mobile Devices”, 2007, 30 pgs.
International Preliminary report on Patentability for International Application No. PCT/US2005/025845, dated Jun. 19, 2007, 6 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2007/063950, Report Completed Dec. 18, 2009, 3 pgs.
International Preliminary Report on Patentability for International Application No. PCT/US2010/56733, dated Jun. 5, 2012, 5 pgs.
Supplementary European Search Report for EP Application No. 07758499.3, Report Completed Jan. 25, 2013, 8 pgs.
Bocharov et al., “Portable encoding of audio-video objects: The Protected Interoperable File Format (PIFF)”, Microsoft Corporation, Sep. 8, 2009, Revised: Mar. 9, 2010, 32 pgs.
Lian et al., “Efficient video encryption scheme based on advanced video coding”, Multimed. Tools Appl. vol. 38, 2008, pp. 75-89.
Miras, “On Quality Aware Adaptation of Internet Video”, University of London, PhD dissertation, 2004, 181 pgs.
Proceedings of the Second KDD Workshop on Large-Scale Recommender Systems and the Netflix Prize Competition, Las Vegas, Nevada, Aug. 24, 2008, 34 pgs.
Bell et al., “The BellKor 2008 Solution to the Netflix Prize”, Netflix Prize, 2008, 21 pgs.
Toscher et al., “The BigChaos Solution to the Netflix Prize 2008”, Netflix Prize, Nov. 25, 2008, 17 pgs.
Related Publications (1)
Number Date Country
20180007451 A1 Jan 2018 US
Continuations (2)
Number Date Country
Parent 14810345 Jul 2015 US
Child 15651817 US
Parent 13905852 May 2013 US
Child 14810345 US