Friday, August 29, 2008

Darwin Streaming Server 6.0.3 on Linux

Quick tutorial for installing DSS on Ubuntu 8.04.1 64bit (x86_64).

Most of these details can be found here: http://dss.macosforge.org/trac/ticket/6

Hopefully they will integrate these patches in to the next release, but until then here are the build instructions for Ubuntu:

Download DSS 6.0.3: http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tar

Download this patch: http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patch (Thank you Sverker Abrahamsson!)

And this patch: http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20080728-1.patch

Finally get the modified Install script: http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install

The basic process is:

1. Get the build dependencies from the repositories.
2. Set up the qtss user (this is because the Install script does it in a way that is incompatible with Ubuntu)
3. Extract the source code.
4. Apply both patches.
5. Replace the Install script and chmod +x it.
6. Compile.
7. Install.

Notably for ssl admin you need the openssl and libnet-ssleay-perl packages, unfortunately even with these packages I was unable to get ssl admin to work.

I created the modified Install script; you can do a diff with the original if you want to see what I changed. Mostly just the paths were broken, but I am guessing that some other modules and such will probably not work.

Here is the bash script I used to do everything (including automatically download everything):


#!/bin/bash

sudo apt-get install build-essential wget
sudo addgroup --system qtss
sudo adduser --system --no-create-home --ingroup qtss qtss

wget http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tar
tar -xvf DarwinStreamingSrvr6.0.3-Source.tar
mv DarwinStreamingSrvr6.0.3-Source DarwinStreamingSrvr6.0.3-Source.orig
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patch
patch -p0 < dss-6.0.3.patch
mv DarwinStreamingSrvr6.0.3-Source.orig DarwinStreamingSrvr6.0.3-Source
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20080728-1.patch
patch -p0 < dss-hh-20080728-1.patch
#need to answer n then y
cd DarwinStreamingSrvr6.0.3-Source
mv Install Install.orig
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install
chmod +x Install
./Buildit
sudo ./Install



Update 2/2/2009: I changed the links to all point to dss.macosforge.org, which is a much more reliable host. Everyone should also take a look at that thread, as there are a lot of updates, including a newer patch from Horace Hsieh. I haven't played with this in a while, but if I get a chance I will try to update this with the newer patch. Please let me know if there are any problems (I just turned comment notifications on :/).

39 comments:

Jan said...

Hey that was a great help, thanks!
There were some issues with the script:
the last patch command was missing the "< PATCHNAME" and the last wget was not getting a proper install script. I donloaded the stated further above and chmodded it executable then everything went correct. thanks again

Trav said...

I had the same issue as Jan, but worked wonders thanks!!!

freyr said...

Thanx a lot for this setup !!!
Now my DSS is finally working thanks to you...

Bye

Norman said...

Hai,that was great help but i got stuck until these steps stated below:-

patch -p0
#need to answer n then y
cd DarwinStreamingSrvr6.0.3-Source
mv Install Install.orig
wget http://xepra.net/Install
chmod +x Install
./Buildit
sudo ./Install

this is my first experience using dss and i dont have any experience and guide on how to use it. Hope i can get some help here. Thanks.

freyr said...

Norman,

First, download the 3rd patch located at http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20080728-1.patch
Put it in the folder you're working in.


Now you can follow the following steps :

patch -p0 dss-hh-20080728-1.patch
#need to answer n then y
cd DarwinStreamingSrvr6.0.3-Source
mv Install Install.orig

Then, download the install script located at http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install and put it in the folder DarwinStreamingSrvr6.0.3-Source in order to replace the old one.

chmod +x Install
./Buildit
sudo ./Install

Then you have to open your browser and go to http://localhost:1220 to check if everything is OK

Hope this helps

Norman said...

hi..i'm still having problem with the 3rd patch as when i'm trying to patch it nothing happen.

>> norman@norman-desktop:~$ patch -p0 dss-hh-20080728-1.patch

after i enter it,nothing happen. Is it i have to wait for certain time or there is a problem?

Thank you.
Norman

freyr said...

Hi,

@Norman

