PULSE - An Adaptive Practical Live Streaming System

PULSE (Peer-to-Peer Unstructured Live Streaming Experiment) is a peer-to-peer live streaming system designed to operate in scenarios where the bandwidth resources of nodes can be highly heterogeneous and variable over time, as is the case for the Internet. The principles and basic algorithms of PULSE were proposed by Fabio Pianese. The prototype was developed by Diego Perino.


See PULSEPapers under RelatedWork.



The prototype is written in Python and it is available under LGPL license. You need the following additional packages to run it:

Obtaining Pulse

You can download a pre-packaged bundle or check out the source from the svn repository.

Pulse bundle

Getting the source

You can download the source for pulse releases or check out the lasest version from svn.

svn co https://repository.napa-wine.eu/svn/pulse/trunk/pulse

Using Pulse

Pulse can be started in either source mode or client mode. When run in source mode, Pulse takes a file or the standard output of a command and distributes it to the peers. The clients connect to the overlay network, and accept the media player running on the local host via HTTP. Writing the downloaded stream to a file is also possible.

In order to start Pulse in source mode, you have to specify the following:

There are also optional parameters which fall back to a default value if not specified:
-c Config.ini
Name of the configuration file, default: Config.ini
--tcp_port, --udp_port
TCP and UDP ports to be used by the program, default: 2230, 2231.
The path for the output Pulse-file, the updated metadata file, default: out.pulse

These options must be specified on the command line:

  $ ./pulse.py -f ~/movie.mpg /home/david/mystream.pulse

Starting the Pulse client can be done by specifying the following options:

When running source and client on the same machine, either the source or the client must be started with TCP and UDP ports different from the default. These options must be specified on the command line:
  $ ./pulse.py --tcp_port=3222 --udp_port=3223 
    -m client --do_video out.pulse

An example pulse file is attached: example.pulse.

Known bugs and limitations

Mailing list

We maintain an open mailing list for PULSE related discussions. Subscription is available here.

External links

Original PULSE sources and papers

Gwendal Simon's PULSE-resources, featuring a web frontend for PULSE

-- DavidKaroly - 27 Oct 2008

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
elsegz pulse-0.2.0.tar.gz manage 28.0 K 24 Apr 2008 - 13:16 DavidKaroly pulse 0.2.0 source
elsegz pulse-0.2.0-linux-i686-py2.4.tar.gz manage 1720.4 K 24 Apr 2008 - 13:23 DavidKaroly pulse 0.2.0 bundle for linux
pdfpdf QuickStart.pdf manage 156.6 K 24 Apr 2008 - 15:55 DavidKaroly PULSE Quick Start Guide
elsepulse example.pulse manage 0.2 K 06 May 2008 - 13:29 DavidKaroly Example pulse file
Parents: WebHome > Software
logo_twin_black_small.pngCopyright © by the contributing authors 2007-2009. All material on this collaboration platform is the property of the contributing authors.
The information on this web site does not necessarily represent the view of the European Commission (EC).
Ideas, requests, problems regarding the site? Send feedback