HK1112987A - Interactive multichannel data distribution system - Google Patents
Interactive multichannel data distribution system Download PDFInfo
- Publication number
- HK1112987A HK1112987A HK08108653.3A HK08108653A HK1112987A HK 1112987 A HK1112987 A HK 1112987A HK 08108653 A HK08108653 A HK 08108653A HK 1112987 A HK1112987 A HK 1112987A
- Authority
- HK
- Hong Kong
- Prior art keywords
- information
- server
- client
- video
- audio
- Prior art date
Links
Description
Technical Field
【0001】 The present invention relates generally to multimedia distribution, and more particularly to an interactive multimedia distribution system.
Background
【0002】 Audio and/or video information can be provided to consumer electronic devices in various forms, which then display the information. Consumer electronics devices that require a fixed form of media (such as a compact disc CD or digital video disc DVD) are limited to playing back available CDs or DVDs to users. In order to increase the amount of audio and/or video information accessible to a user at any given time, consumer electronic device manufacturers have sought to transfer the audio and/or video information contained in a fixed medium to a storage device within the consumer electronic device. Systems using internal storage also provide convenience, but generally limit the user from displaying audio and/or video information contained in the storage device. Another approach to making more audio and/or video information available to users has been to provide network connectivity to consumer electronic devices. When the consumer electronic device is connected to a network, the audio and/or video information may be stored remotely and provided to the consumer electronic device over the network as needed. In many cases, consumer electronic devices are provided with the ability to extract audio and/or video information from a fixed medium, store the audio and/or video information, and obtain the audio and/or video information over a network.
Disclosure of Invention
【0003】 Embodiments of the present invention distribute multimedia over a network. In one aspect, embodiments of the present invention are capable of transcoding video encoded in a first format for distribution according to a predetermined multi-channel protocol. In another aspect, embodiments of the invention include a mechanism for automatic system updates. One embodiment of the invention includes a server connected to a client via a network and at least one storage device containing audio, video and/or overlay information formatted according to a first format. Further, the client includes a storage device that stores information representing audio, video, and/or overlay formats that the client is capable of decoding, and the server is configured to transmit the audio, video, overlay, and control information over separate audio, video, overlay, and control channels.
【0004】 In yet another embodiment, the server is configured to query the client to obtain information representing audio, video and/or overlay formats that the client is capable of decoding.
【0005】 In another embodiment, the server is configured to transcode at least one of the stored audio, video and overlay information into a second format, and the information indicative of the audio, video and/or overlay format indicates that the client is capable of decoding audio, video or overlays encoded in the second format.
【0006】 In another embodiment, the server is configured to obtain a list of available updates, and the server is configured to determine the updates that can be applied to the client based on information representing audio, video, and/or overlay formats that the client is capable of decoding.
【0007】 Yet another embodiment includes a third device including a storage device storing information about capabilities of the third device. Further, the server is configured to query the third device to obtain stored information about capabilities of the third device.
【0008】 In yet another embodiment, the server is further configured to determine the update applicable to the client with reference to information about the third device capabilities obtained from the third device.
【0009】 In yet another embodiment, the server includes a storage device that stores information about capabilities of the server.
【0010】 In a further embodiment, the server is configured to determine the update applicable to the client with reference to information about the server capabilities.
【0011】 Another embodiment of the invention includes a processor; a network interface configured to communicate with the processor and receive audio, video, overlay and control packets on separate channels; a storage device containing information regarding the audio, video, and overlay information formats that can be decoded by the processor.
【0012】 In another embodiment, the processor is configured to send stored information regarding the audio, video and overlay information format that can be decoded by the server over a network interface in response to a query received over the network interface.
【0013】 In another embodiment, the stored information is stored as an XML file.
【0014】 Yet another embodiment includes a processor, and a network interface in communication with the processor. Further, the processor is configured to receive audio, video and overlay information encoded in a first format and transcode at least one of the audio, video and overlay information into a second format, and the processor and network interface device are configured to transmit the audio, video, overlay and control information.
【0015】 In another embodiment, the processor and the network interface device are configured to send query request information.
【0016】 In another embodiment, the processor and the network interface device are configured to receive information indicative of external device capabilities.
【0017】 In another embodiment, the processor is configured to analyze the information to obtain a list of capabilities.
【0018】 Yet another additional embodiment includes a processor and a network interface in communication with the processor. Further, the processor and network interface device are configured to obtain a list of available updates, the processor and network interface device are configured to query external devices for their capabilities, the processor is configured to determine updates to provide to external devices based on the list of available updates and the capabilities of the external devices, and the processor and network interface device are configured to transmit audio, video, overlay and control information.
【0019】 Another additional embodiment further comprises a storage device containing information about the capabilities of the server. Additionally, the processor is further configured to determine an update to provide to an external device based on the stored information regarding the server capabilities.
【0020】 In another embodiment, the capabilities of the external device include communication protocols supported by each device, at least one communication protocol is supported by each available update, and the processor is configured to determine the update to apply to the external device by ensuring that each updated device supports the same communication protocol.
【0021】 One embodiment of the method of the present invention includes obtaining audio, video and overlay information, transcoding at least one of the audio, video and overlay information, transmitting audio, video, overlay and control information and timestamps associated with one or more of the audio, video, overlay and control information, receiving the audio, video, overlay and control information and timestamps associated with one or more of the audio, video, overlay and control information, queuing the received information in separate audio, video and overlay queues, processing the queued information based on a timestamp associated with the information, sending a report representative of at least one timestamp of the processed information, receiving the report and recording information about the at least one timestamp contained within the received report.
【0022】 Another embodiment of the method of the present invention comprises determining an appropriate format for decoding the audio, video or overlay information.
【0023】 Another embodiment of the method of the present invention includes determining available updates and the versions of the communication protocols supported by each update, determining the capabilities of each device including the versions of the communication protocols supported by each device, determining the most recent version of the communication protocol that all devices can support if the necessary updates are performed, and performing the necessary updates.
Description of the drawings
【0024】 FIG. 1 is a schematic diagram of one embodiment of a distribution system in accordance with the present invention;
【0025】 FIG. 2 is a schematic diagram of a server connected to a client, illustrating a communication channel between the server and the client, according to one embodiment of the invention;
【0026】 FIG. 3 is a schematic circuit diagram of a server, according to one embodiment of the present invention;
【0027】 FIG. 4 is a schematic circuit diagram of a networked consumer electronic device acting as a client according to an embodiment of the present invention;
【0028】 FIG. 5 is a flow diagram illustrating the operation of a client during initialization and ongoing sessions according to one embodiment of the present invention;
【0029】 FIG. 6 is a flow diagram illustrating the operation of a server during initialization and ongoing sessions according to one embodiment of the present invention;
【0030】 FIG. 6a is a flow diagram illustrating a process of decoding data for transmission over multiple communication channels in accordance with one embodiment of the present invention;
【0031】 FIG. 7 is a flow diagram illustrating the manner in which a client processes incoming media packets according to one embodiment of the invention;
【0032】 FIG. 8 is a flowchart illustrating operation of a client in response to receiving a user instruction from a user and a control instruction from a server according to one embodiment of the present invention;
【0033】 FIG. 9 is a flowchart illustrating operation of a server in response to user instructions sent by a client according to one embodiment of the present invention;
【0034】 FIG. 10 is a schematic diagram of one embodiment of a distribution system in accordance with the present invention; and
【0035】 Fig. 11 is a flow chart illustrating a process for updating a server and a client connected to a network according to the present invention.
Detailed Description
【0036】 Referring now to the drawings, embodiments of the present invention include at least one server connected to at least one client via a network and capable of distributing audio and/or video information. In one aspect of many embodiments, the server can send various information to the client. Each type of information is typically sent on a separate channel. In one embodiment, the information transmitted over the channel is obtained by decoding the stored information. In other cases, the information stream is decoded in real-time. In another aspect of many embodiments, the server selects the information to send to the client in response to user instructions sent by the client to the server over the control channel. In many embodiments, the server enables the user to create the impression that they are browsing an interactive graphical user interface by providing the client with the appropriate sequence of audio, video and/or overlay information to display in response to user instructions. To obtain interactivity, the server typically maintains information about the state of the user interface that the client is displaying. In addition, the server can control the configuration of the client to reduce latency when transitioning from one user interface state to another user interface state in response to user input. In many embodiments, the system is capable of distributing software updates.
【0037】 One embodiment of a distribution system according to the present invention is illustrated in fig. 1. The distribution system 10 includes a number of servers 12 connected to a number of devices via a network 14. In the illustrated embodiment, the device includes a computer 16, a set-top box 18 connected to a television 20, and a handheld computing device 22. Each device includes software and/or hardware that enables them to act as clients to interact with the server 12, and thus the term client as used in this specification is intended to describe any device capable of communicating with the server in accordance with embodiments of the present invention.
【0038】 While some clients have extremely complex computing capabilities, many other clients have limited computing and storage capabilities. Thus, clients according to the present invention typically execute very simple programs that do not directly change in response to most user instructions. Much of the processing is transferred to the server, which processes the user input and performs the interactive functions of the system. The server can control the information displayed by the client in a very precise manner, which enables the server to respond to the user's request by ensuring that the required information is displayed by the client almost immediately. Typically, clients do not have the ability to interpret most user requests. The client merely sends the user request to the server and displays the information provided to them by the server in the manner indicated by the server. The operation of the server, network and client will be discussed below.
【0039】 The server 12, network 14 and clients are configured to enable the server to send information to the clients over the network. In one embodiment, the server and client communicate over a fixed network using the TCP/IP protocol. In other embodiments, other network communication protocols may be used, and a wireless connection may be used instead of a fixed connection. The term network as used in this specification refers to any connectivity between a server and a client, including direct connections, local networks, local area networks, wide area networks, private networks, and networks such as the Internet.
【0040】 The communication channels established between the server and the client are conceptually illustrated in fig. 2, according to an embodiment of the present invention. The server 12 according to an embodiment of the invention may establish separate communication channels 17 with the client for audio, video and overlay information. In addition, a control channel 19 may be established to enable two-way communication of control information between the server and the client.
【0041】 Video channel 17b is used to deliver packetized or packetized video information from the server to the client. As will be discussed in detail below, the video channels are configured according to the video properties contained in the video packets. The video packets typically comprise encoded video frames. These frames may be part of the movie playback, or part of a menu or user interface. The term "feature presentation" as used in this specification is used to describe a continuous video sequence, such as a movie of film length that is typically played linearly and does not require user interaction. The term "feature film" is meant in a broad sense and is not limited to long movies, which include all types of pre-recorded video and broadcast video streams.
【0042】 Audio channel 17a is used to convey packetized audio information. As with the video channel, the server specifies characteristics of the audio channel. Audio data transmitted by an audio channel is not necessarily accompanied by video or overlay information. Many embodiments of the present invention provide the ability to interfere with recordings (e.g., music). The audio information may also be accompanied by video information transmitted over a video channel. In many instances, the audio information is a sound track that accompanies a "feature film". However, the audio information may also be a sound effect that forms part of a menu or user interface.
【0043】 The overlay channel 17c is a channel that can be used by the server to send overlay information to the client. An overlay may be graphics or text superimposed onto a video frame, or may itself be an entire picture that may be displayed without background video. Examples of overlays include subtitles accompanying "feature films," or highlighted menu items of a partial menu or user interface. The overlay information may be graphically encoded or may be text. In one embodiment, the overlay is encoded according to a jpeg file exchange format specified by the joint photographic experts group. In another embodiment, the overlay is encoded as a bitmap. The nature of the coverage information and the nature of the coverage channel itself are typically specified by the server.
【0044】 The control channel 19 is a channel that can be used by both the server and the client to transmit control information. Embodiments of systems according to the present invention generally operate more efficiently when the control channel is configured to reliably communicate information between the server and the client. As will be explained in detail below, the client may use a control channel to send user instructions and timing information to the server. The server, in turn, may use the control channel to establish audio, video, and overlay channels with the client and provide instructions to the client as to the manner in which the received audio, video, and overlay information should be displayed. In other embodiments, the audio, video and overlay channels are initialized by packets sent over each of the audio, video and overlay channels. The ability of the server and client to communicate over a control channel allows the entire system to interact with the user. For example, a client according to an embodiment of the present invention may send a user command to a server using a control channel. The server then responds to the user commands by sending information to the client over audio, video, overlay and/or control channels. Appropriate selection of audio, video, overlay and/or control information can achieve such effects as fast forward, pause or playback of an interactive menu or feature film. The manner in which the interactive features may be implemented in accordance with various aspects of the present invention will be discussed further below.
【0045】 In many embodiments of the present invention, communications over network 14 are conducted in accordance with the TCP/IP protocol. In embodiments using the TCP/IP protocol, separate channels may be established by assigning a separate port address to each channel. In this manner, packets of information may be sent through the network and the port address may be used to determine which channel the packet is associated with. In other embodiments, the UDP protocol is used in conjunction with the IP protocol to communicate information over a network. Other protocols may also be used to communicate information over a network and various techniques may be used to create separate channels to communicate audio, video overlay and/or control information in accordance with various embodiments of the present invention. In other embodiments, a network communication protocol may be used to establish the necessary channels between the client and the server. Alternatively, these channels can be found on connections conforming to the IEEE 1394 standard. In other embodiments, other network protocols may be used to communicate audio, video and/or overlay and/or command information. Indeed, different networks may be used to communicate different types of information and/or different sequences of the same type of information. While many embodiments of the present invention include separate channels, there are several embodiments that combine audio, video, overlay and/or control information on a single channel.
【0046】 The audio, video and overlay information sent by the server to the client over the audio, video and overlay channels determines the information that can be presented to the user by the client. As noted above, this information may take various forms. For example, audio, video, and overlay information may be associated with a recording or a feature film. In addition, audio, video, and/or overlay information may be associated with the user interface. In many instances, the audio, video and/or overlay information may not be related to the same content. Examples include overlays containing information about other available programming that is displayed on the feature film, or symbol overlays informing the user that the feature film is fast-forwarding, pausing, or otherwise being manipulated.
【0047】 In many embodiments, the server obtains the information to send by extracting the information from a file containing the appropriately encoded audio, video and overlay information. In other embodiments, the encoded audio, video and overlay information is received by the server in a data stream. In several embodiments, the server receives audio, video and/or overlay information encoded in a first format and transcodes the audio, video and/or overlay information into a format suitable for transmission. The first format may not be suitable for transmission because a client intended to receive the information cannot decode the information encoded in the first format. In many embodiments, the quality of service requirement causes the server to transcode information encoded in the first format into a format that requires a different data transmission rate. In embodiments employing quality of service determinations, the client can provide information to the server to cause the server to make quality of service determinations. Another reason that the first format may not be suitable is that the server cannot directly extract the audio, video and/or overlay information for transmission on a separate channel when the audio, video and/or overlay information is encoded in the first file format. The decoding will be discussed further below.
【0048】 Having generally discussed the typical features of embodiments of the present system, the various elements of these systems will now be described in more detail. A server according to one embodiment of the invention is shown in fig. 3. The server 12' includes at least one processor 21, memory 22, storage device 24 (such as one or more hard disk drives) and a network interface device 26. The processor 21 may be configured by software to provide audio, video and/or overlay information and control commands to the client via the network interface.
【0049】 The storage device 24 may contain one or more data files. The data file may include one or more audio tracks, one or more pictures, one or more feature films, and audio, video, and/or overlays associated with one or more user interfaces. In one embodiment of the present invention, the stored data files may include more than one video track, more than one audio track, more than one overlay track, and multimedia associated with the graphical user interface. In many embodiments of the present invention, the storage device 24 may comprise Multimedia files similar to those described in U.S. application Ser. No. 11/016,184 entitled "Multimedia Distribution System" filed on 12.2004, 17.12.9, to Van Zoest et al, the disclosure of which is incorporated herein by reference in its entirety.
【0050】 In embodiments where the server is capable of transcoding audio, video and/or overlays stored on the storage device 24 or from another source for transmission, the transcoding may be accomplished by configuring the processor 21 with appropriate software. In other embodiments, the decoding is performed using dedicated circuitry within the server or a combination of a microprocessor and dedicated circuitry. In one embodiment, the microprocessor decodes the audio, video and/or overlay information, and the dedicated circuitry encodes the decoded audio, video and/or overlay information for transmission. As noted above, the transmitted audio, video and/or overlay information may be stored remotely. When the audio, video and/or overlay information is stored remotely, the server may receive the information and decode the information in real time into a format suitable for transmission over a separate audio, video, overlay and/or control channel.
【0051】 In various embodiments of the present invention that communicate according to the TCP/IP protocol, the network interface device 26 and/or the processor 21 implement a TCP/IP protocol stack. The TCP/IP protocol stack handles the sending of information to and from the server on each appropriate channel. In other embodiments, the network interface device may be implemented to support other protocols.
【0052】 Incidentally, those skilled in the art will appreciate that the server shown in FIG. 3 is illustrated in schematic form. A server according to embodiments of the present invention may be implemented in virtually any form. Thus, those skilled in the art will appreciate that any server, computer or other electronic device capable of storing multimedia files and communicating with clients over a network in the manner described in this specification can be used to implement embodiments of a data distribution system in accordance with the present invention.
【0053】 A client according to an embodiment of the invention is illustrated in fig. 4. In the illustrated embodiment, client 40 is a networked consumer electronic device. The client is designed to interface with the network 14 and at least one rendering device, such as a television and/or a video display/monitor and/or a stereo and/or speakers. Client 40 includes a microprocessor 42. The microprocessor is configured to control the operation of the client and is connected to a graphics accelerator 44.
【0054】 Graphics accelerator 44 may be used to perform repetitive processing associated with generating video frames. The graphics accelerator may also serve as a hub connecting the microprocessor to video RAM46, I/O controller 48, and video converter 50. The video RAM46 may be utilized by the graphics accelerator to store information associated with generating video frames. The video frames may be provided to a video converter 50, which video converter 50 can convert the digital information into a suitable video format for reproduction by a reproduction device, such as a television or video display/monitor. The format may be an analog format or a digital format. The I/O controller may also interface with the graphics accelerator and cause the microprocessor and graphics accelerator to address devices via bus 60, including network interface device 52, input interface device 54, memory 56, and audio output device 58. The architecture shown in fig. 4 is a typical consumer electronics device according to one embodiment of the client of the present invention. Other architectures may also be used, including architectures in which a processor interfaces directly and/or indirectly with an I/O device.
【0055】 The network interface device 52 may be used to send and receive information over a network. In embodiments where the information is communicated over a TCP/IP protocol, the network interface device and/or other devices, such as a microprocessor, implement a TCP/IP protocol stack. In other embodiments, other communication protocols may be used, and the network interface device may be implemented accordingly.
【0056】 The input interface device 54 may enable a user to provide commands to the client 40. In the illustrated embodiment, the input interface device 54 is implemented to enable a user to provide instructions to the client 40 through an Infrared (IR) receiver 62 using an IR remote control. In other embodiments, other input devices, such as a mouse, trackball, barcode scanner, tablet, keyboard and/or voice commands may be used to communicate user inputs to client 40, and input interface device 54 configured accordingly.
【0057】 Memory 56 typically includes several storage devices that may provide temporary and permanent storage of information. In one embodiment, the memory is implemented as a combination of EEPROM and SRAM. In other embodiments, a single storage element or any kind of volatile and/or non-volatile storage elements may be used to implement the memory.
【0058】 The audio output device 58 may be used to convert the digital audio signals into signals capable of producing sound on a reproduction device, such as a speaker or sound system. In one embodiment, the audio output device 58 outputs stereo audio in an analog format. In other embodiments, the audio output device may output audio information in any of a variety of analog and/or digital audio formats. In one embodiment, the MP3 audio format specified by the Moving Picture Experts Group (MPEG) is used. In other embodiments, other formats may be used, such as the AC3 format specified by the Advance delay Systems Committee, the AAC format specified by MPEG, or the WMA format specified by Microsoft corporation of Redmond, Washington.
【0059】 Those skilled in the art will readily recognize that clients according to embodiments of the present invention may be implemented using any number of configurations. A client according to an embodiment of the present invention need not include graphics capability or audio capability. Furthermore, clients according to aspects of many embodiments of the present invention need not receive any user input. For example, the user input may be provided directly to the server, or to a second client which sends the user instructions to the necessary server or servers. Alternatively, the client may be unable to process or send user instructions. Embodiments of clients according to the present invention may include any kind of processing element or a single processing element. Virtually any networked consumer electronic or computing device capable of communicating with a server in the manner described herein may be used to implement a client in accordance with aspects of many embodiments of the invention.
【0060】 In many embodiments of the system according to the invention, different clients may have different capabilities. In many embodiments, the client may be configured to store information identifying its capabilities. In several embodiments, the client comprises a file containing information in extensible markup language (XML) specified by the world Wide Web Consortium. The XML file may contain information describing the capabilities of the device. In many embodiments, the XML file describes the playback capabilities of the client. In embodiments where the client may transcode, the server may provide the media directly to the client and make a decision to transcode based on the processor load or a previous set of user configurations. In many embodiments, the server also stores files describing the capabilities of the server.
【0061】 As described above, a server according to embodiments of the present invention is capable of providing audio, video, and/or overlay information to a client. A client typically initiates the transmission of information by one or more servers. Each transmission may be referred to as a control session, and the client may initiate a control session by forming a connection with a control port of the server. The client then requests initiation of a control session, and if the control session is permitted, the server establishes an audio, video, and/or overlay data channel by sending channel allocation information to the client. Once the audio, video, and/or overlay data channel is established, the server may begin sending audio, video, and/or overlay information to the client. As already discussed, interactivity may be achieved by a client sending user instructions to a server, and the server responding by providing the client with appropriate audio, video, overlay, and/or control information. In many embodiments, the audio, video and/or overlay channels need not be established simultaneously, and the individual channels may be disconnected or reconnected (typically to different servers, if desired). For example, in one embodiment, a video channel is connected to enable display of visual information associated with a user interface. Once a movie is selected, the video channel is disconnected and reconnected to another server and an audio channel is established with the same server. Another example according to an embodiment of the invention is related to fast forward in movies with accompanying subtitles. The overlay channel providing the subtitles may be disconnected in response to a fast forward instruction from the user and reconnected to another server providing the overlay with the fast forward icon. Alternatively, the same server may provide both the overlay and fast forward icons, and the overlay channel may only be reassigned. The establishment of a control session, the transmission of audio, video and/or overlay information, and the implementation of interactive features will be considered in more detail below.
【0062】 Fig. 5 and 6 are flowcharts illustrating the operation of a client and a server in establishing and conducting a session according to the present invention. Turning first to fig. 5, a flow diagram that illustrates operation of a client in establishing and conducting a session with a server in accordance with an embodiment of the present invention is illustrated. In the illustrated process, the client communicates with the server using the TCP/IP protocol. In other embodiments, other communication protocols may be used. Process 80 begins with the client forming a connection with a control port of the server (82). In one embodiment, a protocol-based program may be used to identify the server and its control port, such as the standard RFC 2327 set forth for simple service discovery protocol or session description protocol, all of which are specified by the internet engineering task force. In other embodiments, other techniques may be used to identify the control port of a server connected to a client over a network.
【0063】 Once the control channel has been established, the client attempts to initiate a control session with the server over the control channel (84). The attempt is made by sending a packet requesting a control session, which also contains information about the client's available port assignments. The client then waits for the server to respond to the request (86). In one embodiment, the server responds even if the session is denied. In other embodiments, the request is considered denied after a predetermined period of time has elapsed. If the session is rejected 88, the attempt to establish the session fails. If the attempt is successful, the client typically receives information from the server (90) specifying how often the client should provide information to the server regarding the client's internal timer. In other embodiments, the characteristics of the audio, video and/or overlay channels are specified in an XML file located on the client that is provided to the server. The importance of the data channel parameters and the frequency with which the client reports its internal time values are discussed in more detail below.
【0064】 The client also receives a port assignment from the server (92). The port assignments generally include information about the parameters of the audio, video or overlay provided on each channel (e.g., audio sampling rate or video resolution), as well as the amount of audio, video or overlay information to the buffer. The initialization of the channel also includes an initial timestamp of the information to be transmitted on the channel. This timestamp may be used to set an internal timer for the client. The timer of the client is typically suspended until a specified amount of data has been queued up and the client begins to reproduce the queued data.
【0065】 The initialization may include information about how information arriving on the channel should be handled. In one embodiment, the client may be initialized to reproduce the incoming data when the timer of the client is greater than or equal to the timestamp associated with the data. In several embodiments, the client may be initialized to render the incoming data when the client's timer happens to coincide with the data's associated timestamp. In these embodiments, the timer of the pause client may also pause the reproduction of data from the channel. Many embodiments enable a client to be initialized to render incoming data as soon as it is received at the client as possible. In many embodiments, the client may be instructed to synchronize audio packets with video packets. Synchronizing audio with video may cause a client to generate sound effects in a user interface that accompany a transition or action.
【0066】 In addition to reducing the processing required by the client, providing the server with the ability to manage the client's queue enables the server to configure the client's queue with the expected audio, video, and/or overlay information that the server will send to the client. If the audio, video and/or overlay information sent by the server is part of a menu (for example), then the server may configure the client's queue so that the client is ready to start at the time. The term "time ready to start state" describes a state in which: in this state, the client does not queue any information, or only queues a relatively small amount of information, so that the information received from the server is almost immediately processed and reproduced. Alternatively, when the server is to send audio, video and/or overlay information associated with a feature film, the server may configure the client to queue enough information to increase the likelihood that the audio, video and/or overlay will play smoothly. So-called smooth playback refers to displaying frames with synchronized audio and overlays at appropriately spaced intervals. Smooth play generally requires that when the required information needs to be reproduced, it is available to the client. Increasing the length of the client queue can accommodate changes in network delay that may cause packets to arrive after the client's request. If audio, video and/or overlay information is not available for reproduction, the user may experience image freeze, interruption of the audio track or overlay that is not synchronized with the accompanying video or audio.
【0067】 In many embodiments, the server may constantly monitor and vary the amount of information queued by the client in order to obtain predetermined quality of service parameters. In several embodiments, the server may maintain quality of service by transcoding data to a lower data rate in response to network congestion. In many embodiments, the server uses the timestamp reports to monitor the latency of the system and manage the queue of the client accordingly. In other embodiments, information obtained from the client or another source may be used to monitor the quality of service provided by the system.
【0068】 After port assignment, the client begins receiving data from the server on the audio, video, and/or overlay channels (94). The client processes the packets and makes the necessary timestamp reports to the server. The client may also receive control instructions from the server (96). If a control instruction is received, the client responds by processing the instruction (98).
【0069】 The client may also receive user instructions (100). When the client receives a user instruction, the client typically sends the user instruction to the server (102). The client continues to display the multimedia information provided by the server until the control session terminates.
【0070】 In many embodiments, the client is only able to respond to a very limited set of user instructions. For example, the client may be able to respond to volume controls and power on/off commands. If the received instructions relate to reproduced audio, video and/or overlays, the client generally responds by sending the instructions to the server.
【0071】 In one embodiment, the client sends all user instructions to the rendering device(s) for interrupting or changing the manner in which the audio, video, and/or overlay is provided. In a further embodiment, the client sends all user instructions related to navigation of the menu or user interface to the server. In other embodiments, the client sends all user instructions regarding the future speed and/or direction of audio, video and/or overlays that the rendering device should render. Examples of such instructions include pause, slow play, slow rewind, fast forward, and fast rewind. In yet further embodiments, the client sends all user instructions requesting audio, video, and/or overlays to be rendered by the rendering device(s) to proceed in a non-linear fashion. Examples of such instructions include instructions to jump between chapters or scenes in a feature film, or jump between recorded tracks or between shuffle tracks.
【0072】 In another embodiment, the client only processes user instructions that are not related to the audio, video and/or overlay being rendered by the rendering device(s) at the time the user instruction is received. An instruction is generally considered to be related to the audio, video and/or overlay being rendered if the instruction affects the content, speed or direction of the audio, video and/or overlay being rendered later in any way. Examples of independent instructions include power on/off, volume control, mute, brightness control, and contrast control.
【0073】 Turning now to fig. 6, a flowchart is shown illustrating operation of a server in establishing and conducting a control session with a client in accordance with an embodiment of the present invention. As with FIG. 5, the illustrated process assumes that the server and client communicate using the TCP/IP protocol. In other embodiments, other communication protocols may be used. Process 120 begins by establishing a connection with a client. As discussed above, the connection may be established (122) by the client sending a request to the control port of the server. Once the connection has been established, the server receives a request to establish a control session over the connection from the client (124). The server determines whether to accept the control session (126). In one embodiment, the server rejects the session by sending a message to the client rejecting the session (128). Examples of reasons a server may deny control of a session include the server denying control of a session if the contents of the server do not fit on a particular client (e.g., the client is accessible by children and the server contains adult content). As another example, the server may also deny the session when the server is overloaded. Yet another example is when access to the server is on a fee basis and the client is not associated with a valid payment, a denial of control session may occur.
【0074】 If the session is accepted by the server, the server establishes a connection for each data channel (130). In one embodiment, the data channels include audio channels, video channels, and overlay channels, and the server assigns a port assignment for each channel. In other embodiments, the data channels may include audio and control channels, video and control channels, or video, overlay and control channels, or other combinations of such channels.
【0075】 In embodiments that support various channel configurations, the establishment of the data channel may include initializing the data channel by sending information specifying the data format to the client. This information may include timestamp information, information about the amount of data queued, and information about the time at which the data should be processed. The initial timestamp is determined randomly. The time stamp associated with data transmitted on the channel may be determined according to the following equation:
data timestamp ═ initial timestamp + absolute value (data start time-data position)/rate
Wherein:
the data timestamp is a timestamp associated with the data;
the initial timestamp is a timestamp selected by the server;
the data start time is a predetermined time representing a start time associated with a start of a stored sequence of data;
the data location is a predetermined time associated with a particular data segment or data set, the predetermined time representing a time at which the data is reproduced if the data sequence is linearly reproduced from its beginning at a predetermined rate; and
the rate is a value representing the speed at which the server wishes data to be reproduced relative to a predetermined rate.
【0076】 In the case where the clip is played faster or slower, the rate value adjusts the timestamp to accommodate the increased or decreased number of frames.
【0077】 After establishing the data channel, the server may begin sending media to the client (132). In one embodiment, the server extracts the media information from a file similar to that described in U.S. patent application serial No. 11/016,184 to Alexander van Zoest. In several embodiments, the server initially extracts the audio, video, and/or overlay information to create a user interface. Embodiments of the user interface according to the invention may be an audio interface, a purely graphical interface or an interface combining audio and graphical elements. In the case where the server sends the feature films using a data channel, the server may select a video and audio track from a number of videos and audio tracks contained within a file stored on the server. In addition, the server may select an overlay track to provide subtitles or other forms of overlays, such as an information bar or icons indicating actions (such as pause, fast forward, playback of a feature film, or jump between chapters). In other embodiments, the server may only provide audio, video, or overlay tracks. In such embodiments, other servers may provide other tracks, or may not have any other data tracks.
【0078】 If information is received from the client (134), the server responds to the information (136). This information typically contains user instructions or time-stamped reports. Most of the transmitted user instructions relate to audio, video and/or overlay information that the user wishes to access. The response of the server may vary depending on whether the information displayed at the time the user instruction was received is part of the user interface or part of the feature film. The handling of the transmitted user instructions according to one embodiment of the server of the present invention will be discussed further below. However, it is noted that the server can obtain information from the time stamp report on audio, video and/or overlay at the moment the user instruction is received.
【0079】 The above discussion describes the exchange of information between an embodiment of a server and a client in accordance with the present invention. As described above, a server according to embodiments of the present invention may decode audio, video, and/or overlay information for transmission to a particular client. The process of coding audio, video and/or overlay information according to an embodiment of the present invention is illustrated in fig. 6 a. The process 138 includes determining a format of audio, video, and/or overlay information to be sent by the server (138 a). A device description may also be obtained (138 b). As described above, the device description may be an XML file stored on the client that may be used by the client to provide information to the server regarding the capabilities of the client. In one embodiment, the client provides information to the server over a control channel. When the server has information about the media format and device capabilities, the server may determine whether transcoding should occur (138 c). In one embodiment, transcoding occurs when the media is formatted in a manner that is not suitable for transmission over separate audio, video, and/or overlay channels. In several embodiments, transcoding occurs when the client is unable to decode the format in which the audio, video, or overlay information is formatted. In many embodiments, the audio, video, and overlay information are determined separately.
【0080】 If it is determined that the audio, video and/or overlay information needs to be transcoded, the server transcodes (138d) the audio, video and/or overlay information and provides the transcoded audio, video and/or overlay information for transmission with any of the original formats of the audio, video and/or overlay information that does not need to be transcoded. If it is determined that transcoding is not required, the audio, video and/or overlay information in the original format is provided for transmission (138 e).
【0081】 Fig. 7 shows a flow diagram illustrating the manner in which a client processes a packet received from a server according to an embodiment of the invention. Process 140 begins with the client receiving a packet (142). In embodiments where the server and client communicate according to the TCP/IP protocol, the TCP/IP stack implementation of the client identifies the nature of the information by reference to the port address of the packet (144). The packets are then buffered into the appropriate audio, video, overlay, or control buffers (146). The audio, video, overlay or control information is then placed in a queue of a type suitable for receiving the information (150). The queued information is then processed in the manner indicated by the server (see discussion above) in the order determined by the timestamps associated with the information. A timestamp of the processed information may be reported to the server (154). The client continues to process incoming packets in a similar manner unless otherwise indicated.
【0082】 The fact that the audio, video and/or overlay information is communicated over separate channels enables the client to access a particular type of information as it arrives. When all data types are multiplexed on a single channel, the client may be forced to process the data in the order of arrival, as opposed to processing the data based on the data that the client most needs. It is contemplated that such a client may desire one type of data and store this type of data packet in its buffer, but be forced to process other types of data because they arrive first. However, the client may also be configured to locate and process desired information.
【0083】 In many embodiments, the server may include Digital Rights Management (DRM) information with information sent on each audio, video, overlay, and/or control channel. In one embodiment, information about the nature of the DRM information is transmitted by the server to the client. The client can confirm that it has the capability to perform the necessary decryption to play the DRM protected information or can respond indicating that it does not have such capability.
【0084】 As previously discussed, many embodiments of clients according to the present invention do not respond directly to user instructions. Instead, the client forwards the instructions to the server, and the server responds to the instructions by selecting audio, video, and/or overlay information to be displayed by the client. For many embodiments, the fact that the capabilities of the client do not include processing incoming packets is critical to the ease with which the client can be implemented. The handling of user instructions according to embodiments of the server and client of the present invention will now be considered in more detail.
【0085】 Embodiments of the present system are generally configured to reduce latency in response to user instructions, as reducing latency may enhance the user experience when interacting with system 10. Latency is the delay between the time of receipt of a user instruction and the time of display of audio, video and/or overlay information on a rendering device. Embodiments of a server according to the present invention may attempt to reduce latency in a number of ways. One technique is to manage the queue of the client so that information sent in response to user instructions is processed immediately. If the server responds to the user instruction by merely sending information to the client, a delay may occur because the client plays the previously queued information before playing the newly sent information. The server may reduce latency by sending instructions to the client to empty its queue before the server sends audio, video and/or overlay information in response to user instructions. Once the queue is emptied, the newly received information can be immediately displayed by the client.
【0086】 In many embodiments, the new audio, video and/or overlay information sent by the server in response to the user instruction has a different format than the previously sent multimedia. Changes in format may include changes in the data encoding format (such as resolution, video width and height, or audio sampling rate), changes in the amount of data that the client should queue, changes in the way the client should process the data according to the timestamp of the data or activation DRM. In the event that a format change is required in response to a user instruction, the server may reinitialize the media channel with the client before sending the media information in the new format.
【0087】 Fig. 8 and 9 are flow diagrams illustrating actions performed by a client and a server in response to the client receiving a user instruction according to one embodiment of the system of the present invention. It can be seen that the illustrated embodiments provide the ability to perform operations that reduce system latency, as well as the ability to accommodate format changes associated with sending different types of data.
【0088】 Turning first to FIG. 8, a flowchart is illustrated showing operation of a client in response to a user instruction and information received from a server, in accordance with one embodiment of the present invention. Before continuing the description, we note that the process can be interrupted when additional user instructions occur. Process 160 begins when a user command is received (162). The client examines the user command to determine whether the command is processed by the client (typically, the instruction is independent of the audio, video and/or overlaid content to be displayed after the instruction) or whether the command should be forwarded to the server. If the user command can be processed by the client, the client responds to the user command (166) and then re-enters a loop that includes checking for server commands and processing incoming audio, video and/or overlay information while waiting to be interrupted by additional user commands.
【0089】 When the user instruction cannot be processed by the client, the user instruction is forwarded to the server over the control channel (168). The client then enters a loop that examines control messages from the server (170), processes the audio, video and/or overlay information for rendering when there are no control messages (172), and sends timestamp reports to the server over the control channel at server-specified intervals (173). As will be discussed further below, the server may use the timestamp reports to determine the audio, video, and/or overlay information that was reproduced at the time the user provided the instruction.
【0090】 If the control instructions are received from the server, the client determines the type of control instructions (174). The control instructions may instruct the client to resynchronize its queue. Resynchronization (176) may include emptying the queue and/or assigning a new timer value to the client. Emptying the queue allows the client to immediately render the new data sent by the server. In many cases, the client is resynchronized without emptying its queue. Resynchronization without emptying the queue is useful in situations where it is desirable to display information in the queue, such as when the system wishes to have the movie show up and then return to a user interface such as a menu. An example of this is when the server wants the client to automatically return to the user interface without cutting off the feature film. In many embodiments, the server may send a resynchronization request without providing additional information to the client until a reply is received indicating that the media queued by the client (or media having a timestamp less than the indicated timestamp) has been played out. In several embodiments, resynchronization may be used without emptying the queue to ensure that the user interface is not updated by the client until the sound effects have been rendered.
【0091】 After receiving the resynchronization instruction, the client may send a resynchronization response to the server over the control channel. The client then continues to process the audio, video and/or overlay information received from the server while checking for additional control instructions (170 and 172) and sending a timestamp report (173) to the server over the control channel.
【0092】 The client may determine that control requires re-initialization of the data channel (178). Once the client has adapted to the new channel parameters provided by the server, the client continues to process and output audio, video and/or overlay information for display by the rendering device while checking for additional control instructions (170 and 172) and sending a timestamp report (173) to the server over the control channel.
【0093】 The client may determine that the control directive requires termination of the control session (184). In this case, the client terminates the control session by disconnecting each audio, video, overlay, and/or control channel that has been established (186). The client may also process other types of control instructions (188) necessary to implement system functions. After processing the control instructions, the client typically continues to process the audio, video and/or overlay information for display by the rendering device while checking for additional control instructions (170 and 172) and sending a timestamp report (173) to the server over the control channel.
【0094】 Turning now to FIG. 9, a flowchart illustrating operation of a server upon receiving a user instruction forwarded from a client is depicted in accordance with one embodiment of the present invention. Process 200 begins by receiving a user instruction on a control channel that a client has forwarded (202). The server determines the nature of the user instruction and responds accordingly (203). The appropriate response to the user instruction generally depends on the content of the audio, video, and/or overlay information displayed by the rendering device at the time the user instruction is received. In many embodiments, the client's timestamp reports enable the server to accurately determine the audio, video, and/or overlay information that was reproduced at the time the user instruction was received. The user may provide inappropriate instructions in the context of audio, video and/or overlay information that is reproduced at the time the user issues the instruction. For example, it may be inappropriate to indicate rewinding when a menu is displayed, as if an instruction to select a menu item during storyboard reproduction was inappropriate.
【0095】 During feature films, effective user instructions typically require manipulation of the rate and/or direction at which the film is played, conversion to menus and/or additional overlays. When a menu is rendered, the server generally processes information about the active actions that may be performed during the display of the particular menu. This information may take the form of a state machine. If the server has a record of the menu state at the moment the user gives the instruction, the active instruction typically comprises a transition to another menu state or a display of a feature film.
【0096】 When the user instruction requires the client to immediately display audio, video and/or overlay information, the server may send a control instruction instructing the client to clear any queued media information (206) if it is determined to be appropriate (204). Once the resynchronization message has been sent and acknowledged (207), the server may send the required audio, video and/or overlay information. As discussed above, emptying the queue may reduce the latency of the system in responding to user instructions and avoid uncoordinated frame skipping in the feature film as information queued by the client before the instructions are handed off. Other types of re-initialization may also be performed for the server and client.
【0097】 While the storyboard is being rendered, the server can use the client-provided timestamp report to determine the audio, video, and/or overlay information that was rendered at the time the user instruction was received. The server may then respond to user instructions, including the speed and direction at which the movie is displayed, by emptying the queue and sending audio, video and/or overlay information, which, when processed and reproduced by the client, renders the movie according to the user's instructions regarding the speed and direction of points in the feature film from the reproduction corresponding to the point at which the user instruction was sent. By emptying the queue, the client is typically forced to resend the information that the client queued before the user issued the instruction. However, the queued information may have been rendered by the client in a manner that does not conform to the user's instructions, impairing the user's experience with the system.
【0098】 When the server determines that the user instruction requires the transmission of a type of multimedia information that is different from the previously transmitted multimedia information (208), the server may transmit a control instruction to the client instructing the client to re-initialize the audio, video and/or overlay channels (210). The server then begins sending audio, video and/or overlay information based on the new channel parameters (216).
【0099】 The above description is not an exhaustive description of the control instructions sent by the server in response to user instructions or sent in any other way in this respect. If the server determines that another type of command should be sent to the client (218), the server may send such a command (220). In fact, the server may determine that no command needs to be sent to the client and send the multimedia information only according to user instructions. Furthermore, according to an embodiment of the present invention, a server providing audio, video and/or overlay information using transcoding may also be configured to respond to user commands in a manner that ensures that the video provided to the transcoder is appropriate for the instructions provided by the client.
【0100】 The above description has focused broadly on the case where audio, video and/or overlay information is provided by a single server. Many embodiments of the invention use multiple servers to provide information to clients. In one embodiment, multiple servers provide information to a client simultaneously, with each server providing a different type of information. In another embodiment, a first server provides audio, video and/or overlay information to a client and then performs the conversion, and a second server provides audio, video and/or overlay information to the client.
【0101】 One embodiment of a system according to the present invention is shown in fig. 10, in which multiple servers are capable of providing data to clients simultaneously. The system 10 'includes a plurality of servers 12a, 12b connected to a client 230 through a network 14'. The client is connected to a rendering device 232, and the rendering device 232 is capable of displaying audio, video, and/or overlay information received by the client. Figure 10 also conceptually illustrates channels that exist between a server and a client. The first server 12a is connected to the client via a video channel 17b 'and an audio channel 17 a'. The client and the first server are also able to communicate with each other via a control channel 19'. The second server 12b is connected to the client via the overlay channel 17 c' and to the first server via a bi-directional control channel 19 a. The configuration shown in fig. 10 is similar to a configuration that may exist if a feature film is provided by a first server and a subtitle of a specific language is overlaid by a second server.
【0102】 When information is sent from multiple servers to a client, coordinating the information delivered to the client becomes a problem. In many embodiments, a single server is selected as the control hub. The control hub server is responsible for forwarding the appropriate control messages to all servers in communication with the client and for forwarding control messages from other servers to the client. Typically, the control hub is selected to be the server with which the client initially seeks to establish a control session. In many cases, a user may request information that is not on a first server, and the first server may seek to establish a connection with other servers that can provide the desired information. In some cases, this may be only a single channel of information. In other cases, all of the desired information may reside on another server. For example, a first server may store user interface information that enables a user to access a feature film stored on another server. In the case where the first server provides all of the required information for a period of time and then the second server provides all of the required information for a period of time, the first server may act as a control hub for the second server or pass control to the second server.
【0103】 Embodiments of systems according to the present invention may also include one or more servers in communication with one or more clients. In these embodiments, a single server may act as a control hub and maintain control connections with each server and client present in a particular control session. Alternatively, the control message may be broadcast to all servers and clients involved in the control session. In one embodiment, a server or client is part of a control session if the server or client provides information to, or responds to instructions from, the client that first initiated the control session with one of the servers. In other embodiments, a server or client may be part of a control session if the server or client communicates information within a particular network (such as a local network, or a portion of a network such as a virtual private network). In many embodiments, the server that is the control hub determines the clients and servers that make up a portion of the session.
【0104】 As discussed above, the various clients in the system of embodiments of the present invention may have different capabilities. In many cases, the capabilities of a client may be determined by the underlying hardware within the client and the software used to configure the hardware. While the hardware is typically fixed, the operation of the client can be modified by changing the software. In many embodiments of the invention, the server and client may be configured so that the server may provide updated software to the client.
【0105】 In several embodiments, a simple update may be made in which information is provided to the client by the server and the information is used by the client to modify its software or firmware. Simple updates are typically made in those cases where modifications to the client do not affect the way the server and client communicate.
【0106】 In the case where the software update involves modifying the server and client communication protocols, several embodiments of the present invention perform a high level update. Advanced updates are software or firmware updates that involve determining the state of the network before performing the update. If the current capabilities of all servers and clients in the system are known, and the compatibility of all available updates is also known, a decision may be made as to which device to update and which update to use for each device.
【0107】 As described above, the capabilities of a device according to embodiments of the present invention may be represented as an XML file. Before the device receives the update, the device may provide its XML to the device that provided the update. The XML may then be parsed to generate a capability list. The capability list may then be used to determine updates that apply to the device. When performing advanced updates, the capabilities of all servers and clients connected to the network can be collected and the client and server lists used to determine the update path for each device will ensure the stability of the system. To ensure that the correct view of the network is collected, advanced updates generally require user involvement to ensure that all devices are connected to the network and active.
【0108】 In many embodiments, the respective updates for each device are distinguished using version numbers. In many cases, different updates may be compatible with different communication protocols. A device should not be updated to support an updated communication protocol unless all other devices connected to the network support that (updated) communication protocol. If any device does not support the updated communication protocol, the update involving the transition to the updated communication protocol should not be applied to any other device on the network.
【0109】 An embodiment of a process for performing advanced updates according to the present invention is shown in FIG. 11. The process 240 includes obtaining a list of available updates (242) and then querying the devices connected to the network to determine the capabilities of each device (244). As discussed above, the query may include interaction with the user to ensure that all necessary devices are connected and properly configured to continue updating. Once the capability list has been obtained, knowledge of available updates can be used to determine (246) the protocol versions that each device connected to the network can support so long as the appropriate updates are installed. Once the protocol version is determined, an appropriate update version for each device is determined and the necessary updates are provided to each device (248). Once the device has received the update, the update may be applied (250). In many embodiments, the device will not apply the update until an acknowledgement is received that all devices have received all expected updates.
【0110】 In one embodiment, the process of obtaining information about the client during the update process may be the same as the process used to determine the capabilities of the client when the media is sent to the client. In many cases, a server according to embodiments of the present invention pushes updates to a client by sending information to the client in a discovery process that indicates that an update is being pushed. In one embodiment, the information may be communicated using a flag setting in an SSDP packet sent by the server. A client receiving an SSDP packet may query the server for a URL. The client can then use the URL to connect to the HTTP port and download the applicable updates. In many embodiments, the update server may identify itself by using a separate UPNP device UUID.
【0111】 While the above description contains many specifics of the invention, these should not be construed as limitations on the scope of the invention, but rather as exemplifications of embodiments thereof. The scope of the invention is, therefore, indicated not by the illustrated embodiments but by the appended claims and their equivalents.
Claims (21)
1. A data distribution system, comprising:
a server connected to the client through a network;
at least one storage device containing audio, video and/or overlay information formatted according to a first format;
wherein the client comprises a storage device storing information representing audio, video and/or overlay formats that the client is capable of decoding; and
wherein the server is configured to transmit audio, video, overlay and control information over separate audio, video, overlay and control channels.
2. The data distribution system of claim 1, wherein the server is configured to query the client to obtain the information representing audio, video, and/or overlay formats that the client is capable of decoding.
3. The data distribution system of claim 2, wherein:
the server is configured to transcode at least one of the stored audio, video, and overlay information into a second format; and
said information representative of audio, video and/or overlay formats indicates that said client is capable of decoding audio, video or overlays encoded in said second format.
4. The data distribution system of claim 2, wherein:
the server is configured to obtain a list of available updates; and
the server is configured to determine updates applicable to the client based on the information representing audio, video and/or overlay formats that the client is capable of decoding.
5. The data distribution system of claim 4, further comprising:
a third device comprising a storage device storing information about capabilities of the third device;
wherein the server is configured to query the third device to obtain stored information about capabilities of the third device.
6. The data distribution system of claim 5, wherein the server is further configured to determine the update applicable to the client with reference to the information regarding the third device capabilities obtained from the third device.
7. The data distribution system of claim 4, wherein the server comprises a storage device that stores information about the server capabilities.
8. The data distribution system of claim 7, wherein the server is configured to determine the update applicable to the client with reference to the information about the server capability.
9. A client, comprising:
a processor; and
a network interface configured to communicate with the processor and receive audio, video, overlay and control packets on separate channels;
a storage device containing information regarding audio, video, and overlay information formats that can be decoded by the processor.
10. The client of claim 9, wherein the processor is configured to send the stored information regarding the audio, video, and overlay information formats that can be decoded by the server over the network interface in response to a query received over the network interface.
11. The client of claim 9, wherein the stored information is stored as an XML file.
12. A server, comprising:
a processor; and
a network interface in communication with the processor;
wherein the processor is configured to receive audio, video and overlay information encoded in a first format and transcode at least one of the audio, video and overlay information into a second format;
wherein the processor and network interface device are configured to transmit audio, video, overlay and control information.
13. The server of claim 12, wherein the processor and the network interface device are configured to send query request information.
14. The server of claim 13, wherein the processor and the network interface device are configured to receive information indicative of external device capabilities.
15. The server of claim 14, wherein the processor is configured to analyze the information to obtain a capability list.
16. A server, comprising:
a processor; and
a network interface in communication with the processor;
wherein the processor and network interface device are configured to obtain a list of available updates;
wherein the processor and network interface device are configured to query for capabilities of an external device;
wherein the processor is configured to determine an update to provide to an external device based on the list of available updates and a capability of the external device; and
wherein the processor and network interface device are configured to transmit audio, video, overlay and control information.
17. The server of claim 16, further comprising:
a storage device containing information about the server capabilities;
wherein the processor is further configured to determine an update to provide to an external device based on the stored information about the server capabilities.
18. The server of claim 16, wherein:
the capabilities of the external devices include communication protocols supported by each device;
at least one communication protocol is supported by each available update;
the processor is configured to determine the updates to apply to the external device by ensuring that each updated device will support the same communication protocol.
19. A method of communicating data over a data network, comprising:
acquiring audio, video and overlay information;
coding at least one of the audio, video and overlay information;
transmitting audio, video, overlay and control information and timestamps associated with one or more of the audio, video, overlay and control information;
receiving the audio, video, overlay and control information and timestamps associated with one or more of the audio, video, overlay and control information;
queuing the received information in separate audio, video and overlay queues;
processing the queued information based on the timestamp associated with the information;
sending a report representative of at least one timestamp of the processed information;
receiving the report; and
recording information about the at least one timestamp contained within the received report.
20. The method of claim 19, further comprising determining an appropriate format for decoding the audio, video, or overlay information.
21. A method of updating a device configured to communicate over a data network, comprising:
determining available updates and versions of communication protocols supported by each update;
determining capabilities of each device, including a version of a communication protocol supported by each device;
determining the latest version of the communication protocol that can be supported by all devices as long as the necessary updates are performed; and
the necessary updates are performed.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60/642,265 | 2005-01-05 | ||
| US60/642,065 | 2005-01-05 | ||
| US11/198,142 | 2005-08-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1112987A true HK1112987A (en) | 2008-09-19 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20060195884A1 (en) | Interactive multichannel data distribution system | |
| JP7656650B2 (en) | Wireless Media Streaming System | |
| JP5005895B2 (en) | Strategies for transmitting in-band control information | |
| US7093274B2 (en) | Apparatus and method for accommodating fast change of digital streaming sources and formats | |
| CA2623835C (en) | Content delivery system and method, and server apparatus and receiving apparatus used in this content delivery system | |
| JP2003518832A (en) | Remote transmission of multimedia contents from consumer electronic devices | |
| EP2061241A1 (en) | Method and device for playing video data of high bit rate format by player suitable to play video data of low bit rate format | |
| JP5259848B2 (en) | Reproduction control device and reproduction control method | |
| US20040237107A1 (en) | Media distribution systems and methods | |
| KR102085192B1 (en) | Rendering time control | |
| JP2005513622A (en) | Creating multimedia content | |
| CN101120334A (en) | Interactive Multi-Channel Data Distribution System | |
| HK1112987A (en) | Interactive multichannel data distribution system | |
| JP4994942B2 (en) | Information processing apparatus, information processing method, and information processing system | |
| JP4314574B2 (en) | Client terminal, streaming server, streaming switching system, and streaming switching method | |
| CN105554559A (en) | Media projection method based on http | |
| HK1212128B (en) | Rendering time control | |
| KR20060114897A (en) | How to provide video service that text display is controlled by user |