try to enter : #need to answer n then y after you apply the 3rd patch

Norman said...

thanks..i have one more question. if i reboot the pc,do i have to restart the server manually?


thank you.

Norman said...

how to boot up server after i reboot my pc? how to make it automatically boot up?


Thank you.

Norman

Clayton Shepard said...

Wow, I had comment notifications turned off, so this is the first time I saw these comments. Sorry for the delay :/.

Thanks freyr and Jan for working it out and helping people. I will update the instructions.

I actually was aware that the http://xepra.net/Install patch got moved, so I re-uploaded it on the dss sourceforge site (which is where freyr found it).

There is another problem with one of the scripts I modified, which is only apparent if you do http streaming. Details can be found here.

Norman:
I think when you install it does add itself to automatic startup, but that should be easy to check... If not then it is distribution specific on how to do this. In Ubuntu you can find more info by opening a terminal and typing "man update-rc.d". This isn't exactly a dss specific question though, and should be easily googleable.

Norman said...

I have a question, the default folder for all the sample media included with the dss is /usr/local/movies, but i have a problem to copy my own media files inside this folder because of permission denied. It stated that i'm not the owner of the folder,so can i change the directory to my own media folder?

Thanks
Norman

Clayton Shepard said...

There is a config for that somewhere, but I don't recall right off where it is. Google it.

Otherwise you can just chown or chmod the folder so you have permission to write to it...

(sudo chmod 777 /usr/local/movies or sudo chown user /usr/local/movies)

Norman said...

hi..i still have a slight problem to stream my own video from my other pc. i'm using vlc to stream video from the server but i cant stream my own added video. the error showed it could not connect to the file and could not create access. i have checked all sample the owner is qtss but my own video is under my name. So do i have to change the owner of the video? How?

Thank you
Norman

freyr said...

@norman

Hi,

For the videos you just added, do :

chown qtss (your video file)
chgrp qtss (your video file)

You may have to login as root to execute the commands above

Norman said...

Thanx mate. i have another question, is there really necessary to hinting video for streaming? do u know any freeware i can use to hinting video?



Regards,
Norman

Drew said...

Awesome Tutorial! Just one problem...

I am running DSS on EC2 (Ubuntu)

Everything is set up and running - but...

My remote stream encoder (Orban Opticodec) can never connect! I have other DSS running on Linux servers from other vendors, but I can't get my stream encoder to negotiate and connect at all :(

Any ideas for EC2? I have a Wowza Server running perfectly there..

bXn said...
This comment has been removed by the author.
bXn said...

Hi !
I did a successfull (at least it looks like ;o) ) installation on Debian.
Provided sample files are correctly streamed using VLC or Quick Time Player.
Now, I try to setup broadcast input coming from an Envivio encoder.

I did drop the SDP file (describing the input session generated by the encoder) in /usr/local/movies.
Using VLC or QuickTime to access those streams through DSS is strange, the RTSP requests/answers are correct but no RTP streams are sent from DSS, so I can't get any audio/video.

bXn said...

Everything is now ok on my configuration, the multicast input flow was not recognized by DSS because of the ip routing table.

The following command :

" route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0"

Barbatov said...

I installed DSS 6.0.3 on ubuntu 8.0.4 but when i tried to test the server from the browser url: localhost:1220 ,i found this error: Server is Not Running
The server is currently not running.
Please start it before attempting to administer it.
and tried to start it from usr/local/sbin#streamingadminserver.pl, i found this error:Failed to start Streaming Admin Server.
Port 1220 is in use by another process.
The Streaming Admin Server may already be running.
tried to check the port by:lsof -i
there is no program using it except streaming server.
please help?

Jigisha said...

Hi.
Thanks a lot to all of .Reading this, I could compile and install dss on linux RHEL4.You guys are doing wonders.Thanks again.

Rich G said...

Awesome. Simply awesome.

It worked perfectly on a 64-bit debian machine and thanks to this article i've got DSS installed and working!!

I had a few issues with firewalls and RTSP at the hosting centre but that's another story!

thanks clayton - you're an absolute superstar!

Clive said...

