__
Home Your ACTLab TV ACTLab Radio ACTLab TV Downloads
News Philosophy Technology ACTLab TV FAQ 
ACTLab TV Technology Guide V1.0

Below is the ACTLab TV Technology V1.0, check it out! We have documented both the steps required for making your videos streamable as well as how to setup your server side scripts.

 

 

Table Of Contents

Introduction

             How ACTLab TV Works

                        Alluvium Core

                        Alluvium Player

                        Alluvium Media Server

            Publication Process

                        Video Capture

                        Transcoding

                        Archiving

                        Publishing

                                    How Alluvium Is Different From Other Servers

What Type Of Server Do You Need?  

                                    Server-side Integration

                                    Web server Configuration

                                    Media Management

                                    Playlist Management

                                    Alluvium Broadcaster

                                    Generating Playlists

                                    Types of Playlists

                                    Playlist Format

                                    Constraints on Playlist Generation

__________________________________________________________________________________________

 Introduction

 This 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 this guide.

 NOTE:  As 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 Works

ACTLab TV is based on three open source technologies developed by the Foundation for Decentralization Research.  Below is a brief explanation of each part.

 

Alluvium Core

 ACTLab TV 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

The 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 major platforms.

 

Alluvium Media Server

Alluvium 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.

 Publishing Process

This 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.

Video Capture

There 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 and software requirements for each.

Analog 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.

DV Capture - 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 price.

DVD - 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 2: 

ATI Multimedia Center (requires an ATI capture card)

Moonlight One Touch

Sorenson Squeeze 

Now that you have acquired all the hardware and software, you can start capturing your footage. We 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:

Format

Resolution

Bit rate

VHS

320X240

4-6 Mbps

DV

720X480

5-7 Mbps

DVD

720X480

5-7 Mbps

Transcoding

 

Transcoding is the process of taking your captured footage and converting it to a streamable file.  There are many transcoders available to use. We recommend:

                        VLC Media Player

                        FFMPEG Encoder

                        Sorenson Squeeze

                        Moonlight One Touch

Each 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 desirable features such as watch folders, which will automatically convert files that you drop into the folder. Below is a chart listing the resolutions and bit rates you should use for different servers. 

Server Connection Type

Connection Upload Capabilities

Resolution

Bit Rate

Enterprise

20mbps

720X480

768Mbps Video

256kbps Audio

High Speed

1.5mbps

720X480

512Mbps Video

128kbps Audio

Broadband

384kbps

320X240

256 Mbps Video

128kbps Audio

If 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!

 Archiving

Once you have decided on your capture settings, it is time to start thinking about how you will archiving.  A couple of questions you might want to ask yourself are:

“Where do I archive my content?” 

You 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. 

“Should I archive both my MPEG 2 and streaming files?” 

The 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. 

Publishing

Publishing 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.

 How Alluvium Is Different From Other Servers

The 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.  

Figure 1 Normal Client Server Relationship

Figure 2 - Swarmcast Client Server Relationship

What 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.

What Type Of Server Do You Need?

There are several methods of web publishing as stated earlier.  Which route you choose will depend on yourfinancial/hardware resources.  Here are several scenarios.

Resources

Bandwidth Speed

Bandwidth

Home Server

384Kbps-768Kbps

Unlimited

Web Hosting

1.0Mbps-3.0Mbps

Metered – amount per month varies

Web Server

1.0Mbps-10Mbps+++

Metered – usually more bandwidth than web hosting

Resources

Space

Cost

Home Server

Hard drive dependent

Broadband 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

Web Hosting

Usually several gigabytes

Monthly/Yearly 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.

Web Server

Usually 60-100 gigabytes

Monthly/Yearly 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.

As 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. 

 Server-side Integration

            Unlike 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.

 Web server Configuration

             Configuring 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 Internet.           It 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:

AddType application/x-alluvium .rss

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:

            application/x-alluvium    rss

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: application/x-alluvium

 

Media Management

            It 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.

 Playlist Management

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.

Alluvium Broadcaster

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 released. 

 

Generating Playlists

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 code.

 

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 numbered files.

 

Playlist Format 

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.

 

ACTLab TV is made possible through the ACTLab Program at the University of Texas at Austin. The ACTLab is constantly looking for talented and motivated individuals. Check out their program and their current research!!!

 

Powered by