Networked media recording

A receiving module selectively receives a stream of digital data from a recording device via a network. A data store selectively stores the digital data. A streaming module that selectively streams the stored digital data to a network device via the network.

BACKGROUND INFORMATION

Digital media recorders such as camcorders, cameras, camera phones, digital audio recorders, etc. allow users to record a variety of different kinds of data, such as video, audio, and still images. Today's digital media recorders are often portable and may be used in a variety of settings. However, a digital media recorder generally requires transferring digital content from a storage medium included in the digital media recorder to some other storage medium such as a computer disk drive, digital tape, etc. once the capacity of a storage medium included in the digital media recorder has been reached. Such transfers of digital content generally require establishing a connection between the digital media recorder and the other storage medium after digital content has been recorded. If the other storage medium is unavailable, then additional digital content generally cannot be recorded. Further, obtaining the connection to the other storage medium may be inconvenient, e.g., requiring a wired connection between the digital media recorder and the other storage medium, a wired or wireless connection between the digital media recorder and a local network to which the other storage medium is connected, etc. Thus, storing digital content recorded by a digital media recorder generally requires that the digital media recorder be in a particular and limited physical location. Moreover, if the digital media recorder or its storage medium is lost, damaged, destroyed, etc. before digital content can be transferred to another medium, the digital content will be lost.

DETAILED DESCRIPTION

FIG. 1Aillustrates an exemplary system100for storing and retrieving recorded digital content over a network.

A recording device105may include or may be attached to a network interface110. The primary purpose of network interface110is to provide communications, including the transmission of digital data representing video, images, audio, etc., between recording device105and a router115, which in turn allows recording device105to communicate through a packet-switched network120. Digital content sent from recording device105may be stored in a media storage server125, which includes a data store135, a receiving module140, a graphical user interface (GUI)145, and a streaming module150. Further, interface110may allow recording device105to receive data, including digital content, via network120. One or more computers130may communicate with recording device105and/or media storage server125through packet-switched network120.

Recording device105may be a digital media recorder such as a camcorder, digital video camera, digital still image camera, camera phone, personal digital assistant (PDA) digital audio recorder, or other computing device including a laptop or desktop computer equipped with a camera, etc. In general, recording device105may be any device that captures digital representations of phenomena including but not limited to images and sounds.

Network interface110is illustrated inFIG. 1as being attached to recording device105, although interface110may be included in recording device105. Interface110generally includes a processor that is capable of executing, and a memory that is capable of storing, program instructions. Interface110is configured to send and receive communications with router115, e.g., via a wireless connection according to any one of a number of known standards for providing a high-speed, high bandwidth wireless connection, such as Evolution-Data Optimized (EVDO), Enhanced Data rates for GSM (Global System for Mobile Communications) Evolution/General Packet Radio Services (EDGE/GPRS), code division multiple access (CDMA), CDMA including EVDO, etc. Interface110may include a cellular telephone or the like. Interface110may also communicate with router115through a wired connection such as an Ethernet connection that may be accomplished through a variety of known mechanisms, such as a Cat5 cable, IEEE 802.11, Bluetooth, etc. To accommodate wireless communications, interface110may include a radio frequency (RF) transceiver as is known for such communications. The specific manner or manners in which interface110communicates with router115and network120is not critical so long as the speed and bandwidth of the communication is sufficient to transfer digital data captured by recording device105.

As mentioned above, interface110may be included within recording device105. However, in embodiments in which interface110is connected to but not included within recording device105, interface110may be connected to recording device105through any one of a number of known connections, e.g. a universal serial bus (USB), and IEEE 1394 High Speed Serial Bus, also known as FireWire, etc. Whether included within recording device105or not, interface110generally includes a data buffer for storing digital data received from recording device105prior to transmitting such data to router115.

Router115may be any one of a number of known routers for routing digital packets and for connecting network devices, e.g., interface110, server125, network device130, etc., to each other and/or to packet switched network120. However, router115may be unnecessary in some cases, e.g., where recording device105or network device130is capable of directly connecting to the network, as is the case, for example, with a cellular telephone or the like.

