QuickTime Streaming Server on Ubuntu 10

OK, so you don’t necessarily call rtsp on Ubuntu QuickTime Streaming Server. Instead, you call it Darwin Streaming Server (DSS). But the end result is basically what you have exposed in Mac OS X Server, but running on Linux. You don’t have the same functionality in Server Admin, but it does work. And the key to what it does is use the rtsp protocol to stream supported files from the server to clients. It is a little tougher than just clicking on the start button, but too much tougher provided you follow these directions (thanks to the good folks of the DSS list that I’ve been a member of for a few years for taking such good notes, making this much simpler to write when I just have to move from Ubuntu 7 to 10.04).

To get started (most all of this is going to need sudo or su), let’s use wget to download all the files that we’re going to need (except 1):

wget http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tar
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patch
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20080728-1.patch

Now let’s extract the tar file:

tar -xvf DarwinStreamingSrvr6.0.3-Source.tar

Now let’s create our qtss user and group:

addgroup –system qtss
adduser –system –no-create-home –ingroup qtss qtss

We’re going to need the build-essential package from apt-get, so let’s install that before moving on:

apt-get install build-essential

The base 6.0.3 installer was only built for Mac OS X, so let’s apply the patches we used wget to pull down:

patch -p0 < dss-6.0.3.patch
patch -p0 < dss-hh-20080728-1.patch

Now let’s cd into the actual dss installer directory and then grab a patched installer file, get rid of the old Install script and then grab a new one:

cd DarwinStreamingSrvr6.0.3-Source
mv Install Install.old
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install

Then we’ll make the Install script executable and run the Buildit (no, not Configure) then Install scripts:

chmod +x Install
./Buildit
./Install

Finally, fire up the DSS:

/usr/local/sbin/DarwinStreamingServer

Now you should be able to go to a standard Mac OS X client and run a port scan of the rtsp port, 554 using stroke (swap the 192.168.210.254 IP here with whatever IP or hostname that you’re using):

/Applications/Utilities/Network Utility.app/Contents/Resources/stroke 192.168.210.254 554 554

DSS installs some sample movies into /usr/local/movies. Provided that the port is open, let’s open Safari and provide the following link to see if one of the stock sample movies will open:

rtsp://192.168.210.254/sample_h264_300kbit.mp4

Provided that you see the sample movie from Apple then you can move the sample movies elsewhere and drop your own in here. You’ve now got a fully functional DSS. The DSS will stream .mov, .mp4 and .3gp files. If you enable the QTSSHttpFileModule you can also stream mp3 files. If you go into the /etc/streaming folder you will see a number of files that look similar to what you have been working with on Mac OS X Server (assuming you’ve been working with Mac OS X Server). In here, you’ll find the qtusers and qtgroups files for managing users and groups in rtsp as well as the streamingserver.xml file, which is where the modules are loaded and unloaded. In /var/streaming you’ll also find a directory called logs, which is interestingly enough where the logs reside and another directory called playlists, which is where you will drop playlists in the event that you decide to make your own radio station. My music tastes are bad enough where I’ve never really considered this, but feel free to get all WKRP in Cincinnati if you so choose, I promise not to judge (or maybe just a little)…

You’ll also end up likely looking to embed these rtsp streams (that seems to be what everyone does). If so, get to know the XML structure:

<?xml version=”1.0″?>
<?quicktime type=”application/x-quicktime-media-link”?>
<embed src=”rtsp://192.168.210.254/sample_h264_300kbit.mp4″ autoplay=”true” />

Ultimately, building and using QuickTime Streaming on Mac OS X Server is far superior in a number of ways to doing so in Linux. For starters, the steps here are all done by clicking on a Start button in Mac OS X Server. But even further than that, updates are even more rare to DSS. If you’re in the rack density game, a number of Mac mini servers in the right sized rack might just get you more bang for your square inch!

11 Comments

  • zdw
    November 20, 2010 - 9:15 pm | Permalink

    DSS tends to run pretty well on other Unixes – I’m running it on OpenSolaris (had to track down patches for that as well).

    Any suggestions for live streaming programs that would replace Quicktime Broadcaster? That seems to be the weakest link on my setup

    • November 21, 2010 - 12:21 am | Permalink

      QuickTime Broadcaster – Basic Mac OS X Live encoder
      I’ve been tinkering around with Wirecast, Popwire Broadcaster, mpeg4ip and the VLC command line. I’d give those a shot and see how they stack up. Good luck!

  • Nate
    January 30, 2011 - 12:56 pm | Permalink

    it worked 1 time, but then i accidentally booted into recovery mode and lost it..:(

  • Dave
    June 23, 2011 - 11:14 am | Permalink

    I managed to shoehorn this mother of an application into a debian/ubuntu package. If interested, let me know if you want one to try out. (built on Ubuntu 11.04 32 bit but should build on any reasonable deb based system)

  • July 20, 2011 - 12:36 pm | Permalink

    Charles, this is an excellent write-up!

    I am in the middle of moving this function to a new server, including a much later release of linux. Your walk-through was so tight I was able to cut-and-paste most of the commands and use them directly.

    Thanks!

  • Pingback: 转:linux ubuntu10.10安装流媒体服务器Darwin Streaming Server方法 | 小伟的床

  • January 19, 2012 - 5:30 am | Permalink

    I built DSS on ubuntu 10.10 using your instructions. Its working… Thanks… Only rtsp streaming works, http streaming is not working… we may still need to apply one more patch. pls see http://dss.macosforge.org/trac/ticket/6#comment:12

  • Pingback: Установка Darwin Streaming Server в Ubuntu 10 | uPlato.ru

  • Pingback: Установка Darwin Streaming Server в Ubuntu 10 | В гостях у Plato

  • Comments are closed.