Hey Clayton. Thanks for the step-thru. It worked first time!

One question that I have though... for some reason, when I reboot the server, DSS does not start automatically. How would I set it to do this?

Clive said...

Any ideas Clayton?

rince said...

Works like a charm on 9.10 :) thx!

andy said...

Web casting, or broadcasting over the internet, is a media file (audio-video mostly) distributed over the internet using streaming media technology. Streaming implies media played as a continuous stream and received real time by the browser (end user). Streaming technology enables a single content source to be distributed to many simultaneous viewers. Streaming video bandwidth is typically calculated in gigabytes of data transferred. It is important to estimate how many viewers you can reach, for example in a live webcast, given your bandwidth constraints or conversely, if you are expecting a certain audience size, what bandwidth resources you need to deploy.

To estimate how many viewers you can reach during a webcast, consider some parlance:
One viewer: 1 click of a video player button at one location logged on
One viewer hour: 1 viewer connected for 1 hour
100 viewer hours: 100 viewers connected for 1 hour…

Typically webcasts will be offered at different bit rates or quality levels corresponding to different user’s internet connection speeds. Bit rate implies the rate at which bits (basic data units) are transferred. It denotes how much data is transmitted in a given amount of time. (bps / Kbps / Mbps…). Quality improves as more bits are used for each second of the playback. Video of 3000 Kbps will look better than one of say 1000Kbps. This is just like quality of a image is represented in resolution, for video (or audio) it is measured by the bit rate.

roman said...

Thank you very much for this great script. I finally managed to get DSS working on my x86_64!!!

Great job!

Best wishes,

Roman

travis said...

Script still works good on karmic 32-bit. Thanks!

pjohan said...
This comment has been removed by the author.
pjohan said...

Thanks for this instructions, finally made it possible for me to install Darwin since I could not find the old builds any more...

Jay said...

I just installed Darwin Streaming Server 6.0.3 onto a Ubuntu box and everything is working great. I do however have one problem that causes a headache every time I reboot the box. Upon bootup the Darwin Admin interface doesn’t know its own domain name. It thinks it is called localhost instead of stream01.domain.com. This causes a problem because I cannot stream to the server unless I stream a file from the server first. Once I stream a file from it (for example sample.mov) and hit refresh the names goes from localhost to stream01.domain.com. I can then stream to it without any problems. Please help!

Brian said...

Hey there,

I've been running all over the internet trying to get this to work...and it isn't :(. I'm running Ubuntu 10.04. Between editing the scripts, changing passwords, and moving files, I've gotten to the point where the web admin panel seems to work, it sees my clients connecting, but no files are ever streamed. If you have any ideas, or if I can provide any more information, that would be great. Thanks

Jay said...

Brian: Everything I have ever seen says Darwin is possible, but I have yet to actually hear someone say they did it AND IT WORKS, yet alone show how to make it work. I was screwing around with WMP, Darwin and Flash and decided to go with Flash. It is easy to install (on Ubuntu) and for less then 10 users, it is free.

Graham said...

Thank you, Thank you, Thank you.

I have been playing around with this for 2 days before I came across your post. Everything has worked fine. I'm also running the new Ubuntu 10.10 Server version and it works perfectly.

Thanks again

Aivar said...
This comment has been removed by the author.
ale said...

Hello,
After installation I have a problem:
Connect Failed: Connection refused
(server is starting)
(DarwinStreamingServer is not in my filesystem)

I notice a problem during the script execution in console output
after

copying DarwinStreamingServer to /usr/local/sbin/DarwinStreamingServer

...
"DarwinStreamingServer": File or directory does not exist

My question is where should be the file DarwinStreamingServer?
From where it should be copied?
(I can't find it anywhere)

Can you help me?
Thank you
ale

ale said...
This comment has been removed by the author.
Diego Passos said...

Have you tried in Ubuntu 12.04 X86_64? Do i need use old gcc (3.3)?

Clayton Shepard said...

@Diego

This post is 4 years old... and I haven't touched Darwin since I wrote it ;). So I really have no idea, sorry!

Good luck though. If you do get it to work perhaps you can report back =)