Packet switched network120may be an Internet protocol (IP) network or the like such as is known for transporting digital data packets. For example, network125uses protocols such as user datagram protocol (NDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), etc. Further, network120may include a variety of networks such as a wide area network (WAN), e.g., the Internet, a local area network (LAN), etc.

Media storage server125is a combination of hardware and software, including one or more computing devices, and is connected to network120. Further, media storage server125is generally configured to send and receive communications over packet switched network120according to protocols such as those mentioned above.

Media storage server125includes data store135, which is a database system, file server system, or the like configured to store, digital data streamed from recording device105, e.g., as files, objects in database tables, etc. It is to be understood that data store135generally includes a redundant set of database servers and/or file servers with sufficient computer readable storage to accommodate digital data streamed from recording devices105. Media storage server125provides a large amount of storage for content from recording device105, and for practical purposes may be thought of as providing a virtually unlimited amount of storage for recording device105.

Receiving module140is generally a set of computer-readable instructions that includes instructions to receive a stream of digital data from recording device105via network120, and to provide the digital data to data store135for storage. GUI145, which may be rendered by a web server or the like included in media storage server125, provides a mechanism for user inputs from network device130to request digital data stored in data store135. Such digital data may be retrieved from data store135for provision to network device130by streaming module150, which is generally a set of computer-readable instructions that includes instructions for sending a stream of digital data to network device130.

Network device130may be any one of a number of known computing devices, such as a desktop computer, a laptop computer, a handheld computer, etc. Network device130may also be a communication device such as a cellular telephone or the like. Network device130is generally used to access digital data that has been streamed from recording device105and stored in the media storage server125. However, although not illustrated in the drawing figures, network device130may include data store135, receiving module140, GUI145, and/or streaming module150. Accordingly, network device130may operate in a manner similar to the description herein of the operation of media storage server125. Network device130may connect to network120through any one of a number of protocols, such as those mentioned above with respect to interface110. Accordingly, the connection of network device130to network120may be either wired or wireless.

In some cases, where recording device105and media storage server125are in close proximity, e.g., in the same home, office, school, etc., router115and media storage server125may communicate directly, thus obviating the need for network120. Similarly, router115and network device130may communicate directly. In such embodiments, router115effectively fulfills the functions of network120.

Computing devices such as recording device105, interface110, server125, and network device130, etc. may employ any of a number of computer operating systems known to those skilled in the art, including, but by no means limited to, known versions and/or varieties of the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Sun Microsystems of Menlo Park, Calif.), the AIX UNIX operating system distributed by International Business Machines of Armonk, N.Y., and the Linux operating system.

FIG. 1Billustrates an exemplary system101for storing and retrieving recorded digital content over a network. It may be seen thatFIG. 1Billustrates certain elements in common withFIG. 1A. However, system101further includes access to network120provided by a service provider155. Accordingly, network device130may connect, e.g., through a wired or wireless connection, to service provider155which in turn provides access to network120. Service provider155is known for providing access to a packet switched network such as the Internet.

In addition, network device130may be included in a customer premises160, and may connect to service provider155through a broadband home router (BHR)165or the like. Accordingly, network device130may utilize a wired or wireless connection to BHR165. Customer premises160may also include a recording device105and a network interface110, interface110being connected to be HR165.

Further, customer premises160may include a content processing device170, such as a set-top box (STB) or the like. Content processing device170is generally connected to a media distribution network such as a video distribution network (not shown inFIG. 1B), e.g., a network that provides a video signal through coaxial cable, fiber-optic cable, etc., and generally provides for the access of media through a media player175. For example, media provided through content processing device160may include video, and media player175may be a television set, video monitor, or the like. Content processing device160includes a processor and a memory, and generally other computer readable media providing storage, and may be provided with a real time operating system (RTOS) such as is known. Content processing device170generally also includes, e.g., stored in a read only memory (ROM), a unique or substantially unique identifier that identifies the content processing device170. It is to be understood that content processing device170may be a computing device such as one of those enumerated below, so long as the computing device is capable of receiving media content from a media distribution network, and is capable of storing and executing computer-executable instructions. Like network device130, content processing device170may be connected to BHR165through a wired or wireless connection using one or more of the protocols mentioned above.

