Chapter 3. Installation

Table of Contents

Binary distribution
Content
Getting started
Debian package distribution
Content
Getting started

There are several ways to install FreeCast on a system.

Binary distribution

  1. install a Java Runtime Environment 1.4 or 1.5, see http://www.java.com

  2. download the latest release from http://download.freecast.org

  3. extract the FreeCast files from the downloaded archive

Content

Table 3.1. Binary distribution content

Filename Description
bin contains Unix and Windows scripts, see Reference Pages
etc contains configuration files, see the section called “Configuration”
lib contains all needed Java libraries files
docs/userguide contains this user guide
docs/examples/audio contains configuration sample files for an audio stream
docs/examples/video contains configuration sample files for a video stream
docs/examples/tracker contains configuration sample files for tracker
docs/examples/jws contains configuration sample files for a JavaWebStart™ deployment, see Chapter 7, JavaWebStart™ deployment

Getting started

Once the FreeCast binaries are installed, you can start your first FreeCast network. This is a small procedure to start a FreeCast tracker, a root node and a first listener.

Start a command line and go to the directory where the FreeCast binaries are installed.

Start a FreeCast tracker

The FreeCast tracker doesn't require specific configuration. Just start the freecast-tracker:

[host:path/to/freecast] bin/freecast-tracker 
create log dir: host:path/to/freecast/log
INFO   [Main]: version 20060629
INFO   [ConfigurationFactory]: Trying to load configuration defaults-tracker.xml
INFO   [Main]: start a HttpTracker on port /0.0.0.0:1665
INFO   [ConnectionAssistantServer]: start ConnectionAssistant server on /0.0.0.0:1666

Start a FreeCast root node

When the tracker is running, that's the moment to start the root node. In this example, we will use a default playlist provided by the FreeCast website as source. This stream will be transmitted by your FreeCast network.

[host:path/to/freecast] bin/freecast -config docs/examples/audio/freecast-node-root.xml
INFO   [Main]: version 20060629
INFO   [ConfigurationFactory]: Trying to load configuration defaults-node.xml
INFO   [NodeConfigurator]: set the public reference to [/x.x.x.x:30932{}, /192.168.0.2:30932{}]{}
WARN   [NodeConfigurator]: the playlist receiver uses a static bandwidth controler at 70
INFO   [DefaultNodeService]: received node identifier #32BF31F4C21882D9
INFO   [ConnectionAssistantClient]: connect to ConnectionAssistant at cas.freecast.org/82.226.166.133:1666
INFO   [ConnectionAssistantServiceStub]: new session

The default node configuration uses the tracker on the same host (localhost). The command line specifies the use of a sample configuration file. It will use a default playlist provided by the FreeCast website.

The tracker should have logged the following messages when the root node registers:

INFO   [Tracker$Auditor]: new registered node [/x.x.x.x:30932{}, /192.168.0.2:30932{}]{}
INFO   [Tracker$Auditor]: 1 connected nodes

Start a first FreeCast listener node

A FreeCast network without a listener isn't really a network .. so let's start a first FreeCast listener node.

[host:path/to/freecast] bin/freecast-swing -config docs/examples/audio/freecast-node-listener.xml
INFO   [Main]: version 20060629
INFO   [NodeConfigurator]: set the public reference to [/x.x.x.x:30680{}, /192.168.0.2:30680{}]{}
INFO   [DefaultNodeService]: received node identifier #32C5AE480DADE3F1
INFO   [ConnectionAssistantClient]: connect to ConnectionAssistant at cas.freecast.org/82.226.166.133:1666
INFO   [ConnectionAssistantServiceStub]: new session

The listener node connects to the tracker, receives the references oto other peers, then tries to connect to one of them (the root node in your case). When the first streamed data are received, the audio player starts to play sound.

The tracker should have logged the following messages when the listener node registers:

INFO   [Tracker$Auditor]: new registered node [/x.x.x.x:30932{}, /192.168.0.2:30932{}]{}
INFO   [Tracker$Auditor]: 2 connected nodes

The root node should have logged the following message when the listener node connects to it:

INFO  /192.168.0.2:30932 [PeerControler$Auditor]: accept connection with DefaultPeer[identifier=#32BF31F4C21882D9,reference=[/192.168.0.2:30932{}, /x.x.x.x:30932{}]{identifier=#32BF31F4C21882D9, order=0},order=0,latency=9223372036854775807,listeners=[]]
INFO  /192.168.0.2:30932 [PeerControler$Auditor]: 1 peers connected