Radio media stream distribution system
The wireless media stream delivery system addresses the challenge of accessing media programs across devices by transcoding and adapting content to different playback modes and formats, ensuring consistent access and compliance with digital rights, and managing copyright restrictions.
Patent Information
- Application Number
- JP2025048254
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2012-09-04
- Filing Date
- 2025-03-24
- Publication Date
- 2025-07-01
AI Technical Summary
Users face difficulties in accessing media programs across different devices while ensuring consistent access and compliance with digital rights, particularly when devices are connected in proximity or under the control of the same user, and existing technologies struggle to manage copyright restrictions effectively.
A wireless media stream delivery system that transcodes and adapts media content to different playback modes and formats based on user commands, while ensuring compliance with digital rights and copyright restrictions through device discovery, trust level establishment, and encryption.
Enables seamless access to media programs across devices with consistent playback experiences and compliance with digital rights, supporting various playback modes and formats, including trick play modes, while managing copyright restrictions.
Smart Images

Figure 2025098130000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the processing of media data. Specifically, the present invention relates to wireless media stream delivery.
Background Art
[0002] The methods described in this section are methods that could be explored, but are not necessarily approaches that have been previously considered or explored. Therefore, unless otherwise specified, none of the methods described in this section should be considered prior art solely by virtue of their inclusion in this section.
Summary of the Invention
Problems to be Solved by the Invention
[0003] Media devices used in a residence or other location can be used for various purposes. For example, multiple digital video recorders can be used to receive programs 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 network processing, word processing, email processing, etc. It is often difficult for a user to access media programs on different devices using a single device, even if both devices can be connected in close proximity in the same location or, to a greater or lesser extent, if the same user can control them via a network. In addition, many media programs are not copyright-free, and various legal restrictions are imposed on the reproduction, recording, and distribution of digital media. For this reason, it is often difficult to access and enjoy this type of media program using a normal menu interface in a consistent way that protects the basic digital rights of these media programs.
Brief Description of the Drawings
[0004]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
[0005] The present invention is shown by way of illustration and not limitation in the accompanying drawings in which like reference numerals refer to similar elements. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, 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] Some features are described such that each can be used independently or optionally in combination with other features. However, any individual feature may not address any of the above-described problems, or may only address one of the above-described problems. Some of the above-described problems may not be fully addressed by any of the features described herein. Although headings are provided, information related to a particular heading that cannot be found in the section having that heading may be found in other parts of the specification.
[0007] Specific features are described according to the following headings: 1.0 Overview of Functions 2.0 System Architecture 3.0 Streaming of Media Programs 4.0 Specific Examples of Multimedia Devices 5.0 Specific Examples of Process Flows 6.0 Overview of Hardware 7.0 Extensions and Variations
[0008] 1.0 Overview of Functions The techniques for wireless media stream delivery described in this specification can be implemented in software components, hardware components, or a combination of software components and hardware components.
[0009] In one embodiment, a stream delivery device includes one or more processors and a computer-readable storage medium that, when executed by the one or more processors, comprises instructions to stream a media program from a multimedia device to a client device. In one embodiment, while the stream delivery device is streaming a media program from a multimedia device to a client device, the stream delivery device includes: transmitting a first portion of the media program to the client device, wherein the first portion is transcoded from a first format to a second different format and the first portion is adapted to a first playback mode of the client device; receiving, from the client device, an indication of a user command that specifies a second different playback mode of the client device; and transmitting a second different portion of the media program to the client device, wherein the second portion is transcoded from the first format to the second format and the second portion is adapted to the second playback mode of the client device. As used herein, the term "playback mode of the client device" means the playback mode of a media program set by a user or by default on the client device.
[0010] In one embodiment, the first playback mode and the second playback mode represent two different operation modes among a plurality of different operation modes. The plurality of different operation modes include two or more of one or more normal playback modes, one or more forward fast-forward playback modes, one or more rewind playback modes, one or more side-loading modes, one or more other non-playback modes, and the like.
[0011] In one embodiment, the second format is configured to be decoded by the client device.
[0012] In one embodiment, the streaming device further performs the steps of receiving a streaming request for streaming a second media program, and determining whether the client device owns digital rights for performing one or more operations specified in the streaming request for streaming the second media program. In one embodiment, the streaming device further performs the step of rejecting the streaming request for streaming the second media program in response to determining that the client device does not own digital rights for performing one or more operations specified in the streaming request for streaming the second media program.
[0013] In one embodiment, the streaming device further performs the steps of receiving one or more certificates of at least one of the multimedia device and / or the client device, and establishing one or more trust levels corresponding to at least one of the multimedia device and / or the client device based at least in part on the received certificates.
[0014] In one embodiment, the streaming device is configured to perform one or more cryptographic operations related to one or more of the first portion of the media program, the second portion of the media program, and the like.
[0015] In one embodiment, the user command is one of the plurality of user commands that changes the playback mode input by the 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 includes 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 to one of the client device or another client device.
[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 device, another multimedia device, and the like while the media program is being streamed from the multimedia device to the client device.
[0019] In one embodiment, the streaming device is configured to perform the step of 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.
[0020] In one embodiment, at least one of the first portion or the second portion comprises one or more tags. The tags can be embedded in media data, media files, media streams, etc., such that a receiving device can extract the tags and perform one or more actions related to the tags. The tags can be inserted into media data, media files, media streams, etc. by a source device or an intermediate device, such that a receiving device can extract the tags and perform actions related to the tags.
[0021] In one embodiment, the stream delivery 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 these functions described herein.
[0023] FIG. 1 illustrates a specific example of a configuration for performing streaming distribution of multimedia content between a multimedia device (e.g., one or more of 108-1 to 108-N, where N is an integer of 2 or more) and a client device (e.g., one or more of 106-1 to 106-M, where M is an integer of 2 or more) according to an embodiment. The stream distribution device 102 is configured to receive one or more source media streams from one or more of the multimedia devices (108-1 to 108-N) via a first network (104-1), and perform one or more stream conveyance operations including (but not limited to) converting the one or more source media streams into one or more client media streams, etc., and transmit the one or more client media streams to one or more of the multimedia devices (108-1 to 108-N) via a second network (104-2).
[0024] Specific examples of the multimedia device include, but are not limited to, any of a digital video recorder (DVR), a home-based computing device configured to stream multimedia content to a receiving device via a network connection, a media server, a set-top box, a digital media receiver, etc. In some embodiments, all of the multimedia devices (108-1 to 108-N) in FIG. 1 can be arranged in a number of rooms in a building such as a house and connected to one or more local area networks (LANs). In some embodiments, FIG At least two of the multimedia devices (108-1 to 108-N) of 1 can be arranged at different locations and connected to different LANs through a wide area network (WAN) connection. Specific examples of client devices include, but are not limited to, any of a tablet computer, a handheld device (such as a mobile phone, etc.), a laptop, an e-reader, a personal computing device, a game device, etc. Specific examples of networks include, but are not limited to, any of 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 specific example of an embodiment, the first network (104-1) and the second network (104-2) can form one home network. In some embodiments, one or more of the first network (104-1) and the second network (104-2) can be a wireless network link.
[0025] Figure 2 illustrates a specific example of a network configuration according to one embodiment. In the illustrated embodiment, the stream delivery device (102) can be connected to the router (202) by a first connection (204-1). The stream delivery device (102) can be operatively linked to a multimedia device (e.g., 108-1) by a second connection (204-2) provided by the router (202). The stream delivery device (102) can be operatively linked to a client device (e.g., 106-1) by a third connection (104-3) provided by the router (202). In some embodiments, the multimedia device (108-1) can be a DVR, the client device (106-1) can be a tablet computer, and the router (202) can be provided with the functionality of a wireless access point (WAP). In specific examples of these non-limiting embodiments, the client (106-1) can be connected to the router by a wireless connection, while the stream delivery device (102) and the multimedia device (108-1) can be connected to the router (202) by a wired connection. In various embodiments, all of the connections (104-1 to 104-3) illustrated in FIG. 2 can be all wired, all wireless, or a combination of wired and wireless.
[0026] 3.0 Streaming of Media Programs One or more of the multimedia devices (108-1 to 108-N), the streaming device (102), the client devices (106-1 to 106-M), etc. can be configured to support one or more (e.g., multiple room) streaming protocols that enable the devices to share media by streaming over a network connection. As shown in FIG. 3, the streaming device (102) receives a first stream of a media program (e.g., 300-1 in FIG. 3) from the multimedia device (108-1) using a first type of streaming protocol and / or data format, generates a second stream of the media program (e.g., 300-2 in FIG. 3) based on the content data received in the first stream (300-1), and can transmit the second stream (300-2) of the media program to the client device (106-1) using a second type of streaming protocol and / or data format. In some embodiments, the first type of streaming protocol can be the same as the second type of streaming protocol. In some embodiments, the streaming device (e.g., 102 ) can use or support at least two different types of streaming protocols simultaneously (e.g., the first type of streaming protocol can be made different from the second type of streaming protocol). Specific examples of streaming protocols include, but are not limited to, TiVo Multi-Room Streaming (MRS), HTTP Live Streaming (HLS), etc. In a non-limiting specific example of implementation, the media content can be streamed from the multimedia device (e.g., 108-1) to the streaming device (102) using the MRS protocol, but the media content can also be streamed from the streaming device (102) to the client device (e.g., 106-1) using the HLS protocol.
[0027] As used herein, "content within the stream of the media program" can be the same as or different from the content of the media program from which the stream is derived or generated. In one specific example, when this media program is streamed for playback or recording in the normal playback mode, the content within the corresponding stream can be the same as the content of this media program. In another specific example, when this media program is streamed for playback or recording in a different mode other than the normal playback mode, the content within the corresponding stream can be made different from the content of this media program (for example, a version adapted to the trick playback mode that has been downsampled / upsampled from a normally played media program, etc.). For example, in playback related to the trick playback mode during fast forward or rewind, the content within the corresponding stream can be made a subsampled version and / or a time-reversed version of the content of the media program.
[0028] In some embodiments, the stream described herein can be configured to transmit media program content whose content has dynamically changed from the content of a media program and is specifically adapted to a particular playback mode, including but not limited to normal playback mode at various times on a client device, trick playback mode at various times, etc. Thus, at a particular point in time of stream delivery, the stream can carry a portion of the media program content without skipping or repeating, but at different points in time of stream delivery, the stream can carry a modified / generated / adapted portion (e.g., by skipping, repeating, downsampling, upsampling, rate adaptation, etc.) that is different from the portion of the media program from which the modified / generated portion is derived. In some embodiments, the stream between the multimedia device (e.g., 108-1) and the stream delivery device (102) can carry this content of this media program without any skipping or repeating, but the corresponding stream (e.g., the stream corresponding to the stream between the multimedia device 108-1 and the stream delivery device 102) between the stream delivery device (102) and the client device (106-1) can carry a modified / generated / adapted portion (e.g., by skipping, repeating, downsampling, upsampling, rate adaptation, etc.) that is different from the corresponding portion of the media program from which the modified / generated / adapted portion is derived.
[0029] The speed at which a media program is streamed between devices can be the same as the normal playback speed or can be different from the normal playback speed of this media program. A streaming device (e.g., 102) can stream a media program of a specific time duration (e.g., 2 hours) from a multimedia device (e.g., 108-1) to a client device (e.g., 106-1) in a time duration shorter than this specific time duration (e.g., 10% of 2 hours, a few minutes, a few seconds, etc.) or longer than this specific time duration (e.g., 200% of 2 hours, 3 hours, etc.). In some embodiments, this streaming device (102) can be configured to prioritize two or more streams based on one or more factors (including, but not limited to) including the operating mode being supported by each of the two or more streams. The fast-forward playback mode can be given the highest priority. The normal playback mode can be given the next highest priority. Downloads without playback can be given a lower priority than these priorities. The side-loading mode can be given some of the lowest priorities. These one or more factors can 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 to a client device can be given a lower priority, thereby taking longer to stream another stream that should be streamed in the normal playback mode on this client device, another client device, etc., for a live broadcast, a media program, etc.
[0030] The maximum number of streams that this streaming device (102) can be configured to support simultaneously can be 1, 2, 3, 4, or more. For example, this streaming device (102) can be configured to support four separate shows from 1, 2, 3, or 4 multimedia devices (e.g., 108-1 to 108-N), and separate interactions (including, but not limited to, individual trick play modes for these separate shows) with 1, 2, 3, or 4 client devices (e.g., 106-1 to 106-M). In one specific example, when the streaming device (102) streams different media programs from the same multimedia device (108-1) or another multimedia device (e.g., 108-2) to the same client device (106-1) or another client device (106-2), the streaming device (102) can stream a media program from the multimedia device (108-1) to the client device (106-1) simultaneously. In another specific example, 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 specific example, the streaming device (102) can simultaneously stream different parts of a media program from two or more multimedia devices (e.g., 108-1, 108-2, etc.) to one, two, or more client devices (e.g., 106-1, 106-2, etc.) at the same time.
[0031] The streaming device (102) can be configured to perform one or more operations related to device discovery, demultiplexing, multiplexing, buffering, decryption, decoding, transcoding, encoding, encryption, time resampling, spatial resampling, streaming, rate adaptation, resolution adaptation, etc.
[0032] Stream delivery devices, multimedia devices, and client devices can discover other stream delivery devices, multimedia devices, and client devices using various standard-based or non-free software device discovery techniques, including but not limited to service discovery protocols, DNS service discovery (DNS-SD), dynamic host configuration protocol (DHCP), etc. A stream delivery device (102) can be configured to discover multimedia devices (e.g., 108-1 to 108-N) and client devices (e.g., 106-1 to 106-M), exchange one or more certificates with these discovered devices, and establish one or more trust levels with these discovered devices that can be used in part to determine whether a particular user or device has an authenticated identity with appropriate digital rights and / or access to a particular program. Similarly, any of the multimedia devices (108-1 to 108-N) and client devices (106-1 to 106-M) can be configured to discover certificates, exchange them with other devices, and establish a trust level with other devices.
[0033] For service or device discovery processes related to media devices such as multimedia devices (108-1 to 108-N), a stream delivery device (one of which can be 102 in FIG. 1), and client devices (106-1 to 106-M), sessions can be executed based on inter-device stream delivery. Sessions for stream delivery can be associated with one or more timeouts. In some embodiments, in order to stream media content from a multimedia device (108-1) to a client device (106-1) via a stream delivery device (102), the stream delivery device (e.g., 102) and / or the client device (106-1) can be required to be defined / specified with the same account as the multimedia device (e.g., a user account having a multimedia service provider, etc.). Additionally, optionally or alternatively, the stream delivery device (e.g., 102) and / or the client device (106-1) can be required to share the same digital certificate as the multimedia device (e.g., a digital certificate distributed to these devices by a service provider, etc.) in order to stream media content from the multimedia device (108-1) to the client device (106-1) via the stream delivery device (102). The client device (106-1) can be required to present a valid digital certificate to the multimedia device (108-1), the stream delivery device (102), or a service related to this digital certificate in order to request the stream delivery of certain media content (e.g., premium, paper view, etc.).
[0034] For the encryption / decryption of media content, a variety of encryption / security technologies can be used, including (but not limited to) encryption methods having functions such as the Data Encryption Standard (DES), the Advanced Encryption Standard (AES), MD5, SHA-1, SHA-2, SHA-3, private keys, and public keys. The encryption technology described in this specification can be implemented by hardware, software, or a combination of the two. The content delivered in a stream (or the content carried by the stream) can be encrypted based on a shared secret between the stream transmission device and the stream reception device. One or more first encryption technologies can be used to encrypt and decrypt the content delivered in a stream between the multimedia device (108-1) and the stream delivery device (102). One or more second encryption technologies can be used to encrypt and decrypt the content delivered in a stream between the stream delivery device (102) and the client device (102-1). In some embodiments, one or more of the first encryption technologies can be the same as the second encryption technology. In some embodiments, at least one of the one or more first encryption technologies can be made different from all of the one or more second encryption technologies. In addition to this, optionally, or alternatively, in some embodiments, at least one of the one or more second encryption technologies can also be made different from all of the one or more first encryption technologies. The stream delivery device (102) can be configured to decrypt all or part of the content delivered in a stream encrypted by one or more first encryption technologies from the multimedia device (108-1), encrypt all or part of the re-streamed content generated based on the content delivered in a stream received from the multimedia device (108-1), and transmit the encrypted re-streamed content to the client device (106-1).
[0035] For encoding / decoding media content, various coding techniques related to one or more of MPEG-2, MPEG-4, H.263, H.264, VP8, QuickTime, Adobe Flash, Windows Media, etc. can be used. The coding (e.g., encoding, decoding, transcoding, etc.) techniques described in this specification can be executed by hardware, software, or a combination of these two. Using the first coding technique, the content streamed between the multimedia device (108-1) and the streaming device (102) can be encoded and decoded. Using the second coding technique, the content streamed between the streaming device (102) and the client device (102-1) can be encoded and decoded. In some embodiments, the first coding technique can be the same as the second coding technique. In some embodiments, the first coding technique can be made different from the second coding technique. The streaming device (102) can be configured to transcode all or part of the content streamed in the first coding format from the multimedia device (108-1) into the second coding format, and transmit the transcoded streamed content in the second coding format to the client device (106-1). The second coding format can be a format in which the client device (108-1) executes acceleration features based on hardware. Alternatively, the second coding format can be a format when a support software package is installed on the client device (108-1).
[0036] In some embodiments, the stream delivery device (102) can cause the multimedia device (108-1) or the client device (106-1) to perform one or more operations related to transcoding. In one example, the stream delivery device (102) can request the multimedia device (108-1) to transcode the content of a media program from a first coding format to a second coding format, and then stream the content of the media program transcoded in the second coding format to the stream delivery device (102). In another example, the stream delivery device (102) can stream the streamed content of a media program in a first coding format received from the multimedia device (108-1) to the client device (106-1). The client device (106-1) can be configured to use the streamed content in the first coding format or to transcode the streamed content to a second coding format.
[0037] Media programs (e.g., TV programs, movies, live broadcasts, etc.) can be played back by changing the media time length in the normal playback mode. In one specific example, a TV program can last for 30 minutes in the normal playback mode, i.e., it can have a media time length of 30 minutes. In another specific example, a movie can last for 2 hours in the normal playback mode, i.e., it can have a media time length of 2 hours. In yet another specific example, for a live broadcast, the media time length will be undetermined until the end of the broadcast. In some embodiments, the stream delivery device (102) can be configured to receive a first stream of a media program (e.g., 300-1) from the multimedia device (108-1) and buffer / cache / store a specific portion of the media program (e.g., in the media data buffer 302). The portion of the media program buffered in the stream delivery device (102) can indicate all of the media time length of the media program or only a subset of all of the media time length of the media program. The portion of the media program buffered in the stream delivery device (102) can already be transcoded into a second coding format, or still be encoded in the first coding format, or can be temporarily transcoded into an intermediate coding format. In some embodiments, the stream delivery device (102) can be configured to have remote buffering capabilities. In one specific example, the stream delivery device can be configured to buffer a portion of the media program (e.g., in the first coding format) during stream delivery using the multimedia device (108-1). In another specific example, the stream delivery device can be configured to buffer a portion of the media program (e.g., in the second coding format) during stream delivery using the client device (106-1).
[0038] In some embodiments, both the normal and trick play modes that can be accessed by a user via a client device (106-1) can be supported using the buffered portions of the media program described herein. The normal play mode means playing the media program at normal speed without skipping, repeating, or skipping any video frames of the media program. The trick play mode means playing the media program by skipping or repeating some video frames of the media program.
[0039] In one specific example, when the client device (106-1) is displaying a live broadcast received by the video tuner of the multimedia device (108-1) and stream delivered by the stream delivery device (102), the client device (106-1) and / or the stream delivery device (102) can accumulate and buffer the live broadcast portion up to the current real time (30 minutes). Any of the normal play mode at the current real time, the normal play mode at a time prior to the current real time, one or more fast forward play modes (e.g., 1.2 times, 1.5 times, 1.8 times the normal play speed, etc.) at a time prior to the current real time, or one or more rewind play modes from the current real time until a time when the streamed content of the media program can be found in the buffered portion of the live broadcast can be supported using the buffered portion of the live broadcast.
[0040] In another specific example, when the client device (106-1) is playing a non-live media program stored in the multimedia device (108-1) and streamed via the streaming device (102), the client device (106-1) and / or the streaming device (102) can accumulate and buffer a portion (30 minutes) of the media program that includes the current playback position of the non-live media program on the client device (106-1). Using this buffered portion of the non-live media program, any of the normal playback mode at the current playback position, the normal playback mode at a different time other than the time corresponding to the current playback position (e.g., a new current playback position), one or more (e.g., 1.2 times, 1.5 times, 1.8 times the normal playback speed, etc.) forward fast-forward playback modes by this buffered portion of the non-live media program, or one or more rewind playback modes within the range of this buffered portion of the non-live media program can be supported.
[0041] In some embodiments, a client - centric streaming model can be used. In this model, for example, a multimedia device (e.g., 108 - 1) and client devices (e.g., 102, 106 - 1 and 108 - 1) that stream can, after discovering the presence of their respective other devices, the multimedia device (e.g., 108 - 1) can provide the content of a media program to a client device (e.g., 106 - 1) via a streaming device (e.g., 102) in the direction of the client device (106 - 1). Thereafter, requests and responses can be exchanged between two or more of the client device (106 - 1), the streaming device (102), or the multimedia device (108 - 1). In some embodiments, other devices such as other multimedia devices (e.g., 108 - 2 to 108 - N) and other client devices (e.g., 106 - 2 to 106 - M) can also be involved in operations described in similar or different manners herein. Some of these requests and responses can be generated based on user commands, or they can identify user commands.
[0042] In some embodiments, the stream of the media program to the client device (e.g., 106-1) comes from the stream delivery device (e.g., 102). These streams can be generated based on the stream of the media program from the multimedia device (e.g., 108-1 to 108-N) to the stream delivery device (102). The client device (106-1) can exchange requests and responses with the multimedia device (e.g., 108-1) through one or more communication channels provided by the stream delivery device (102). The client device (106-1) can obtain available programming information and / or metadata information regarding this media program (e.g., descriptive or text information regarding the media program being played or of interest to the user, information regarding actors, locations, products or things appearing in the media program, etc.) from the multimedia device (108-1) (or service provider, source between networks, etc.) using one or more (e.g., non-stream delivery) requests and responses. In some embodiments, the stream delivery request from the client device (e.g., 106-1) is addressed to the stream delivery device (e.g., 102), whereby a separate stream delivery (corresponding to the stream delivery request from the client device 106-1) can be requested from one or more multimedia devices (108-1 to 108-N).
[0043] The client device (106-1) can be configured to present a screen display to the user and receive user commands from the user. The user can navigate this screen display interactively to search for a specific media program in which the user is interested, obtain information about the media program, play the selected media program, and instruct the client device (102) to download or sideload the media program. As used herein, the term "sideload" means the loading of a media program that is executed in parallel with the playback of the media program or other media programs.
[0044] The client device (106-1) can obtain available programming information from the stream delivery device (102) and / or the multimedia device (108-1). The tuner on the multimedia device (e.g., 108-1 to 108-N) can be allocated to the client device (106-1 to 106-M) on demand or after the discovery process has successfully obtained a result that the credit level meets the conditions for streaming a media program from the multimedia device (108-1 to 108-N) to the client device (106-1 to 106-M).
[0045] The client device (106-1) can send a request to the stream delivery device and receive available programming information that describes which media programs are available. The stream delivery device (102) can be configured to provide this available programming information to the client device (106-1) upon receiving this request. The stream delivery device (102) can obtain available programming information from one or more of the multimedia devices (e.g., 108-1 to 108-N) operatively linked to the stream delivery device (102) (e.g., in response to receiving a request from the client device (106-1)). Alternatively, the stream delivery device (102) can obtain available programming information from one or more of the multimedia devices (e.g., 108-1 to 108-N) operatively connected to the stream delivery device (102) before receiving a request from the client device (106-1).
[0046] The available programming information can include an address (e.g., a channel, a URL (Universal Resource Locators), a file name, a media data database, a media server, a media distribution system, etc.) that can be used to obtain or stream a media program. The available programming information described herein can include availability information of a media program stored in one of the multimedia devices (108-1 to 108-N), or availability information of a media program that is not stored in one of the multimedia devices (108-1 to 108-N) but can be received by one of the multimedia devices (108-1 to 108-N). For example, the client device (102-1) can request a movie on a DVD that is not stored in any of the multimedia devices (108-1 to 108-N) but can be received by a selected multimedia device (e.g., 108-1) among the multimedia devices (108-1 to 108-N). The selected multimedia device (108-1) can allocate one of the one or more tuners to receive the live broadcast and stream the live broadcast content to the client device (106-1) by the stream delivery device (102). Similarly, the selected multimedia device (108-1) can access the movie on the DVD via one of the digital interfaces and stream the movie content to the client device (106-1) by the stream delivery device (102). In some embodiments, multiple streams of the media program can be restreamed to the client device (102) by the stream delivery device (102) simultaneously. One of the multiple streams of the media program can be played while sideloading other streams of the multiple streams of the media program to the client device (106-1).
[0047] The media program is copyright-free, and thus the content of any media program containing content to be streamed can be copied without restriction. Alternatively, if the media program is protected by copyright and the digital rights for the media program to perform these operations are secured and authenticated, the content of any media program containing content to be streamed can only be copied, recorded, or distributed. In some embodiments, the multimedia device (e.g., 108-1) and / or the streaming device (102) can be configured such that the client device (e.g., 106-1) or the user verifies whether they have legitimate digital rights to the media program. The streaming of the media program to the client device (106-1) can be made to execute in response to the user having verified digital rights to the media program. For example, the media devices (e.g., multimedia device, streaming device, client device, etc.) described herein can implement a security scheme where the receiving client device can play the media program via the stream of the media program, but the receiving client device cannot copy or record the media program via this stream.
[0048] The client device (106-1) can send a request to select a media program for streaming to the streaming device. This request can represent a user command to play the media program or to side-load the media program in parallel with the playback of another media program. The streaming device (102) can be configured to query the client device for proof of the user's digital rights for the media program, either programmatically and / or manually, in response to receiving the request from the client device (106-1). Additionally, optionally or alternatively, the streaming device (102) can be configured to determine the user's digital rights for the media program based at least in part on a previously received certificate from the client device (106-1) or at least in part on a previously established level of trust with the client device (106-1) upon receiving the request from the client device (106-1).
[0049] The digital rights described herein include, but are not limited to, any of the rights to play, copy, distribute, etc. The streaming device (102) can be configured to stream the media program from the multimedia device (108-1) to the client device (106-1) in accordance with the verified digital rights in response to a positive inquiry / verification result as to whether the user has digital rights for the media program. For a negative result, the user's request for the media program can be rejected or restricted in correspondence with the user's digital rights for the media program.
[0050] In addition, optionally or alternatively, the stream delivery device (102) can be configured to determine whether the user has only a single copyright for the media program. If the user has only a single copyright and the media program has already been replicated / recorded by the client device (106-1), the devices related to stream delivery can execute a protocol to remove the media program from the multimedia device (108-1). To ensure that only one copy of this media program exists either in the multimedia device (108-1) or the client device (106-1), this stream delivery device can perform one or more operations (e.g., delivering the media program to one device, deleting the media program from another device, maintaining copies of the media program within multiple devices within the limits permitted by digital rights).
[0051] When the streaming device (102) determines that the client device or its user does not have digital rights to the media program, the streaming device (102) can take one or more of the following actions. The streaming device (102) can reject the request to stream the media program to the client device (106-1). In addition, optionally or alternatively, the streaming device (102) can stream only a version of this media program in which commercials, trailers, highlights or an approved shortened version are embedded to the client device (102). In addition, optionally or alternatively, the streaming device (102) can cause the client device (102) to obtain digital rights to this media program directly from the rights owner authenticated for the media program by either the streaming device (102) or one of the multimedia devices (108-1 to 108-N), or by a network connection (e.g., Internet-based).
[0052] When the streaming device (102) determines that the client device (106-1) or its user has digital rights to a media program, the streaming device (102) or the stream controller (e.g., 116 in FIG. 1) can send one or more requests to the multimedia device (108-1) to stream this media program from the multimedia device (108-1) to the streaming device (102). The streaming device (102) can be configured to communicate stream delivery requests and responses with the multimedia device (108-1) based on the same protocol used to stream media programs among the multimedia devices (108-1 to 108-N) (e.g., a protocol for streaming to multiple rooms). In some embodiments, the stream delivery requests described herein identify at least a portion of the media program to be streamed. In response to receiving a stream delivery request from the streaming device (102), the multimedia device (108-1) performs one or more operations to stream the requested portion of this media program to the streaming device (102).
[0053] The streaming device (102) or a source streaming module therein (e.g., 110 in FIG. 1) can be configured to receive the first content (e.g., the requested portion) of the media program of the first stream (e.g., 300-1 in FIG. 3) from the multimedia device (e.g., 108-1 in FIG. 1), which is the media program requested by the client device 106-1. After the first content of the media program is received by the streaming device (102), the streaming device (102) or the stream adaptation module (114) therein can be configured to perform one or more operations to convert or adapt the first content streamed from the multimedia device (108-1) into the second content in the second stream (e.g., 300-2 in FIG. 3) from the streaming device (102) to the client device (106-1). Thereafter, the streaming device (102) or the client streaming module therein (112 in FIG. 1) can be configured to deliver the second content to the client device (106-1) in the second stream (300-2).
[0054] In some embodiments, one or more tags can be embedded in a stream from a streaming device (e.g., 102) to a client device (e.g., 106-1). The technology related to tags is described in U.S. Patent No. 7,889,964, and all of this content is hereby incorporated by reference. The devices described herein can be configured by a mechanism for inserting tags into media streams such as audio streams, video streams, television broadcast streams, and the like. The tags can be inserted into the media stream before or during transfer. These tags contain commands and control information that the receiving device translates and executes. The receiving device can be configured to perform the operations described herein in response to these tags during this tag processing stage. Tags can be used to indicate start and end points such as program segments, subsets of media data units, and the like. Tags can be used to indicate the presence or absence of media features, and the like. The receiving device can be configured to fast forward, slow play, and skip program segments during playback in response to tags or in response to user input related to 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 menu, icon, or web page via an input device. The receiving device performs actions related to the menu, icon, or web page and the user input. Tags can be used to create indexes for media data, media streams, media files, and the like. This enables the user to jump to specific indexes within the media data, media stream, or media file.
[0056] Tags within the stream (e.g., the second stream 300-2 in the aforementioned example) to the client device (106-1) cause an interactive icon for the user to be displayed on the client device (106-1), enabling the user to select it. By the user selecting the interactive icon, one or more actions associated with this tag can be executed. Information tags within the stream (e.g., the second stream 300-2 in the aforementioned example) to the client device (106-1) can inform the client device (106-1) of specific portions of the information. For example, the duration in the trick play mode on the client device (106-1) (e.g., fast-forward playback of a 10-minute media program) can be made to correspond to the duration in the normal playback mode (e.g., 20 minutes of normal playback without skipping or repeating the media program). The information tag can tell the client device (106-1) how much the corresponding duration in the normal playback mode corresponds to the duration in the trick play mode. Tags can be embedded within the stream (e.g., the first stream 300-1 in the aforementioned example) from the multimedia device (e.g., 108-1) received by the stream delivery device (102). In addition to this, optionally or alternatively, the stream delivery device (102) can insert tags into the stream (e.g., the second stream 300-2) to the client device (106-1).
[0057] Content delivered via a stream can comprise premium content and / or non-premium content. For example, a pay-per-view media program can be delivered in a stream as described herein. Resources on a multimedia device such as a tuner (e.g., 108-1) can be utilized to obtain multimedia content that is streamed from the multimedia device (108-1) to a client device (e.g., 106-1). A stream delivery device (e.g., 102) can be configured to support viewing of a television channel obtained by a tuner controlled by or located within a multimedia device (e.g., 108-1~108-N). A user can change channels and view live television signals streamed by a multimedia device (108-1~108-N). For example, while streaming a media program (which can be a live television channel, a stored media program, a media program via a digital video interface, etc.) from a multimedia device (108-1) to a client device (106-1), the stream delivery device (102) can receive a stream delivery request from the client device (106-1) to switch to or simultaneously play another media program. The other media program can be received from, but is not limited to, a tuner of the multimedia device (108-1), a tuner of another multimedia device (e.g., 108-2), etc. In response, the stream delivery device (102) can switch to or add a new stream for the other media program.
[0058] In some embodiments, the multimedia device (e.g., 108-2) can be a client device that streams the services provided by the stream delivery device (e.g., 102) described herein. The stream delivery device can be configured to receive a stream of a media program from a source multimedia device (e.g., 108-1) and generate two or more streams of the media program based on the stream of the media program to the client device. One of the two or more streams of the media program can be for recording at a destination multimedia device (e.g., 108-2) that will be the client device for the purpose of streaming the media program. Another stream of the two or more streams of the media program can be for recording or playback at a mobile device that can be the client device (e.g., 106-2). The stream delivery device (102) can be configured to determine that streaming the media program to multiple devices for the intended playback or recording operation is in compliance with the digital rights of one or more users or client devices that request the streaming of the media program.
[0059] In some embodiments, a stream delivery device (e.g., 102) can be configured to receive one or more stream delivery requests for a media program from a first device (which can be a local device, a remote device connected via the Internet, etc.), and generate one or more streams of the media program to at least a second device different from the first device. Thus, a user can travel around the world and still interact with the stream delivery device (e.g., 102) to stream a preferred media program to a remote device (e.g., 106-1) carried by the user or to a different client device (e.g., 106-2) located elsewhere.
[0060] The stream delivery device (e.g., 102) described herein can be configured to establish communication channels with multimedia devices (e.g., 108-1 to 108-N) and client devices (e.g., 106-1 to 106-M). Establishing the communication channels can be performed as part of a process to discover services and devices within these multimedia devices or as a separate operation performed after this discovery process. The communication channels can be used as one or more data paths and / or one or more control paths between two or more of the multimedia devices (108-1 to 108-N), the stream delivery device (102), the client devices (106-1 to 106-M), or other devices / servers (e.g., a content server connected to one or more of the multimedia devices 108-1 to 108-N via an Internet or dedicated wide area network connection). The communication channels described herein can carry streams of media programs, in-band control and data information (e.g., associated with a stream of a media program), or out-of-band control and data information (e.g., separate from any stream delivery of a media program).
[0061] In some embodiments, a client device (e.g., 106-1) and a multimedia device (e.g., 108-1) that can stream a media program to a client device by a streaming device (e.g., 102) can execute a plurality of common (or standard) menu screens. The streaming device (102) can use available programming information and other metadata that can be used to drive a common menu screen (e.g., executed in a data-driven model) on a client device described herein via one or more communication channels to provide or deliver from any one of one or more multimedia devices (e.g., 108-1 to 108-N) to any one of one or more client devices (106-1 to 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 a multimedia device. In some embodiments, software and / or hardware based on security features to prevent hacking or stealing of protected media content (e.g., premium media programs) can be executed by one or more of a multimedia device (e.g., 108-1), a streaming device (e.g., 102), and a client device (e.g., 106-1) related to streaming the protected media content.
[0062] In some embodiments, a stream delivery device (e.g., 102) can be configured to automatically or upon a user command switch a stream in progress of a media program from a first multimedia device (e.g., 108-1) to a second different multimedia device (e.g., 108-2). The stream delivery device (102) can be configured to determine whether to switch the stream in progress 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 specific example, the stream delivery device (102) determines that a second different multimedia device (108-2) is the least busy multimedia device among a plurality of multimedia devices (e.g., 108-1 to 108-N), and thus can switch the stream from the first multimedia device (108-1). In some embodiments, a stream delivery device (e.g., 102) can be configured to switch a stream in progress of a media program from a first multimedia device (e.g., 108-1) to a second different multimedia device (e.g., 108-2). The stream delivery device (102) can be configured to determine whether to switch the stream in progress based on one or more factors. These factors include, but are not limited to, user commands, network load conditions, multimedia device load conditions, etc. In one specific example, the stream delivery device (102) can receive a user command (e.g., provided by a client device such as 106-1) stating that a second different multimedia device (108-2) should be used instead of the first multimedia device (108-1). In response, the stream delivery device (102) can switch the stream from the first multimedia device (108-1) to the second multimedia device (108-2).In another specific example, the stream delivery device (102) determines that the second different multimedia device (108-2) is the least busy multimedia device among a plurality of multimedia devices (e.g., 108-1 to 108-N), and thus, the stream can be switched from the first multimedia device (108-1) to the second multimedia device (108-2). In a further specific example, the stream delivery device (102) determines that the first multimedia device (108-1) is busier and / or consumes more resources and / or has inferior performance compared to the second different multimedia device (108-2), and thus, the stream can be switched from the first multimedia device (108-1) to the second multimedia device (108-2).
[0063] In some embodiments, a stream delivery device (e.g., 102) can be configured to automatically or upon user command switch a stream in progress of a media program from a first client device (e.g., 106-1) to a second different client device (e.g., 106-2) or another media device. The stream delivery device (102) can be configured to determine whether to switch the stream in progress based on one or more factors. These factors include, but are not limited to, network load conditions, client device load conditions, device capabilities and compatibility, etc. In one specific example, the stream delivery device (102) determines that a second different client device (106-2) or another media device is the best media device (e.g., a high-definition TV in a room where the user's presence is detected or sensed) for rendering the media program among a plurality of media devices (e.g., client devices 106-1 to 106-N, other media devices, etc.), and thus can switch the stream from the first client device (106-1) to the second multimedia device (106-2) or another media device.
[0064] The streaming device (e.g., 102) can be configured to support various trick play modes for a media program being streamed from a multimedia device (108-1) to a client device (e.g., 106-1). While the media program is being streamed in a normal playback mode via a complete stream path (e.g., 300 in FIG. 3) comprising a first stream (e.g., 300-1) of the media program between the multimedia device (108-1) and the streaming device (102) and a second stream (e.g., 300-2) of the media program between the streaming device (102) and the client device (106-1), the client device (102) can send a user command to the streaming device (102) in the form of a trick play mode streaming request to initiate the trick play mode. In the normal playback mode, the streaming device (102) can send a first portion of the media program, adapted for the normal playback mode, in the second stream (300-2). For example, the first portion can comprise image frames that were originally included in the media program and have no skips or repeats. In the trick play mode, the streaming device (102) can send a second portion of the media program, adapted for the trick play mode, in the second stream (300-2). For example, the second portion can comprise skipping and / or repeating image frames that were originally included in the media program, depending on the trick play mode (e.g., fast forward, variable fast forward, reverse / rewind, pause, etc.). In some embodiments, while the second stream (300-2) is being used to send image frames adapted to the current playback operation mode to the client device (106-1), the multimedia device (108-1) can send the image data (e.g., all image frames) that were originally included in the media program in the first stream (300-1) as being suitable for the normal playback mode.In some embodiments, while a second stream (300-2) is being used to send image frames adapted to the current playback mode to a client device (106-1), the multimedia device (108-1) can also send image data adapted to the current mode in a first stream (300-1). Thus, support for the trick play mode of a client device (e.g., 106-1) can be provided by the client device (106-1), a stream delivery device (e.g., 102), a multimedia device (e.g., 108-1), or two or more of the foregoing media devices.
[0065] The stream delivery device (e.g., 102) can be configured such that a first user can directly perform media processing / rendering operations by the multimedia device (108-1) and an image rendering device operatively linked to the multimedia device (108-1), and a second user can perform independent media processing / rendering operations by the client device (e.g., 106-1), while the multimedia device (e.g., 108-1) can support both simultaneously. In some embodiments, the multimedia device can be composed of one or more tuners. If there are two or more tuners, separate tuners can be assigned to each of the first user and the second user, enabling the users to view separate channels, live broadcasts, etc. In some embodiments, the presentation and interaction of the menu screen can be provided centrally by the multimedia device (108-1) using, for example, a thin client approach. In some embodiments, the multimedia device (108-1) provides basic data for the presentation and interaction of the menu screen on the client device (106-1) using, for example, a fat client approach.
[0066] The stream delivery device (e.g., 102) can be configured to detect the types of multimedia devices (108-1 to 108-N) and client devices (106-1 to 106-M), and customize one or more characteristics such as operating parameters, bitrate, dynamic range, color gamut support, resolution, etc., according to the detected device types. In one specific example, the stream delivery device (102) can set a bitrate of 2 Mbit / second for a client device such as a tablet computer, and set a bitrate of 10 Mbit / second for a 50-inch high-end TV. The stream delivery device (102) can be configured to monitor the use of the bandwidth of one or more streams and dynamically change the allocation of the bandwidth to one or more streams.
[0067] The stream delivery device (e.g., 102) can be configured to stream media content from a client device (106-1) to a multimedia device (e.g., 108-1). For example, a personal video captured by a tablet computer or a handheld device can be streamed in a manner similar to the method (described herein) of streaming media content by the stream delivery device (102) in the reverse direction.
[0068] A streaming device (e.g., 102) can be configured to interoperate with a media device having various capabilities and features and to appropriately utilize the capabilities and features of this media device. For example, for a multimedia device with lower capabilities, the streaming device (102) can perform transcoding (e.g., from a client device to personal media content, home video, etc.) or more operations for the multimedia device with lower capabilities, while for a multimedia device with higher capabilities, the streaming device (102) can perform streaming or fewer operations for this multimedia device with higher capabilities. In addition to this, optionally or alternatively, the streaming device (102) can perform different operations for client devices with different capabilities and features.
[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 this functionality described herein. The components of this system or system configuration can be connected, for example, by a data bus, a data link, a local area network (LAN), a wide area network (WAN), the Internet, an intranet, an extranet, etc. Instead of or in addition to this, any number of devices in this system or system configuration can be directly connected via a wired or wireless communication segment, respectively.
[0070] One or more components described within this system or system configuration can be grouped together within a single device or separated into several discrete devices that are operatively linked. Each of these components is presented for the purpose of clarifying the functionality described herein and is not necessarily required to practice the present invention. Additionally, components not shown (in the figures described herein) can also be used to perform the functionality described herein. The functionality described as being performed by one component can also be performed by another component.
[0071] As used herein, media programs mean media data that includes audio content including, but not limited to, any of audio data, audio transcription data, audiovisual data, multimedia data, downloaded content data between networks, multimedia data having marked language pages, video, movie, multimedia presentation, audio book, e-book, podcast, etc. Media data units mean data units that include audio data including, but not limited to, any of audio samples, audio transcription data that can be used for speech synthesis, audio data units, audiovisual data units, media data segments, image frames, etc. Media data can be received by the systems described herein using one or more wired-based links or wireless links. Media data can be received in the form of media files, media data streams, etc. Media data includes CD, MPEG-1, MPEG-2 and MPEG-2.5 Audio LayerIII (MP3), Advanced Audio Coding (AAC), DVD, HDDVD, Blu-ray... It can be received in any of a variety of formats defined by the specifications of standard or non-free software related to, but not limited to, disks, H.261, H.263, H.264 / MPEG-4, etc.
[0072] 4.0 Specific Examples of Multimedia Devices FIG. 4 is a block diagram showing specific examples of the internal structure and operation of a multimedia device according to an embodiment of the present invention. Specific examples of the internal structure and operation of a media device such as a digital video recorder (DVR) are described in detail in U.S. Patent No. 6,233,389 owned by the applicant of this application, which is incorporated herein by reference as if originally disclosed herein. In some embodiments, this multimedia device can include some or all of the software and / or components illustrated in FIG. 1 or FIG. 2.
[0073] The multimedia device shown in FIG. 4 includes an input module 401, a media switch 402, and an output module 403. The input module 401 receives a television (TV) input stream in any of various forms. For example, the TV input stream received by the input module 401 can take the form of a signal corresponding to the National Television Standards Committee (NTSC) or a broadcast signal corresponding to PAL. For another specific example, the TV input stream received by the input module 401 can take a digital form such as a signal corresponding to a Digital Satellite System (DSS), a signal corresponding to a Digital Broadcast System (DBS), or a signal corresponding to the Advanced Television Standards Committee (ATSC). DBS, DSS, and ATSC are based on standards called Moving Pictures Experts Group 2 (MPEG-2) and MPEG-2 Transport. MPEG-2 Transport is a standard for formatting digital data streams from TV source transmitters so that a TV receiver can decompose the input stream and find programs in the multiplexed signal. According to one embodiment, the input module 401 generates an MPEG stream. In another embodiment, the input module 401 generates a stream encoded using different codecs.
[0074] The MPEG-2 Transport multiplex supports multiple programs (multiple video and audio feeds and private data) on the same broadcast channel. The input module 401 tunes the channel to a specific program, extracts the identified MPEG stream from this channel, and supplies this MPEG stream to the rest of the system. Analog TV signals are encoded into a similar MPEG format using separate video and audio encoders so that the rest of the system does not know how this signal was obtained. Information can be modulated into the vertical blanking interval (VBI) of the analog TV signal in many standard ways. For example, the North American Broadcast Teletext Standard (NABTS) can be used to modulate information onto specific lines of the NTSC signal, but in this standard, other specific lines are mandated by the FCC to be used for closed captioning (CC) and extended data service (EDS). Such signals are decoded by the input module 401 and passed to other modules as if this signal had been delivered via an MPEG-2 private data channel.
[0075] The input module 401 can also receive stream delivery content from network sources such as local or remote NAS storage devices, Internet content providers, local or remote multimedia devices, etc. The format of the received content stream can be many different formats such as MPEG, MPEG2, MPEG4, WMV, AVCHD, MOV, H.264, MKV, etc. The input module 401 can generate an MPEG stream corresponding to the received content stream. This can be done.
[0076] 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. When a user of the multimedia device is watching real-time TV, the media switch 402 performs two operations: sending the MPEG stream to the output module 403 and simultaneously writing the MPEG stream to the hard disk or storage device 405.
[0077] Output module 403 receives an MPEG stream as input and generates an analog TV signal in the NTSC, PAL, or other TV standard format. Output module 403 includes an MPEG decoder, an on-screen display (OSD) generator, an analog TV encoder, and audio logic. This OSD generator enables the program logic to supply an image that can be overlaid on the resulting TV analog signal. In addition, output module 403 can modulate the information supplied on the VBI of the output signal by the program logic in many standard formats including NABTS, CC, and EDS.
[0078] 5.0 Specific Example of Process Flow In various embodiments, one or more of these one or more illustrated devices can perform at least some of the techniques described herein, either alone or in combination. FIG. 5 illustrates a specific example of a process flow for streaming a media program between a multimedia device and a client device, according to an embodiment. In some embodiments, a streaming device (e.g., 102 of FIGS. 1 and 2, the DVR of FIG. 4, etc.) comprising one or more computers (e.g., 600 of FIG. 6) can perform this process flow.
[0079] In block 502, while the streaming device is streaming a media program from the multimedia device to the client device, the streaming device transmits the first part of the media program to the client device. This first part is transcoded from a first format to a second different format and adapted to the first playback mode of the client device.
[0080] In block 504, the streaming device receives an instruction of a user command from the client device that specifies a second different playback mode of the client device.
[0081] In block 506, the streaming device transmits a second different part of the media program to the client device. Here, this second part is transcoded from the first format to the second format and adapted to the second playback mode of the client device.
[0082] Note that although separate embodiments are described in this specification, it should be noted that any combination of the embodiments and / or parts of the embodiments described in this specification can form further embodiments.
[0083] 6.0 Overview of Hardware FIG. 6 is a block diagram illustrating a computer system 600 that can execute an embodiment of the present invention. The computer system 600 includes a bus 602 or other communication mechanism for information communication, and a processor 604 for information processing coupled to the bus 602. 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 to be executed by the processor 604. The main memory 606 can also be used to store temporary variables or other intermediate information during the execution of instructions by the processor 604. The computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to the bus 602 for storing static information and instructions for the processor 604. A storage device 610 such as a magnetic disk or optical disk is provided and coupled to the bus 602 for storing information and instructions.
[0084] The computer system 600 can be coupled via the bus 602 to a display 612 such as a cathode ray tube (CRT) or liquid crystal display (LCD) to display information to a user of the computer. An input device 614 including alphanumeric keys and other keys is coupled to the bus 602 for communicating information and command selections to the processor 604. Another type of user input device is a cursor control 616 such as a mouse, trackball, or cursor direction keys for communicating indication information and command selections to the processor 604 and for controlling cursor movement on the display 612. This input device typically has two degrees of freedom with respect to two axes consisting of a first (e.g., x) axis and a second (e.g., y) axis that enable the device to specify a position within a plane.
[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 provided by the computer system 600 in response to a processor 604 executing one or more sequences of one or more instructions included in a main memory 606. Such instructions can be read into the main memory 606 from another computer-readable medium such as a storage device 610. Execution of the sequence of instructions included in the main memory 606 causes the processor 604 to execute the process steps described herein. One or more processors within a multi-processing device can also be utilized to execute a sequence of multiple instructions included in the main memory 606. In an alternative embodiment, instead of or in addition to software instructions for carrying out the present invention, hardwired circuitry can be used. Accordingly, embodiments of the present invention are not limited to a particular combination of hardware circuitry and software.
[0086] As used herein, the term "computer-readable medium" means any medium that provides instructions to a processor 604 for execution. Such a medium can take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks such as storage device 610. Volatile media includes dynamic memory such as main memory 606. Transmission media includes coaxial cables, copper wire, and fiber optics, including the wires that make up a bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data 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-ROM, any other optical medium, punched cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, and EPROM, FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium that can be read by a computer.
[0088] Various forms of computer-readable media can be involved in carrying one or more sequences of one or more instructions executed by the processor 604. For example, the instructions can first be carried on the magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and transmit these instructions over a telephone line using a modem. The local modem of the computer system 600 can receive data over the telephone line and convert the data into an infrared signal using an infrared transmitter. The infrared detector coupled to the bus 602 can receive the data carried by the infrared signal and place the data on the bus 602. The bus 602 carries data to the main memory 606 from which the processor 604 can read and execute the instructions. The instructions received by the main memory 606 can optionally be stored in the storage device 610 before or after execution by the processor 604.
[0089] Computer system 600 also includes a communication interface 618 coupled to bus 602. The communication interface 618 provides a coupling for bi-directional data communication to a network link 620 connected to a local network 622. For example, the communication interface 618 can be an Integrated Services Digital Network (ISDN) card or modem that provides a data communication connection to a corresponding type of telephone line. As another specific example, the communication interface 618 can be a local area network (LAN) card that provides a data communication connection to a compatible LAN. A wireless link can also be implemented. In any such implementation, the communication interface 618 transmits and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
[0090] Network link 620 typically provides data communication through one or more networks to other data devices. For example, network link 620 can provide a connection through local network 622 to a data device operated by a host computer 624 or an Internet service provider (ISP) 626. The ISP 626 provides data communication services via the worldwide packet data communication network commonly referred to today as the "Internet" 628. Both the local network 622 and the Internet 628 use electrical, electromagnetic, or optical signals that carry digital data streams. Signals through various networks carrying digital data to / from the computer system 600 and signals on network link 620 and through communication interface 618 are typical forms of carrier waves that convey information.
[0091] Computer system 600 can send messages and receive data including program code via a network, network link 620, and communication interface 618. In an example of the Internet, server 630 may send requested code for an application program via Internet 628, ISP 626, local network 622, and communication interface 618. In accordance with the present invention, such downloaded applications are provided to the remote display devices described herein.
[0092] The received code can be executed by processor 604 when it is received and / or stored in storage device 610 or other non-persistent storage for later execution. In this way, computer system 600 can obtain application code in the form of a carrier wave.
[0093] 7.0 Extensions and Variations Although specific components are detailed herein as performing method steps, in other embodiments agents or mechanisms operating in place of these specific components can perform these method steps. Further, although some aspects of the present invention are described with respect to components on one system, the present invention can be implemented by components distributed across multiple systems. Embodiments of the present invention include any system that includes means for performing the methods described herein. Embodiments of the present invention also include computer-readable media having instructions that, when executed by a computer, cause the computer to perform the methods described herein.
[0094] In the description of the specification so far, embodiments of the present invention have been described with respect to a number of specific details that can be different for each embodiment. Therefore, the only and exclusive indicator of what the present invention is and what the present invention intended by the applicant is, is a set of claims in a specific form that becomes a patent from this application, including any corrections made later. The meaning of such terms used in the claims is determined by the definitions clearly made in this specification for the terms used in such claims. Therefore, any limitation, element, characteristic, feature, effect or trait not clearly described in the claims should not limit the scope of such claims in any way. Therefore, the specification and the drawings should be regarded as illustrative rather than restrictive. For example, the present application provides the following items. (Item 1) While a stream delivery device is streaming a media program from a multimedia device to a client device, the stream delivery device sending 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 being adapted by the stream delivery device to a first playback mode of the client device; receiving an instruction of a user command from the client device to identify a second different playback mode of the client device; sending 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 being adapted by the stream delivery device to the second playback mode of the client device; and A method of execution. (Item 2) The method according to item 1, wherein the first playback mode and the second playback mode represent two different operation modes among a plurality of different operation modes, and the plurality of different operation modes include two or more of one or more normal playback modes, one or more forward fast-forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 3) The method according to item 1, wherein the second format is configured to be decoded by the client device. (Item 4) The method according to item 1, further comprising: receiving a streaming request for streaming a second media program; and determining whether the client device owns digital rights for performing one or more operations specified by the streaming request for streaming the second media program. (Item 5) The method according to item 4, further comprising: rejecting the streaming request for streaming the second media program in response to determining that the client device does not own digital rights for performing one or more operations specified by the streaming request for streaming the second media program. (Item 6) receiving one or more certificates of at least one of the multimedia device or the client device; establishing one or more credit 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 according to claim 1, further comprising 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) The method according to item 1, wherein the user command is one of a plurality of user commands for changing a playback mode input by a user of the client device while the media program is being streamed. (Item 9) The method according to item 1, wherein the network connection between the streaming device and the client device comprises at least one wireless network link. (Item 10) The method according to item 1, further comprising the step of the streaming device loading a second media program onto one of the client device or another client device while the media program is being streamed from the multimedia device to the client device. (Item 11) The method according to claim 1, further comprising the step of the streaming device streaming media content between the client device and one of the multimedia device or another multimedia device while the media program is being streamed from the multimedia device to the client device. (Item 12) The method according to item 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) The method according to item 1, wherein at least one of the first portion or the second portion comprises one or more tags. (Item 14) The method according to item 1, further comprising 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 in (Item 15) When executed by one or more processors, while the streaming device is streaming a media program from a multimedia device to a client device, the streaming device sending 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 and the first portion being adapted by the streaming device to a first playback mode of the client device; receiving an instruction of a user command from the client device to identify a second different playback mode of the client device; sending 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 and the second portion being 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 of the above steps. (Item 16) The medium according to item 15, wherein the first playback mode and the second playback mode represent two different operation modes among a plurality of different operation modes, and the plurality of different operation modes include two or more of one or more normal playback modes, one or more forward fast-forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 17) The medium according to item 15, wherein the second format is configured to be decoded by the client device. (Item 18) receiving a streaming request to stream a second media program; Determining whether the client device owns digital rights to perform one or more operations specified in the streaming request for streaming the second media program; The medium according to item 15, further comprising (Item 19) In response to determining that the client device does not own digital rights to perform one or more operations specified in the streaming request for streaming the second media program, further comprising the step of rejecting the streaming request for streaming the second media program, the medium according to item 18. (Item 20) Receiving one or more certificates of at least one of the multimedia device or the client device; Establishing one or more credit 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 comprising (Item 21) The medium according to claim 15, further comprising performing one or more cryptographic operations associated with one or more of the first portion or the second portion of the media program. (Item 22) The medium according to item 15, wherein the user command is one of a plurality of user commands that change the playback mode input by a user of the client device while the media program is being streamed. (Item 23) The medium according to item 15, wherein the network connection between the streaming device and the client device comprises at least one wireless network link. (Item 24) While the media program is being streamed from the multimedia device to the client device, the streaming device further comprises the step of loading a second media program onto the client device or one of the other client devices. The medium according to item 15. (Item 25) While the media program is being streamed from the multimedia device to the client device, the streaming device further comprises the step of streaming media content between the client device and one of the multimedia device or another multimedia device. The medium according to claim 15. (Item 26) While the streaming device is streaming the media program from the multimedia device to the client device, the streaming device further comprises the step of simultaneously streaming one or more additional media programs to one or more client devices. The medium according to item 15. (Item 27) At least one of the first portion or the second portion comprises one or more tags. The medium according to item 15. (Item 28) The streaming device further comprises the step of maintaining a media data buffer for video frames within the time interval of the media program. Item 1 The medium according to 5. (Item 29) A multimedia device, A client device, And a streaming device A system comprising: While the streaming device is streaming a media program from the multimedia device to the client device, the streaming device Sending a first portion of the media program to the client device, wherein the first portion is transcoded by the stream delivery device from a first format to a second different format, and the first portion is adapted to a first playback mode of the client device; Receiving, from the client device, an indication of a user command that specifies a second different playback mode of the client device; Sending a second different portion of the media program to the client device, wherein the second portion is transcoded by the stream delivery device from the first format to the second format, and the second portion is adapted by the stream delivery device to the second playback mode of the client device; and configured to execute. System. (Item 30) The system according to item 29, wherein the first playback mode and the second playback mode represent two different operation modes among a plurality of different operation modes, and the plurality of different operation modes include two or more of one or more normal playback modes, one or more forward fast-forward playback modes, one or more rewind playback modes, or one or more non-playback modes. (Item 31) The system according to item 29, wherein the second format is configured to be decoded by the client device. (Item 32) The stream delivery device further Receiving a stream delivery request for streaming a second media program; and Determining whether the client device owns digital rights for performing one or more operations specified by the stream delivery request for streaming the second media program. The system according to item 29, configured to execute. (Item 33) The streaming device further In response to determining that the client device does not have the digital rights to execute one or more operations specified in the streaming request for streaming the second media program, the step of rejecting the streaming request for streaming the second media program The system according to item 32, configured to execute. (Item 34) The streaming device further Receiving one or more certificates of at least one of the multimedia device or the client device; Based at least in part on the received certificate, establishing one or more corresponding trust levels by at least one of the multimedia device or the client device The system according to item 29, configured to execute. (Item 35) The streaming device is further configured to execute the step of performing one or more cryptographic operations related to one or more of the first portion or the second portion of the media program, the system according to item 29. (Item 36) The user command is one of a plurality of user commands that change the playback mode input by the user of the client device while the media program is being streamed, the system according to item 29. (Item 37) The network connection between the streaming device and the client device comprises at least one wireless network link, the system according to item 29. (Item 38) The system according to item 29, wherein the stream delivery device is further configured to perform a step of loading a second media program to one of the client device or another client device while the media program is being stream delivered from the multimedia device to the client device. (Item 39) The system according to item 29, wherein the stream delivery device is further configured to perform a step of stream delivering media content between the client device and one of the multimedia device or another multimedia device while the media program is being stream delivered from the multimedia device to the client device. (Item 40) The system according to item 29, wherein the stream delivery device is further configured to perform a step of simultaneously stream delivering one or more additional media programs to one or more client devices while the stream delivery device is stream delivering the media program from the multimedia device to the client device. (Item 41) The system according to item 29, wherein at least one of the first portion or the second portion comprises one or more tags. (Item 42) The system according to item 29, wherein the stream delivery device is further configured to perform a step of maintaining a media data buffer for video frames within a time interval of the media program. (Item 43) The stream delivery device discovers the client device, and The step of determining that the streaming device is configured such that the client device does not decode media data encoded in the first format but decodes media data encoded in the second format; The step of transcoding the media program from the first format to the second format in response to the determination that the client device is configured such that the client device does not decode media data encoded in the first format but decodes media data encoded in the second format; The method according to item 1, further comprising. (Item 44) The streaming device discovers the client device; The streaming device determines that the client device is configured such that the client device does not decode media data encoded in the first format but decodes media data encoded in the second format; In response to the determination that the client device is configured such that the client device does not decode media data encoded in the first format but decodes media data encoded in the second format, the streaming device transcodes the media program from the first format to the second format; The medium according to item 15. (Item 45) The streaming device further; The step of discovering the client device; The step of determining that the client device is configured such that the client device does not decode media data encoded in the first format but decodes media data encoded in the second format; In response to a determination 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, a step of transcoding a media program from the first format to the second format The system according to item 29, configured to perform
Claims
1. A method performed by a stream distribution device, the method comprising: transmitting a plurality of portions of media to a client device while streaming the media to the client device; transmitting a first portion to the client device, the first portion adapted by the streaming device to a first playback mode of the client device; in response to receiving, while streaming to the client device, an indication of a user command from the client device specifying a second playback mode of the client device, the second portion being adapted by the streaming device to the second playback mode of the client device, where at least the first playback mode or the second playback mode is a side loading mode; A method comprising:
2. The method of claim 1, wherein one of the first playback mode and the second playback mode is a normal playback mode.
3. The method of claim 1, wherein both of the first playback mode and the second playback mode are side loading modes.
4. A method as described in any one of claims 1 to 3, wherein the side loading mode includes side loading audio transcription data.
5. The method of claim 4, wherein the side loading mode includes loading the audio transcription data in parallel with playing audiovisual data of the media.
6. A method according to any one of claims 1 to 3, wherein the user command is one of a plurality of user commands for changing a playback mode input by a user of the client device while streaming to the client device.
7. A method according to any one of claims 1 to 3, further comprising transcoding the first and second parts from a first format to a second format, the second format being configured to be decoded by the client device.
8. The method comprises: receiving one or more certificates for the client device; establishing one or more corresponding trust levels with the client device based at least in part on the received one or more certificates; The method of any one of claims 1 to 3, further comprising:
9. A method according to any one of claims 1 to 3, wherein the network connection between the streaming device and the client device comprises at least one wireless network link.
10. A method performed by a client device, comprising: The method includes receiving a plurality of portions of media while a media stream from a streaming device is being received from the client device; a first portion of the plurality of portions of the media is received from the streaming device, the first portion being adapted by the streaming device to a first playback mode of the client device; receiving a user command specifying a second playback mode of the client device while the media stream from the streaming device is being received at the client device; An indication of the user command is sent to the streaming device; A method in which a second portion of the plurality of portions of the media is received from the streaming device, and the second portion is adapted by the streaming device to a second playback mode of the client device, and at least the first playback mode or the second playback mode is a side loading mode.
11. The method of claim 10, wherein one of the first playback mode and the second playback mode is a normal playback mode.
12. The method of claim 10, wherein both of the first playback mode and the second playback mode are side loading modes.
13. The method of claim 10, wherein the side loading mode includes audio transcription data being side loaded.
14. The method of claim 13, wherein the side loading mode includes side loading the audio transcription data in parallel with playing audiovisual data of the media.
15. A method according to any one of claims 10 to 12, further comprising playing back the first portion in the first playback mode and playing back the second portion in the second playback mode.
16. A method according to any one of claims 10 to 12, wherein the user command is one of a plurality of user commands for changing the playback mode input by a user of the client device while streaming to the client device.
17. A method according to any one of claims 10 to 12, wherein the first and second parts are transcoded from a first format to a second format, and the second format is configured to be decoded by the client device.
18. The method according to claim 1, transmitting one or more certificates from the client device; establishing one or more corresponding trust levels with the client device based at least in part on the one or more certificates; The method of any one of claims 10 to 12, further comprising:
19. A system comprising a control circuit configured to perform a method according to any one of claims 1 to 18.
Citation Information
Patent Citations
System and method for internet access to personal tv service
JP2003525550A
Two-way service providing system, communication terminal and server apparatus used therefor
JP2004193681A
Data conversion apparatus and method
JP2010011511A