Abstract:
A multimedia data streaming system and method are disclosed. The multimedia data streaming method comprises establishing communications between a streaming gateway and a multimedia server, and communications between the streaming gateway and a client device; sending identification information to the multimedia server; downloading a multimedia file from the multimedia server, wherein the multimedia file is authorized in relation to the identification information; storing the multimedia file in a storage area of the streaming gateway, wherein the storage area is not accessible to the client device; producing a plurality of multimedia streams based on the multimedia file; opening a specified port of the streaming gateway to the client device; and transmitting the plurality of multimedia streams to the client device through the specified port.

Description:
BACKGROUND 
       [0001]    1. Technical Field 
         [0002]    The disclosure generally relates to a system and a method for providing multimedia data. 
         [0003]    2. Description of Related Art 
         [0004]    Music may be purchased through an online music store such as iTunes® or eMusic®. After a purchase, a user may download an authorized music file in a variety of formats, such as MP3, WMA and AAC, from the online music store. Currently, when the user is authorized to obtain a particular music file from the online music store, the uniform resource locator (URL) for that file may be delivered to the user. While most users may not ordinarily notice the URL, sophisticated Internet users may readily see the URL using tools available in most Internet browser applications. An unscrupulous user may then guess the locations of the other music files in the online music store. The unscrupulous user could then access these locations to obtain the music files without authorization and without paying any fees for the music files. Such activities may deprive the online music store of revenue generating opportunities. Therefore, there is room for improvement in the art. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    Many aspects of the embodiments can be better understood with reference to the following drawings. The components in the drawings are not necessarily drawn to scale, the emphasis instead being placed upon clearly illustrating the principles of the embodiments. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. 
           [0006]      FIG. 1  is a schematic diagram of a streaming gateway suitable for use in implementing a streaming providing system according to one embodiment of the present disclosure. 
           [0007]      FIG. 2  is a schematic diagram the streaming gateway of  FIG. 1  may operate in a networked environment. 
           [0008]      FIG. 3  is a schematic diagram of the function modules of a streaming providing system according to one embodiment of the present disclosure. 
           [0009]      FIG. 4  is an operational flow chart of providing multimedia data using the streaming gateway of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0010]    The disclosure is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one. 
         [0011]    In general, the word “module”, as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as in an EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable media include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives. 
         [0012]    Referring to  FIG. 1 , a streaming gateway  20  is shown. The streaming gateway  20  may be constructed on a desktop, a laptop, or on a server grade hardware platform such as an x86 or an x64 architecture platform. Such a hardware platform may include a central processing unit (CPU)  210 , a storage unit  220 , a network interface controller (NIC)  230  (also referred to herein as a network card), and other Input/Output (I/O) devices  240 . The streaming gateway  20  implements the functions of a streaming providing system  200 . 
         [0013]    The storage unit  220  may be any form of volatile or non-volatile storage, including, for example, RAM, ROM, EPROM, flash memory, a magnetic disk such as an internal hard disk or a removable disk, an optical disk such as a CD-ROM, or any other storage which can be used to store the information, and can be accessed by the streaming gateway  20 . The storage unit  220  may store machine-executable instructions, data, and various programs, such as an operating system and one or more application programs, all of which may be processed by the CPU  210 . 
         [0014]    The streaming gateway  20  may comprise one or more I/O devices  240  such as a display, a keyboard, a mouse, or other pointing device. The storage unit  220 , the NIC  230  and the other I/O devices  240  are connected to the CPU  210  through a system bus (not shown in  FIG. 1 ). 
         [0015]    With reference to  FIG. 2 , the streaming gateway  20  can operate in a first network  15  and a second network  25 . The first network  15  and the second network  25  provide logical connections to one or more remote computers, such as one or more client devices  10  and a multimedia server  30 . The first network  15  and the second network  25  can be either a local area network (LAN) or a wide area network (WAN), such as the Internet. The streaming gateway  20  is connected into the first network  15  and the second network  25  through the NIC  230 . The NIC  230  may be a network interface card using a specific physical layer and a data link layer standard such as Ethernet or Wi-Fi. If used in a WAN networking environment, the streaming gateway  20  may typically include a modem or other means for establishing communications over the WAN, such as the Internet. 
         [0016]    The multimedia server  30  can store a plurality of multimedia files, such as video, audio, and image files. The streaming gateway  20  can be in communication with the multimedia server  30  through the second network  25 . The multimedia server  30  may be provided by an online digital multimedia store. 
         [0017]    The one or more client devices  10  may be a user end-point for playing multimedia data provided by the streaming gateway  20 . The one or more client devices  10  can be located either in the first network  15  or in the second network  25 , in which the multimedia server  30  is located. In other words, the one or more client devices  10  can share a same networked environment as the multimedia server  30 , or may be in an independent networked environment. The one or more client devices  10  can be personal computers, media players, smart phones or the like. 
         [0018]      FIG. 3  illustrates a schematic diagram of the function modules of the streaming providing system  200 . In one embodiment, the streaming providing system  200  can comprise an identification module  201 , a downloading module  202 , a storing module  203 , a producing module  204 , a binding module  205 , a transmitting module  206 , a checking module  207  and a clearing module  208 . Each of the modules  201 - 208  can be a software program including one or more computerized instructions stored in the storage unit  220  and can be executed by the CPU  210 . 
         [0019]    When the one or more client devices make requests for the multimedia files, the identification module  201  can receive identification information from the one or more client devices  10 . The identification information can include, at least, a user name, a password and an email address for identifying a target registered user of the multimedia server  30 . The identification module  201  can send the identification information to the multimedia server  30 . 
         [0020]    When the multimedia server  30  receives the identification information from the identification module  201 , the multimedia server  30  can determine one or more multimedia files (“authorized multimedia files”) which are authorized in relation to the identification information. The multimedia server  30  can transmit a listing of the authorized multimedia files to the streaming gateway  20 . 
         [0021]    The downloading module  202  can download the authorized multimedia files from the multimedia server  30  according to the listing of the authorized multimedia files. The storing module  203  can store the downloaded authorized multimedia files in a storage area of the storage unit  220 . The storage area is not accessible to the one or more client devices  10 . In this way, the one or more client devices  10  can not able to access the storage area and obtain any multimedia files from the storage area. 
         [0022]    The producing module  204  can split a multimedia file into a plurality of data blocks and convert the plurality of data blocks into multimedia streams in a streaming format compatible with the one or more client devices  10 . The streaming format can be Real Audio (RA), Real Media (RM), QuickTime (MOV), Windows Media Audio (WMA), Advanced Streaming Format (ASF), or other similar formats. When one of the pluralities of data blocks has been converted to a multimedia stream, the producing module  204  can delete the data blocks from the plurality of data blocks. In other embodiments, the block size can be predefined by an XML file, which is stored in the storage unit  220 . The producing module  204  can split the multimedia file into a plurality of data blocks according to the predefined block size. 
         [0023]    The binding module  205  can open a specified port of the streaming gateway  20  to the one or more client devices  10 . The transmitting module  206  can transmit the multimedia streams to the one or more client devices  10  through the specified port in a streaming protocol compatible with the one or more client devices  10 . The streaming protocol can be Real-time Transport Protocol (RTP), Microsoft Media Server (MMS) protocol, or Real Time Streaming Protocol (RTSP). The one or more client devices  10  can passively receive the multimedia streams from the streaming gateway  20  through the specified port. Although the one or more client devices  10  can play the multimedia streams, the one or more client devices  10  cannot access the streaming gateway  20  to obtain any multimedia stream or file. 
         [0024]    In one embodiment, each authorized multimedia file is associated with an expiration time. The checking module  207  can check whether an authorized multimedia file has expired. When the authorized multimedia file has expired, the checking module  207  can delete the authorized multimedia file from the storage area of the storage unit  220 . 
         [0025]    In another embodiment, each authorized multimedia file is associated with an creation time, which records the time when the authorized multimedia file is downloaded and stored in the streaming gateway  20 . The clearing module  208  can check whether a usage rate of the storage area has reached a predefined threshold, such as 80 percent. The clearing module  208  can determine the oldest authorized multimedia files among all of the authorized multimedia files by comparing the creation time of each and all of the authorized multimedia files in the storage area. When the usage rate of the storage area has reached the predefined threshold, the clearing module  208  can delete the oldest authorized multimedia files according to their creation times to lower the usage rate of the storage area. 
         [0026]      FIG. 4  is a flowchart of providing multimedia data using the streaming gateway  20  according to one embodiment. The method can comprise the following steps: 
         [0027]    In step S 401 , the identification module  201  sends identification information to the multimedia server  30 . The identification information can be used for identifying and authorizing a target registered user of the multimedia server  30 . 
         [0028]    In step S 402 , the downloading module  202  downloads an authorized multimedia file from the multimedia server  30 . The authorized multimedia file can be determined by the multimedia server  30  according to the identification information. 
         [0029]    In step S 403 , the storing module  203  stores the downloaded multimedia file in a storage area of the storage unit  220  which is not accessible to the one or more client devices  10 . 
         [0030]    In step S 404 , the producing module  204  splits the authorized multimedia file into a plurality of data blocks and convert the plurality of data blocks into multimedia streams in a streaming format, which is compatible with the one or more client devices  10 . 
         [0031]    In step S 405 , the binding module  205  opens a specified port of the streaming gateway  20  to the one or more client devices  10 . 
         [0032]    In step S 406 , the transmitting module  206  transmits the multimedia streams to the one or more client device  10  through the specified port in a streaming protocol, which is compatible with the one or more client device  10 . 
         [0033]    Even though numerous characteristics and advantages have been set forth in the foregoing description of embodiments, together with details of the structures and functions of the embodiments, the disclosure is illustrative only and changes may be made in detail, especially in the matters of shape, size, and the arrangement of parts within the principles of the disclosure to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. 
         [0034]    Depending on the embodiment, certain steps or methods described may be removed, others may be added, and the sequence of steps may be altered. Although the descriptions and the claims drawn for or in relation to a method may include some indication in reference to certain steps, any indication used is only to be viewed for identification purposes and not as a suggestion as to an order for the steps.