Wireless Media Streaming System

By implementing streaming between media devices and client devices, adopting multiple streaming protocols, and format conversion and playback mode adaptation, the problem of seamless access and playback media programs between different devices is solved, and digital copyright protection and efficient streaming media transmission is achieved.

JP7656650B2Active Publication Date: 2025-04-03ADEIA MEDIA SOLUTIONS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023070031
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2012-09-04
Filing Date
2023-04-21
Publication Date
2025-04-03
Estimated Expiration
2033-09-03

AI Technical Summary

Technical Problem

The prior art is difficult to seamlessly access and play media programs between different devices, especially while protecting digital copyrights while providing a consistent user experience.

Method used

By implementing streaming between media devices and client devices, multiple streaming protocols (such as TiVo Multi-Room Streaming and HTTP Live Streaming) are adopted, and format conversion and playback mode adaptation are performed during transmission, while digital rights verification and encryption are performed.

Benefits of technology

It realizes seamless media program access and playback between different devices, ensuring the protection of digital copyright, while providing flexible playback mode and efficient streaming.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007656650000001
    Figure 0007656650000001
  • Figure 0007656650000002
    Figure 0007656650000002
  • Figure 0007656650000003
    Figure 0007656650000003
Patent Text Reader

Abstract

To provide a radio media stream distribution system.SOLUTION: A method causes a stream distribution device to transmit a first part of a media program to a client device while the stream distribution device performs stream distribution of the media program from a multimedia device to the client device, and includes: causing the first part to undergo code conversion from a first format into a second different format to cause the stream distribution device to adapt the first part to a first reproduction mode of the client device; receiving an instruction of a user command to specify the second different reproduction mode from the client device; transmitting the second different part of the media program to the client device, and performing code conversion of the second part from the first format into the second format to cause the stream distribution device to adapt the second part to the second reproduction mode of the client device.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to processing of media data, in particular to wireless media stream delivery. [Background technology]

[0002] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued, and thus, unless otherwise expressly stated, it should not be assumed that any of the approaches described in this section are prior art by virtue of their inclusion in this section. Summary of the Invention [Problem to be solved by the invention]

[0003] Media devices used in homes or other locations can be used for a variety of purposes. For example, digital video recorders can be used to receive programming from over-the-air broadcasts, satellite broadcasts, cable channels, Internet-based video downloads, stored shows, etc. Personal computing devices such as smartphones, tablet computers, laptops, desktops, etc. can be used to perform Internet downloads and playback, social networking, word processing, e-mailing, etc. It is often difficult for a user to use one device to access media programs on a different device, even if both devices can be connected in close proximity at the same location, or even if the same user can control them more or less over a network. In addition, because many media programs are not copyright-free and are subject to various statutory restrictions on the playback, recording, and distribution of digital media, it is often difficult to access and enjoy such media programs using a regular menu interface in a consistent manner that protects the fundamental digital rights of these media programs. [Brief description of the drawings]

[0004] [Figure 1] 1 illustrates an example of an arrangement for performing streaming of multimedia content between a multimedia device and a client device, according to one embodiment. [Diagram 2] 1 illustrates an example network configuration according to one embodiment. [Diagram 3] 1 illustrates an example of a stream in accordance with one or more embodiments. [Figure 4] 1 illustrates an example of a digital video recorder capable of performing automatic speed control in accordance with one or more embodiments. [Diagram 5]1 illustrates an example process flow according to one or more embodiments. [Figure 6] FIG. 1 shows a block diagram illustrating a system in which embodiments of the present invention may be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] The present invention is illustrated by way of example, and not by way of limitation, in the accompanying drawings, in which like reference numerals refer to like elements. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

[0006] Several features are described such that each can be used independently or in any combination with other features. However, any individual feature may not address any of the above problems, or may address only one of the above problems. Some of the above problems may not be fully addressed by any of the features described herein. Although headings are provided, information pertaining to a particular heading that is not found in the section having that heading may be found elsewhere in the specification.

[0007] Specific features are described under the following headings: 1.0 Feature Overview 2.0 System Architecture 3.0 Streaming Media Programs 4.0 Examples of Multimedia Devices 5.0 Process Flow Examples 6.0 Hardware Overview 7.0 Extensions and Variations

[0008] 1.0 Feature Overview The wireless media stream delivery techniques described herein may be implemented with software components, hardware components, or a combination of software and hardware components.

[0009] In one embodiment, a streaming device comprises one or more processors and a computer-readable storage medium comprising instructions that, when executed by the one or more processors, cause a media program to be streamed from a multimedia device to a client device. In one embodiment, while the streaming device streams a media program from a multimedia device to a client device, the streaming device performs the steps of: transmitting a first portion of the media program to the client device, the first portion being transcoded from a first format to a second, different format, the first portion adapted to a first playback mode of the client device; receiving from the client device an indication of a user command specifying a second, different playback mode of the client device; and transmitting a second, different portion of the media program to the client device, the second portion being transcoded from the first format to the second format, the second portion adapted to the second playback mode of the client device. As used herein, the term "playback mode of a client device" refers to a playback mode of a media program set by a user or by default at a client device.

[0010] In one embodiment, the first playback mode and the second playback mode represent two different operating modes among a plurality of different operating modes, the plurality of different operating modes comprising two or more of: one or more normal playback modes, one or more fast forward playback modes, one or more rewind playback modes, one or more side loading modes, one or more other non-playback modes, etc.

[0011] In one embodiment, the second format is configured to be decoded by the client device.

[0012] In one embodiment, the streaming device is further configured to receive a stream request to stream a second media program and determine whether the client device possesses the digital rights to perform one or more operations specified in the stream request to stream the second media program. In one embodiment, the streaming device is further configured to reject the stream request to stream the second media program in response to determining that the client device does not possess the digital rights to perform one or more operations specified in the stream request to stream the second media program.

[0013] In one embodiment, the streaming device is further configured to perform the steps of receiving one or more certificates of at least one of the multimedia devices and / or the client devices, and establishing one or more trust levels corresponding to at least one of the multimedia devices and / or the client devices based at least in part on the received certificates.

[0014] In one embodiment, the streaming device is configured to perform the steps of performing one or more cryptographic operations associated with one or more of the first portion of the media program, the second portion of the media program, etc.

[0015] In one embodiment, the user command is one of the plurality of user commands that change a playback mode entered by a user of the client device while the media program is being streamed.

[0016] In one embodiment, the network connection between the streaming device and the client device comprises at least one wireless network link.

[0017] In one embodiment, while the media program is being streamed from the multimedia device to the client device, the streaming device is configured to perform side loading of a second media program onto the client device or one of the other client devices.

[0018] In one embodiment, the streaming device is configured to perform the step of streaming media content from the client device to one of the multimedia devices, other multimedia devices, etc., while the media program is being streamed from the multimedia device to the client device.

[0019] In one embodiment, the streaming device is configured such that while the streaming device is streaming the media program from the multimedia device to the client device, the streaming device performs the step of simultaneously streaming one or more additional media programs to one or more client devices.

[0020] In one embodiment, at least one of the first portion or the second portion comprises one or more tags. Tags can be embedded in the media data, media files, media streams, etc., so that a receiving device can extract the tags and perform one or more actions related to the tags. Tags can be inserted into the media data, media files, media streams, etc., by a source device or an intermediate device, so that a receiving device can extract the tags and perform one or more actions related to the tags.

[0021] In one embodiment, the streaming device is configured to perform the step of maintaining a media data buffer for video frames within a time interval of the media program.

[0022] 2.0 System Architecture Although a particular computer architecture is described herein, other embodiments of the invention are applicable to any architecture that can be used to perform the functions described herein.

