The present disclosure generally relates to a system and method for peer-to-peer (P2P) live streaming.
As the network bandwidth increases, the video streaming quality also improves, thereby increasing the bandwidth usage of media servers. To reduce the bandwidth load on the media servers, many software developments start to focus on P2P technology, such as, BitTorrent (BT)-like or mesh network.
For example, an U.S. patent document on instant replay and time-shifted playback provides a multimedia content delivery server to store all the live video streams to provide instant replay, and just as time-shifted, the previous video may be played back any time. Through a central control mechanism, the terminal end transmits the time-shifted point via the set top box to the server of the central control mechanism, and then the server responds with related information or data. When the number of users increases at the terminal end, more servers and more bandwidth are often required to maintain service quality.
Another U.S. patent document disclosed a technology of display of content and automatic pause and resume of playback. The technology is applicable to client device and/or ahead-end, or network operator. The technology is based on type of event, originator, and type of current display to assign priority to event for providing variable response levels. The technology requires maintenance of central control mechanism, which may lead to system bottleneck.
Yet another U.S. patent document disclosed a real-time multicast peer to peer video streaming platform. As shown in
Yet another U.S patent document disclosed a scalable media distributed streaming technology. In coupled P2P networks, peer streamer may provide a receiver-driven P2P video streaming, wherein peer lists can be searched like distributed hash table (DHT). This technology did not describe the use of load-balancing mechanism through DHT.
Yet another U.S patent document disclosed a distributed cache algorithm and system for time-shifted, and live, peer-to-peer video streaming. As shown in
The exemplary embodiments disclose a system and method for peer to peer (P2P) live streaming.
A disclosed exemplary embodiment relates to a system for P2P live streaming, applicable to a P2P network. The P2P network has a content provider and a plurality of peers viewing the same video streaming channel. Each peer has a P2P live streaming system. The system comprises a token manager module, a recording publisher module, a recording manager module and a P2P module. The token manager module manages at least a token sent by the plurality of peers, notifies a recording manager module to record video stream data and publish recorded video stream content. The recording manager module, according to the notification, records video stream data and publishes the recorded video stream content information to the P2P network. The recording manager module manages a corresponding buffer for each peer itself, records the video stream content into the corresponding buffer according to the token manager module's command. The P2P module handles the P2P messages and maintains the P2P network topology for the plurality of peers.
Another disclosed exemplary embodiment relates to a method for P2P live streaming, applicable to a live streaming system in a P2P network. The method comprises: forming a P2P network of a plurality of peers viewing the same live streaming channel; when a peer of the plurality of peers viewing a live stream, a token being propagated, the token having time information recording the partial data of the live stream; the peer receiving the token, according to the time information on the token, recording the data of a time slot designated by the live stream in a storage space, and publishing to the P2P network using the time slot as a key; and when any peer wanting to view a time point in the live stream, the time point being used as the key to obtain the address information of at least a peer owning the live stream data of that time point from the P2P network, and downloading the stream data of a time slot corresponding to the time point from a peer.
The present disclosure will become better understood from a careful reading of a detailed description provided herein below with appropriate reference to the accompanying drawings.
The disclosure discloses embodiments of mechanism for recording live streaming content in a P2P network. The mechanism not only considers the bandwidth load balance, but also provides a distributed management method to reduce the resource consumption in the P2P network, such as, the purchase of servers or storage space.
In an exemplar, all the peers viewing the same live streaming channel are formed into a P2P network for live stream sharing and providing live stream playback. When a peer is viewing a live stream, a token is propagated. The peer receiving the token records the data of a designated time slot in the live stream to a buffer of a storage device. After storing, the time slot is used as the key to publish to the P2P network. When a peer is to execute stream playback, such as, viewing a time point of a live stream, the time point is used as the key to obtain the peer address information owning the data of that time point from the P2P network, and then downloads the content of the stream data in the recorded slot corresponding to that time point from the peer.
The P2P network includes a content provider and a plurality of peers viewing the same stream channel. Each peer of the plurality of peers has a P2P live streaming system. For token processing, each peer includes the same management module, such as, adopting the same token manager module. In this manner, the system structure is simplified without additional modules to support token management. The token manager module instructs a recording manager module of the system when to record the video stream content. Once the recording is complete, the recording manager module will publish the recorded video stream content. The recording manager module of the system may publish the message of the recorded video stream content via a P2P module to the P2P network so that the recording retriever module of the P2P network may read the video stream content. The propagated token will also circulate among peers.
As aforementioned, the video stream content will be stored to a buffer of a storage device, such as, RAM, disk, or other storage devices. In one embodiment, the recording manager module of the system also has the capability to manage the buffer recording the video stream content.
Because each stream corresponds to a time code, the hash value of the recorded slot may be computed using the time code and the channel code of the stream as the key, and the hash value is stored in DHT 300. To search DHT network 300, the time code of the stream is used as the ID and channel code to compute the hash value.
The recording manager module of the system may use the redundant slots for node failure recovery. The token information may include the start time and the end time of the partial data of the live stream recorded by the precedent node of a peer. The minimum unit size of the recorded stream data may be a fixed interval, such as, 5 seconds. The recording manager module may use the channel information and the time information in the chunk header of a recorded slot as the key, and determine via DHT which peer stores a peer list recording the video stream data of the recorded slot.
As aforementioned, each of all the peers viewing the same streaming channel may have the same P2P live streaming system. As shown in
After creating token, the peer enters the “hold token” state. After finding other existent peers, marked as 620, and waiting till the time of recorded stream content, marked as 630, the peer records the stream content and propagate the token to the next peer, marked as 640, and then the peer enters “wait for ACK” state. Before receiving the ACK from the successor node, if the ACK is delayed or lost, marked as 650, the peer enters “create token”. In other words, the peer must repeat the earlier process to propagate a new token again. Hence, the token manager module may adopt a finite state machine to describe the processing flow of token propagation among the peers.
Assume that the peer is peer A, and the successor node is peer B. Please also refer to the schematic view of the handshake protocol between two peers of token delivery path in
After peer A receives the completing recording reply from peer B, token manager module 510 notifies peer A to publish the message of recorded video stream content. As shown in
Accordingly,
Before peer A propagates token to peer B, peer A modifies the time information in the token. After peer B receives the token propagated from peer A, similarly, peer B waits for the time event of recording current video stream content occurs, and starts to record the current video stream content to a corresponding recorded slot, and finally replies to peer A for completing recording. In this manner, the peers continue to record stream data until the successor node replies with completing recording. Therefore, the redundant slots are generated to reduce the possibility of losing video stream chunk as well as to enable node failure recovery.
In one embodiment, a distributed management method is used for token management. In other words, each peer of the same P2P network adopts the same token manager module 510 and manages the token in the same manner, including managing the addition, deletion, exception of the token. The exception processing, for example, token delayed or lost, is the failure recovery handling. The use of same token manager module simplifies the system architecture and eliminates the necessity of additional module to support the token management. Through the instruction of token manager module 510, the recording start time on the token will instruct recording manager module 520 of the system when to start recording the video stream content to the corresponding buffer of each peer. When the corresponding buffer is full, the old data in the buffer will be updated by new record of video stream content. Once the peer completes recording partial video stream content, the recording manager module begins the publishing processing. Token circulates among peers, and the information on the token carries the start time and end time of the partial video stream data recorded by the predecessor node. In other words, token manager module 510 uses the token propagation to regulate which of the peers of the same P2P network must record which chunks of partial video stream content.
Referring to
When no other peers exist, step 1102 continues until other peers exist. Then, the peer checks whether the next token is received (step 1104). If so, the peer deletes the next token (step 1106) and checks whether the time event of the recorded stream content occurs (step 1108). When the peer does not receive the next token, the peer executes step 1008. When the time event of the recorded stream content has yet occurred, the peer returns to step 1102. When the time event of the recorded stream content occurs, the peer starts to record stream content and propagates the token to the successor node (step 1110), and then the peer enters the “wait for ACK” state.
Referring to
If the time event of the recorded stream content has yet occurred, the peer continues executing step 1206 until the time event of the recorded stream content occurs, and then replies completing recording to the predecessor node (step 1208). The peer checks whether a completing recording reply from successor node is received (step 1210). If received, the peer publishes the message of recorded video stream content, stops recording stream content (step 1212), and then enters “wait for next token” state. If the peer does not receive the completing recording reply from successor node, the peer checks whether the time on the timer is reached (step 1214). If so, the peer enters “create token” state; otherwise, the peer returns to step 1210.
Referring to
As shown in the normal scenario of
Then, peer B receives token in time slot C3 (marked as 1526) again, and replies ACK token to the predecessor node A during time slot C3 (marked as 1528), and then propagates the token to successor node (marked as 1529). Then, peer B records video stream content during time slots C4 and C5. Also, peer A prolongs the time slot of recording video stream content to time slot C4.
Then, peer B receives token in time slot C3 (marked as 1620) again, and replies ACK token to the predecessor node A during time slot C3 (marked as 1622), and then propagates the token to successor node (marked as 1624). If peer B receives the delayed token in the same time slot C3 again (marked as 1626), peer B treats the delayed token as repetition and recycles the token. Then, peer B records video stream content during time slots C4 and C5. Also, peer A prolongs the time slot of recording video stream content to time slot C4.
As seen in
The aforementioned descriptions of each state of the finite state machine, flow of token propagation, and the operation of each module of P2P live stream system 500 all explain the circulation of the token among the peers of a peer topology network. In other words, the disclosed embodiments may adopt distributed management for token or video stream data storage.
The exemplary application in
In other words, PVR system 1700 includes built-in storage media (buffer for storing video stream content) and uses token distribution management. Each program forms a P2P network, and each peer owns a token manager module and a P2P module. When a viewer intends to view a live stream at a time point, the viewer must join the P2P network, and then uses the time point as a key value to obtain the peer address information owning the data of that time point from the P2P network to download the stream data of the time slot from the peer. In this manner, the viewer may freely arrange the viewing schedule. Live PVR system 1700 may further includes a file management module to establish the user preference based on the past viewing record or to record automatically based on the preference of the user.
In step 1810, the plurality of peers uses the same hash function to join the same live stream channel to form a DHT-network, and each peer has a predecessor node and a successor node. In step 1820, during the token delivery path, the peer propagating the token and the peer receiving the token use a handshake protocol, as shown in
In step 1830, the management of the buffer is shown as the exemplar in
In summary, the disclosed mechanism for recording live stream content is based on a P2P network topology. One disclosed embodiment shows that a plurality of peers viewing the same live stream channel forms a P2P network for live stream sharing and providing live stream playback. The P2P live stream technology may support different types of devices or systems, including PC, server, mobile device, PDA, PVR, and so on.
Although the present disclosure has been described with reference to the disclosed exemplary embodiments, it will be understood that the invention is not limited to the details described thereof. Various substitutions and modifications have been suggested in the foregoing description, and others will occur to those of ordinary skill in the art. Therefore, all such substitutions and modifications are intended to be embraced within the scope of the application as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
99137965 A | Nov 2010 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
7093004 | Bernardin et al. | Aug 2006 | B2 |
7522774 | Ramasastry et al. | Apr 2009 | B2 |
7536704 | Pierre et al. | May 2009 | B2 |
7624337 | Sull et al. | Nov 2009 | B2 |
7664109 | Li | Feb 2010 | B2 |
7685083 | Fairweather | Mar 2010 | B2 |
7752327 | Li | Jul 2010 | B2 |
8041942 | Narayanan et al. | Oct 2011 | B2 |
8196186 | Mityagin et al. | Jun 2012 | B2 |
20050080858 | Pessach | Apr 2005 | A1 |
20060053209 | Li | Mar 2006 | A1 |
20070130597 | Parker et al. | Jun 2007 | A1 |
20080133767 | Birrer et al. | Jun 2008 | A1 |
20080208976 | Chapalamadugu et al. | Aug 2008 | A1 |
20090064188 | Ospalik et al. | Mar 2009 | A1 |
20090116640 | Noh et al. | May 2009 | A1 |
20090119734 | Deshpande et al. | May 2009 | A1 |
20090300673 | Bachet et al. | Dec 2009 | A1 |
20100011103 | Luzzatti et al. | Jan 2010 | A1 |
20110047566 | Matuchniak et al. | Feb 2011 | A1 |
20110225617 | Rakib | Sep 2011 | A1 |
Number | Date | Country |
---|---|---|
200833105 | Aug 2008 | TW |
200925913 | Jun 2009 | TW |
200943957 | Oct 2009 | TW |
200951832 | Dec 2009 | TW |
201023647 | Jun 2010 | TW |
Entry |
---|
Yiu, W.-P.Ken et al., “VMesh: Distributed Segment Storage for Peer-to-Peer Interactive Video Streaming”, IEEE Journal on Selected Areas in Communications, vol. 25, No. 9, pp. 1717-1731, Dec. 2007. |
Noh, J. et al., “Pseudo-DHT: Distributed Search Algorithm for P2P Video Streaming”,Tenth IEEE International Symposium on Multimedia 2008, pp. 348-355. |
Zhengye Liu et al., “Substream Trading: Towards an open P2P live streaming systems”, IEEE International Conference on Network Protocols 2008, pp. 94-103. |
Yuan He et al., “VOVO: VCR-Oriented Video-on-Demand in Large-Scale Peer-to-Peer Networks”, IEEE Transactions on Parallel and Distributed Systems, vol. 20, No. 4, pp. 528-539, Apr. 2009. |
Yun-Shuai Yu et al., “P2PVR: A Networked VCR Service for Live Multimedia Streaming”, International Symposium on Computer Network and Multimedia Technology, 2009. |
Taiwan Patent Office, Office Action, Patent Application Serial No. TW099137965, Jul. 19, 2013, Taiwan. |
Number | Date | Country | |
---|---|---|---|
20120117605 A1 | May 2012 | US |