Table Of Contents
How ACTLab TV
Alluvium Is Different From Other Servers
Type Of Server Do You Need?
on Playlist Generation
guide shows you how to take your audio/video content and
make it streamable for us,
or your own station. The
goal of this guide is to create a resource for people who
are starting from scratch. The guide will cover all
three steps of publishing your works: digitization, transcoding,
and web publishing. If you do not know what these terms
mean, don’t worry. We will go over all of these steps in
with any technology movement, the popular trends will
keep changing. ACTLab TV
will do its best to keep its user guide up to date, please
keep watching for updates.
How ACTLab TV
is based on three open source technologies developed by the
Foundation for Decentralization Research. Below is
a brief explanation of each part.
is powered by peer-to-peer media streaming software called
Alluvium. The Alluvium Core leverages the power of Swarmcast's distributed
download acceleration to provide high-resolution video and
audio streams, while reducing the bandwidth needed to host
a stream. Alluvium can be thought of as BitTorrent for
streams. This means there's no waiting for the file to download,
which sets Alluvium apart from other peer to peer software.
Click an Alluvium link and the video starts playing immediately.
Additionally, Alluvium requires less bandwidth and scales
to more simultaneous users than any other streaming technology.
Alluvium Media Player
Alluvium media player has been built from the ground up to
provide flawless playback of all video and audio files commonly
found on the Internet. It uses native plug-ins on each platform
so as to be easily extensible tofuture formats. Unlike most
open source video players, it provides gapless playback between
files, smooth resizing of the video window, flawless hardware acceleration
for fullscreen playback, and a native look and feel on all
streams media files from any standard web server. The only
additional requirement is an Alluvium playlist file,
which contains a schedule of when each file should be played.
Alluvium playlists are in an
open format based on RSS. Unlike other RSS playlist formats,
Alluvium playlists automatically
synchronize all clients to the same file, creating optimal
bandwidth efficiency through swarming downloads.
section covers what software and hardware you will need to
create an ACTLab TV station. There
are essentially 4 steps to producing content for your stream: capturing, archiving,
transcoding, and publishing. Each
section will begin with a detailed explanation of the hardware
and software you will need for the process and then explore
how one might go about implementing the process.
are essentially three types of source media that you
might want to capture: analog, DV, and DVD. Wewill
cover all three types and describe the specific hardware
Video Capture - There are many types of devices that
you can use to capture analog video. Our current top choice
is the ATI TV Wonder. The ATI TV Wonder comes in
two models: either as an internal (PCI) or external (USB)
device. Both devices offer MPEG-2 encoding
at DVD quality. Which one you choose dependes on whether
your computer has free PCI or USB slots. Other
products we have found to offer a reasonablen solution
are the Happauge PVR
and the Pinnacle Studio.
The only hardware required for DV capture is an IEEE1394
(also know as firewire) interface. Most
new computers are being shipped with this feature included
(all Apple computers come with this feature). Make
sure your computer has a firewire card.
If it does not, your local computer
store (or online retail shop) should have one for a reasonable
There are many DVD ripping applications on the Internet,
which will allow you to convert your DVD directly into a
MPEG 2 format. DVD Shrink is one that we recommend. Whichever
solution you choose, make sure it comes with a software suite
that can encode in MPEG 2, or convert from DV to MPEG 2.
Here is a list of software that can currently handle MPEG
ATI Multimedia Center (requires
an ATI capture card)
Now that you have acquired all the hardware and software, you can
start capturing your footage.
recommend capturing your files to the MPEG 2
format. MPEG 2 offers
a great quality and a decent file size when archiving your
video. It is also a standard, which is recognized by
almost all media producers. Our rough guidelines
for encoding MPEG 2 are as follows:
the process of taking your captured footage and converting
it to a streamable file. There
are many transcoders available
to use. We recommend:
of these has their pros and cons. We currently recommend
using VLC for single file conversions. Sorenson Squeeze
is also great, but can be expensive. It offers several
features such as watch folders, which will automatically
convert files that you drop into the folder.
is a chart listing the resolutions and bit rates you should
use for different servers.
you are tech savvy, there is also a free command line batch
conversion tool called FFMpeg that
works well. Please remember, there many other transcoding software
packages out there. If you find one that works better than
those mentioned here, use it! Once you
have finished encoding all your files, you are ready to Publish!
you have decided on your capture settings, it is time to
thinking about how you will archiving. A
couple of questions you might want to ask yourself are:
do I archive my content?”
should archive your content in a safe area or remote location. For
example, all of our content is backed in at least two locations. This
prevents loss from power outages, fires, and other disasters.
I archive both my MPEG 2 and streaming files?”
answer to this question depends on how much hard drive
space you can afford. You will have to take into account
that you will want to back up all of your content. For
example if you have 200gigs of MPEG 2 videos, you will need
200 more gigs to make a back copy. Some people suggest
making DVD back ups. We suggest keeping a local copy
on the computers you use and then creating abackup on an
external drive that can be stored off the premises.
your content may seem like a daunting task, because there
are so many ways to go about doing it. For the sake
of trying to cover every aspect of publishing, this guide
will assume you are starting from scratch. The first concept you
will need to understand are networking basics.
Alluvium Is Different From Other Servers
Internet basically works through the communication of servers
and clients. For example, when you check your email,
no matter what type of email you use, your computer (the
client) makes a connection to a server to check and see what
new messages you have. Also when you go to a website,
the web pages you view on your computer (the client) are
actually hosted on a computer somewhere else on the Internet
on a web server. One
of the unique things about ACTLab TV
is that unlike normal server-client relationships, ACTLab TV’s
allows bandwidth sharing. This gives both the client (the
user) and the server (content provider) a more efficientdistribution
system than previously available.
1 Normal Client Server Relationship
2 - Swarmcast Client Server Relationship
this means for you, the content
producer, is that unlike older streaming technology, you
can sustain a greater number of users on connections that
previously could only handle a few.
Type Of Server Do You Need?
are several methods of web publishing as stated earlier. Which
route you choose will depend on yourfinancial/hardware resources. Here
are several scenarios.
Metered – amount
per month varies
Metered – usually
more bandwidth than web hosting
monthly cost and computer cost (currently about
$30 - $50 a month for broadband and about $500
for a suitable PC), telephone and cable television
companies are usually the only providers of broadband
cost of web hosting (plans currently start as low
as $5 a month and up to about $50 a month, after
which most people move to a dedicated web server).
Hosting is also available from a slew of companies
such as 1and1.com.
costs of web servers currently start at around
$50. Like web hosting, there are many options
for web server hosting, such as 1and1.com, serverbeach.com,
rackspace.com, and many others. They all
offer a variety of different grade servers.
you can see from the charts there are many ways for you to
obtain the proper connection in order to run an Alluvium
server. Once you have selected the type of web space
you are going to use, you will need to figure out how you
will connect to your server. Note: If
you decide to use your desktop PC as your server, please
make sure you have taken the proper steps to securing your
Internet connection, such as setting up a firewall.
most streaming media solutions, Alluvium does not require
a special server. All that is required to run an Alluvium
stream is a standard HTTP web server such as Apache. A web
server is embedded in the Alluvium broadcaster application
for those running a station directly on their desktop computer.
For those whoare going to host their station on a dedicated
server machine, we provide instructions on how to properly
configure Apache to work with Alluvium streams. Similar configurations
will work with other web servers.
a web server to work with Alluvium is very simple. No special
modules or even CGI scripts are necessary. The web server
is only needed to serve static files: your media files and
your playlist files. Put your
media and playlist files in a
directory where they will be accessible from your website.
On many installations this is in the public_html directory
of your website. On other systems it will be in /var/www
or something similar. Make sure that the files have the proper
permissions set so that they will be accessible to the Internet.
You can check this by attempting to access a URL for an individual
media file. If your web browser finds the file and attempts
to download it, then you know that it is accessible to the
is important that you properly configure your web server
to use the correct MIME type for Alluvium playlist files.
Otherwise, your viewer’s web browsers will fail to load the playlist in
the Alluvium player and they will be unable to view your
stream. In Apache, you can configure the Alluvium playlist MIME
type by editing the Apache config file
and adding the line:
On most Unix systems
you can also set up the proper MIME type for all applications,
including many web servers by adding the following line to
the /etc/mime.types file:
If you are writing your own HTTP server
for use with Alluvium, just make sure that when it serves
the Alluvium playlist files,
it supplies the following HTTP header: Content-Type:
is a good idea to keep your media files well organized. We
suggest creating a media directory
within the main website directory. Within that, create subdirectories
for audio files, video files, and playlists.
Then create subdirectories for various subtypes of audio,
video, and playlist files. Keeping
all of the files in subdirectories is convenient. For instance,
you can point the broadcaster tool to the main media directory
and it will scan through all subdirectories and select all
applicable media files. This is also convenient for making
backups of your media collection.
An Alluvium stream is created by taking
your media files and organizing them into a playlist.
The playlist determines when
each media file should play. Using this information, the
Alluvium client is able to download the media files from
your HTTP server and stitch them together into a stream.
One way to generate playlist files
is to use the Alluvium broadcaster tool. It is a cross-platform
application written in C and using the wxWindows toolkit
to provide a natural look and feel for each native platform.
The broadcaster includes a graphical interface for playlist management.
It also supports a headless mode where it can be used on
the command line or in scripts. More documentation on how
to use the broadcaster tool will be available when it is
Another way to generate playlists is
to write your own custom playlist generation
code. This has proven to be a very popular choice among potential
station managers. The broadcaster only works with directories
containing media files. It scans the metadata in the media
files to generate a playlist.
However, many people already have their media metadata in
a custom database of some sort - usually MySQL or
something similar. If this is the case for you, then you
should consider writing your own playlist generation
Types of Playlists
Alluvium playlists can
logically be thought of as being of three basic types. The
first type is a static playlist.
It contains a number of entries to media files, for instance
24 hours of programming. The playlist is
played to the end and then refreshed, hopefully yielding
a new playlist with another 24
hours of content. The second type is dynamic playlists.
Since the playlist refreshes
when it gets to the end, an extremely short playlist (say
2 items) allows for flexibility in programming which is useful
for live request shows. Static and dynamic playlists are
actually technically the same. They
are just two different styles of playlist generation:
generating a long playlist with
all programming included or generating a short playlist with
only the files, which are going to be played in the near
future. The third type is a live playlist.
These playlists do not include
any individual items. They include a base URL for items and
then automatically calculate file names based on the current
time. This type of playlist is
used in conjunction with our live broadcasting software,
which splits up a live recording into a number of small sequentially
The Alluvium playlist format
is based on the RSS vocabulary for XML files. It uses standard
RSS 1.0 tags.
Constraints on Playlist Generation
There are a number of considerations to
make when generating Alluvium playlists.
First, every playlist must have
a start time, otherwise the stream will not play. Second,
every media file must have a duration or
else it will be skipped. Finally, if you are generating a playlist dynamically,
the smallest allowed size is two items. This means that,
for instance, if you have a dynamic playlist management
system where users can queue up media files to be played live, they
can not edit the first two items in the queue. Once a playlist is
generated with those two items, they are locked in and cannot
be changed. The users (clients) will have already fetched
the playlist and there is no
way to inform them that it has changed. Clients cannot be
updated on the new playlist until
the old playlist expires, and
can reconnect to the server to fetch a new one.