Table of Contents
There are several ways to install FreeCast on a system.
install a Java Runtime Environment 1.4 or 1.5, see http://www.java.com
download the latest release from http://download.freecast.org
extract the FreeCast files from the downloaded archive
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 |
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.
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
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
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