Abstract:
It is provided a method for managing stream in home media network having home gateway and a plurality of devices comprising; building converged home media index at a home gateway by synchronizing local media index of each of the devices; receiving by a source device a request from a user to play a media stored on the source device at the first render device; assigning a multicast IP and port for streaming of the media by the source device or the home gateway; sending by the source device hash value of the media, the multicast IP and port, and the streaming ID to the first render device, in addition to source device IP and render device IP to the home gateway; checking the media file&#39;s metadata and corresponding management policy stored on the converged home media index; notifying the source device that the steam can be transmitted to the first render device when receiving authentication and authorization from the gateway; sending security keys to the source device and the first render device to encrypt and decrypt the stream; and transferring the media from the source device to the first render device.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to Home Media Streaming, Tracking, and Dynamic Management, and more particularly relates to a method and a system for managing stream in home media network having a home gateway and a plurality of devices. 
       BACKGROUND OF THE INVENTION 
       [0002]    In the scenario of home media play and control, after the streaming connection is established between the source and play devices, it&#39;s hard for others to dynamically track, supervise and correspondingly manage the stream. 
         [0003]    Some existing solutions cannot solve the above problem. For example, Apple&#39;s AirPlay doesn&#39;t provide the functionality for others to supervise and take control of an ongoing stream. DLNA Media Server, via AVTransport service, provides the AV playing control interface to intermediate CP (control point) for an ongoing stream. 
         [0004]    However, it&#39;s impossible for the intermediate CP to dynamically supervise the content of the ongoing stream and take management action accordingly e.g. parental control. Besides, it&#39;s not supported to track (if necessary) what content has been played or exert some overall general parental control policy e.g. upfront authentication required if playing some specific contents or play it on some specific device. The Miracast is more like a physical and link layer streaming technology not providing track, supervise and manage by intermediate control device. 
       SUMMARY OF THE INVENTION 
       [0005]    According to an aspect of the present invention, it is provided a method for managing stream in home media network having home gateway and a plurality of devices comprising; building converged home media index at a home gateway by synchronizing local media index of each of the devices; receiving by a source device a request from a user to play a media stored on the source device at the first render device; assigning a multicast IP and port for streaming of the media by the source device or the home gateway; sending by the source device hash value of the media, the multicast IP and port, and the streaming ID to the first render device, in addition to source device IP and render device IP to the home gateway; checking the media file&#39;s metadata and corresponding management policy stored on the converged home media index; notifying the source device that the steam can be transmitted to the first render device when receiving authentication and authorization from the gateway; sending security keys to the source device and the first render device to encrypt and decrypt the stream; and transferring the media from the source device to the first render device. 
         [0006]    According to another aspect of the present invention, it is provided a system for managing stream in home media network having home gateway and a plurality of devices comprising a processor configured to implement the steps of building converged home media index at a home gateway by synchronizing local media index of each of the devices; receiving by a source device a request from a user to play a media stored on the source device at the first render device; assigning a multicast IP and port for streaming of the media by the source device; sending by the source device hash value of the streaming, and the multicast IP and port to the first render device and the home gateway; checking the media file&#39;s metadata and corresponding management policy stored on the converged home media index; notifying the source device that the steam can be transmitted to the first render device when receiving authentication from the gate way; sending security keys to the source device and the first render device to encrypt the stream; and transferring the media from the source device to the first render device. 
         [0007]    It is to be understood that more aspects and advantages of the invention will be found in the following detailed description of the present invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]    The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, will be used to illustrate an embodiment of the invention, as explained by the description. The invention is not limited to the embodiment. 
           [0009]    In the drawings: 
           [0010]      FIG. 1  is a diagram showing media streaming between devices according to the embodiment of the invention; 
           [0011]      FIG. 2A  is a system chart showing home media streaming, tracking, and dynamical management according to the embodiment of the present invention; 
           [0012]      FIG. 2B  is a system chart showing home media streaming, tracking, and dynamical management according to the embodiment of the present invention; and 
           [0013]      FIG. 3  is a diagram showing devices according to the embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0014]    In the following description, various aspects of an embodiment of the present invention will be described. For the purpose of explanation, specific configurations and details are set forth in order to provide a thorough understanding. However, it will also be apparent to one skilled in the art that the present invention may be implemented without the specific details present herein. 
         [0015]    In home network, at the connection establishing phase of a streaming between two devices (from a source device to a play device), the source device should notify home gateway with the media file&#39;s distinct hash value as key of media index, and the multicast IP address and port applied for this stream transporting as well as streaming ID for the streaming to be multicast and the source device IP. With this streaming&#39;s tracking information, the home gateway can uniquely identify and find the media file&#39;s metadata and management policy information from converged media index database stored in the home gateway or some other places for all home media contents. The hash value is calculated based on the media file&#39;s path and filename information, and the device ID. The hash value is unique to each media file in home&#39;s all media devices. Each device synchronizes its local media file index to the home gateway having the converged media index database, which has a converged overall media index information of all home media files. The management policy could be like, e.g., which type of media is not allowed to be streamed and played to other devices if without specific authentication. Thus a streaming between home devices can be dynamically managed by pre-defined policy like parental control. 
         [0016]    The multicast IP address and port are dynamically assigned by the source device or the home gateway to multicast the stream to other home network devices. The streaming ID is dynamically assigned by the source device uniquely marking the streaming to be multicast. Any other devices connected to the home network can connect to the home gateway with necessary authentication and be able to browse and search all current ongoing streaming tracking information including metadata, multicast IP, port, and streaming ID. And, a device in the home network can dynamically request to join a streaming process by just listen and receive that multicast streaming for that media file. It&#39;s also possible to require some authentication for joining an ongoing stream. Then, other device can dynamically enjoy the media playing, or just supervise it and take some additional control e.g. stop and forbid it from being streamed between devices. The above processing is explained hereinafter. 
         [0017]    In  FIG. 1 , home network  100  includes the first device  105  having the first local media file index  110 , the second device  107  having the second local media file index  113 , the third device  108  having the third local media file index  115 , and home gateway  103 . All home media devices  105 ,  107 ,  108  generate their local media file index  110 ,  113 ,  115  according to a pre-defined procedure and format, and synchronize them to the home gateway  103 . Based on that, the home gateway  103  locally maintains a converged home cloud media index  117  and keeps it accessible to all home media device  105 ,  107 ,  108 . With the home cloud media index  117 , each device can browse media information stored in other devices. Each of the first, second, and third device  105 ,  107 ,  108  has the first, second, and third local cache of home media index  119 ,  121 ,  123 , respectively. 
         [0018]    When a user of the first device  105  requests media index to the first local cache of home cloud media index  119  and wants to play a media file stored in the second device  107 , the user of the first device  105  sends a request to the second device  107 . The second device  107  authenticates the request (could further via the home gateway) and dynamically assign a multicast IP (or assigned by the home gateway) and port for the streaming to be multicast. 
         [0019]    The second device  107  notifies the first device  105  with that multicast IP and port. The first device  105  is ready to listen, receive the stream data, and playback it locally. Meanwhile, the second device  107  notifies the home gateway  103  with that media file&#39;s hash value, the generated multicast IP and port for the streaming to be multicast, the source device IP, and the dynamically generated streaming ID. Besides, the second device  107  also notifies the home gateway  103  that this request is from the first device  105 . The first device  105  then waits for the home gateway&#39;s confirmation to allow the streaming from the second device  107  to the first device  105 . The home gateway  103  receives this streaming tracking information and searches the media file&#39;s metadata and corresponding management policy in the gateway&#39;s local database. With a policy checking, it requires further authentication since this video is not for everyone in home. The first device  105  receives the authentication request from the home gateway  103  and responses with valid privilege information. Then, after the authentication, the home gateway  103  notifies the second device  107  that this streaming can be started. The home gateway  103  sends to the first and second devices  105 ,  107  with a pair of security keys to encrypt and decrypt the steaming data since the video is not open for everyone. The first device  105  then successfully playbacks the stream from the second device  107 . 
         [0020]    During the streaming, the user of the third device  108  finds that there is an ongoing streaming in home network  100  between the first and second devices. After authentication, the user of the third device C takes a check with the streaming metadata information. If the user of the third device  108  wants to have a further supervise over the playing contents, he/she requires a request to join the multicast streaming process. After a further authentication for the streaming request, the third device  108  receives a key from the home gateway  103 . And then the third device  108  successfully joins the streaming and playbacks the content locally. The third device  108  now is also able to take control over the streaming e.g. pause, stop. The details of this streaming tracking and dynamical management by the third device  108  is explained in  FIGS. 2A and 2B . 
         [0021]    In  FIGS. 2A and 2B , at step  201 , after the authentication and authorization for the second device B were successfully completed, the first device A notifies the home gateway of the streaming ID X used to transfer media M stored therein and its source IP. The first device A also notifies the playing device B of the information. The home gateway stores the information locally. It should be noted that the media hash index value, and the multicast IP and port have already been notified to the home gateway before the authentication. At step  202 , the first device A starts to send the media M through the multicast IP to the second device B; and the media M is playback at the second device B. At step  203 , an end user finds, via the home gateway&#39;s home media streaming information, this ongoing media streaming, and wants to join to play it on the third device C simultaneously. At step  204 , the home gateway notifies the third device C of the streaming&#39;s ID X and its source IP. Also the home gateway notifies the device C of the current active playing device of this streaming i.e. the second device B. At step  205 , the third device C asks the second device B the current play progress information of the streaming ID X. Since the transfer speed is faster than playback speed, the information is necessary. At step  206 , the second device B returns the current playing progress information to the third device C. At step  207 , the third device C provides its certificate and the requested streaming ID X to the first device A for authentication and authorization; and requests to playback its media content of the streaming ID X. The third device C also provides the play progress point information to the first device A. At step  208 , the first device A authenticates and authorizes the third device C; and sends the key to the third device C for media M&#39;s decryption, together with the multicast IP and port of streaming ID X. Meanwhile, the media M is still playback at the second device B continuously. At step  209 , the third device C prepares to receive the media M at the multicast IP and the port, and sends ACK to the first device A. At step  210 , the first device A starts to retransfer the media M from the notified current play progress point, through the multicast IP. Then the media M is playback at the third device C. Now, the media M is simultaneously played at the second device B and the third device C. At step  211 , the second B also receives this retransferred content, and founds it has been buffered locally. In this case, the second device B just ignores and doesn&#39;t buffer it again. At step  212 , after the duplicated content has been transferred to the third device C, then the second device B keeps buffering and playing the new content of the media M. At step  213 , the end user at the third device C may find that it&#39;s an improper content to be played at the second device B, so he/she stops the streaming. At step  214 , the end user further changes the access authorization of the media M to a different higher level at HGW. At step  215 , the HGW immediately notifies the first device A that the media M&#39;s access authorization has been changed; and the first device A should reauthorizes all access request to the media M. At step  216 , thus if the second device B still requires for media M&#39;s playing, the first device A requires for new authorization. 
         [0022]      FIG. 3  shows devices included in home media network. The home media network typically includes three types of device: render device  301 , source device  303 , and home gateway  305 .
       1. render device  301 : it typically includes the modules of media Indexing  307 ″, media play &amp; control  309 , media transfer  311 , authentication module  313 .
           a) media indexing  307 : It&#39;s responsible to synchronize the homecloud media index  315  from the Home Gateway (HGW), by interoperating with the HGW&#39;s “media directory service”. And, the home media index is stored locally for user browser and access.   b) media play &amp; control  309 : It presents the home cloud media index  315  onto screen for end user. It follows to end user&#39;s play command, and interoperates with the source device&#39;s control module  319 , requests to access specified media from the source device  303 . And it reads the buffered media content from the media transfer module  311 , and plays it onto screen for end user.   c) media transfer  311 : It receives the transferred content from the source device  303  via the notified multicast IP and port and buffers it locally for the media play &amp; control  309  module to play.   d) authentication module  313 : Upon the request from the media play &amp; control module  309 , it provides its certificate and the request media hash index or streaming ID to the source device  303 , and asks for authentication and authorization for this media&#39;s access. The authentication and authorization results are notified to the media play &amp; control module  309 . And if it&#39;s succeeded, the media play &amp; control module  309  also gets notification about the multicast IP and port from the source device&#39;s control module  319 . And then, the media play &amp; control module  309  notifies the media transfer module  311  to prepare to receive the content to be transferred from the source device.   
           2. source device  303 : It typically includes the modules of media Indexing  315 , media transfer  317 , control module  319 , and authenticate &amp; authorization module  321 .
           a) media Indexing  315 : It searches the local stored media contents, and generates index of them. The index is stored locally, meanwhile, it is synchronized to the Home Gateway via interoperates with its “media directory service  323 ” which constructs the overall home media index.   b) control module  319 : Upon transfer request from the render device  301 , and after the success authentication result notification from the authentication module  321  of this source device, it prepare and starts to transfer the specified media content to the render device  301 . The preparation actions include:
               i. Notify the media transfer module  317  to generate the streaming ID and the transfer port for this media streaming.   ii. Then send this returned stream ID and transfer port together with the multicast IP assigned by the HGW or this source device  303  to the render device&#39;s media play &amp; control module  309 .   iii. Besides, it sends this stream ID and the source device IP and the render device IP to HGW. The stream ID and the source device IP is then cached by HGW&#39;s media stream tracking and management service  325 .   
               c) media transfer  317 : Upon the request from the control module  319  to generate the stream ID for this media streaming and the transfer port, it returns these information to the control module  319 . And, it locates the requested media through local the media indexing module  315 , reads the content and transfers it to the render device. Besides, it caches/stores the streaming ID, transfer port, and media ID locally into the “local media streaming Info”.   d) authentication &amp; authorization module  321 : Upon the request from the render device  301 , it passes this request information to the HGW&#39;s authentication &amp; authorization service  327 . HGW then firstly authenticates whether this is a valid requester in the home cloud, if authenticated, and then check whether the requester has the authorization to access this media ID&#39;s content. The authentication and authorization results are returned back to the render request device, and corresponding preparation is performed at the source device if it succeeded.   
           3. home gateway  305 : It typically includes media directory service  323 , media stream tracking and management service  325 , and authentication &amp; authorization service  327 .
           a) media directory service  323 : It receives the update of each source device&#39;s local media index, and stores them into the home media director DB  329 . And it also synchronizes these updated changes of each source device&#39;s media index to each render devices  301  in the home.   b) media stream tracking and management service  325 : Upon the notification of ongoing media streaming information from the source device  303 , it records each ongoing media streaming in the home. The media streaming information reported by the source device  303  should include:
               i. stream ID: generated by the source device  303  for the media streaming it transfers.   ii. source device IP: the IP of the source device  303 .   iii. render device: the IP of the render device. If multiple render devices there are, then each IP should be reported.   
               c) Authentication &amp; Authorization Service  327 : It receives the authenticating and authorizing request forwarded from the source device  303  that is originated from the render device  301 . And, it checks the provided certificate to the “home media access privilege DB”. Then, it returns the check result to the source device  303 .   
               
 
         [0043]    A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application and are within the scope of the invention as defined by the appended claims.