Goabit Users Manual
Goabit Users Manual
Goabit Users Manual
David Childers
goalbit.sourceforge.net
Creative Common License
This body of work is released under the Attribution-ShareAlike 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 Attribution-ShareAlike version 3.0,
Creative Common License requirements.
Foreward
Project Members
Introduction
Motivation
Architecture
The GoalBit Media Player Project represents a dramatic improvement for Peer-to-Peer multimedia
streaming. It provides the ability to pull stream data from multiple sources as well as the ability
to restructure the Peer-to-Peer network for optimum data transfer. These advances eliminate the
potential for stream failure due to lost data or network latency.
I would like to thank these people: The GoalBit Media Player project members and Streamer 45
for providing software testing information.
David Childers
Sustaining Member
Discovery is seeing what everybody else has seen, and thinking what nobody else has thought.
Albert Szent-Gyorgyi
Project Members
Project Leader
Rodriguez-Bocca, Pablo
GoalBit is a Peer-to-Peer distribution system, capable of distributing high bandwidth live media
content to all network peers while preserving its quality. This project follows a BitTorrent like
approach in which the media stream is broken down into partial streams. These partial streams
are then relayed to other clients within the Peer-to-Peer network. In order to measure the peer's
perceived quality, GoalBit uses the recently developed PSQA (Pseudo Subjective Quality
Assessment) technology.
Basic Features
GoalBit is a free software project for video and audio streaming. It is released under the GNU
General Public License.
GoalBit supports the following formats: Media File, Video acquisition (DV, webcam),
HTTP/MMS/FTP, Shoutcast/Icecast, UDP/RTP, Unicast/Multicast, TCP/RTP Unicast, DVD, VCD,
SVCD, etc.
GoalBit supports various audio and video codecs: MPEG-1, MPEG-2, MPEG-4, DivX, WMV, Theora,
VP3, VP6, Dirac, H.264, AAC, AAC+, MP3, Ogg, WMA.
A full video delivery network monitoring suite is included. (The perceived quality of the client is
automatically measured in real time.)
Motivation
There is a steady growth of multimedia distribution systems being used on the Internet. This is a
result of the increasing development of broadband access for residential users in addition to new
business models for content producers. These producers use various methods for content
distribution that depend on the size and popularity of the media being distributed. The majority
of content producers use a traditional Content Delivery Network (CDN) structure (such as msnTV,
YouTube, Jumptv, etc.). There are several mature Peer-to-Peer (P2P) systems (such as Joost, iMP,
etc.) that are used to distribute both audio and video media as well.
Peer-to-Peer architectures are virtual networks developed at the application level over the
Internet infrastructure. The nodes in a P2P network are called peers, and they offer their
resources (bandwidth, processing power, storing capacity) to the other nodes. These nodes
share their resources because they are exchanging data that is common to all participants.
When the number of participating nodes increase, the global resources of the Peer-to-Peer
network also increase, which allows for greater content distribution potential. Peer-to-Peer
networks are very popular and are widely used for file sharing and content distribution. Some
examples of Peer-to-Peer networks include: BitTorrent, KaZaA, eMule, etc.
Architecture
Inside the GoalBit Project there are five basic components (Fig. 1): the streaming server, the
clients, the control server, the PSQA learning tool and the webstat application.
The streaming server distributes the media content over the P2P Delivery Network. It represents
the primary node in the peer distribution architecture.
Each client receives several partial streams from other clients that are located elsewhere. The
client is able to reconstruct the complete media stream from the various partial streams that
they receive. The client continuously measures information about the network distribution
quality and reports this data to the control server. Each client receives instructions from the
control server that specify which nodes to connect to and get the partial streams from.
The control server automatically measures the perceived quality at the client side and predicts
the best possible path for the Peer-to-Peer data transfer. It periodically rebuilds the structure of
the distribution network based on these values.
The PSQA software learning tool is used to predict the perceptual quality value within the
network.
The webstat application provides a web interface for the network topology and the client’s
reports presentation.
Debian Linux Installation
Opentracker Information
This tracker is open in a sense that everyone announcing a torrent is welcome to do so and will
be informed about anyone else announcing the same torrent. Unless
-DWANT_IP_FROM_QUERY_STRING is enabled (which is meant for debugging purposes only), only
source IPs are accepted. The tracker implements a minimal set of essential features only. When
tested, the software was capable of responding to more than 10000 requests per second on a
Sun Fire 2200 M2 (thats where we found no more clients able to fire more of our testsuite.sh
script).
sysctl kern.ipc.somaxconn=1024
sysctl kern.ipc.nmbclusters=32768
sysctl net.inet.tcp.msl=10000
sysctl kern.maxfiles=10240
License information:
Although the libowfat library is under GPL, Felix von Leitner aggreed that the compiled binary
may be distributed under the same beer ware license as the source code for opentracker.
However, we like to hear from happy customers.
GoalBit Information
$ mkdir -p ~/svn/
$ cd ~/svn/
$ svn co https://goalbit.svn.sourceforge.net/svnroot/goalbit goalbit
Not all of them are necessary, come back later if you have trouble in the compilation step
Compile miniupnp
This software is mandatory, it allows the opening of TCP ports in your router/firewall
$ cd ~/svn/goalbit/build/contribs
$ tar xvf miniupnpc-1.1.tar.gz
$ cd miniupnpc-1.1/
$ make
$ sudo make install
Compile Tracker
$ cd ~/svn/goalbit/src/opentracker/libowfat/
$ make
$ cd ~/svn/goalbit/src/opentracker/btv-opentracker/
$ make
Compile GoalBit
$cd ~/svn/goalbit/src/goalbit/
$rm -rf autotools/ intl/
$make clean
$./bootstrap
$./configure --enable-optimize-memory --enable-mostly-builtin --enable-debug \
--enable-sout --enable-httpd --enable-vlm --enable-dshow \
--enable-libcdio --enable-vcdx --enable-cdda --enable-vcd --enable-ogg --enable-mkv --enable-
mad \
--enable-vorbis --enable-speex --enable-x264 \
--enable-real --enable-realrtsp \
--enable-x11 --enable-xvideo --enable-glx --enable-opengl --enable-sdl --enable-freetype --
enable-fribidi --enable-v4l2 \
--enable-directx --enable-fb --enable-caca --enable-oss --enable-esd --enable-alsa \
--enable-skins2 --enable-wxwidgets --enable-visual --enable-qt --enable-qt4 \
--enable-galaktos --enable-loader --enable-theora \
--disable-dvdread --disable-dvdnav \
--enable-ffmpeg --disable-live555 --enable-a52 --enable-libmpeg2 \
--enable-mozilla \
--disable-hal
$ ./compile
If you want to integrate the tracker with the GoalBit media player (experimental), add the
following lines to the configuration.
--enable-goalbit_btv_tracker --with-owfat-
tree=/home/USER/svn/goalbit/src/opentracker/libowfat/
Try it!
$ cd ~/svn/goalbit/src/goalbit/
$ ./goalbit -vvv
Streaming Shoutcast / Icecast – Video / Audio
For the windows version of the open tracker, the DLL file must be placed in the same directory as
the btv-open tracker software.
The tracker will run on port 6969 and is viewed as: http://your_ip_address:6969.
http://goalbit.sourceforge.net/downloads.html
Run GoalBit.
- Channel
identifier
- Channel name
- Channel
description
- Channel logo
* If you
substitute the
logo, the
replacement
must be
continuously
accessible via
the Internet.
Click on the Input parameters button (Broadcast yourself screen), another screen will open.
Input the network address of the computer running the Shoutcast or Icecast media server.
Shoutcast
Icecast
Click on the Output parameters button (Broadcast yourself screen), another screen will open.
Change only the tracker URL address. (This is the network address of the computer running the
open tracker software.)
Click the accept button after entering the tracker URL address.
Creating The GoalBit Torrent File
The file that is generated must given to people or embedded on a web site so that they can
listen to or view the station.
To start the P2P broadcast, click the play button and GoalBit will start after a few seconds.
End users must install the GoalBit media player to watch the P2P streaming content.
Links To Additional Information
Icecast server
www.icecast.org/docs.php
Shoutcast server
www.shoutcast.com/support
Download and documentation for the Dirac and Theora video codecs.
Dirac
www.diracvideo.org
(ffmpeg2dirac) converts media to dirac/ogg in the ogg format
Theora
www.theora.org
(ffmpeg2theroa) converts media to theora/ogg in the ogg format
NSV
www.scvi.net
Software to source static video and audio files to the Icecast multimedia server.
Ezstream
www.icecast.org/ezstream.php