Abstract:
A local user issues recording instructions via the Internet to a remote computing device. The remote recording device records broadcast programs available to it according to the received recording instructions, and compresses and encodes the recorded program into a specified media format. The file holding the encoded broadcast program may be subdivided into multiple smaller files before being moved into another computer specified by the user and accessible via the Internet. The remote computing device may receive recording instruction via a pulse telephone and may be incorporated into existing video cassette recorders.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   This invention relates generally to a system for remote scheduling of program recording and retrieval of the recorded program. 
   2. Description of the Related Art 
   Much work has been devoted to facilitating the selection of movies for viewers. For example, U.S. Pat. No. 4,920,432 and U.S. Pat. No. 5,781,734 describe systems for use in hospitals and hotels wherein a private movie distribution system is provided. A viewer selects from an internal library of movies and video games, and the selection is sent by an internal transmission line to the room where the viewer resides. Such systems however do not permit for remote viewing since the viewer must be within the private movie distribution system, and movie selection is limited to the contents of the internal library. 
   Another system that aims to increase the size of the movie distribution system to permit remote viewing is the so-called movie-on-demand system available over cable television networks. Exemplary on-demand systems are described in U.S. Pat. No. 5,995,708, U.S. Pat. No. 5,914,712, U.S. Pat. No. 5,956,716, U.S. Pat. No. 5,758,257, and U.S. Pat. No. 4,506,387. These systems describe various methods for a user to communicate with a central movie distribution system and to select a movie for viewing. They also describe various methods of organizing the available movie selections, distributing selected groups of movies to different geographic clusters of viewers, and for building a movie preference profile for viewers. 
   Although these movie-on-demand systems do achieve a much larger movie distribution network than the private systems used in hospitals and hotels, they are still limited to specific geographic areas that they may service. Furthermore, their systems place some inherent limitations on the number of movies they may offer for selection. 
   U.S. Pat. No. 5,914,712 describes a movie distribution system that uses telephone networks to distribute movies. The system is described as being limited to fiber optic telephone networks due to practical bandwidth limitations, but permits a user to telephone a central movie distribution network and a make a movie selection. The move is then transmitted to a specialized receiving box for display on a television. This system may eventually permit unlimited remote viewing of a movie as more and more telephone networks are transferred from wire to fiber optic networks, but this transition is very costly and currently limited to selected geographic areas. Furthermore, the described system requires that a user call in and select from a recorded list of available movies, this greatly limits the number of movie choices. 
   Another system that uses telephone networks to transmit multimedia information is described in U.S. Pat. No. 5,956,716. This system is intended as an information service for travelers and maintains a library of news clips, news text, and audio announcements. It is explained that the news clips and audio announcements are preferably transcribed to text format for easier distribution. Basically, the system maintains a profile of each registered user and selected various news items that may be of interest to the user. These news items are periodically downloaded to the users&#39; computers for review. Although this system achieves remote viewing, it is limited to small news and movie clips, and does not permit the viewer to select items for viewing. Rather, pre-selected items are transmitted to the viewer&#39;s computer. 
   A system that aims to increase the amount of movie selection available to a consumer is described in U.S. Pat. No. 5,909,638. It is explained that when a consumer visits a video store, it is likely that the video store may not have the movie the consumer seeks since the store has a limited amount shelf and storage space. Therefore, a system is proposed whereby a fiber optic network links multiple video stores and kiosk video vending machines to a central distribution library. A consumer makes a movie selection, and if the movie is not locally available, it will be transmitted from the central distribution library to the store or kiosk. The user selects the type of media desired, such as DVD or VHS, and the received move is recorded onto the selected media for the consumer. Although this system increases the amount of move selection, it is still limited to the number of remote sites it may service since all the receiving sites in the network, i.e. video stores and kiosks, must me linked by a proprietary fiber optic network. 
   Lastly, all of the above systems provide a method for selecting from a list of available movies in a standardized library, but it is sometimes desirable to select a program that is not available in a standardized library. This is the case, for example, when one wishes to watch a televised program scheduled to air at an inconvenient time and/or location. In such a case, one may use a video cassette recorder, VCR, to record the program for later viewing, but this requires that the user be home to activate or program the VCR, and thus does not permit for remote access. U.S. Pat. No. 5,420,913 describes a system whereby a remote user may program a VCR by telephone, but the user must still wait until he/she returns in order to watch the recorded program or have the VCR&#39;s video tape mailed to the user&#39;s remote location for viewing. 
   Therefore, what is needed is a system for remote viewing of televised programs that is not limited to specific geographic regions, not limited to a small sub-set of available programs, and is not limited to specialized fiber optic networks. 
   It is an object of the present invention to provide a system for remote recording and retrieval of televised programs without requiring that recorded items be mailed, or otherwise shipped, to a remote user. 
   It is further an object of the present invention that this system be compatible with exiting television and telephone network infrastructure. 
   SUMMARY OF THE INVENTION 
   The above objects are achieved in a remote record and retrieve system that permits a mobile user quick access to broadcast programs from remote locations. A user on a local computing device connects to a remote computing device through a computer network, such as the Internet. The Internet is preferred since it permits a mobile user easy access to remote computer networks throughout the world. The remote computing device has access to a television or radio tuner, to a recording mechanism, and to a data compression and encode mechanism. The user transmits recording instructions via the Internet to the remote computing device, which then proceeds to prepare the tuner and recording mechanism according the received instructions. The program scheduled for recording is also digitized, compressed and encoded into any one of a plurality of available media formats such as MPEG1, MPEG2, AVI, etc. The recorded program is then transmitted via the Internet to the local user. The recorded program may be emailed to the user, or may be transferred to a user specified machine accessible via the Internet by use of the Internet file transfer protocol, FTP. 
   Preferably, the remote computing device is aware of differences in the media format received by its tuner and the media format used by the remote user to play the recorded program. For example, if the remote computing device is in Europe receiving television signals in PAL format, and the remote user is in North America and has a television that requires NTSC format, the remote computing device will perform any required format conversion prior to transmitting the encoded program to the local user. 
   In a preferred embodiment, the user transmits via the local computing device additional information to the remote computing device. For example, the user may place a limit on the size of encoded files it may receive from the remote computing device. In this case, the remote computing device will divide a large file holding the encoded, recorded program into multiple smaller files of size not larger than the user specified maximum file size. The remote computing device further generates a master sequence file specifying the order in which the multiple smaller files should be played in order to form a contiguous playing session similar to that of the larger file. 
   Ideally, encoded program files are deleted at the remote computing device location after the files are transmitted to the remote user. The user may schedule multiple non-concurrent programs and multiple concurrent programs for recording. In this case, the user may assign a different priority level for each program. Since the remote computing device has a limited amount of storage space, and a file is ideally not deleted until it has been successfully transmitted to the user, there exists the possibility that the storage space available at the remote computing device may be full and not able to store any additional scheduled recordings. In this case, multiple management schemes using the assigned priority levels are used for determining when one scheduled program may override another in the storage space. 
   The above system may be implemented in a server-client arrangement, with the server being the remote computing device and the client being the local computing device. Alternatively, the remote computing device may be a general purpose, personal computer having a tuner card and having encoding hardware/software along with appropriate interface software. The above system may also be a specialty consumer box for interfacing a VCR with the Internet, or may be incorporated into the functionality of a VCR. 
   Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings wherein like reference symbols refer to like parts, 
       FIG. 1  illustrates a first embodiment of the present invention wherein a remote computing device is implemented as a computer server or a personal computer. 
       FIG. 2  is first routine used by a user on a local computing device to submit recording instructions to a remote computing device. 
       FIG. 3  is a diagrammatic example of a large file being divided into multiple smaller files of a given maximum size. 
       FIG. 4  is a second routine used by a user to play a received encoded file. 
       FIG. 5  is a first routine used by a remote computing device for responding to and accepting recording instructions from a user. 
       FIG. 6  is a second routine used by a remote computing device to determine when to initiate recording of a broadcast program and deliver an encoded program file to a user. 
       FIG. 7  is a second embodiment of the present invention wherein a remote computing device is implemented as a specialty consumer electronics box. 
       FIG. 8  is a third embodiment of the present invention wherein the remote computing device incorporates all tuning and recording mechanisms internally. 
       FIG. 9  is a second embodiment of the remote computing device of  FIG. 8  showing multiple tuners each having a corresponding video capture and encode box. 
       FIGS. 10 and 11  illustrate the use of a first memory manage format for the data store in the remote computing device of  FIG. 8 . 
       FIG. 12  is a third embodiment of the remote computing device of  FIG. 8  showing multiple tuners sharing a common video capture and encode box. 
       FIG. 13  is a second memory management format for the data store in the remote computing device of  FIG. 8 . 
       FIG. 14  is an illustration of the present invention in use with a private network using a network address translation router to access the Internet. 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   With reference to  FIG. 1 , multiple users, represented as user computing devices  11  and  13 , are in communication with a specialized network server  15  via the Internet  17 . Of course, server  15  may optionally communicate with user computing devices  11  and  13  via any type of network, but the use of the Internet  17  is the presently preferred implementation. In the present first embodiment, users  11  and  13  are remote from each other and each has access the Internet  17  via different networks represented as separate links  19  and  21 , respectively. 
   Server  15  has access to the Internet  17  via link  16 , and is also coupled to a plurality of recording devices  23 – 27  and to an optional separate archive store drum  29 . Recording devices  23 – 27  are shown to include a tape recording mechanism and may be implemented as videocassette recorders, but other recording mechanisms and mediums, such as those associated with digital recordings, are likewise applicable to present invention. Recording devices  23 – 27  preferably include tuning devices for receiving televised programs  31 . Televised programs  31  are symbolically illustrated as a cloud and represent all locally available broadcast programs such as available from locally aired television networks and locally available cable television networks. It is to be understood that each of recording devices  23 – 27  may be tuned to a different televised program along symbolic link  33 , which may be an antenna, a cable line, a satellite feed, or any other known broadcast reception medium. 
   Recording devices  23 – 27  are controlled by server  15  via respective communication links  35 – 39 . Server  15  can independently control key functions of recording devices  23 – 27 , such as tuning, record start and stop functions, and fast forward and reverse operations. In response to instructions from users  11  and  13 , server  15  will activate and tune an available recording device  23 – 27  to a specified televised program and commence recording. Once the televised program as been recorded, server  15  rewinds the recorded program and replays its once again. This time, the played recording is sent to server  15 , which proceeds to digitize and compress the signal into any one of a plurality of available video encoding formats, such as MPEG 1, MPEG 2, AVI, etc. After the recorded televised program has been digitally encoded, the recorded televised program may be erased. The resultant video encoded data file is then transmitted via the Internet  17  to a target user,  11  or  13 , defined as the user that originally issued the recording instructions. Should the target user not be available, the video encoded data file may be temporarily stored in optional archive data store drum  29 . The video encoded data files stored in drum  29  are preferably given a date stamp and maintained for a predetermined period of time, during which server  15  attempts to retransmit the file to its target user  11  or  13 , and the file is further available for pick up by its target user. After the elapse of the predetermined period of time, the file is deleted. 
   It is preferable to limit the number of copies of a televised program. Therefore, the video encoded data file is preferably deleted immediately following its delivery to its target user  11  or  13 . Alternatively, delivered video encoded data files may be maintained in drum  29  for a predetermined period of time during which it may be made available to other users requesting the same televised program. 
   A user that receives an encoded data file from server  15  may view the recorded televised program by running an appropriate decoding program or by activating an appropriate viewing device. The received file may be stored in a separate first data store  41 , or may be transferred onto a standard video recording media  43 , such as video compact disk (VCD), versatile compact disk (DVD), video cassette tape, etc. 
   In the present embodiment, users  11  and  13  function as clients to server  15 . With reference to  FIG. 2 , in operation, a user, or client, initiates a remote record and retrieve process by running client software  51  that brings up an interface screen and begins the process of contacting server  15 . The user then connects  53  to server  15  to open a communication channel. Server  15  may optionally require authentication information such as a user name and password before permit access to the prospective user. This would be the case if, for example, server  15  provides its services on a subscription basis and maintains a separate account file for each registered user, or client. 
   Once a user is permitted access to server  15 , the user may submit various recording instructions such as a tuning channel selection and a start and stop recording interval. Additionally, the user may select among various available multimedia encoding formats such as MPEG 1, MPEG 2, AVI, etc. for each recording session, and may also submit various encoding options that affect the compression ratio of a recording. For example, in order to reduce the file size of an encoded recording of given time length, a user may select a view screen size smaller than standard as well as select a lower video resolution quality. 
   Optionally, the server may provide the user with a list of scheduled broadcast programs. A user may then submit recording instructions by selecting a scheduled program from the list. In this case, the user does not need to submit tuning information or start and stop times since that information is already known to the server. The user may still be required to provided preferred settings such as encode format, resolution quality level, and so on. 
   As explained above in reference to  FIG. 1 , a user may transfer a received video encoded data file onto various types of media  43 , which have differing recording capacity. For example, a CD has a typical storing capacity of about 650 megabytes and a DVD has a typical storing capacity of multiple gigabytes. Other storing media have storing capacities ranging from slightly above one megabyte, such as a standard 3.5 floppy disk, to several hundred or thousand megabytes, such as digital recording tape. Therefore, server  15  preferably offers the user an option to submit a maximum file size for each recording session. In this case, the encoding of the total recording session is divided into multiple files of size not greater than the entered maximum size. 
   This operation is illustrated in  FIG. 3 , wherein the size of an otherwise unspliced file  52  corresponding to a complete recording session is shown to be bigger than a submitted maximum file size  54 . Therefore, unspliced file  52  is subdivided into multiple smaller files  58  each having a video segment of the entire unspliced file  52 . The contiguous video segments 1 through z are identified and a master sequence file  60  is generated. Master sequence file  60  specifies the sequence in which the multiple files should be played in order to maintain a viewing sequence similar to that of unspliced file  52 . File segments  58  and master sequence file  60  are transmitted to a location specified by the user that submitted the recording instructions. 
   Therefore, during the submitting of programming instruction, shown in box  55  of  FIG. 2 , the user preferably submits an internet protocol, IP, address to which server  15  should transfer the encoded file, or the user may submit an email address to which the encoded files should be electronically mailed. After all information has been submitted, a user logs off and exits the client software  57 . 
   With reference to  FIG. 4 , once a recorded program has been encoded and received by the user, it may be viewed by the user by running appropriate multimedia software  61  and selecting the file to be played  63 . Alternatively, the file may be transferred to a portable media such as a DVD, or transferred onto videotape by means of a videocassette recorder. The user may then terminate the multimedia program  65 . 
   Server  15  similarly follows various routines. With reference to  FIG. 5 , server  15  is continuously responsive to connection requests  71  from users, and responds to such a request by preferably initiating an authorization sequence for a connected user. After a user has been verified and granted entry, server  15  receives recording instruction  73  from the user along with any additional parameter data such as choice of encoding format, resolution quality, etc. This data is stored in a database  75 , and once the user logs off, server  15  returns to waiting for the next user request for connection  77 . 
   With reference to  FIG. 6 , in a second routine, server  15  continuously compares scheduled recording times with an internal clock to determine when a recording session should be initiated, as shown in box  81 . When the comparison shows that a recording session is imminent, a recording device is tuned to the appropriate channel and a recording session is initiated  83 . Following the recording of the program, step  85  explains that the recorded program is digitally encoded, if not already recorded in a digital format, and sent through network  17  to its target recipient. At this point, step  87  returns server  15  to a state of observing the database and waiting for the next recording session. 
   In  FIG. 1 , the remote computing device controlling the remote record and retrieve operation of televised programs is illustrated as computer server  15  with access to multiple video tape recording devices  23 – 27 . In this case, the present invention is implemented as specialized software running on a general purpose computer  15  along with specialized hardware for permitting communication between server  15  and multiple video recording devices  23 – 27 , but other variations on the invention are likewise possible. 
   With reference to  FIG. 7 , a second embodiment of the present invention replaces server  15  with a specialized multimedia box  91  functioning as a computing device controlling a single recording device  23 . All elements in  FIG. 7  similar to those of  FIG. 1  have similar reference numerals and are defined above. Multimedia box  91  is linked to the Internet  17  via link  16  and receives recording instructions from remote user  13  via the Internet  17  in a manner similar to that of server  15  in  FIG. 1 . Multimedia box  91  also implements similar functions of scheduling, recording and encoding broadcast programs in a manner similar to that of server  15  in  FIG. 1 . 
   In the present case, however, multimedia box  91  may also receive recording instructions by touchtone telephone  93  via communication link  95 . In a preferred embodiment, a caller on telephone  93  would identify the call as a schedule entry session by entering a predefined key code. If the predefined key code is not submitted within a predetermined period, multimedia box  91  preferably enters a second mode of operation wherein it functions as an answering machine to record received audio messages. The received messages are stored internal to multimedia box  91  and may also be encoded for transfer to a user  13  via the Internet. 
   Similarly, multimedia box  91  may also include a radio tuner for recording and encoding local radio broadcasts that may be sent to user  13  over the Internet  17 . 
   In the present embodiment, multimedia box  91  and recoding device  23  are illustrated as two separate devices, but they may of course be combined into a single specialty device such as a video cassette recorder with internet access capability. 
   In  FIGS. 1 and 7 , the recoding devices  23 – 27  of the present invention are illustrated as using tape recording mechanisms, but as stated earlier the recording device may use a digital recording mechanism or a combination of the both. 
   With reference to  FIG. 8  a remote record and retrieve system using a digital recording mechanism is shown. All elements in  FIG. 8  similar to those of  FIGS. 1 and 7  have similar reference numerals and are described above. In  FIG. 8 , the remote computing device in charge of recording and encoding programs is illustrated as a box  97  exposing some of its key components. Box  97  may be a general purpose computer or a specialized multimedia box. In the present embodiment, remote computing device  97  is shown to have a television tuner  101  for receiving televised programs  31  along link  33 . As explained above, computing device  97  may optionally include a radio tuner for receiving and encoding locally aired radio stations. The output of TV tuner  101  is coupled to a video capture and encode box  103 , which may be implemented completely in hardware, completely in software, or in a combination of hardware and software. Video capture and encode box  103  is preferably capable of encoding a captured video sequence into any of a plurality of known audio/video digital encoding formats. The encoded data from box  103  is stored in second data store  105 . The contents of second data store  105  are then applied to network access box  107  for access to the Internet  17  via link  16 . In the present embodiment, data transfer from second data store  105  is initiated after the end of the current record and encode session. Alternatively, transfer of data from second data store  105  onto the Internet  17  may commence prior to the end of the current record and encode session and after a predetermined amount of encoded data has been buffered in second data store  105 . 
   As explained above, the contents of second data store  105  may be a single file or multiple smaller files having segments of a composite recording session, and the contents of second data store  105  may be sent to a user  11  or to first data store  41 . In the present example, first data store  41  is not shown isolated from the Internet  17 , as was the case in the embodiment of  FIG. 1 . Rather, first data store  41  is shown accessible via the Internet  17  independent of user  11 . This is advantageous for the cases when a user  11  is not capable of maintaining a continuous connection to the Internet  17 . In this case, the user provides the IP address of first data store  41  as the target for receiving the recorded and encoded program files. First data store  41  may be, for example, another computer having a faster connection to the Internet than user  11 , or may be web space leased from various commercial vendors. 
   With reference to  FIG. 9 , a multi-tuner implementation of remote computing device  97  is shown. All elements similar to those of  FIG. 8  have similar reference characters and are described above. In  FIG. 9 , televised programs  31  are applied to a first tuner  101  and to a second tuner  102  via link  33 . Both tuners  101  and  102  follow parallel paths and thus both have respective video capture and encode boxes  103 / 104  and respective data buffers  109 / 108 . In the presently preferred embodiment, the parallel paths of both tuners  101  and  102  share a common second data store  105 . In order to accommodate two tuners sharing a common data store, the output of first video capture and encode box  103  is applied to its corresponding first data buffer  109 , and the output of second video capture and encode box  104  is applied to its corresponding second data buffer  108 . The output of first video capture and encode box  103  is cached in first data buffer  109  while data from second video capture and encode box  104  is transferred from second data buffer  108  to data store  105 . Similarly, the output of second video capture and encode box  104  is cached in second data buffer  108  while data from first video capture and encode box  104  is transferred from first data buffer  109  to data store  105 . Once the recording session is complete, the contents of data store  105  are transferred to network access box  107  for delivery to their respective target destinations. In this manner, the video encoded files from first and second encoders  103  and  104  may be stored in second data store  105  in alternating data blocks corresponding to first and second tuners  101  and  102 . 
   Alternatively, data from first encoder  103  and second encoder  104  may be stored as shown in  FIG. 10 . In the present case, second data store  105  is divided into an upper memory space  111 , a lower memory space  113 , and a conflict buffer region  115  between the upper and lower memory spaces. Data from the first encoder  103  is stored in lower memory space  113  in ascending order from low memory addresses toward upper memory space  111 . Conversely, data from the second encoder  104  is stored in upper memory space  111  in descending order from upper memory addresses toward lower memory space  113 . Whenever either of upper memory space  111  or lower memory space  113  grows to encroach into conflict buffer region  115 , a conflict signal is issued. 
   In the present embodiments having multiple tuners, such as those of  FIG. 9  and  FIG. 1 , when a user issues recording instructions to a remote computing device in charge of the multiple tuners, the user preferably assigns a priority level to the programs selected for recording and thereby to their associated tuners. In the case when one of upper memory space  111  and lower memory space  113  encroaches into conflict buffer region  115 , computing device  97  resolves the priority level of the first tuner  101  and second tuner  102  and their corresponding first  103  and second  104  encoders. The encoder corresponding to the tuner of lower priority is deactivated, and the encoder corresponding to the tuner of higher priority is permitted to grow through the conflict buffer region  115  and to encroach within the memory space corresponding to the encoder of lower priority. 
   With reference to  FIG. 11 , an example is shown wherein second tuner  102  has a higher priority level than first tuner  101  and second encoder  104  is therefore permitted to grow beyond conflict buffer region  115  and encroach within the lower memory spacer previously assigned to first encoder  103 . 
   With reference to  FIG. 12 , another embodiment of the present invention permits multiple tuners  121 – 123  to share a common video capture and encode box  103 . All elements similar to those of  FIGS. 1 ,  7 , and  8  have similar reference characters and are described above. Multiple tuners  121  to  123  receive televised programs via link  33  and may each be tuned to a separate program, but it is to be understood that not all tuners are necessarily active at the same time. Multiple tuners are active simultaneously only when it is desirable to record multiple programs that are airing simultaneously. The output of tuners  121 – 123  are applied to a multiplexer  125  responsive to active tuner select bus  128 . Multiplexer  125  sequentially alternates between active tuners, ignoring any inactive tuners, and transferring the signal from a currently selected active tuner to its output  126 . 
   The output  126  of multiplexer  125  is coupled to video capture and encode box  103 , which is illustratively shown to include multiple audio/video encoding format capabilities represented by boxes  131 – 135 . It is to be understood that encoding boxes  131 – 135  may be implanted in hardware or software. The input to capture and encode box  103  is applied to an analog-to-digital converter  127  whose output is applied to audio/video encoders  131 – 135 . Analog-to-digital converter  127  is of course not necessary if the output of tuners  121 – 123  is a digital output and not an analog output. Each of audio/video encoders  131 – 135  is responsive to a separate enable signal from encode format select bus  137 . Only an enabled audio/video encoder  131 – 135  may latch in data on shared input bus  136  and may drive shared output bus  138 . As was explained earlier, a user submitting recording instruction may assign a different encode format for each program to be recorded. Therefore, encode format select bus  137  activates the appropriate encoder  131 – 135  for each tuner  121 – 123  selected by multiplexer  125 . The encoded output from video capture and encode box  103  is sent to second data store  105 , which is applied to network access box  107  for communicating with the Internet  17 . 
   Second data store  105  may have various configurations, such as that shown in  FIGS. 10 and 11 . A second preferred memory configuration for second data store  105  is shown in  FIG. 13 . In the present example, second data store  105  includes separate memory storage units  141 – 147  having a one-to-one correspondence with tuners  121 – 123  of  FIG. 12 . That is, memory storage unit  1  ( 141 ) corresponds to tuner  1  ( 121 ), memory storage unit  2  ( 143 ) corresponds to tuner  2  ( 122 ), and so on up to data storage unit i ( 147 ), which corresponds to tuner i ( 123 ). Each of memory storage units  141 – 147  is further given a status rating and priority level mirroring its corresponding tuner. If a tuner is active, its corresponding memory storage unit is likewise assigned a status of “active”. If a tuner is inactive but is scheduled for use at a later time for a recording session, its corresponding memory storage unit is assigned a status of “scheduled”. If a tuner is inactive and is not scheduled for later use, its corresponding memory storage unit is assigned a status of “free”. Furthermore, any priority levels assigned to a tuner are likewise applied to the tuner&#39;s corresponding memory storage unit. If a tuner is not assigned a priority level by a user, then its priority level may be determined from its status rating. In such a case, an “active” tuner is given higher priority than a “scheduled” tuner, and a “scheduled” tuner is given a higher priority than a “free” tuner. 
   The assigned status and priority levels are used to reassign memory storage units  141 – 147  when a storage unit corresponding to an active tuner is filled to capacity prior to the end of a program being recorded. For example in  FIG. 13 , memory storage unit  1  ( 141 ) is “active” and has reached its capacity. Rather than deactivating its corresponding tuner  1  ( 121 ) and terminating the recording session prematurely, the status and priority level of the other data storage units  143 – 147  is checked to see if the recording session of tuner  1  can continue and its encoded data stored in another available storage unit. The second data storage unit  143  has a status of “active”, meaning that it is currently being used by another tuner, and should not be used by tuner  1  unless no other storage unit is available and tuner  1  has a higher assigned priority level than the tuner currently using the second data storage unit  143 . The third data storage unit  145  has a status label of “scheduled”, meaning that it has been assigned to a different tuner for recording a scheduled program, and should not be used by tuner  1  unless there are no other data storage units of lower status and priority, and tuner  1  has a higher assigned priority level than the tuner scheduled to use third data storage unit  145 . This process is continued until all the available data storage units are identified, and the lowest priority storage unit is reassigned to tuner  1 . In the present case, the last storage unit  147  has a status of “free”, meaning that it is not being used by any tuner and is not scheduled for use by any tuner. Therefore, tuner  1  remains active and storage of its encoded data is continued in memory storage unit  147 . 
   All the storage units are shown to start at low memory, i.e. at the top of symbolic drums  141 – 147 , and then proceed toward high memory, symbolized by the bottom of drums  141 – 147 . This progression in the use of available memory is represented by arrows  149 . Memory storage units that are temporarily reassigned to a different tuner than their normally corresponding tuner, may optionally begin storing data from the reassigned tuner starting at high memory at the bottom and then proceed toward low memory at the top, represented by arrow  151 . In this manner, if the encoded data belonging to a temporarily assigned tuner has not been removed from the storage unit when the same storage unit begins receiving data from its normally corresponding tuner, the chances of a data writing conflict between the two tuners is lessened. 
   Previously it was explained that when a user submits recording instructions to the remote computing device in charge of recording and encoding a televised program, the user may submit an IP address to which the remote computing device may transmit, or push, the encoded program. The remote computing device would preferably use a standard software tool, such as the file transfer protocol, FTP, utility that is part of the suite of protocols available for the Internet. This operation functions without any difficulties if the IP address of the target machine submitted by the user corresponds to machine freely accessible from the Internet, but this may not be the case if the target machine is a within a network using a network addressing translation, NAT, utility. 
   A fully qualified IP address is necessary for accessing the Internet, but such fully qualified IP addresses are in short supply and increasingly becoming more expensive. Therefore, private networks typically assign nonqualified IP addresses internally to machines within the private network, and have the internal machines share a small number of fully qualified IP addresses when accessing the Internet. A router typically couples the private network to the Internet, and it may use a network address translation routine to translate a nonqualified IP address of an internal machine to a fully qualified IP address when the internal machine wishes to access the Internet. 
   Network address translation accomplishes this by assigning a socket number to each internal machine wishing to access the Internet, and attaching that socket number to messages that go out to the Internet using a fully qualified IP address. When a response from the Internet is received, the socket number on the returned message is matched to the internal machine that originated the Internet access. The problem is that many machines may share a fully qualified IP address, and the assigning of socket numbers is arbitrary. Furthermore, when one machine disconnects from the Internet the same socket number may be reassigned to another machine. It is therefore not possible to FTP to a specific machine behind a NAT router since the fully qualified IP address corresponds to the router and not to an internal machine behind the router. 
   With reference to  FIG. 14 , an arrangement with target user machines behind a private network  10  using network address translation is shown. All elements similar to those of  FIGS. 1 ,  7 , and  8  have similar reference numerals and are described above. Router  20  and computing devices  13 ,  24  and  11  are part of common network  10  and linked by line  28 . Computer  11  is shown coupled to network  10  through a wireless connection via access point  16 , as is typical in wireless network configurations, but this is not critical to the invention. Router  20  uses a fully qualified IP address to communicate with the Internet  17  along line  19 , and uses a nonqualified IP address to communicate with internal network  10  along line  28 . Furthermore, each of machines  11 – 13  use a nonqualified IP address to communicate amongst themselves and to communicate with router  20 . As explained above, router  20  implements network address translation so that computers  13 ,  12  and  11  all share the same fully qualified IP address when communicating with the Internet  17  via router  20 , which manages traffic between the Internet and network  10 . 
   Since a user, such as machines  11 – 13 , wishing to communicate with remote computing device  97  cannot identify itself by IP address and its mailbox space may be insufficient for receiving a long recorded program, a user machine  11 – 13  may instead submit a machine name identifying one of its hard drives. A machine name typically needs to undergo a name resolution routine to identify its corresponding IP address. However, in this case, the target hard drives of the client machines  11 – 13  may be mounted, or shared, onto router  20  thereby creating virtual drives L 1  and L 2  within router  20  with links  22  and  24  to their appropriate target machines,  13  and  12 . In this case, when remote computing device  97  attempts an FTP operation to a given machine name, and initiates a name resolution routine to identify the corresponding IP address. Router  20  and its fully qualified IP address will be identified as corresponding to the given machine name. Router  20  will then transfer any received files to its respective virtual drives L 1  and L 2 . As data is transferred into virtual drives L 1  and L 2 , it is automatically transferred to the appropriate target machine  13  and  12 . Thus, remote computing machine  97  manages to FTP a finished encoded file to a target user machine even if the target machine is behind a firewall consisting of a network address translation machine. 
   While the invention has been described in conjunction with several specific embodiments, it is evident to those skilled in the art that many further alternatives, modifications and variations will be apparent in light of the foregoing description. Thus, the invention described herein is intended to embrace all such alternatives, modifications, applications and variations as may fall within the spirit and scope of the appended claims.