Computing devices such as those mentioned above generally each include instructions executable by one or more computing devices such as those listed above, and execution of the processes described below may take place according to such instructions executed by one or more of the computing devices included in system100. Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies known to those skilled in the art, including, without limitation, and either alone or in combination, JAVA, C, C++, Visual Basic, Java Script, Perl, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of known computer-readable media.

FIG. 2illustrates a process200for recording digital data and streaming the digital data to media storage server125in real-time or near real time.

In step205, interface110, through router115, connects to network120. Recording device105and/or interface110may include a numeric keypad, an alphanumeric keypad, or the like to allow a user to enter a username, a password, or other information necessary to authenticate to network120. It is also possible that interface110may be configured to connect automatically to a network of120when powered on.

Next, in step210, interface110establishes a connection to media storage server125. As mentioned above, network device130may operate in a manner similar to media storage server125, and therefore it is to be understood that step210may include establishing a connection to a network device130. Further, it is possible that, prior to step210, a user has had to provide input identifying a destination for streamed digital data from recording device105. That is, a user may be able to select from multiple media storage servers125and/or computers130as destinations for streamed digital data for recording device105.

In any event, and authentication module in media storage server125may determine whether the connection of step210may be established. For example, interface110may be configured to provide user-entered login information such as a username, password, account identifier, etc. to media storage server125, or interface110may be configured automatically to connect to media storage server125. In any event, the authentication module may check such information against a database or the like to determine whether interface110may connect to media storage server125. As mentioned above, communications between interface110and media storage server125may happen according to a number of protocols for communications in a packet switched network such as network120.

Next, in step215, recording device105records some phenomenon or phenomena, e.g., still images, moving images, audio, etc., and streams digital data representing the phenomenon or phenomena to interface110, which in turn streams the digital data to media storage server125, where the digital data is received by receiving module140. Such stream of digital data may be in any one of a number of known formats, e.g., MPEG, JPEG, MP3, etc., and may be encrypted. Recording device105may simultaneously provide outputs such as video and/or audio outputs, and may also store the digital data on a computer readable medium in, or associated with, recording device105, such as a computer disk, a flash memory, etc. As mentioned above, interface110generally includes a buffer, and therefore recording device105generally provides digital data to the buffer in interface110, and interface110in turn retrieves digital data from the buffer for streaming to media storage server125. Alternatively, a buffer may be included in recording device105, and data may be provided to interface110for streaming to media storage server125from this buffer. In any event, upon receiving digital data streamed from interface110, receiving module140stores the data in a temporary file or the like until the data stream is complete.

Next, in step220, interface110completes sending a stream of digital data commenced in step215. Receiving module140may detect that such recording is complete when the stream of digital data is interrupted or ends, or when an end of file condition or character is provided by interface110in the digital data stream.

Next, in step225, receiving module140permanently names and persistently saves in data store135the temporary file described above with respect to step215. Interface110may provide a user with the ability to specify a name for a file, associate the file with other files, etc. when the file is persistently saved in data store135. For example, a user may provide such information prior to beginning recording, whereupon such information may be provided to media storage server125as part of the digital datastream described above with respect to step215. However, it is also possible for file identifying and location information to be provided to media storage server125separately, e.g., after recording is complete according to user input prompted by interface110, whereupon such input may be sent to media storage server125according to HTTP.