[0023] FIG. 1 illustrates a multimedia device (e.g., 108-1 through 108-N, where N is a block diagram of a multimedia device according to one embodiment. 2 or greater)) and client devices (for example, 106-1 to 106-M (where M is 2 1 illustrates an example of a configuration for performing streaming of multimedia content between one or more of a first and a second (one or more integers greater than or equal to 102). The network (104-1) transmits one or more of the multimedia devices (108-1 to 108-N) to one and performing one or more stream transport operations including, but not limited to, receiving one or more source media streams, converting the one or more source media streams into one or more client media streams, and transmitting the one or more source media streams to one or more of the multimedia devices (108-1 through 108-N) via a second network (104-2). The client media stream can be configured to:

[0024] Examples of multimedia devices include digital video recorders (DVRs), multimedia players, and The multimedia devices may include, but are not limited to, any of a home-based computing device, media server, set-top box, digital media receiver, etc., configured to stream media content to a receiving device over a network connection. In some embodiments, all of the multimedia devices (108-1 through 108-N) of FIG. 1 may be located in multiple rooms of a building, such as a home, and connected to one or more local area networks (LANs). In some embodiments, the multimedia devices of FIG. At least two of the multimedia devices (108-1 to 108-N) may be located in different locations and connected to different LANs by a wide area network (WAN) connection. Examples of client devices include tablet computers, handheld devices (e.g., cell phones, etc.), laptops, e-readers, personal computing devices, and the like. Examples of networks include, but are not limited to, any of the following: a local area network, a wired or wireless network, a Bluetooth network, a wide area network, the Internet, an intranet, an extranet, a dedicated link such as a serial link, an HDMI connection and a USB connection, a combination of different networks and links, etc. In one embodiment, the first network (104-1) and the second network (104-2) are The second network (104-2) can constitute one home network. In some embodiments, one or more of the first network (104-1) and the second network (104-2) may be a wireless network link.

[0025] 2 illustrates an example of a network configuration according to one embodiment. In the illustrated embodiment, a stream delivery device (102) is connected to a router (202) by a first connection (204-1). The streaming device (102) may be operatively linked to a multimedia device (e.g., 108-1) by a second connection (204-2) provided by the router (202). The streaming device (102) may be operatively linked to a client device (e.g., 106-1) by a third connection (104-3) provided by the router (202). In some implementations, the multimedia device (108-1) may be a DVR, the client device (106-1) may be a tablet computer, and In a specific example of these non-limiting embodiments, the client (106-1) can be connected to the router via a wireless connection. Stream distribution device (102) and multimedia Device (108-1) may be connected to router (202) with a hardwired connection. In various implementations, connections (104-1 through 104-3) shown in FIG. 2 may be all wired or all wireless, or a combination of wired and wireless.

[0026] 3.0 Streaming of Media Programs One of the multimedia devices (108-1 to 108-N), the streaming device (102), the client devices (106-1 to 106-M), etc. One or more of the streaming devices may be configured to support one or more (e.g., multi-room) streaming protocols that enable the devices to stream and share media over a network connection. As shown in FIG. 3, the streaming device (102) supports a first type of streaming protocol and / or a data frame. The first media program is downloaded from the multimedia device (108-1) using the format 3, receiving a first stream (e.g., 300-1 of FIG. 3) of a media program based on the content data received in the first stream (300-1), generating a second stream (e.g., 300-2 of FIG. 3) of a media program based on the content data received in the first stream (300-1), and transmitting the second stream (e.g., 300-2 of FIG. 3) according to a second type of stream delivery protocol and / or device. The second stream (300-2) of the media program is then sent to the client using the In some embodiments, the first The first type of streaming protocol may be the same as the second type of streaming protocol. In some implementations, the streaming device (e.g., 102 ) may use or simultaneously support at least two different types of streaming protocols (e.g., a first type of streaming protocol may be different from a second type of streaming protocol). Specific examples of streaming protocols include TiVo Multi-Room Streaming (MRS), HTTP Live Streaming (HTTPS), and HTTP Streaming Protocol (FTP). Streaming (HLS), etc., but are not limited to these. In a non-embodied example, the media content may be multimedia using the MRS protocol. The media content can be streamed from a media device (e.g., 108-1) to a streaming device (102), where the media content is streamed using the HLS protocol. The content may also be streamed from the streaming device (102) to a client device (e.g., 106-1).

[0027] As used herein, the "content in a media program stream" may be the same as or different from the content of the media program from which the stream is derived or generated. In one embodiment, when the media program is streamed for playback or recording in a normal playback mode, the content in the corresponding stream may be the same as the content of the media program. In another embodiment, when the media program is streamed for playback or recording in a mode different from the normal playback mode, the content in the corresponding stream may be different from the content of the media program (e.g., downsampled / upsampled from the normal playback media program, a version adapted for trick play modes, etc.). For example, in a playback involving trick play modes during fast forward or rewind, the content in the corresponding stream may be a subsampled and / or time-reversed version of the content of the media program.

[0028] In some implementations, the streams described herein can be configured to transmit media program content whose content varies dynamically from the content of the media program and is specifically adapted for a particular playback mode at a client device, including, but not limited to, either a normal playback mode at various times, a trick play mode at various times, etc. Thus, at a particular point in the stream delivery, the stream can carry a portion of the content of the media program without skipping or repeating, but at a different point in the stream delivery, the stream can carry a portion that has been modified / generated / adapted (e.g., by skipping, repeating, downsampling, upsampling, rate matching, etc.) that is different from the portion of the media program from which the modified / generated portion is derived. In some implementations, the stream between a multimedia device (e.g., 108-1) and the stream delivery device (102) may carry this content of this media program without any skipping or repetition, but the corresponding stream between the stream delivery device (102) and the client device (106-1) (e.g., a stream corresponding to the stream between the multimedia device 108-1 and the stream delivery device 102) may carry a modified / generated / adapted portion (e.g., by skipping, repetition, downsampling, upsampling, rate adaptation, etc.) that differs from the corresponding portion of the media program from which the modified / generated / adapted portion is derived.

[0029] The rate at which a media program is streamed between devices can be the same as the normal playback rate or can be different than the normal playback rate of the media program. A streaming device (e.g., 102) can stream a particular length of media (e.g., 2 hours) at a rate that is equal to or different from the normal playback rate of the media program. - Transfer the program from the multimedia device (e.g. 108-1) to the client device. The device (e.g., 106-1) may be configured to detect time periods shorter than this particular length of time (e.g., 10% of 2 hours, a few minutes, a few seconds, etc.) or longer than this particular length of time (e.g., 200% of 2 hours, 3 hours, etc.). In some implementations, the streaming device (102) may stream two or more streams, each of which may support one or more operations. The two or more streams may be configured to be prioritized based on one or more factors including, but not limited to, the playback mode. A fast forward playback mode may be given the highest priority. A normal playback mode may be given the next highest priority. Downloads without playback may be given lower priorities than these priorities. Side loading modes may be given some of the lowest priorities. These one or more factors may include, but are not limited to, the type of media program being streamed, etc. For example, a stream that is side loading a media program onto a client device may be given a lower priority, which may result in a longer stream time for another stream that is streaming a live broadcast, media program, etc., that should be played in normal playback mode on this client device, another client device, etc.

[0030] Configure this streaming device (102) to support simultaneous The maximum number of streams can be 1, 2, 3, 4 or more. For example, the streaming device (102) can support 1, 2, 3 or 4 multimedia devices. The streaming device (102) may be configured to support four separate shows from the streaming device (e.g., 108-1 through 108-N) and separate interactions with one, two, three, or four client devices (e.g., 106-1 through 106-M) including, but not limited to, individual trick play modes for those separate shows. However, the same multimedia device (108-1) or other multimedia devices (e.g. For example, when streaming other media programs from the client device (108-2) to the same client device (106-1) or other client devices (106-2), the streaming device In another embodiment, the streaming device (102) can simultaneously stream a media program from the multimedia device (108-1) to the client device (106-1). In another embodiment, the streaming device (102) can simultaneously stream a media program from the multimedia device (108-1) to two or more client devices (e.g., 106-1, 106-2, etc.) at the same time. In yet another embodiment, the streaming device (102) can simultaneously stream a media program from the multimedia device (108-1) to two or more client devices (e.g., 108-1, 108-2, etc.) at the same time. Different portions of a media program may be streamed simultaneously from one, two or more client devices (eg, 106-1, 106-2, etc.).

[0031] The stream distribution device (102) performs device discovery, demultiplexing, multiplexing, buffering, and The digital video signal may be configured to perform one or more operations related to decoding, decrypting, decoding, transcoding, encoding, encryption, temporal resampling, spatial resampling, streaming, rate adaptation, resolution adaptation, and the like.

[0032] Streaming Devices, Multimedia Devices and Client Devices may use various standards-based or non-free software, including but not limited to Service Discovery Protocol, DNS Service Discovery (DNS-SD), Dynamic Host Configuration Protocol (DHCP), etc. Using the device discovery technology of the present invention, the streaming device (102) can discover other streaming devices, multimedia devices, and client devices. Each of the multimedia devices (108-1 through 108-N) and client devices (106-1 through 106-M) may be configured to discover other devices (e.g., 106-1 through 106-M), exchange one or more certificates with these discovered devices, and establish one or more trust levels with these discovered devices that may be used, in part, to determine whether a particular user or device has appropriate digital rights and / or an authenticated identity to access a particular program. Similarly, any of the multimedia devices (108-1 through 108-N) and client devices (106-1 through 106-M) may be configured to discover, exchange certificates with, and establish trust levels with other devices.

[0033] Media devices such as multimedia devices (108-1 to 108-N), streaming devices (one of which may be 102 in FIG. 1), and client devices (106-1 to 106-M) are used. A service or device discovery process involving the device may execute a session based on device-to-device streaming. A session for streaming may be associated with one or more timeouts. In some implementations, a streaming device may be configured to stream media content from a multimedia device (108-1) to a client device (106-1) via a streaming device (102). The streaming device (e.g., 102) and / or client device (106-1) may be required to be defined / identified with the same account (e.g., a user account with a multimedia service provider, etc.) as the multimedia device (e.g., 108-1). Additionally, optionally or alternatively, the streaming device (e.g., 102) and / or client device (106-1) may be required to receive / transmit the content from the multimedia device (108-1) to the client device (106-1) via the streaming device (102). In order to stream media content to a multimedia device (e.g., 108-1), the same digital certificate (e.g., by a service provider, etc.) is used to authenticate the user. The client device (106-1) may require the sharing of certain media content (e.g., premium content) that is delivered to the client device (106-2). In order to request a stream of a program (such as a livestream, pay-per-view, etc.), a valid digital certificate may be required to be presented to the multimedia device (108-1), the stream delivery device (102), or the service associated with the digital certificate.

[0034] Encryption / decryption of media content uses Data Encryption Standard (DES), Advanced Encryption Standard (AES), and A wide variety of encryption / security techniques may be used, including (but not limited to) encryption schemes with features such as Advanced Encryption Standard (AES), MD5, SHA-1, SHA-2, SHA-3, private and public key, etc. The encryption techniques described herein may be implemented in hardware, software, or a combination of the two. The streamed content (or content carried in the stream) may be encrypted based on a shared secret between the stream sending device and the stream receiving device. One or more first encryption techniques may be used to communicate between the multimedia device (108-1) and the stream receiving device. Encrypting and decrypting content streamed between stream distribution devices (102) The streaming device (102) may use one or more second encryption techniques. The content streamed between the In some embodiments, the one or more first encryption techniques can be the same as the second encryption technique. In some embodiments, at least one of the one or more first encryption techniques can be different from all of the one or more second encryption techniques. Additionally, optionally, or alternatively, in some embodiments, at least one of the one or more second encryption techniques can be different from all of the one or more first encryption techniques. The stream distribution device (102) decrypts all or a portion of the streamed content encrypted by one or more first encryption techniques from the multimedia device (108-1) and transmits the streamed content received from the multimedia device (108-1). The streaming server may be configured to encrypt all or a portion of the re-streamed content generated based on the received content, and transmit the encrypted re-streamed content to the client device (106-1).

[0035] A wide variety of coding techniques may be used to encode / decode the media content, including one or more of MPEG-2, MPEG-4, H.263, H.264, VP8, QuickTime, AdobeFlash, WindowsMedia, etc. The coding (e.g., encoding, decoding, transcoding, etc.) techniques described herein may be performed in hardware, software, or a combination of the two. A first coding technique may be used to communicate between the multimedia device (108-1) and the streaming device (108-2). (102) to encode and decode content that is streamed between the Using the second coding technique, the stream distribution device (102) and the client Encodes content to be streamed between the client device (102-1) and In some implementations, the first coding technique can be the same as the second coding technique. In some implementations, the first coding technique can be different from the second coding technique. The streaming device (102) may be configured to transcode all or a portion of the content streamed in the first coding format from the multimedia device (108-1) into the second coding format and transmit the streamed content transcoded in the second coding format to the client device (106-1). The second coding format is for the client device (108-1) to Alternatively, the second coding format may be a format that implements hardware-based acceleration features. This may be the format when a software package for .

[0036] In some embodiments, the streaming device (102) may include a The above operations can be processed by the multimedia device (108-1) or the client device (106-1). In one embodiment, the stream distribution device (102) The content of the program is transcoded from a first coding format to a second coding format by a multimedia device (108-1), and then the second coding format is In another embodiment, the multimedia device (108-1) may request the streaming device (102) to stream the media program content that has been transcoded in a streaming format. A first coding format message received from a multimedia device (108-1). The streamed content of the media program may be streamed to a client device (106-1), which may be configured to use the streamed content in a first coding format or to transcode the streamed content into a second coding format.

[0037] Media programs (e.g., television programs, movies, live broadcasts, etc.) may be played with varying media durations in normal play mode. In one example, a television program may last 30 minutes in normal play mode, i.e., have a 30 minute media duration. In another example, a movie may last 2 hours in normal play mode, i.e., have a 2 hour media duration. In yet another example, a live broadcast may have an undetermined media duration until the broadcast ends. In some implementations, the streaming device 102 , a first stream of a media program (e.g. 300-1) and then selects a specific portion of the media program (e.g., (in the data buffer 302) The portion of the media program that is buffered on the streaming device (102) can be The media program may represent the entire media duration of the media program, or may represent only a subset of the entire media duration of the media program. The stream may be transcoded into a first coding format, may remain encoded in the first coding format, or may be temporarily transcoded into an intermediate coding format. In some implementations, the stream delivery device (102) may be configured with remote buffering capabilities. In one embodiment, the streaming device is a multimedia device (108-1). In another embodiment, the streaming device may be configured to use the client device (106-1) to buffer the portion of the media program (e.g., in the first coding format) being streamed. The media program may be configured to buffer portions (e.g., in a second coding format).

[0038] In some embodiments, the user accesses the Both normal and trick play modes can be supported using the buffered portions of a media program as described herein. Normal play mode refers to playing a media program at normal speed without skipping or repeating any video frames of the media program. Trick play mode refers to playing a media program with skipping or repeating some video frames of the media program.

[0039] In one embodiment, the client device (106-1) receives a video signal received by a video tuner of the multimedia device (108-1) and streamed by the streaming device (102). If you are viewing a live broadcast, the client device (106-1) and / or The stream distribution device (102) accumulates the live broadcast portion up to the current real time (30 minutes) and The buffering can be performed in normal playback mode at the current real time, normal playback mode at a time preceding the current real time, one or more fast-forward playback modes (e.g., 1.2 times, 1.5 times, 1.8 times the normal playback speed, etc.) at a time preceding the current real time, or at a time preceding the current real time. Any of one or more rewind playback modes may be supported using the buffered portion of the live broadcast, from a live broadcast to a time when the streamed content of the media program can be found in the buffered portion of the live broadcast.

[0040] In another embodiment, a client device (106-1) receives live streaming data stored on a multimedia device (108-1) and streamed via a streaming device (102). If a media program that is not compatible with the The streaming device (102) may accumulate and buffer a portion (30 minutes) of a non-live media program that includes a current playback position of the non-live media program on the client device (106-1) and may use the buffered portion of the non-live media program to play back in one or more of the following playback modes: a normal playback mode at the current playback position, a normal playback mode at a different time (e.g., a new current playback position) other than the time corresponding to the current playback position, one or more forward playback modes (e.g., 1.2 times, 1.5 times, 1.8 times the normal playback speed, etc.) with the buffered portion of the non-live media program, or a non-live playback mode (e.g., a new current playback position) with the buffered portion of the non-live media program. Any of one or more rewind playback modes within the buffered portion of a media program may be supported.

[0041] In some implementations, a client-centric streaming model can be used, where, for example, the streaming multimedia devices and client devices (e.g., 102, 106-1, and 108-1) are not aware of their respective peers. After discovering the presence of the device, the multimedia device (e.g., 108-1) and providing the content of the media program to the client device (e.g., 106-1) via a streaming device (e.g., 102) in the direction of the client device (e.g., 106-1). The request and response are then transmitted to the client device (106-1), Requests and responses may be exchanged between two or more of the streaming device (102) or multimedia device (108-1). In some implementations, other devices, such as other multimedia devices (e.g., 108-2 through 108-N) and other client devices (e.g., 106-2 through 106-M), if present, may also participate in similar or different operations described herein. Some of the requests and responses may be generated based on or identify user commands.

[0042] In some implementations, the media transfer to a client device (e.g., 106-1) The stream of the program comes from a stream delivery device (e.g., 102). The stream is delivered from the multimedia device (e.g. 108-1 to 108-N). Based on the stream of the media program to the receiving device (102), A client device (106-1) can exchange requests and responses with a multimedia device (e.g., 108-1) over one or more communication channels provided by the streaming device (102). The client device (106-1) can use one or more (e.g., non-streamed) requests and responses to provide available programming information and / or metadata information about the media program (e.g., descriptive or textual information about the media program being played or of interest to the user, information about actors, places, products or objects appearing in the media program, etc.) to the multimedia device (108-1) (or a service provider, network In some implementations, a stream request from a client device (e.g., 106-1) may be received from a stream delivery device. A stream request from a client device 106-1 may be addressed to one or more multimedia devices (e.g., 102) so that separate streams (corresponding to a stream request from the client device 106-1) can be requested from one or more multimedia devices (108-1 through 108-N).

[0043] The client device (106-1) presents a screen display to the user and The screen display may be configured to receive user commands from a user, who may interactively navigate the screen display to locate a particular media program that is of interest to the user, obtain information about the media program, play a selected media program, and instruct the client device (102) to download or sideload a media program. "Sideload" means the loading of a media program to run in parallel with the playback of another media program.

[0044] The client device (106-1) receives available programming information via a stream distribution. The tuners on the multimedia devices (e.g., 108-1 through 108-N) may be allocated to the client devices (106-1 through 106-M) on an on-demand basis or after the discovery process has successfully resulted in a trust level sufficient to stream media programs from the multimedia devices (108-1 through 108-N) to the client devices (106-1 through 106-M).

[0045] The client device (106-1) sends a request to the streaming device. The streaming device (102) may receive available programming information describing which media programs are available. and provides this available programming information to the client device (106-1). The stream distribution device (102) can be configured as follows. The streaming device (102) may obtain available programming information (e.g., in response to receiving a request from the client device (106-1)) from one or more of the multimedia devices (e.g., 108-1 through 108-N) operatively linked to the streaming device (102). Alternatively, the streaming device (102) may obtain available programming information from one or more of the multimedia devices operatively linked to the streaming device (102) prior to receiving a request from the client device (106-1). Available programming information may be obtained from one or more of the devices (eg, 108-1 through 108-N).

[0046] The available programming information may comprise addresses (e.g., channels, Universal Resource Locators (URLs), file names, media data databases, media servers, media delivery systems, etc.) where a media program can be obtained or streamed. The available programming information described herein may include availability information for a media program that is stored on one of the multimedia devices (108-1 through 108-N) or availability information for a media program that is not stored on one of the multimedia devices (108-1 through 108-N) but can be received by one of the multimedia devices (108-1 through 108-N). For example, the client device (102-1) may receive availability information for a media program that is not stored on any of the multimedia devices (108-1 through 108-N) but can be received by one of the multimedia devices (108-1 through 108-N). A user may request a movie on a DVD that is not yet available for reception by a selected multimedia device (e.g., 108-1) among the multimedia devices (108-1 through 108-N). The selected multimedia device (108-1) may include one or more tuners. The client receives the live broadcast by allocating one of the devices (102) to the streaming device (102). It is possible to stream live content to the Ant device (106-1). Similarly, the selected multimedia device (108-1) is connected to one of the digital interfaces. A movie on a DVD can be accessed through one of the streaming devices, and the movie content can be streamed to the client device (106-1) by the streaming device (102). In an embodiment, multiple streams of a media program may be simultaneously re-streamed by a stream delivery device (102) to a client device (102). One of the multiple streams of a media program may side-load another of the multiple streams of the media program onto a client device (106-1). You can play it while it is in progress.

[0047] The media program may be copyright-free, such that the contents of the media program, including any streamed content, may be copied without restriction. Alternatively, the media program may be copyright protected, such that the contents of the media program, including any streamed content, may only be copied, recorded, or distributed if the digital rights of the media program to perform these actions have been secured and authenticated. In some implementations, the multimedia device (e.g., 108-1) and / or the streamer may be configured to transmit the content of the media program to the multimedia device (e.g., 108-2) and / or the streamer. The stream distribution device (102) may be configured to verify whether a client device (e.g., 106-1) or user has the correct digital rights to the media program. The streaming of a media program may be performed in response to a user having verified digital rights to the media program. For example, a media device (e.g., a multimedia device, a streaming device, a client device, etc.) described herein may implement a security scheme that allows a receiving client device to play a media program from a stream of a media program, but does not allow the receiving client device to copy or record the media program from the stream.

[0048] The client device (106-1) selects a media program to stream. A request to the streaming device to play the media program may represent a user command to play or side-load the media program in parallel with the playback of other media programs. In response to receiving the request from the client device (106-1), the streaming device (102) may be configured to programmatically and / or manually query the client device for proof of the user's digital rights to the media program. Additionally, and optionally or alternatively, upon receiving the request from the client device (106-1), the streaming device (102) may query the client device for proof of the user's digital rights to the media program based at least in part on a proof previously received from the client device (106-1). or at least to a previously established trust level with the client device (106-1). It may also be configured to, in part, determine a user's digital rights to a media program based upon the content of the media program.

[0049] The digital rights described herein include, but are not limited to, rights to play, rights to copy, rights to distribute, etc. The streaming device (102) may determine whether a user has digital rights to a media program. In response to all positive query / verification results, the media program can be streamed from the multimedia device (108-1) to the client device (106-1) in accordance with the verified digital rights. In response to a negative result, the user's request for the media program can be denied or limited corresponding to the user's digital rights for the media program.

[0050] Additionally, optionally or alternatively, a streaming device (102) The media program may be configured to determine whether the user owns only a single copyright to the media program. If the user owns only a single copyright, the media program may be copied / recorded by the client device (106-1). If the media program has been recorded, the devices involved in the streaming can execute a protocol to remove the media program from the multimedia device (108-1). One copy of this media program may be stored on a multimedia device (108-1) or or the client device (106-1), The streaming device may perform one or more operations (e.g., streaming the media program to one device, removing the media program from another device, and maintaining copies of the media program on multiple devices within the limits permitted by digital rights).

[0051] A streaming device (102) is a device that receives media from a client device or its user. Upon determining that the streaming device does not have the digital rights to the media program, the streaming device (102) may take one or more of the following actions: The streaming device (102) may reject a request to stream a media program to the client device (106-1). Additionally, optionally, or alternatively, the streaming device (102) may reject a request to stream a media program to the client device (106-1). Only the version with embedded highlights or approved abbreviations may be streamed to the client device (102). Alternatively, or in addition, the streaming device (102) may allow the client device (102) to transfer the digital rights to the media program to the streaming device (102) or to one of the multimedia devices (108-1 to 108-N) (e.g., The media programming may be retrieved directly from authorized rights holders over a network connection (eg, internet-based).

[0052] Once the streaming device (102) has determined that the client device (106-1) or its user has digital rights to the media program, the streaming device (102) or a stream controller (e.g., 116 in FIG. 1) sends one or more requests to the multimedia device (108-1) to stream the media program from the multimedia device (108-1) to the streaming device (102). The streaming device (102) can transmit and receive the same protocol used to stream media programs between the multimedia devices (108-1 to 108-N). and communicating streaming requests and responses to the multimedia device (108-1) based on a protocol (e.g., a multi-room streaming protocol). In some embodiments, the stream request described herein identifies at least a portion of the media program to be streamed. In response to receiving the stream request from the streaming device (102), , the multimedia device (108-1) is the requested One or more operations are performed to stream the portion to a streaming device (102).

[0053] A stream distribution device (102) or a source stream distribution module therein (e.g. 1) receives a media program (e.g., 110 in FIG. 1) of a first stream (e.g., 300-1 in FIG. 3) from a multimedia device (e.g., 108-1 in FIG. 1) The primary content (e.g., the media program requested by Vice 106-1) of the After the first content of the media program is received by the streaming device (102), the streaming device may be configured to receive a requested portion of the media program. The stream distribution device (102) or a stream distribution adaptation module (114) therein performs one or more operations to adapt the streamed content from the multimedia device (108-1). Transforming the first content into a second content in a second stream (e.g., 300-2 in FIG. 3) from the stream distribution device (102) to the client device (106-1) or The streaming device (102) can then The client stream delivery module (112 in FIG. 1) in the second content delivery module The content may be delivered to the client device (106-1) in a second stream (300-2).

[0054] In some embodiments, the one or more tags may be sent to a streaming device (e.g., 102 ) to a client device (e.g., 106-1). The tagging technology is described in U.S. Patent No. 7,889,964. The contents of this specification are incorporated herein by reference. The devices described herein may be configured with a mechanism for inserting tags into media streams, such as audio streams, video streams, television broadcast streams, and the like. Tags may be inserted into media streams prior to or during transmission. These tags contain command and control information that the receiving device interprets and executes. The receiving device may be configured to perform operations described herein in response to the tags during this tag processing stage. Tags may be used to indicate the beginning and end of a program segment, a subset of media data units, and the like. Tags may be used to indicate the presence of a media feature, the absence of a media feature, and the like. The receiving device may be configured to fast-forward, slow-play, skip program segments during playback in response to the tags or in response to user input associated with the tags.

[0055] Menus, icons and web pages can be displayed to the user based on the information contained in the tags. The user can interact with the menus, icons or web pages by means of an input device. The receiving device executes an action associated with the menu, icon or web page and the user's input. Tags can be used to create indexes of media data, media streams, media files, etc. This allows the user to jump to a specific index within the media data, media stream or media file.

[0056] A stream to a client device (106-1) (e.g., the second stream in the previous example) A tag in the stream 300-2 (stream 300-2) causes an interactive icon to be displayed to the user on the client device 106-1, which the user can select. The user can select the interactive icon to perform one or more actions associated with the tag. Information tags in the system 300-2 can inform the client device (106-1) of certain pieces of information, such as the duration of trick play mode on the client device (106-1). A duration in trick play mode (e.g., 10 minutes of fast forward play of a media program) may correspond to a duration in normal play mode (e.g., 20 minutes of normal play of a media program with no skips or repeats). The information tag may inform the client device (106-1) of how a corresponding duration in normal play mode corresponds to a duration in trick play mode. The tag can be used to indicate the content of the multimedia stream received by the streaming device (102). In addition, optionally or alternatively, the streaming device (102) can insert a tag into a stream (e.g., the second stream 300-2) to a client device (106-1).

[0057] The content delivered via the streams may comprise premium and / or non-premium content. For example, pay-per-view media programs may be delivered in the streams described herein. Resources on a multimedia device (e.g., 108-1), such as a tuner, may be used to stream the content of the multimedia device. The streaming device (e.g., 102) may be utilized to obtain multimedia content that is streamed from a multimedia device (108-1) to a client device (e.g., 106-1). The streaming device (e.g., 102) may receive television channel images obtained by tuners controlled by or located within the multimedia devices (e.g., 108-1 through 108-N). The multimedia device (108-1) may be configured to support the viewing of multiple channels. A user may change channels and watch live television signals streamed by the multimedia devices (108-1 through 108-N). For example, the multimedia device (108-1) may transmit to the client device (106-1) a broadcast signal (live television channel, stored media program, or other broadcast signal). a streaming device (102) during streaming of a media program (which may be a media program over a digital video interface, etc.); The streaming device (106-1) may receive a streaming request from the client device (106-2) to switch to or simultaneously play another media program. The program includes, but is not limited to, the multimedia device (108-1) tuner, a tuner of another multimedia device (e.g., 108-2), etc. In response, the streaming device (102) can send other media You can switch to or add a new stream for the program.

[0058] In some embodiments, the multimedia device (e.g., 108-2) may include a multimedia device as described herein. The service provided by the streaming device (eg, 102) described in The streaming device may be a client device that streams a media program from a source multimedia device (e.g., 108-1). and generating two or more streams of the media program based on the stream of the media program to a client device, wherein one of the two or more streams of the media program may be for recording at a destination multimedia device (e.g., 108-2) (which is a client device for purposes of streaming the media program). Another of the two or more streams of the media program may be recorded or streamed on a mobile device, which may be a client device (e.g., 106-2). The streaming device (102) can transmit the intended playback. The streaming of the media program to multiple devices for live or recorded operation may be configured to determine compliance with the digital rights of one or more users or client devices requesting streaming of the media program.

[0059] In some implementations, the stream distribution device (e.g., 102) The streaming device (e.g., 102) may be configured to receive one or more stream delivery requests for media programs from a first device (which may be a local device, a remote device connected by the Internet, etc.) and generate one or more streams of the media programs to at least a second device different from the first device. Thus, a user may travel around the world and still interact with a streaming device (e.g., 102) to stream preferred media programs to a remote device carried by the user. Different client devices located on the same network (e.g., 106-1) or elsewhere The video can then be streamed to a variety of devices (e.g., 106-2).

[0060] The stream distribution device (e.g., 102) described herein is a multimedia The network may be configured to establish communication channels with the multimedia devices (108-1 through 108-N), streaming devices (102), client devices (106-1 through 106-M), or other devices. The establishment of the communication channels may be performed as part of the process of discovering services and devices from within these media devices, or as a separate operation performed after the discovery process. The communication channels may be configured to communicate with the multimedia devices (108-1 through 108-N), streaming devices (102), client devices (106-1 through 106-M), or other devices. The communication channels described herein may be used as one or more data paths and / or one or more control paths between two or more of the media servers (e.g., content servers connected to one or more of multimedia devices 108-1 through 108-N by an Internet or dedicated wide area network connection). The communication channels described herein may carry streams of media programs, in-band control and data information (e.g., accompanying a stream of media programs), or out-of-band control and data information (e.g., separate from any streamed delivery of media programs).

[0061] In some implementations, a client device may have a media program streamed to it by a streaming device (e.g., 102). The streaming device (102) communicates with the client device (106-1) and the multimedia device (108-1) via one or more communication channels. Available programming information and other metadata, which can be used to drive common menu screens (e.g., implemented in a data-driven model) on the client device, can be provided or delivered from any one or more of the multimedia devices (e.g., 108-1 through 108-N) to any one or more of the client devices (106-1 through 106-N). Under the techniques described herein, a user can use a client device to access the same media programs (e.g., shows, channels, live broadcasts, podcasts, etc.) that are accessible via the multimedia device. In some implementations, software and / or hardware based security features that prevent hacking or theft of protected media content (e.g., premium media programs) can be executed by one or more of the multimedia devices (e.g., 108-1), the streaming device (e.g., 102), and the client devices (e.g., 106-1) involved in streaming the protected media content.

[0062] In some implementations, the streaming device (e.g., 102) automatically may, upon user command, redirect an ongoing stream of a media program from a first multimedia device (e.g., 108-1) to a second, different multimedia device (e.g., 108-2). For example, the stream delivery device (102) may be configured to switch the ongoing stream based on one or more factors. These factors include, but are not limited to, network load conditions, multimedia device load conditions, multimedia device capabilities, device compatibility, etc. In one embodiment, the stream delivery device (102) may be configured to switch the ongoing stream based on one or more factors. A second different multimedia device (108-2) is connected to the multiple multimedia devices. 108-1 through 108-N, and therefore switches the stream from the first multimedia device (108-1) to the second multimedia device (108-2). In some implementations, a streaming device (e.g., 102) The streaming device (102) may be configured to switch an ongoing stream of a media program from a first multimedia device (e.g., 108-1) to a second, different multimedia device (e.g., 108-2). The streaming device (102) may be configured to switch an ongoing stream of a media program from a first multimedia device (e.g., 108-1) to a second, different multimedia device (e.g., 108-2) based on one or more factors. The stream delivery device (102) may be configured to determine whether to switch an ongoing stream based on factors including, but not limited to, a user command, network load conditions, multimedia device load conditions, etc. In one embodiment, the stream delivery device (102) may request that a second, different multimedia device (108-2) be used instead of the first multimedia device (108-1) (e.g., For example, user commands provided by a client device such as 106-1 In response, the stream distribution device (102) can receive the first multimedia content. In another embodiment, the streaming device (102) can switch the stream from the first multimedia device (108-1) to a second multimedia device (108-2). determining that the multimedia device (108-2) is the least busy multimedia device among the plurality of multimedia devices (e.g., 108-1 through 108-N); and Therefore, the stream is transferred from the first multimedia device (108-1) to the second multimedia device (108-2). In a further embodiment, the streaming device (108-1) can be switched to a streaming device (108-2). The device (102) may determine that a first multimedia device (108-1) is busier and / or consumes more resources and / or has less performance than a second, different multimedia device (108-2), and therefore may choose to forward the stream to the first multimedia device (108-3). The user may switch from the device (108-1) to a second multimedia device (108-2).

[0063] In some implementations, a streaming device (e.g., 102) may include a media player. The first client device (e.g., 106-1) will forward the ongoing stream of the program to the From there, you can transfer the data to a second, different client device (e.g., 106-2) or a different media device. The stream delivery device (102) may be configured to switch between on-going streams based on one or more factors, either automatically or upon user command. The streaming device (102) may be configured to determine whether to switch the stream from the first client device (106-1) to the second multimedia device (106-2) or other media device based on factors including, but not limited to, network load conditions, client device load conditions, device capabilities and compatibility, etc. In one embodiment, the streaming device (102) may determine that a second, different client device (106-2) or other media device is the best media device (e.g., a high definition TV in a room where a user's presence is detected or sensed) to render the media program among multiple media devices (e.g., client devices 106-1 through 106-N, other media devices, etc.), and therefore may switch the stream from the first client device (106-1) to the second multimedia device (106-2) or other media device.

[0064] A streaming device (e.g., 102) transmits media content being streamed from a multimedia device (108-1) to a client device (e.g., 106-1). The media program can be configured to support various trick play modes for the multimedia device (108-1) and the streaming device (108-2). 3. A complete stream path (e.g., 300-1) comprising a first stream of a media program between the stream delivery device (102) and a client device (106-1) and a second stream of a media program between the stream delivery device (102) and a client device (106-1) and a second stream of a media program between the stream delivery device (102) and a client device (106-2) (e.g., 300-3). 300) while being streamed in normal playback mode, The device (102) receives a user command in the form of a trick play mode stream delivery request. Sending a command to the streaming device (102) to initiate a trick play mode. In normal playback mode, the streaming device (102) A first portion of the RAM adapted for normal playback mode is fed to a second stream (300-2). For example, the first portion may comprise image frames that were originally included in the media program that have not been skipped or repeated. In a trick play mode, the streaming device (102) may transmit the media program in trick play mode. A second portion, adapted to the first stream (300-1), may be transmitted in a second stream (300-2). For example, the second portion may comprise skipping and / or repeating image frames originally included in the media program in response to a trick play mode (e.g., fast forward, variable fast forward, reverse / rewind, pause, etc.). In some implementations, the second stream (300-2) may include image frames adapted to the current playback operating mode. While the multimedia The media device (108-1) is a device that can read and write image data (e.g., In some implementations, the multimedia device (108-1) may transmit image data adapted to the current mode in the first stream (300-1), while the second stream (300-2) is being used to transmit image frames adapted to the current playback mode of operation to the client device (106-1). Therefore, the client device (e.g. 106-1) can enter trick play mode. Support for may be provided by a client device (106-1), a streaming device (eg, 102), a multimedia device (eg, 108-1), or two or more of the aforementioned media devices.

[0065] The streaming device (e.g., 102) may be a device that allows a first user to and a second user performing independent media processing / rendering operations via a client device (e.g., 106-1) and an image rendering device operatively linked to the multimedia device (108-1). 108-1 ) can be supported simultaneously. In some implementations, the multimedia device can be configured with one or more tuners. If there are more than two tuners, a separate tuner can be assigned to each of the first and second users, allowing the users to view separate channels, live broadcasts, etc. In some implementations, menu screen presentation and interaction is centralized by the multimedia device (108-1), e.g., using a thin client approach. In some implementations, the multimedia device (108-1) may provide the basic data for presentation and interaction of menu screens on the client device (106-1), for example using a fat-client approach.

[0066] The streaming device (e.g., 102) detects the types of multimedia devices (108-1 to 108-N) and client devices (106-1 to 106-M) and Depending on the type of device, the stream delivery device (102) may be configured to customize one or more characteristics, such as operating parameters, bit rate, dynamic range, color gamut support, resolution, etc. Set the bit rate to 2Mbit / s for the client device and a 50 inch For high-end TVs, a bit rate of 10 Mbit / s can be set. The stream delivery device (102) monitors the bandwidth usage of one or more streams and delivers one or more It can be configured to dynamically vary the allocation of bandwidth to streams.

[0067] A streaming device (eg, 102) delivers media content to a client. The video device (106-1) can be configured to stream the video to a multimedia device (e.g., 108-1). For example, a personal video captured by a tablet computer or handheld device can be streamed to the streaming device (102). Thus, media content can be streamed in the reverse direction in a manner similar to how it is streamed (described herein).

[0068] Streaming devices (eg, 102) may provide media streaming with a variety of capabilities and features. For example, for a less capable multimedia device, the streaming device (102) may be configured to interoperate with the less capable multimedia device and appropriately utilize the capabilities and features of the media device. For more capable multimedia devices that can perform more operations, such as transcoding (e.g., personal media content, home videos, etc., from a client device), the streaming device (102) may Additionally, optionally, or alternatively, the streaming device (102) may perform different actions for client devices with different capabilities and features. It is possible.

[0069] Although a particular system or system configuration is described, other embodiments are applicable to any system or system configuration that can be used to perform the functionality described herein. The components of the system or system configuration may be, for example, a data bus, a data link, a local area network (LAN), Wide Area Network (WAN), Internet, Intranet, Extranet The devices may be connected by a wired or wireless communication segment, etc. Alternatively or additionally, any number of devices in the system or system configuration may be directly connected to each other via a wired or wireless communication segment.

[0070] One or more of the components described in this system or system configuration may be integrated together in a single device or may be separated into several discrete devices that are operatively linked. Each of these components is presented to clarify the functionality described herein and is not necessary to practice the invention. Furthermore, components not shown (in the figures described herein) may also be used to perform the functionality described herein. Functionality described as being performed by one component may also be performed by another component.

[0071] As used herein, media program refers to media data containing audio content, including, but not limited to, audio data, audio transcript data, audiovisual data, multimedia data, content data downloaded across a network, multimedia data having markup language pages, videos, movies, multimedia presentations, audio books, e-books, podcasts, etc. Media data unit refers to a data unit containing audio data, including, but not limited to, audio samples, audio transcript data that can be used for speech synthesis, audio data units, audiovisual data units, media data segments, image frames, etc. Media data may be received by the systems described herein using one or more wire-based or wireless links. Media data may be received in the form of media files, media data streams, etc. Media data may be received in any of a wide variety of formats defined by standards or non-free software specifications, including, but not limited to, any associated with CD, MPEG-1, MPEG-2 and MPEG-2.5 Audio Layer III (MP3), Advanced Audio Coding (AAC), DVD, HDDVD, Blu-ray Disc, H.261, H.263, H.264 / MPEG-4, etc.

[0072] 4.0 An Example of a Multimedia Device Figure 4 is a block diagram showing an example of the internal structure and operation of a multimedia device according to one embodiment of the present invention. Specific examples of this operation are described in detail in commonly owned US Pat. No. 6,233,389, which is incorporated by reference as if originally disclosed herein. In some embodiments, the multimedia device may include some or all of the software and / or components illustrated in FIG. 1 or FIG.

[0073] The multimedia device shown in FIG. 4 includes an input module 401 and a media switch. The input module 401 may be any of a variety of types. For example, the input module 401 receives a television (TV) input stream. The received TV input stream may be in the form of a National Television Standards Committee (NTSC) compliant signal or a PAL compliant broadcast signal. The TV input stream received by module 401 corresponds to a digital satellite system. This can take the form of a digital signal such as a Digital Broadcast System Compatible (DSS) signal, a Digital Broadcast System Compatible (DBS) signal, or an Advanced Television Standards Committee Compatible (ATSC) signal. DBS, DSS, and ATSC are based on standards known as Moving Pictures Experts Group 2 (MPEG-2) and MPEG-2 Transport. MPEG-2 Transport is a standard for formatting a digital data stream from a TV source transmitter that allows a TV receiver to parse the input stream and find the programs in the multiplexed signal. In one embodiment, input module 401 generates an MPEG stream. In another embodiment, input module 401 generates a stream that is encoded using a different codec.

[0074] MPEG-2 Transport multiplex supports multiple programs (multiple video and audio feeds and private data) on the same broadcast channel. The input module 401: It tunes a channel to a particular program, extracts a specified MPEG stream from the channel, and feeds the MPEG stream to the rest of the system. The analog TV signal is encoded into a similar MPEG format using separate video and audio encoders so that the rest of the system does not know how the signal was derived. Information is modulated into the vertical blanking interval (VBI) of the analog TV signal in a number of standard ways. For example, the North American Broadcast Teletext Standard (NABTS) can be used to modulate information onto specific lines of an NTSC signal, but this standard does not include other specific lines. The use of the HDMI 2.0 standard for closed captioning (CC) and enhanced data services (EDS) is mandated by the FCC. Such signals are decoded by the input module 401 and transmitted as if This signal is passed to other modules as if it were delivered via an MPEG-2 private data channel.

[0075] The input module 401 may also receive streamed content from a network source, such as a local or remote NAS storage device, an Internet content provider, a local or remote multimedia device, etc. The format of the received content stream may be in many different formats, such as MPEG, MPEG2, MPEG4, WMV, AVCHD, MOV, H.264, MKV, etc. The input module 401 may generate an MPEG stream that corresponds to the received content stream. This can be done.

[0076] The media switch 402 mediates data transfer between the microprocessor CPU 406, hard disk or storage device 405 and the memory 404. The input stream is converted to an MPEG stream and sent to the media switch 402. The media switch 402 buffers the MPEG stream to the memory 404. The user of the multimedia device When real-time TV is being watched, the media switch 402 sends the MPEG stream to the output module 403 and simultaneously writes the MPEG stream to a hard disk or storage device 405. This performs two operations:

[0077] The output module 403 receives the MPEG stream as input and generates an analog TV signal in NTSC, PAL or other TV standard. The output module 403 includes an MPEG decoder and On-screen display (OSD) generator, analog TV encoder, and audio logic This OSD generator allows the program logic to convert the resulting TV analog signal into In addition, the output module 403 can modulate the information provided by the program logic onto the VBI of the output signal in a number of standard formats, including NABTS, CC and EDS.

[0078] 5.0 Process Flow Examples In various embodiments, one or more of these illustrated devices may, alone or in combination, perform at least some of the techniques described herein. Figure 5 illustrates an example process flow for streaming media programs between a multimedia device and a client device, according to an example embodiment. In some embodiments, a streaming device (e.g., 102 in Figures 1 and 2, DVR in Figure 4, etc.) comprising one or more computers (e.g., 600 in Figure 6) may perform this process flow.

[0079] In block 502, the streaming device transmits the media program to a multimedia device. During streaming from the device to the client device, the streaming device transmits to the client device a first portion of the media program, the first portion being transcoded from a first format to a second, different format and adapted for a first playback mode of the client device.

[0080] In block 504, the stream distribution device transmits the client device and receiving a user command indication identifying a second different playback mode of the Ant device.

[0081] At block 506, the streaming device receives a second different stream of the media program. and transmitting the second portion to the client device, where the second portion has been transcoded from the first format to a second format and adapted for a second playback mode of the client device.

[0082] It should be noted that although separate embodiments are described herein, any combination of the embodiments and / or portions of the embodiments described herein may form further embodiments.

[0083] 6.0 Hardware Overview FIG. 6 illustrates a computer system 600 on which an embodiment of the invention may be implemented. 6 is a block diagram of a computer system 600. The computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a processor 604 coupled to the bus 602 for processing information. The computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 602 for storing information and instructions executed by the processor 604. The main memory 606 is The processor 604 may also be used to store temporary variables or other intermediate information during execution of instructions being executed. Computer system 600 also includes a read only memory (ROM) 608 or ROM coupled to bus 602 for storing static information and instructions for processor 604. A storage device 610, such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions, including other static storage devices.

[0084] Computer system 600 is coupled via bus 602 to a display 612, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device 614, including alphanumeric and other keys, can be used to input information and A user input device is coupled to bus 602 for communicating instructional information and command selections to processor 604. Another type of user input device may be coupled to bus 602 for communicating instructional information and command selections to processor 604. A mouse, trackball, or other device for displaying a cursor and controlling cursor movement on the display 612 or cursor control 616 such as cursor direction keys. ,Usually a first (e.g., x) axis and a second (e.g., n) axis that allow the device to determine a position in a plane. The rotational axis has two degrees of freedom about the first (eg, y) axis and the second (eg, y) axis.

[0085] The present invention relates to the use of a computer system 600 for a window configuration control unit. According to one embodiment of the present invention, the window configuration control unit is in response to executing one or more sequences of one or more instructions contained in main memory 606. In response, instructions are provided by computer system 600. Such instructions may be read into main memory 606 from another computer-readable medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. One or more processors in a multi-processing arrangement may be utilized to execute the sequences of instructions contained in main memory 606. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

[0086] The term “computer-readable medium” as used herein refers to a medium that is executable by the processor 604. The term "media" refers to any medium that provides instructions to perform a program. Such media may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 610. Volatile media include dynamic memory, such as main memory 606. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared communications.

[0087] Common forms of computer readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape or any other magnetic medium, CD-ROMs, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, RAM, , PROM and EPROM, FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described below, or any other computer readable medium.

[0088] Various forms of computer readable media may be utilized to store one or more instructions for execution by processor 604. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. The modem can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 602 can detect the infrared signal carried by the modem. The processor 604 may receive data to be processed and place the data on the bus 602. The bus 602 carries data to a main memory 606, from which the processor 604 reads and executes the instructions. The instructions received by the main memory 606 may optionally be stored on a storage device 610 either before or after execution by the processor 604.

[0089] Computer system 600 also includes a communication interface 618 coupled to bus 602 . Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622. For example, communication interface 618 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be The communications interface 618 may be a local area network (LAN) card to provide a data communications connection to a compatible LAN. It may also be implemented as a wireless link. In any such implementation, communications interface 618 may include digital data streams representing various types of information. The receiver transmits and receives electrical, electromagnetic or optical signals that carry the signal.

[0090] Network link 620 typically provides access to other data devices via one or more networks. For example, network link 620 may provide data communication to the local network. Through network 622, connections can be provided to host computers 624 or to data equipment operated by an Internet Service Provider (ISP) 626. ISP 626 in turn provides a gateway to the worldwide packet data communication network now commonly referred to as the “Internet” 628. The local network 622 and the Internet 628 both use electrical, electromagnetic, or other communications that carry digital data streams. or optical signals. 620 and 630. The signals through communication interface 618 are exemplary forms of carrier waves transporting the information.

[0091] The computer system 600 transmits messages and communicates with the network. The server 620 may receive data including program code via link 620 and communication interface 618. In the Internet embodiment, a server 630 might transmit a requested code for an application program via the Internet 628, the ISP 626, the local network 622 and communication interface 618. In accordance with the present invention, such downloaded applications are provided to a remote display device as described herein.

[0092] The receive code is executed by the processor 604 as it is being received, and and / or store it in storage device 610 or other non-persistent storage for later execution. In this manner, the computer system 600 may transmit the application in the form of a carrier wave. You can then obtain the application code.

[0093] 7.0 Extensions and Variations Although specific components are detailed herein as performing the method steps, in other embodiments, agents or mechanisms acting on behalf of these specific components may perform these method steps. Additionally, while some aspects of the invention are described with respect to components on one system, the invention may be performed by components distributed across multiple systems. Embodiments of the invention include any system that includes means for performing the methods described herein. Embodiments of the invention also include computer-readable media having instructions that, when executed on a computer, cause the computer to perform the methods described herein.

[0094] In the preceding specification, embodiments of the invention have been described with respect to numerous specific details that may vary from embodiment to embodiment. Thus, the sole and exclusive indicator of what the invention is and what the applicant intends the invention to be is the set of claims in the specific form that will be issued from this application, including any amendments thereto. The meaning of such terms used in the claims is determined by the definitions expressly given herein for the terms used in such claims. Therefore, any limitations, elements, properties, features, effects or characteristics not expressly recited in the claims should not limit the scope of such claims in any manner. Thus, the specification and drawings should be regarded as illustrative, not restrictive. For example, the present application provides the following: (Item 1) While the streaming device is streaming a media program from a multimedia device to a client device, the streaming device: transmits a first portion of the media program to the client device, the first portion being transcoded from a first format to a second, different format, the first portion adapted by the streaming device to a first playback mode of the client device; receives from the client device an indication of a user command specifying a second, different playback mode of the client device; and transmits a second, different portion of the media program to the client device, the second portion being transcoded from the first format to the second format, the second portion adapted by the streaming device to the second playback mode of the client device. way to execute. (Item 2) 2. The method of claim 1, wherein the first playback mode and the second playback mode represent two different operating modes among a plurality of different operating modes, and the plurality of different operating modes comprises two or more of: one or more normal playback modes, one or more fast forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 3) 2. The method of claim 1, wherein the second format is configured to be decoded by the client device. (Item 4) 2. The method of claim 1, further comprising: receiving a streaming request to stream a second media program; and determining whether the client device owns the digital rights to perform one or more actions specified in the streaming request to stream the second media program. (Item 5) 5. The method of claim 4, further comprising rejecting the streaming request to stream the second media program in response to the client device determining that it does not possess digital rights to perform one or more actions specified in the streaming request to stream the second media program. (Item 6) receiving one or more certificates of at least one of said multimedia device or said client device; establishing one or more trust levels corresponding to at least one of the multimedia device or the client device based at least in part on the received certificate. The method according to item 1, further comprising: (Item 7) The method of claim 1 , further comprising the step of performing one or more cryptographic operations associated with one or more of the first portion of the media program or the second portion of the media program. (Item 8) 2. The method of claim 1, wherein the user command is one of a plurality of user commands that change a playback mode entered by a user of the client device while the media program is being streamed. (Item 9) 2. The method of claim 1, wherein the network connection between the streaming device and the client device comprises at least one wireless network link. (Item 10) 2. The method of claim 1, further comprising the step of the streaming device loading a second media program onto the client device or one of the other client devices while the media program is being streamed from the multimedia device to the client device. (Item 11) 2. The method of claim 1, further comprising the step of: while the media program is being streamed from the multimedia device to the client device, the streaming device streaming media content between the client device and the multimedia device or one of the other multimedia devices. (Item 12) 2. The method of claim 1, further comprising the step of the streaming device simultaneously streaming one or more additional media programs to one or more client devices while the streaming device is streaming the media program from the multimedia device to the client device. (Item 13) 2. The method of claim 1, wherein at least one of the first portion or the second portion comprises one or more tags. (Item 14) Item 1 further comprises the step of the streaming device maintaining a media data buffer for video frames within a time interval of the media program. The method described above. (Item 15) When executed by one or more processors: While the streaming device is streaming the media program from the multimedia device to the client device, the streaming device transmitting a first portion of the media program to the client device, the first portion being transcoded from a first format to a second, different format, the first portion adapted by the streaming device to a first playback mode of the client device; receiving, from the client device, an indication of a user command specifying a second different playback mode of the client device; transmitting a second, different portion of the media program to the client device, the second portion being transcoded from the first format to the second format, the second portion adapted by the streaming device to the second playback mode of the client device; A non-transitory computer-readable storage medium storing instructions for causing execution. (Item 16) Item 16. The medium of item 15, wherein the first playback mode and the second playback mode represent two different operating modes among a plurality of different operating modes, and the plurality of different operating modes comprises two or more of: one or more normal playback modes, one or more fast forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 17) Item 16. The medium of item 15, wherein the second format is configured to be decoded by the client device. (Item 18) receiving a stream request to stream a second media program; determining whether the client device possesses the digital rights to perform one or more operations specified in the stream request to stream the second media program; Item 16. The medium according to item 15, further comprising: (Item 19) 20. The medium of claim 18, further comprising the step of rejecting the streaming request to stream the second media program in response to the client device determining that it does not possess digital rights to perform one or more actions specified in the streaming request to stream the second media program. (Item 20) receiving one or more certificates of at least one of said multimedia device or said client device; establishing one or more trust levels corresponding to at least one of the multimedia device or the client device based at least in part on the received certificate. The medium according to item 15 further comprises: (Item 21) 16. The medium of claim 15, further comprising the step of performing one or more cryptographic operations associated with one or more of the first portion of the media program or the second portion of the media program. (Item 22) Item 16. The medium of item 15, wherein the user command is one of a plurality of user commands that change a playback mode entered by a user of the client device while the media program is being streamed. (Item 23) Item 16. The medium of item 15, wherein the network connection between the streaming device and the client device comprises at least one wireless network link. (Item 24) 16. The medium of claim 15, further comprising the step of the streaming device loading a second media program onto the client device or one of the other client devices while the media program is being streamed from the multimedia device to the client device. (Item 25) The medium of claim 15, further comprising the step of the streaming device streaming media content between the client device and the multimedia device or one of the other multimedia devices while the media program is being streamed from the multimedia device to the client device. (Item 26) 16. The medium of claim 15, further comprising the step of the streaming device simultaneously streaming one or more additional media programs to one or more client devices while the streaming device is streaming the media program from the multimedia device to the client device. (Item 27) Item 16. The medium of item 15, wherein at least one of the first portion or the second portion comprises one or more tags. (Item 28) Item 1 further comprises the step of the streaming device maintaining a media data buffer for video frames within a time interval of the media program. 5. The medium described in 5. (Item 29) Multimedia devices and A client device; Streaming devices and A system comprising: While the streaming device is streaming a media program from the multimedia device to a client device, the streaming device transmitting a first portion of the media program to the client device, the first portion being transcoded by the streaming device from a first format to a second, different format, the first portion adapted for a first playback mode of the client device; receiving, from the client device, an indication of a user command specifying a second different playback mode of the client device; transmitting a second, different portion of the media program to the client device, the second portion being transcoded from the first format to the second format, the second portion adapted by the streaming device to the second playback mode of the client device; It is configured to run system. (Item 30) 30. The system of claim 29, wherein the first playback mode and the second playback mode represent two different operating modes among a plurality of different operating modes, and the plurality of different operating modes comprises two or more of: one or more normal playback modes, one or more fast forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 31) 30. The system of claim 29, wherein the second format is configured to be decoded by the client device. (Item 32) The stream distribution device further comprises: receiving a stream request to stream a second media program; determining whether the client device possesses the digital rights to perform one or more operations specified in the stream request to stream the second media program. 30. The system of item 29, configured to execute. (Item 33) The stream distribution device further comprises: in response to the client device determining that it does not possess digital rights to perform one or more operations specified in the stream request to stream the second media program, rejecting the stream request to stream the second media program. Item 33. The system of item 32, configured to execute. (Item 34) The stream distribution device further comprises: receiving one or more certificates of at least one of said multimedia device or said client device; establishing, by at least one of the multimedia device or the client device, one or more corresponding trust levels based at least in part on the received certificate. 30. The system of item 29, configured to execute. (Item 35) 36. The system of claim 29, wherein the streaming device is further configured to perform one or more cryptographic operations associated with one or more of the first portion of the media program or the second portion of the media program. 30. The system of claim 29, wherein the user command is one of a plurality of user commands that change a playback mode entered by a user of the client device while the media program is being streamed. (Item 37) 30. The system of claim 29, wherein the network connection between the streaming device and the client device comprises at least one wireless network link. (Item 38) 30. The system of claim 29, wherein the streaming device is further configured to perform the step of loading a second media program onto the client device or one of the other client devices while the media program is being streamed from the multimedia device to the client device. (Item 39) 30. The system of claim 29, wherein the streaming device is further configured to perform the step of streaming media content between the client device and the multimedia device or one of the other multimedia devices while the media program is being streamed from the multimedia device to the client device. (Item 40) 30. The system of claim 29, wherein the streaming device is further configured to: while the streaming device is streaming the media program from the multimedia device to the client device, simultaneously stream one or more additional media programs to one or more client devices. (Item 41) 30. The system of claim 29, wherein at least one of the first portion or the second portion comprises one or more tags. (Item 42) 30. The system of claim 29, wherein the streaming device is further configured to perform the step of maintaining a media data buffer for video frames within a time interval of the media program. (Item 43) the streaming device discovering the client device; determining, by the streaming device, that the client device is configured not to decode media data encoded in the first format, but to decode media data encoded in the second format; in response to determining that the client device is configured not to decode media data encoded in the first format but to decode media data encoded in the second format, transcoding the media program from the first format to the second format; 2. The method of claim 1, further comprising: (Item 44) The streaming device discovers the client device; the streaming device determines that the client device is configured not to decode media data encoded in the first format, but to decode media data encoded in the second format; in response to determining that the client device is configured not to decode media data encoded in the first format but to decode media data encoded in the second format, the streaming device transcodes the media program from the first format to the second format. Item 16. The medium according to item 15. (Item 45) The stream distribution device further comprises: discovering said client device; determining that the client device is configured not to decode media data encoded in the first format, but to decode media data encoded in the second format; in response to determining that the client device is configured not to decode media data encoded in the first format but to decode media data encoded in the second format, transcoding a media program from the first format to the second format; 30. The system of item 29, configured to execute

Claims

1. 1. A method, comprising: While the content is being streamed via one or more content streams, receiving data indicating that an operational mode is active at a client device; identifying a first plurality of content portions of the content for streaming to the client device via the one or more content streams; generating a second plurality of content portions by modifying the first plurality of content portions, the second plurality of content portions (i) adapted for the operational mode and (ii) adapted for playback on the client device, the second plurality of content portions including substantially the same content as the first plurality of content portions; transmitting the second plurality of content portions to the client device via the one or more content streams based on receiving the data indicative of the operational mode; A method comprising:

2. The method comprises: generating a tag indicating that the second plurality of content portions are adapted for the mode of operation; transmitting the tag to the client device simultaneously with the second plurality of content portions; The method of claim 1 further comprising:

3. 2. The method of claim 1 , wherein modifying the first plurality of content portions to generate the second plurality of content portions comprises adapting the first plurality of content portions to the mode of operation using one or more adaptation operations specific to the mode of operation.

4. The method further includes determining an active playback mode at the client device based on the data; 2. The method of claim 1 , wherein modifying the first plurality of content portions to generate the second plurality of content portions comprises adapting the first plurality of content portions using one or more adaptation operations specific to the active playback mode.

5. 2. The method of claim 1 , wherein modifying the first plurality of content portions to generate the second plurality of content portions includes transcoding the first plurality of content portions from a first format to a second, different format suitable for the client device.

6. The method of claim 1 , further comprising inserting a second piece of content into the second plurality of pieces of content for transmission to the client device.

7. the data includes digital rights data associated with the client device; The method of claim 1 , further comprising determining whether the client device is authorized to stream the content based on the digital rights data.

8. the data includes certificate data; The method of claim 1 , further comprising establishing a level of trust with the client device based in part on the certificate data.

9. The method of claim 1 , further comprising performing a cryptographic operation on the second plurality of content portions prior to said transmitting.

10. The method of claim 1 , wherein the operation mode is one of a side loading mode, a downloading mode, or a live streaming mode.

11. A system comprising a control circuit configured to carry out the method according to any of the claims 1 to 10.

Citation Information

Patent Citations

  • Information processor and communication control method

    JP2004222044A

  • Content reproduction control system, server apparatus, terminal apparatus and content reproduction control method

    JP2005160032A

  • Method for receiving and reproducing media stream over via network

    JP2007195195A

  • Video transmission device

    JP2012015928A

  • Systems and methods to provide trick play during streaming playback

    US20120210216A1