filename:      Readme.FreeBSD
author:        Craig Harman (craig@cif.rochester.edu)
created:       13 March 2002
last revised:  11 February 2004


INSTALLATION

This archive contains a binary distribution of Apple's Darwin
Streaming Server (DSS) v5.0 for FreeBSD.  The files were built
on a FreeBSD 4.8-STABLE machine using GCC 2.95.3.  I have been 
told that some people have been unable to build the source using 
GCC 3.2.1.  The archive was last available at:

  http://www.cs.rochester.edu/~charman/DSS_FreeBSD/

The included 'Install' shell script should install the software 
on your FreeBSD machine.  The Install script will prompt you for
a username and password for the DSS administrator account.

To manually start the DSS server, execute the command:

  /usr/local/sbin/DarwinStreamingServer

To manually start DSS web-based administrative interface, execute
the command:

  /usr/local/sbin/streamingadminserver.pl

If you would like DSS to start whenever your system is rebooted,
copy the file 'darwinss.sh' to the directory:

  /usr/local/etc/rc.d

Please note that that the 'darwinss.sh' script will only launch
DSS; the web-based administrative interface will not be launched
on startup by this script.

To configure DSS, connect to port 1220 on your machine using a web
browser, enter the username and password that you specified when
you ran the 'Install' script, and follow the onscreen instructions.


TESTING YOUR INSTALLATION

I found the QuickTime documentation to be unnecessarily fragmented.
After I installed DSS, it took me longer than expected to figure out
how to test the server.  Hopefully these instructions will make your
life a little easier.

To test your DSS installation, start by opening your QuickTime Player.
In your QuickTime Settings, make certain that your Player's Streaming
Transport setting (UDP on port 554 vs. HTTP on port 80) is configured
to match your Server's Streaming Transport setting.  Go to the 'File'
menu, select 'Open URL in New Player...', and enter the following URL:

  rtsp://yourwebserver.net/moviename.mov

RTSP stands for Real-Time Streaming Protocol.  This is the protocol
that DSS uses to stream movies.

DSS comes with three movies (sample_56kbit.mov, sample_100kbit.mov and
sample_300kbit.mov) that are installed by default in:

  /usr/local/movies

If you did not change the default media directory during the DSS
configuration process, then you can specify one of these movies in 
the URL.  If DSS is configured properly, the movies should stream 
to your Player.


OPENING STREAMING VIDEOS FROM WEB PAGES

Once DSS is working, you will likely want to open streaming videos
from web pages.  Unfortunately, you cannot enter RTSP URL's directly
into your web browser.  The following HTML code will not work:

  <A HREF="rtsp://yourwebserver.net/moviename.mov">

You need to create a QuickTime reference movie that will redirect
users to the streaming version of your movie.  The reference movie
should be placed on an HTTP server.  Apple's free 'MakeRefMovie'
(currently available only for Windows and MacOS) can be downloaded
from:

  http://developer.apple.com/quicktime/quicktimeintro/tools/

Start MakeRefMovie, enter a filename for your reference movie, and
then select 'Add URL...' from the 'Movie' menu.  Enter the RTSP URL
for your movie.  Now place the reference movie on an HTTP server.
When you enter the URL for the reference movie in your web browser,
your browser should be redirected to the DSS server and should use a
QuickTime plugin to display the streaming video.

I suspect it is possible to bypass this reference movie step if you
have configured DSS to listen in on port 80.  I have not tested this
configuration, however, and make no claims that it will work.


RECREATING THIS ARCHIVE

In case you are paranoid about installing untrusted binaries on 
your machine, I have provided instructions explaining how to
recreate the contents of this archive directly from files that
can be downloaded from Apple.  These instructions were originally
posted to the comp.unix.bsd.freebsd.misc newsgroup, which I have
included below.


-------------------------------------
Date: Wed, 13 Mar 2002 13:55:52 -0500
From: Craig Harman <craig@cif.rochester.edu>
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Installation instructions for Darwin Streaming Server

I am posting FreeBSD installation instructions for Apple's
Darwin Streaming Server (DSS) v4.0 because I was unable to find
them anywhere else, had to resort to figuring things out myself,
and hope to save others the trouble.  Darwin Streaming Server is
the open-source version of QuickTime Streaming Server.  My
apologies if this post is off topic.

The source code for DSS can be downloaded from Apple:

  http://developer.apple.com/darwin/projects/streaming/

as:

  DarwinStreamingServerSrc.tar.gz

The archive comes with two relevant scripts:

  Buildit  -  A shell script that is used instead of a Makefile
  Install  -  The installation shell script


COMPILING

The Buildit script compiled the code on my machine (FreeBSD 4.5)
with a few warnings (signed vs. unsigned, etc), but no errors.
The Install script, however, does not work properly on FreeBSD
because the executables and configuration files are not in the
locations that the Install script expects them to be.  I tried
copying the files over manually, but the server wouldn't start
at first because the configuration files were broken.  I tried
fixing the configuration files manually, and while I was able to
get the server to start, I encountered broken links when using
the DSS web interface.

My advice - Do not use the Install script or configuration files
that come with the source code archive to install DSS on
FreeBSD.  Use the Buildit script to compile the executables,
then follow the installation instructions below.


INSTALLING

The DSS Install script was designed to be used with the DSS
binary distributions.  Go back to:

  http://developer.apple.com/darwin/projects/streaming/

and download the Linux binary distribution:

  DarwinStreamingSrvr4.0-Linux.tar.gz

Run the Install script to create the configuration files and
directories (/etc/streaming, /var/streaming, etc) and copy over
the Linux binaries to the appropriate directories.  I know it's
possible to run Linux binaries on FreeBSD, but I'm not certain
how to do this.  I just replaced the Linux binaries with the
FreeBSD binaries that I compiled earlier.

The Install script that comes with the Linux binaries will try
to run qtpasswd to change the DSS administrator account's
QuickTime password.  If your machine is not configured to run
Linux binaries, this will obviously fail.  You should run the
FreeBSD version of qtpasswd after the installation to create the
admin account and set a password.  You should also remove the
default administrator account using this command (taken from the
Install script):

# Remove the default admin username to /etc/streaming/qtusers
/usr/local/bin/qtpasswd -F -d 'aGFja21l' > /dev/null


You should be able to copy the FreeBSD binaries over by running
this shell script from inside of the StreamingServer directory
that was created from the source archive:

#!/bin/sh
cp DarwinStreamingServer /usr/local/sbin
cp PlaylistBroadcaster.tproj/PlaylistBroadcaster /usr/local/bin
cp MP3Broadcaster/MP3Broadcaster /usr/local/bin
cp qtpasswd.tproj/qtpasswd /usr/local/bin
# -- FreeBSD version of DSS doesn't come with StreamingLoadTool,
# --  so we remove the Linux binary version of this program
rm /usr/local/bin/StreamingLoadTool


Now you can start up the server:

  /usr/local/sbin/streamingadminserver.pl

and then connect to the DSS web interface by pointing your web
browser to:

  http://localhost:1220/

(or something similar).