Further, it is also possible that receiving module140may automatically assign a name and storage location to a file. For example, receiving module140may assign a name to a file according to an identifier for a user account, and may further automatically store the file in association with other files for that user account. Moreover, recording device105may provide information that may be used by receiving module140to assign file name. For example, along with a stream of digital data, recording device105may provide metadata such as a timestamp, a geographic location from which the stream of digital data originated, etc. As is known, recording devices105such as cellular telephones, devices equipped with a global positioning system (GPS), etc. may be capable of providing a geographic location. Such metadata information may be used by receiving module140to assign a name to a file including streamed digital data.

It is to be understood that files may be stored in media storage server125according to virtually any format in which digital data may be stored, including, without limitation, joint photographic experts group (JPEG) standards, graphical interchange format (GIF), tagged image file format (TIFF), portable network graphics (PNG), motion picture experts group (MPEG) standards, QuickTime, MPEG-1 audio layer 3 (MP3), waveform audio format (WAV), RealAudio, etc.

Next, in step230, if no further recording and streaming of digital data to media storage server125takes place, then process200ends. Otherwise, process200may return to step215.

FIG. 3illustrates an exemplary process300for recording digital data and downloading the digital data to media storage server125.

In step305, recording device105records some phenomenon or phenomena, e.g., still images, moving images, audio, etc., and saves digital data representing the recording to a medium such as a memory card, e.g., a flash memory, in recording device105.

Next, in step310, the recording commenced in step305is completed. The result of such recording is generally a file saved on medium included in recording device105as mentioned above with reference to step305. Such a file may be automatically named by recording device105, or be named according to user input provided through a user interface that may be part of recording device105or interface110.

Next, in step315, a user may decide to make further recordings of digital data. If so, process300returns to step305. Otherwise, step320is executed next.

In step320, interface110, through router115, connects to network120as described above with respect to step205in process200.

Next, in step325, interface110establishes a connection to media storage server125as described above with respect to step210in process200.

Next, in step330, a file or files saved as described above with respect to step310are uploaded to media storage server125, where they are received by receiving module140. Such files may be stored in data store135in a variety of manners such as is described above with respect to step225.

FIG. 4illustrates a process400by which network device130or content processing device170are used to retrieve a file or files from media storage server125. Further, it is possible that recording device105and/or interface110may be used to retrieve a file or files from media storage server125.

In steps405and410, network device130or content processing device170connects to network120and media storage server125, much as is described above with respect to interface110in processes200and300.

Additionally, with respect to step405, network device130or content processing device170may be located within customer premises160, and may connect to network120through service provider155. Therefore, it is to be understood that in this case step405generally includes authenticating to service provider155, which in turn provides a connection to network120. Further, a user of content processing device170may provide login information, e.g., a user name and password, using a remote control device, a keyboard, or other input device in communication with content processing device170, which in turn may provide such login information to service provider155through BHR165. Additionally or alternatively, content processing device170may be programmed to provide the unique or substantially unique identifier associated with content processing device170.

Moreover, with respect to410, it should be understood that a user accessing media storage server125to retrieve a file or files need not be the same user who accessed media storage server125to store such file or files, e.g., as described above with respect to processes200and300. However, the authentication module mentioned above may authenticate both users who stored a file or files on media storage server125as well as users seeking to retrieve a file or files from media storage125, regardless of whether the users seeking to retrieve files are the same users who store the files. For example, a user could be established as a subscriber to a set of files stored on media storage server125by one or more other users. Accordingly, when attempting to access files in media storage server125through network device130or content processing device170, step410may include providing a subscriber identifier or the like, which is authenticated by media storage server125to provide a user with access to a specified file or set of files.

Next, in step415, media storage server125provides graphical user interface (GUI)145, e.g., a web page or the like, for display in network device130. GUI145may provide a user with a list of file names available for retrieval by that user, where such file names may be categorized in various ways. For example, files stored in media storage server125may be organized according to file type, e.g., audio, video, still image, etc. Further, files stored in media storage server125may be organized in a hierarchical file structure using folders, subfolders, etc. as is known. Within folders and subfolders, users are generally provided with the ability to sort file information according to, for example, file name, date and time when the file was saved, date and time when the file was recorded, etc. A user may navigate through a file structure to locate files of interest, or GUI145may provide an interface whereby a user may enter a keyword to request that media storage server125conduct a keyword search for files of interest.

