BitTorrent Streaming With Tribler Software User Guide
Created By David Childers
www.scvi.net
Sponsored By
Broadcasting World www.broadcastingworld.net
Creative Common License Copyright July 2009, David Childers, unless otherwise stated. This body of work is released under the AttributionShareAlike version 3.0, Creative Common License. You may freely distribute or modify this work for commercial or non commercial purposes. If you choose to modify this work, you are required to comply with the AttributionShareAlike version 3.0, Creative Common License requirements. These requirements include: You must attribute any derivatives of this work to David Childers. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. For the complete legal code, please refer here: www.creativecommons.org/licenses/bysa/3.0/legalcode
Index Sponsors of the Tribler Software Foreword What Is BitTorrent Streaming General Information Implementation The Economics of PeertoPeer Multimedia Delivery
Sponsors Of The Tribler Software The P2PNext integrated project consists of the following members: AG Projects Haarlem, Netherlands
First Oversi Petach Tikva, Israel
British Broadcasting Corporation London, United Kingdom
Pioneer Digital Design Centre Ltd London, United Kingdom
DACC Systems Taby, Sweden
RTV Slovenia – RTVSLO Ljubljana, Slovenia
Technische Universiteit Delft TU Delft Delft, Netherlands
STMicroelectronics S.r.l. Agrate Brianza, Italy
Fabchannel Amsterdam, Netherlands
The European Broadcasting Union (EBU) Geneva, Switzerland
Institut für Rundfunktechnik – IRT Munich, Germany
University of Klagenfurt Klagenfurt, Austria
Josef Stefan Institute Ljubljana, Slovenia
University of Lancaster Lancaster, United Kingdom
Kendra Foundation London, United Kingdom
University of Rome Rome, Italy
Kungliga Tekniska Högskolan – KTH Stockholm, Sweden
University Politehnica of Bucharest Bucharest, Romania
Markenfilm Wedel, Germany
VTT – Technical Research Centre of Finland Tampere, Finland
Norut Tromsø, Norway www.p2pnext.org
Research and Development Provided by:
Financial Assistance Provided by:
Delft University of Technology www.tudelft.nl
Ministry of Economic Affairs of The Netherlands www.ez.nl
Vrije Universiteit Amsterdam www.vu.nl/en/index.asp
Dutch Technology Foundation STW www.stw.nl
Foreword PeerToPeer content distribution has evolved from a simple method for individual file sharing to a complete system for continuous streaming media delivery. There are many implementations of PeerToPeer streaming content delivery that exist, both open and closed source. The most crucial factor for delivering continuous data streams in real time is guaranteed content delivery. Tribler is based on the most documented PeerToPeer distribution protocol. Brahm Cohen developed the BitTorrent PeerToPeer content distribution protocol in 2001. This protocol has become the most used application associated with PeerToPeer content distribution. This protocol enables a very efficient method for guaranteed data delivery with low system overhead. Mr. Cohen developed this protocol for the distribution of single files, not continuous streams of data, which rendered the BitTorrent protocol unusable for the delivery of live multimedia streams. The original BitTorrent protocol was later modified to allow the delivery of a continuous data stream, such as an Internet multimedia stream. The delivery of rich multimedia content using the Internet in a cost effective manner requires broadcasters to work smarter, not harder. The use of a centralized method for data content delivery is very inefficient and resource intensive. Bandwidth that has been used for the delivery of data cannot be reused. The BitTorrent protocol can now be used for delivering both individual files and continuous data streams. I would like to thank Scarlet Coker for providing assistance with the editing of the manuscript and to James Davey at Broadcasting World for allowing me the opportunity to create this handbook. It is my sincere hope that the reader finds this guide a valuable resource. Voce e minha inspiracao, querida Patricia. David Childers www.scvi.net July, 2009 Sustaining Member
Society Motion Picture and Television Engineers
'The time has come,' the Walrus said, 'To talk of many things: Of shoes and ships and sealing wax Of cabbages and kings And why the sea is boiling hot And whether pigs have wings.' Lewis Carroll
What Is BitTorrent Streaming Internet television and radio stations can suffer from the “Slash Dot“ popularity effect, which means that broadcasters must cope with greater bandwidth demands due to more people receiving the Internet broadcast. PeertoPeer multimedia streaming was developed to alleviate the need for large amounts of bandwidth for Internet streaming to a global audience. Without access to PeertoPeer content delivery, Internet Radio and Television stations are forced to use the inefficient and bandwidth intensive streaming technology. There are many open and closed source PeertoPeer multimedia streaming applications available. Several of these applications do not easily scale with traffic demands or they use inefficient peer distribution methods which can result in pointtopoint data exchange failure. Some of these applications also require complex installation and configuration, which is difficult for the less experienced computer user. What is BitTorrent ? BitTorrent is an open source software application which was developed to distribute data files without requiring large amounts of bandwidth. This software delivers the information by cutting files into smaller pieces and using a specialized PeertoPeer distribution process. It does not require special configuration and is extremely easy to use. The software is used extensively to distribute various types of content over the Internet. Unfortunately, there are several drawbacks for using this software to deliver multimedia. This includes not being designed to distribute continuous streams of audio or video, which requires users to download an entire file before they can view or listen to it. Improvements to BitTorrent that support real time multimedia streaming The European P2P Next organization and the Deft University of Technology in the Netherlands have developed several improvements to BitTorrent that allow the software to support continuous data distribution, such as audio and video streaming. These improvements incorporate a new process known as “Give To Get“, which focuses on having peers distributing content to neighboring clients using a special incentive process. Clients receive data based on the amount of data that they themselves send. Information indicating the amount of data distributed by individual clients is gathered from surrounding peers and evaluated. The ability to monitor the amount of data distributed by clients creates a incentive for all peers to actively participate in the exchange of data. The original BitTorrent distribution process known as “Tit For Tat” focused on peers exchanging data with neighboring clients that had previously done so. These software improvements also include a modified method of data distribution priority. This method combines the processes of giving priority to rarest data chunks first and the sequential order of the data chunks. Standard Bittorrent relies on giving priority to distributing the rarest chunks of data first. This improvement allows the continuous flow of ordered data, which is important for Internet broadcast streaming. Additional steps required for using BitTorrent real time multimedia streaming To provide continuous delivery of content, the encoded multimedia must be encapsulated using the Transport Stream communication protocol. This specialized protocol was created for the distribution of data that uses unstable environments for the transfer of data. A Transport Stream is created by inserting additional time stamps into an existing data stream, which are placed at fixed intervals. Any header information contained in the multimedia stream, such as those found in video, are not used for content playback. The Swarm Player is a modified BitTorrent client that is necessary to view or listen to the specially formated Peer toPeer streaming multimedia. It uses the open source VLC media player; which is capable of using many audio and video codecs, in addition to content encoded with various multimedia container formats. This software operates by using the PeertoPeer improvements for content redistribution. The Swarm Player is a desktop application that does not require special configuration and is available for various computer operating systems. BitTorrent Streaming incorporates the following steps: Multimedia is encoded. The encoded multimedia is passed to the Transport Stream encapsulation software. The encapsulated multimedia Transport Stream data is passed to the Bittorrent Stream creation software.
The BitTorrent Stream is passed to the Internet for distribution. The end user receives the content using the Swarm Player. Multimedia encoding is the first step in the streaming process. Several audio and video codecs can be used for the encoding the content. The list of codecs that can be used in the encoding process include: MPEG1, MPEG2, MPEG4, H.264, Dirac, JPEG and Windows Media for video; in addition to MP1, MP2, MP3 , MP4, AC3, LPCM , DTS for audio. Audio, video or a combination of both, can be used for streaming; in addition to using live or pre recorded multimedia content. The next step is to encapsulate the encoded multimedia, using the Transport Stream protocol. The software used to encapsulate the encoded multimedia content must be capable of being used with both continuous data streams and individual data files. This provides the ability to distribute either a multimedia stream or individual on demand files. The final step is to use the Tribler software application for distribution of the multimedia content using BitTorrent PeertoPeer delivery. This is an open source application that is available for various operating systems. The Tribler software slices up the encoded multimedia Transport Stream into evenly divided data chunks and distributes them using the modified PeertoPeer delivery system. It also creates a special torrent streaming file which allows people to click on the file and receive the multimedia content. View on demand Creative Common multimedia content using Bittorrent Streaming. You can view a collection of Creative Commons on demand films being distributed using Tribler Bittorrent Streaming located here : www.cs.vu.nl/~arno/vod Conclusion BitTorrent Streaming provides the ability to save bandwidth costs, using proven technology and can be deployed using free and open source software that is available for various operating systems. Several groups have committed substantial monetary grants for continued development of this PeertoPeer multimedia streaming application with the pledge of keeping the software improvements open source. PeertoPeer streaming can provide greater distribution potential at lower costs for both video and audio content. Internet broadcasters will no longer be penalized for having popular stations and will no longer be forced to sacrifice multimedia quality for lower bandwidth use. The age of the Micro Broadcaster is finally here.
General Information The current Tribler version is able to perform continuous BitTorrent Streaming. BitTorrent multimedia streams can be listed and searched for using the Tribler software search function. Tribler users can search for BitTorrent multimedia streams in two ways. Both methods use the search feature contained within the Tribler software GUI. These include: 1. Asking other tribler peers that are connected to it. 2. Receiving it though random gossip. The current version of Tribler can receive BitTorrent streams that are listed in the search. Once the desired multimedia stream is found, the user can load the multimedia stream within the internal multimedia player and view it. The Swarm Stream multimedia player software can be used to receive streams as well, however this software lacks the ability to search for content. When choosing a name for the BitTorrent Stream, you should differentiate the content from standard multimedia files. For example, in lieu of using the name of “Punk Rock” for a content stream, use the name of “Stream Punk Rock” to allow users to easily find continuously streamed content. Please Note: The Video Lan Client is not capable of transcoding a NSV / Winamp Television stream.
Implementation The following steps must be taken to use BitTorrent Streaming to distribute an existing Unicast multimedia stream. 1. Install the Video Lan Client multimedia software. 2. Execute the Video Lan Client software. 3. Click the “File” tab. (Top left tab of the Video Lan Client software.) 4. Click the “Open Network Stream” tab. 5. Check “HTTP/HTTPS/FTP/MMS” option. 6. Enter the IP address and port number of the existing Unicast multimedia stream that you want to broadcast. Example: http://45.258.87.102:6001 7. Check “Stream/Save” option. 8. Click “Settings” option. Under Outputs 9. Check “Play Locally” option. 10. Check “HTTP” option. Under Encapsulation Method 11. Check “MPEGTS”. Under Transcoding Options 12. Select the appropriate video codec to transcode the multimedia to. (If transcoding is desired.) 13. Select the appropriate bitrate and scale if the video is transcoded. (Not required if video is not transcoded.) 14. Select appropriate audio codec to transcode the multimedia to. (If transcoding is desired.) 15. Select the appropriate bitrate and channels if the audio is transcoded. (Not required if audio is not transcoded.) 16. Click “Ok” Twice. Broadcasting The Video Lan Client reencodes the multimedia content using the Transport Stream (.TS) protocol. This communications protocol is required for BitTorrent Streaming. The Video Lan Client uses the IP address of the host computer for the HTTP output address of the multimedia Transport Stream. The port number of the multimedia Transport Stream is the same one used by the original Unicast multimedia stream. The HTTP address and port number are used by the Tribler software to fetch the rmultimedia Transport Stream source that has been reencoded by the Video Lan Client.
1. Download the Tribler software source: svn co http://svn.tribler.org/abc/branches/playerrelease1.0 2. Install all required library dependencies as described in Tribler/readme.txt 3. Set the PYTHONPATH shell variable to the current directory set PYTHONPATH=. (windows) export PYTHONPATH=. (Linux) 4. Run the Tribler broadcast software using the following command line parameters: python Tribler/Tools/createlivestream.py name streamname.mpegts source http://123.45.67.890:1234/ destdir . 5. If the bitrate of the multimedia stream is different from the default of 512 kbps, it must be changed to reflect the true bitrate speed. The command: bitrate ### is used to adjust the bitrate setting to the correct speed. The bitrate will be defined in bytes per second. If higher bitrates are used, it may be necessary to adjust the size of the data chunks being distributed. The size of the data chunks can be adjusted by using the command: piecesize ###. 6. The createlivestream.py script creates a file (example: stream_name.mpegts.tstream) that is similar to a torrent file. This file can be used by the swarmplayer software to receive BitTorrent Stream. The BitTorrent Stream torrent file can be embedded on a website as well. This file is not nesessary for use with the actual Tribler software to receive a BitTorrent Stream. Please Note: The parameters of the generated .tstream file are not dependent on the actual multimedia content. A broadcaster can reuse the same .tstream file for distributing other streams at various times, if the multimedia stream parameters (bitrate, piecesize and/or stream name) are not changed. A special exemption for reusing the generated .tstream file is made for an authenticated stream, which is the default setting for BitTorrent Streaming. The generated .tstream file will only remain constant if the public/private keypair remains the same. The multimedia stream parameters (bitrate, piecesize and/or stream name) must also remain the same. To insure that the public/private keypair remain the same, the streamname.sauth file that is created when the software is initially run should not be deleted. To reduce the CPU load during multimedia content playback, a broadcaster can disable the default source authentication scheme. This can be done using the Tribler/Tools/createlivestreamnoauth.py script. You can find additional information for streaming live local video feeds here: www.tribler.org/trac/wiki/Tutorials/ExampleFeedSetups
The Economics of PeertoPeer Multimedia Delivery Internet multimedia distributors must make technical preparations for the quantity of content to be delivered and for the projected audience size. This planning is necessary to ensure there are adequate network resources available for the content distribution. The resource requirements for distribution can be determined by using the following formula: the number of concurrent audience participants expected to receive the data multiplied by the quantity of the data to be delivered equals the bandwidth needed for the distribution of the content. Bandwidth is the measurement of the quantity of data that can travel between two points in a specified time. It is a resource that is not infinite and is controlled by several factors that include technical and hardware limitations that can restrict it's availability. These limitations are due to the design and implementation of the network data transfer infrastructure. Lower bandwidth costs can provide greater network resources for content distribution, however, large amounts are still required to distribute high quality multimedia content to large numbers of people. Smaller amounts can be allocated for content distribution for cost savings, which would result in the reduction of either the quality of the multimedia being delivered or limiting the number of people that can receive the content. Large network resource requirements limit the ability of content distributors to provide a low cost solution to distribute content to a large audience size. PeertoPeer content delivery allows the distribution of data without the need for large amounts of network resources and specialized hardware. Bandwidth is saved by sharing network resources among audience participants that receive the multimedia. This allows the data to be distributed to large numbers of audience participants, which lowers the distribution cost of the content. PeertoPeer data transfer is designed to accommodate very large numbers of participants in a distribution network. The only limitations for this method of content distribution are the proper configuration of the client software and taking into account the average available bandwidth within the distribution network. This content delivery method can be used for both live or on demand multimedia content. The server / client distribution model is very inefficient and resource intensive. Centralized data distribution requires dedicated bandwidth for each audience participant receiving the content. A content provider cannot exceed the bandwidth limitations of the network server used for content distribution without degrading the quality of the multimedia content. Groups of network servers can be configured to adjust the bandwidth flow necessary for distributing content to large numbers of audience participants. A major issue with load balancing groups of servers is the additional expense for more hardware and network resources. Another economic factor is security issues. Network servers are subject to such problems as denial of service attacks or data filtering. Denial of service attacks can overload servers and render them unstable and unable to properly function. Content or IP filtering can allow groups / institutions or governments to prevent audience members from accessing content deemed unsuitable, similar to the deliberate jamming of radio and television stations during the Cold War. The cost per listener will never substantially decrease with the server / client model, as opposed to the PeerTo Peer content delivery model. The PeerToPeer distribution model can easily accommodate unlimited numbers of people and allow them to receive the multimedia content; which will significantly lower the cost of multimedia distribution through the conservation of network resources. Eliminating the need for network servers also reduces the overall cost per audience member by reducing the hardware requirements for content distribution.