Although the present illustration of process400shows a request for files in media storage server125being made in step415, following authentication of a user or subscriber by media storage server125in step410, it is possible that a user could view GUI145, and then be authenticated by media storage server125. For example, where a user is a subscriber entitled to receive a file or set of files in media storage server125provided by another user, such subscriber may be permitted to view a list of available files, and authenticated only when a particular file or set of files is requested. Further, authentication by media storage server125is described with respect to step410could be replaced by an e-commerce transaction or the like. For example, a user could make a file or set of files available on media storage server125, e.g., according to one of processes200or300, and a second user could be permitted to access such file or set of files after providing payment information such as is known.

Next, in step420, streaming module150in media storage server125provides a requested file or files to network device130. Such file or files may be provided in a variety of ways. For example, files may be streamed to network device130for playback using a software media player such as Windows Media Player, iTunes, RealPlayer, etc. included on network device130. Further, files may be streamed or downloaded to network device130for storage and possible later playback or viewing.

FIG. 5illustrates a process by which network device130or content processing device170may be used to retrieve a recording made by recording device105from media storage server125in near real time.

In step505, as described above with respect to step205, interface110, through router115, connects to network120.

Next, in step510, as described above with respect to step210, interface110establishes a connection to media storage server125.

Next, in step515, as described above with respect to step215, recording device105records some phenomenon or phenomena, e.g., still images, moving images, audio, etc., and streams digital data representing the phenomenon or phenomena to interface110, which in turn streams the digital data to receiving module140in media storage server125. Upon receiving digital data streamed from interface110, receiving module140stores the data in a temporary file or the like. In some cases, a temporary file may not be available until the data stream is complete. However, media storage server125may provide a data stream to requesting users, e.g., users at network device130or content processing device170, while the data stream is being stored in the file. Accordingly, content recorded by recorder105may be streamed to media storage server125in real or near-real time, and media storage server125in turn may store and at the same time provide recorded content to users who have subscribed to it, e.g., at network device130or content processing device170.

Accordingly, next, in step517, media storage server125may send messages or alerts to users, e.g. to network device130, content processing device170, etc. informing the user that subscribed-for content is available on a real-time or near real-time basis. Thus, recording device105may be used to provide content on a real-time or near real-time basis to remote users. For example, parents on vacation with their children could provide video or images of the children to relatives on a real-time or near real-time basis. Users could also receive alerts concerning content available to them on a pay-per-view basis, or content which they have subscribed to receive. Ways in which an alert in step517could be triggered may include a user providing input through interface110, e.g., by providing input through recording device105. Further, program instructions in media storage server125may provide for sending an alert to one or more pre-specified destinations when content is received as described above with respect to step515.

Next, in step520and525, network device130or content processing device170connects to network120and media storage server125much as is described above with respect to steps205or405.

Next, in step530, media storage server125provides graphical user interface GUI145, e.g., a web page or the like, for display in network device130or any devices such as media player175attached to content processing device170, much is as described above with respect to step415in process400. However, in addition to any other list of file names available for retrieval by a user, and GUI145provided in step530includes one or more files that are in the process of being streamed from a recording device105and that are presently stored in a temporary file and media storage server125, as described above with respect to process200. Such files may be referred to as “near real-time files.” As described above with respect to step430, it is also possible with respect to process500that a user could view GUI145, and then be authenticated by media storage server125, e.g., as a subscriber for near real-time files. It is also possible that, instead of being authenticated as described with respect to step510a user could purchase near real-time files, e.g., in an e-commerce transaction.

Next, in step535, upon a user's selection of a real-time or near real-time file, in the near real-time file is streamed to network device130by streaming module150where it may be played in media playback software such as that mentioned above. The streaming of a near real-time file may end upon user's termination of the stream, e.g., by providing input to media playback software to terminate the stream, or by the end of the near real-time file being reached.

CONCLUSION