
The instructions have now been updated for Ubuntu 12.04 LTSMany mobile phones (not the iPhone) use the open-source RTSP protocol for media streaming which requires the installation of the Darwin package in order to provide them with multimedia web content.
This “how to” for the installation of Darwin on Ubuntu is based on articles at ubuntuforums.org and macosforge.org.
Ensure that you having the following dependencies installed:
~$ sudo apt-get install gcc g++ make patch
You can download the latest version of the Darwin server package from Apple here, or the 6.0.3 version from me here.
If you wish to download straight to your server use either:
~$ wget http://dss.macosforge.org/downloads/DarwinStreamingSrvr6.0.3-Source.tar
or:
~$ wget http://software.rachaelbond.com/DarwinStreamingSrvr6.0.3-Source.tar
To use Darwin on Ubuntu requires 2 patches and a specialized install script which have been written by Sverker Abrahamsson.
Download patch 1 from me here, patch 2 from here and the new install script from here.
Once again, if you prefer to download straight to your server use either:
~$ 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
or:
~$ wget http://software.rachaelbond.com/dss-6.0.3.patch
~$ wget http://software.rachaelbond.com/dss-hh-20080728-1.patch
Before installing Darwin create its user and group:
~$ sudo addgroup --system qtss
~$ sudo adduser --system --no-create-home --ingroup qtss qtss
Next unpack the .tar file:
~$ tar -xvf DarwinStreamingSrvr6.0.3-Source.tar
and apply the two patches:
~$ patch -p0 < dss-6.0.3.patch
~$ patch -p0 < dss-hh-20080728-1.patch
Move into the Darwin directory:
~$ cd DarwinStreamingSrvr6.0.3-Source
and delete the Install file:
~$ rm Install
Download the new Install file from either:
~$ wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install
or:
~$ wget http://software.rachaelbond.com/Install
and change its permissions:
~$ chmod +x Install
For Ubuntu 12.04 it would appear that there is a compiling problem (see Rusty’s comments below). This can be resolved by editing line 8 in Makefile.POSIX (in DarwinStreamingSrvr6.0.3-Source) and changing it from:
LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib
to:
LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib -ldl
After this Darwin can be built:
~$ ./Buildit
and install:
~$ sudo ./Install
To allow Darwin to run automatically on boot, download either:
~$ wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/darwin-streaming-server
or:
~$ wget http://software.rachaelbond.com/darwin-streaming-server
and change its permissions:
~$ chmod +x darwin-streaming-server
Move this file into /etc/init.d:
~$ sudo mv darwin-streaming-server /etc/init.d/darwin-streaming-server
and then update rc.d to autostart it:
~$ sudo update-rc.d darwin-streaming-server defaults
Darwin requires the ports TCP: 554, 1220 and UDP: 6970-6999 open in order to work.
If you are using Shorewall edit /etc/shorewall/rules and add these lines:
ACCEPT net fw tcp 554
ACCEPT net fw tcp 1220
ACCEPT net fw udp 6970:6999
Finally direct your browser to http://yourserver:1220 to check that Darwin is working and to enter your admin passwords. If your server is going to be exclusively for RTSP streaming then select port 80 for use by Darwin – otherwise leave blank as this will interfere with Apache.
You are now ready to upload .mp4 and .mov files for streaming…. however, make sure that your .mp4 files have been correctly encoded by using my “how to” here.







Comments
Hi,
Your instructions are great helpful. Thanks.
However I got a problem when doing auto start. The DSS Daemon is up by seeing in ps command. But I can’t get stream. If I manually turn on the DSS Daemon, then it works properly. Do you know why ?
Thank you for your help.
Hi Minh
It’s very difficult to diagnose other people’s problems without being in front of their computer
Assuming that you have set up the autostart correctly (following the instructions above) then maybe the Darwin error logs will give you some idea as to what is happening.
I’m glad that you found my guide useful!
Rachael
Hi Rachael. Great tutorial. I followed all the instructions but am having issues when i try to check out the server at http://localhost:1220 I get the message “The server is currently not running.
Please start it before attempting to administer it.” I ensured the server is running. Any ideas?
In the top left hand corner of the Administration screen there is a button to stop/start the server. If the server isn’t running, start it there.
Otherwise it sounds as though you might have a firewall issue, with the admin interface being unable to talk to the server. Recheck that all the correct ports have been opened.
Hope this helps,
Rachael
Thank you very much, this is one fine tutorial, very very good.
Regards
Martin
Thanks Martin! It’s nice to be appreciated
thank you so much this is really helpful!!!!!
Thanx for ur guide but i am unable to Buildit. It is giving following error:
swarnim@swarnim-pc ~/DarwinStreamingSrvr6.0.3-Source $ ./Buildit
Darwin Streaming Server
———————–
Configuring for the Linux i686 platform
Building for Linux.i686 with gcc
Building CommonUtilitiesLib for Linux.i686 with gcc
gcc -c -o atomic.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -g -Wall -O2 -I. -I.. -I../APIStubLib -I../RTPMetaInfoLib -I../APICommonCode atomic.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [atomic.o] Error 1
Building QTFileLib internal for Linux.i686 with gcc
gcc -DDSS_USE_API_CALLBACKS -c -o QTAtom.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -g -Wall -O3 -I. -I../RTPMetaInfoLib -I../OSMemoryLib -I../APIStubLib -I../CommonUtilitiesLib QTAtom.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTAtom.o] Error 1
Building StreamingServer for Linux.i686 with gcc
gcc -c -o Server.tproj/GenerateXMLPrefs.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -DDSS_USE_API_CALLBACKS -g -Wall -Wno-format-y2k -include PlatformHeader.h -O3 -I. -IQTFileLib -IOSMemoryLib -IRTSPClientLib -IAPIModules -IAPICommonCode -IAPIModules/OSMemory_Modules -IAPIModules/QTSSAccessLogModule -IAPIModules/QTSSFileModule -IAPIModules/QTSSFlowControlModule -IAPIModules/QTSSReflectorModule -IAPIModules/QTSSSvrControlModule -IAPIModules/QTSSWebDebugModule -IAPIModules/QTSSWebStatsModule -IAPIModules/QTSSAuthorizeModule -IAPIModules/QTSSPOSIXFileSysModule -IAPIModules/QTSSAdminModule -IAPIModules/QTSSMP3StreamingModule -IAPIModules/QTSSRTPFileModule -IAPIModules/QTSSAccessModule -IAPIModules/QTSSHttpFileModule -IQTFileTools/RTPFileGen.tproj -IAPIStubLib -ICommonUtilitiesLib -IRTCPUtilitiesLib -IHTTPUtilitiesLib -IRTPMetaInfoLib -IPrefsSourceLib -IServer.tproj Server.tproj/GenerateXMLPrefs.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [Server.tproj/GenerateXMLPrefs.o] Error 1
Building RefMovieModule for Linux.i686 with gcc
gcc -c -o ../OSMemory_Modules/OSMemory_Modules.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../APICommonCode -I../OSMemory_Modules -I../../APIStubLib -I../../CommonUtilitiesLib -I../../QTFileLib -I../../RTPMetaInfoLib ../OSMemory_Modules/OSMemory_Modules.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [../OSMemory_Modules/OSMemory_Modules.o] Error 1
Building DemoAuthorizationModule for Linux.i686 with gcc
gcc -c -o ../OSMemory_Modules/OSMemory_Modules.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../ -I../../APICommonCode -I../OSMemory_Modules -I../../APIStubLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib ../OSMemory_Modules/OSMemory_Modules.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [../OSMemory_Modules/OSMemory_Modules.o] Error 1
Building RawFileModule for Linux.i686 with gcc
gcc -c -o ../OSMemory_Modules/OSMemory_Modules.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../APICommonCode -I../OSMemory_Modules -I../../APIStubLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib ../OSMemory_Modules/OSMemory_Modules.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [../OSMemory_Modules/OSMemory_Modules.o] Error 1
Building SpamDefenseModule for Linux.i686 with gcc
gcc -c -o ../OSMemory_Modules/OSMemory_Modules.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../APICommonCode -I../OSMemory_Modules -I../../APIStubLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib ../OSMemory_Modules/OSMemory_Modules.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [../OSMemory_Modules/OSMemory_Modules.o] Error 1
Building HomeDirectoryModule for Linux.i686 with gcc
gcc -c -o ../OSMemory_Modules/OSMemory_Modules.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../APICommonCode -I../OSMemory_Modules -I../../APIStubLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib -I../../SafeStdLib ../OSMemory_Modules/OSMemory_Modules.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [../OSMemory_Modules/OSMemory_Modules.o] Error 1
Building StreamingProxy for Linux.i686 with gcc
gcc -o StreamingProxy get_opt.o proxy.o util.o shared_udp.o proxy_unix.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -lpthread -ldl -lstdc++ -lm -lcrypt
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [StreamingProxy] Error 1
Building qtpasswd for Linux.i686 with gcc
gcc -c -o QTSSPasswd.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -g -Wall -O3 -I. -I.. -I../CommonUtilitiesLib -I../OSMemoryLib QTSSPasswd.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTSSPasswd.o] Error 1
Building PlaylistBroadcaster for Linux.i686 with gcc
gcc -c -o BCasterTracker.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -include ../revision.h -g -Wall -D__USE_MAX_PRINTF__ -O3 -I. -I.. -I../QTFileLib -I../OSMemoryLib -I../RTSPClientLib -I../APIStubLib -I../APICommonCode -I../CommonUtilitiesLib -I../RTPMetaInfoLib BCasterTracker.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [BCasterTracker.o] Error 1
Building MP3Broadcaster for Linux.i686 with gcc
gcc -c -o BroadcasterMain.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -include ../revision.h -g -Wall -D__USE_MAX_PRINTF__ -O3 -I. -I.. -I../QTFileLib -I../OSMemoryLib -I../APIStubLib -I../APICommonCode -I../CommonUtilitiesLib -I../PlaylistBroadcaster.tproj BroadcasterMain.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [BroadcasterMain.o] Error 1
Building QTFileTools for Linux.i686 with gcc
Building QTBroadcaster for Linux.i686 with gcc
gcc -c -o QTBroadcaster.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTBroadcaster.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTBroadcaster.o] Error 1
Building QTFileInfo for Linux.i686 with gcc
gcc -c -o QTFileInfo.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTFileInfo.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTFileInfo.o] Error 1
Building QTFileTest for Linux.i686 with gcc
gcc -c -o QTFileTest.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTFileTest.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTFileTest.o] Error 1
Building QTRTPFileTest for Linux.i686 with gcc
gcc -c -o QTRTPFileTest.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTRTPFileTest.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTRTPFileTest.o] Error 1
Building QTRTPGen for Linux.i686 with gcc
gcc -c -o QTRTPGen.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTRTPGen.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTRTPGen.o] Error 1
Building QTSDPGen for Linux.i686 with gcc
gcc -c -o QTSDPGen.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTSDPGen.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTSDPGen.o] Error 1
Building QTSampleLister for Linux.i686 with gcc
gcc -c -o QTSampleLister.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTSampleLister.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTSampleLister.o] Error 1
Building QTTrackInfo for Linux.i686 with gcc
gcc -c -o QTTrackInfo.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../../PlatformHeader.h -g -Wall -O3 -I. -I../../QTFileLib -I../../CommonUtilitiesLib -I../../RTPMetaInfoLib QTTrackInfo.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [QTTrackInfo.o] Error 1
Building StreamingLoadTool for Linux.i686 with gcc
gcc -c -o StreamingLoadTool.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -include ../PlatformHeader.h -g -Wall -O3 -I. -I.. -I../OSMemoryLib -I../RTSPClientLib -I../RTCPUtilitiesLib -I../APICommonCode -I../CommonUtilitiesLib -I../PrefsSourceLib -I../APIStubLib -I../RTPMetaInfoLib StreamingLoadTool.cpp
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [StreamingLoadTool.o] Error 1
Getting the same here…
Works after:
sudo aptitude install g++
m getting error when try to execute following command:-
sudo update-rc.d darwin-streaming-server defaults
sudo: update-rc.d: command not found
what could be the reason?please suggest..
Hi James
Try:
$ sudo update-rc.d dss defaults
Rachael
Que buen post!
Felicitaciones.
Al princitpio tuve problemas por el gcc, pero se resolvió con sudo apt-get install g++
Gracias
Hi,
thanks for this post!!
I have installed DSS on Ubuntu 11.10, Oneiric.
Followed the instructions, however I get problem due to DSS [does not start].
I have rebooted ubuntu.
When I try to connect to
http://localhost:1220
I get error “Can’t connect”.
Then I execute
root@VIDEO:~# /etc/init.d/darwin-streaming-server start
nothing happens.
Then I execute
/usr/bin/perl /usr/local/sbin/streamingadminserver.pl
admin panel start working, but when I connect to http://localhost:1220 I get the only message
Server is Not Running
The server is currently not running.
Please start it before attempting to administer it.
Finally I do not know how to proceed…
root@VIDEO:~# ps aux | grep Darwin
root 2024 0.0 0.0 4444 812 pts/0 S+ 17:04 0:00 grep –color=auto Darwin
root@VIDEO:~#
root@VIDEO:~# ps axu | grep -i stream
qtss 2014 0.0 0.0 8788 3728 ? Ss 17:02 0:00 /usr/bin/perl /usr/local/sbin/streamingadminserver.pl
root 2026 0.0 0.0 4444 532 pts/0 D+ 17:05 0:00 grep –color=auto -i stream
root@VIDEO:~#
root@VIDEO:/usr/local/sbin# ls
streamingadminserver.pl StreamingServerModules
root@VIDEO:/usr/local/sbin#
I guess under /usr/local/sbin should be more files?
Do you have any ideas how to help?
Regards,
Povilas
Hi Povilas
Sorry it’s taken me so long to respond.
Try executing:
$ /etc/init.d/dss start
Rachael
I’ve got the same issue
however there is no dss in /etc/init.d/
and in /usr/local/sbin there’s no Darwin Streaming Server
You need to download the init.d file from http://software.rachaelbond.com/darwin-streaming-server
I hope that helps.
Rachael
Your instructions were AMAZING! Only a few roadblocks that I ran into but nothing a little thought fixed. I looked at a couple other instructions around the web and tried yours first. The only thing I could suggest, if I didn’t just miss it, was list of required packages to be preinstalled. However, it was very easy to determine that something didn’t work correctly. Thanks again!
Thanks Rich! It’s always nice to get good feedback
I will definitely think about adding a dependency list in the near future – but as you say, it’s all fairly self-explanatory anyway.
Rachael
Hi Rachel,
very helpful this tutorial, but I am stuck the same way as Povilas(3post above)
“Server is Not Running
The server is currently not running.
Please start it before attempting to administer it.” on the page web,
I tried what you said /etc/init.d/dss start… but no success
I dont have any dss directory…
any idea of what should I do?
Hi Guillaume
Which file did you copy into /etc/init.d/ ? Have you set the correct permissions for it etc etc?
Rachael
Well I try to follow the step,
on of them was sudo mv darwin-streaming-server /etc/init.d/darwin-streaming-server
so I hqve is on my directory I check the right of the file :
-rwxrwxr-x 1 drevlav drevlav 1888 Jun 26 2010 darwin-streaming-server
so should be ok for this part, but when I launch it I got nothing ./darwin-streaming-server start
no reaction
I m a bit lost then..
Is g++ installed? Have you run update-rc.d? When all else fails, have you tried reading the system logs/dmesg?
OK, i ll see the log, I have g++.
other tricky question..
I had a gstream server who was working, it is a rtsp server as well..
but now it does not work anymore.
when I stream localy using 127.0.0.1 it works..
when I stream using its real ip adress it does not work anymore..
does in the configuration I followed for installing the darwin server,
something would block… any idea?
thanks Guillaume
A silly question Guillaume, but…
If you can get to the web page for Darwin then it suggests that everything is working.
There is a an option on the web page to start the server. Have you tried doing that?
Rachael
Any idea what’s wrong here?
kit@slick:~/DarwinStreamingSrvr6.0.3-Source$ ./Buildit
grep: character class syntax is [[:space:]], not [:space:]
Darwin Streaming Server
———————–
Configuring for the Linux i686 platform
Building for Linux.i686 with gcc
Building CommonUtilitiesLib for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTFileLib internal for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building StreamingServer for Linux.i686 with gcc
gcc -o DarwinStreamingServer CommonUtilitiesLib/daemon.o Server.tproj/GenerateXMLPrefs.o Server.tproj/main.o Server.tproj/QTSSCallbacks.o Server.tproj/QTSSDataConverter.o Server.tproj/QTSSDictionary.o Server.tproj/QTSSErrorLogModule.o Server.tproj/QTSServer.o Server.tproj/QTSServerInterface.o Server.tproj/QTSServerPrefs.o Server.tproj/QTSSExpirationDate.o Server.tproj/QTSSFile.o Server.tproj/QTSSMessages.o Server.tproj/QTSSModule.o Server.tproj/QTSSPrefs.o Server.tproj/QTSSSocket.o Server.tproj/QTSSUserProfile.o Server.tproj/RTCPTask.o Server.tproj/RTPBandwidthTracker.o Server.tproj/RTPOverbufferWindow.o Server.tproj/RTPPacketResender.o Server.tproj/RTPSession3GPP.o Server.tproj/RTPSession.o Server.tproj/RTPSessionInterface.o Server.tproj/RTPStream3gpp.o Server.tproj/RTPStream.o Server.tproj/RTSPProtocol.o Server.tproj/RTSPRequest3GPP.o Server.tproj/RTSPRequest.o Server.tproj/RTSPRequestInterface.o Server.tproj/RTSPRequestStream.o Server.tproj/RTSPResponseStream.o Server.tproj/RTSPSession3GPP.o Server.tproj/RTSPSession.o Server.tproj/RTSPSessionInterface.o Server.tproj/RunServer.o PrefsSourceLib/FilePrefsSource.o PrefsSourceLib/XMLPrefsParser.o PrefsSourceLib/XMLParser.o OSMemoryLib/OSMemory.o RTSPClientLib/RTSPClient.o RTSPClientLib/ClientSocket.o HTTPUtilitiesLib/HTTPProtocol.o HTTPUtilitiesLib/HTTPRequest.o RTCPUtilitiesLib/RTCPAckPacket.o RTCPUtilitiesLib/RTCPAPPNADUPacket.o RTCPUtilitiesLib/RTCPAPPPacket.o RTCPUtilitiesLib/RTCPAPPQTSSPacket.o RTCPUtilitiesLib/RTCPPacket.o RTCPUtilitiesLib/RTCPSRPacket.o RTPMetaInfoLib/RTPMetaInfoPacket.o APIStubLib/QTSS_Private.o APICommonCode/QTSSModuleUtils.o APICommonCode/QTSSRollingLog.o APICommonCode/SDPSourceInfo.o APICommonCode/SourceInfo.o APICommonCode/QTAccessFile.o APICommonCode/QTSS3GPPModuleUtils.o SafeStdLib/InternalStdLib.o APIModules/QTSSAccessLogModule/QTSSAccessLogModule.o APIModules/QTSSFileModule/QTSSFileModule.o APIModules/QTSSFlowControlModule/QTSSFlowControlModule.o APIModules/QTSSReflectorModule/QTSSReflectorModule.o APIModules/QTSSReflectorModule/QTSSRelayModule.o APIModules/QTSSReflectorModule/ReflectorSession.o APIModules/QTSSReflectorModule/RelaySession.o APIModules/QTSSReflectorModule/ReflectorStream.o APIModules/QTSSReflectorModule/RCFSourceInfo.o APIModules/QTSSReflectorModule/RTSPSourceInfo.o APIModules/QTSSReflectorModule/RelayOutput.o APIModules/QTSSReflectorModule/RelaySDPSourceInfo.o APIModules/QTSSReflectorModule/RTPSessionOutput.o APIModules/QTSSReflectorModule/SequenceNumberMap.o APIModules/QTSSWebDebugModule/QTSSWebDebugModule.o APIModules/QTSSWebStatsModule/QTSSWebStatsModule.o APIModules/QTSSPOSIXFileSysModule/QTSSPosixFileSysModule.o APIModules/QTSSAdminModule/AdminElementNode.o APIModules/QTSSAdminModule/AdminQuery.o APIModules/QTSSAdminModule/QTSSAdminModule.o APIModules/QTSSMP3StreamingModule/QTSSMP3StreamingModule.o APIModules/QTSSRTPFileModule/QTSSRTPFileModule.o APIModules/QTSSRTPFileModule/RTPFileSession.o APIModules/QTSSAccessModule/QTSSAccessModule.o APIModules/QTSSHttpFileModule/QTSSHttpFileModule.o APIModules/QTSSAccessModule/AccessChecker.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -LCommonUtilitiesLib -LQTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileLib
CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset’:
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
CommonUtilitiesLib/libCommonUtilitiesLib.a(OSCodeFragment.o): In function `OSCodeFragment’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSCodeFragment.cpp:98: undefined reference to `dlopen’
CommonUtilitiesLib/libCommonUtilitiesLib.a(OSCodeFragment.o): In function `~OSCodeFragment’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSCodeFragment.cpp:118: undefined reference to `dlclose’
CommonUtilitiesLib/libCommonUtilitiesLib.a(OSCodeFragment.o): In function `OSCodeFragment::GetSymbol(char const*)’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSCodeFragment.cpp:151: undefined reference to `dlsym’
collect2: ld returned 1 exit status
make: *** [DarwinStreamingServer] Error 1
Building RefMovieModule for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building DemoAuthorizationModule for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building RawFileModule for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building SpamDefenseModule for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building HomeDirectoryModule for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building StreamingProxy for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building qtpasswd for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building PlaylistBroadcaster for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building MP3Broadcaster for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTFileTools for Linux.i686 with gcc
Building QTBroadcaster for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTFileInfo for Linux.i686 with gcc
gcc -o QTFileInfo QTFileInfo.o ../../RTPMetaInfoLib/RTPMetaInfoPacket.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -L../../CommonUtilitiesLib -L../../QTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset’:
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `MutexAttrInit’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:78: undefined reference to `pthread_mutexattr_init’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:63: undefined reference to `pthread_once’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex::RecursiveTryLock()’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:145: undefined reference to `pthread_mutex_trylock’
collect2: ld returned 1 exit status
make: *** [QTFileInfo] Error 1
Building QTFileTest for Linux.i686 with gcc
gcc -o QTFileTest QTFileTest.o ../../SafeStdLib/InternalStdLib.o ../../RTPMetaInfoLib/RTPMetaInfoPacket.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -L../../CommonUtilitiesLib -L../../QTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset’:
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `MutexAttrInit’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:78: undefined reference to `pthread_mutexattr_init’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:63: undefined reference to `pthread_once’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex::RecursiveTryLock()’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:145: undefined reference to `pthread_mutex_trylock’
collect2: ld returned 1 exit status
make: *** [QTFileTest] Error 1
Building QTRTPFileTest for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTRTPGen for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTSDPGen for Linux.i686 with gcc
make: Nothing to be done for `all’.
Building QTSampleLister for Linux.i686 with gcc
gcc -o QTSampleLister QTSampleLister.o ../../SafeStdLib/InternalStdLib.o ../../RTPMetaInfoLib/RTPMetaInfoPacket.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -L../../CommonUtilitiesLib -L../../QTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset’:
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `MutexAttrInit’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:78: undefined reference to `pthread_mutexattr_init’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:63: undefined reference to `pthread_once’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex::RecursiveTryLock()’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:145: undefined reference to `pthread_mutex_trylock’
collect2: ld returned 1 exit status
make: *** [QTSampleLister] Error 1
Building QTTrackInfo for Linux.i686 with gcc
gcc -o QTTrackInfo QTTrackInfo.o ../../SafeStdLib/InternalStdLib.o ../../RTPMetaInfoLib/RTPMetaInfoPacket.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -L../../CommonUtilitiesLib -L../../QTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset’:
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `MutexAttrInit’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:78: undefined reference to `pthread_mutexattr_init’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:63: undefined reference to `pthread_once’
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex::RecursiveTryLock()’:
/home/kit/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:145: undefined reference to `pthread_mutex_trylock’
collect2: ld returned 1 exit status
make: *** [QTTrackInfo] Error 1
Building StreamingLoadTool for Linux.i686 with gcc
make: Nothing to be done for `all’.
Hi I have been looking at your instructions I need a server that can stream live DVB-S can this system support that ?
Also want to stream live tv from tuner card is this possible
Many thanks in advance
If not can you recommend a server that will do the above mentioned it has to encode any format to mpeg 2 or .ts as the STB receiving the stream oly reads mpeg2 or .ts
Hi Martin
Darwin only serves mp4/mov format. For live TV streaming (DVB-S/DVB-T/DVB-T2) I would suggest that you have a look at MythTV for a domestic installation.
Rachael
Hello, first thanks for this great tutorial. I’ve the same problem that some users before : server is not running. I’ve checked that files were on the good place with good rights, checked dmesg but don’t find anything… When I launched /etc/init.d/darwin-streaming-server start nothing happen and the grep command doesn’t show any darwin running… Can you help me? Thanks in advance…
Hi
Go to the web interace for the server and click the “Start Server” button at the top of the page.
Rachael
Sorry but i don’t have any “start server” button on the page… I just have
“Server is Not Running
The server is currently not running.
Please start it before attempting to administer it.”
At the top left of the main screen (to the left of the status notification) there should be a button marked “Enable Server”… (My bad for saying it was marked “Start Server” earlier. Sorry!)
If the button says “Disable Server” then Darwin is running correctly and just needs to be configured through the admin interface
Hi,Rachael, I got the same issue. There is no link on the screen, except the error message:”The server is currently not running. Please start it before attempting to administer it”. When run “/etc/init.d/darwin-streaming-server start”, there is no response. When run “sudo update-rc.d darwin-streaming-server defaults”, the response is “System start/stop links for /etc/init.d/darwin-streaming-server already exist.” Could you please help?
Hi, This is Greg again. I found in “dss” under “/etc/init.d”, there is a line: “[ -x $PREFIX/sbin/DarwinStreamingServer ] || exit 0″. It seems to test if there is DarwinStreamingServer file under “/usr/local/sbin”. I do not have that file. Does that mean the build was not successful? Thanks.
Hi Greg!
There seems to be something very strange going on here – and I’m really not sure why some people are having problems when the instructions work for others.
Under /usr/local/sbin there should be the files:
DarwinStreamingServer streamingserveradmin.pl StreamingServerModules
Do you have any of those files? If not, have they been installed somewhere else??
The admin screen should look like mine at http://darwin.rachaelbond.com
Could you try the new directions, above, to see if they solve the problem?
Please let me know if this works. Thanks!
Rachael
impossible to make it work on ubuntu 12.04
did you mange to ?
I got a Connect Failed: Connexion refusée (I’m french)
and the detail :
Server Snapshot
Server: Connect Failed: Connexion refusée
Status: Started Thu 1 Jan 1970 01:00:00
Current Time On Server: Thu 1 Jan 1970 01:00:00
Up Time:
DNS Name (default): Connect Failed: Connexion refusée
Server Version: Connect Failed: Connexion refusée
Server API Version: 0.0
CPU Load: 0.00%
Current # of Connections:
Current Throughput: bps
Total Bytes Served:
Total Connections Served:
Which connection is being refused? Have you opened the correct ports in your firewall?
It would seem that some people are having problems with installing Darwin on 12.04. I’ve not performed a clean install of Precise and my server still functions after the upgrade.
However, Greg (see above) has found that there are files missing from /usr/local/sbin. Why this is happening I have absolutely no idea at the moment. However, it would appear that there may be a fix by editing Makefile.POSIX (in DarwinStreamingSrvr6.0.3-Source) and changing line 8 to read LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib -ldl
Please let me know if this fix works. Somehow or other, this “how to” seems to have become the number one search result for installing Darwin on Ubuntu and I would really like to figure out what’s happened so that everyone can benefit.
Thanks,
Rachael x
Hi, Rachael, I found the build of Darwin server on ubuntu 12.04 failed. That is why the file “DarwinStreamingServer” was not generated. The error message is:
“CommonUtilitiesLib/OSCodeFragment.cpp:98: undefined reference to `dlopen’”
“CommonUtilitiesLib/OSCodeFragment.cpp:118: undefined reference to `dlclose’”
“CommonUtilitiesLib/OSCodeFragment.cpp:118: undefined reference to `dlclose’”
I have not found solution yet.
Figured it out: In Makefile.POSIX (in DarwinStreamingSrvr6.0.3-Source) change line 8 from:
LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib
to
LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib -ldl
Seems something is interfering with the dl library, and if you load it last, it will build on 12.04
That’s brilliant!
I’d come to the conclusion that quite obviously something had changed with 12.04, but it wasn’t clear from the errors people have been reporting exactly what it was since the build had to have been largely successful for an error page to be displayed. Unfortunately, I’ve not had the time to debug the install myself.
I think you’ve just saved everyone a lot of heartache.
Thanks so much.
I’m glad that my zipped version helped solve the problem
I have updated the instructions accordingly
Rachael
Rachael, when using your zip’ed version of the built DarwinStreamingServer, everything works. Seems to be incompatibility with a library on Ubuntu 12.04. I read that the -ldl flag needs to be the very last one to avoid problems, and if I manually change that and manually run it outside of Buildit, it will build without error.
gcc -o DarwinStreamingServer CommonUtilitiesLib/daemon.o Server.tproj/GenerateXMLPrefs.o Server.tproj/main.o Server.tproj/QTSSCallbacks.o Server.tproj/QTSSDataConverter.o Server.tproj/QTSSDictionary.o Server.tproj/QTSSErrorLogModule.o Server.tproj/QTSServer.o Server.tproj/QTSServerInterface.o Server.tproj/QTSServerPrefs.o Server.tproj/QTSSExpirationDate.o Server.tproj/QTSSFile.o Server.tproj/QTSSMessages.o Server.tproj/QTSSModule.o Server.tproj/QTSSPrefs.o Server.tproj/QTSSSocket.o Server.tproj/QTSSUserProfile.o Server.tproj/RTCPTask.o Server.tproj/RTPBandwidthTracker.o Server.tproj/RTPOverbufferWindow.o Server.tproj/RTPPacketResender.o Server.tproj/RTPSession3GPP.o Server.tproj/RTPSession.o Server.tproj/RTPSessionInterface.o Server.tproj/RTPStream3gpp.o Server.tproj/RTPStream.o Server.tproj/RTSPProtocol.o Server.tproj/RTSPRequest3GPP.o Server.tproj/RTSPRequest.o Server.tproj/RTSPRequestInterface.o Server.tproj/RTSPRequestStream.o Server.tproj/RTSPResponseStream.o Server.tproj/RTSPSession3GPP.o Server.tproj/RTSPSession.o Server.tproj/RTSPSessionInterface.o Server.tproj/RunServer.o PrefsSourceLib/FilePrefsSource.o PrefsSourceLib/XMLPrefsParser.o PrefsSourceLib/XMLParser.o OSMemoryLib/OSMemory.o RTSPClientLib/RTSPClient.o RTSPClientLib/ClientSocket.o HTTPUtilitiesLib/HTTPProtocol.o HTTPUtilitiesLib/HTTPRequest.o RTCPUtilitiesLib/RTCPAckPacket.o RTCPUtilitiesLib/RTCPAPPNADUPacket.o RTCPUtilitiesLib/RTCPAPPPacket.o RTCPUtilitiesLib/RTCPAPPQTSSPacket.o RTCPUtilitiesLib/RTCPPacket.o RTCPUtilitiesLib/RTCPSRPacket.o RTPMetaInfoLib/RTPMetaInfoPacket.o APIStubLib/QTSS_Private.o APICommonCode/QTSSModuleUtils.o APICommonCode/QTSSRollingLog.o APICommonCode/SDPSourceInfo.o APICommonCode/SourceInfo.o APICommonCode/QTAccessFile.o APICommonCode/QTSS3GPPModuleUtils.o SafeStdLib/InternalStdLib.o APIModules/QTSSAccessLogModule/QTSSAccessLogModule.o APIModules/QTSSFileModule/QTSSFileModule.o APIModules/QTSSFlowControlModule/QTSSFlowControlModule.o APIModules/QTSSReflectorModule/QTSSReflectorModule.o APIModules/QTSSReflectorModule/QTSSRelayModule.o APIModules/QTSSReflectorModule/ReflectorSession.o APIModules/QTSSReflectorModule/RelaySession.o APIModules/QTSSReflectorModule/ReflectorStream.o APIModules/QTSSReflectorModule/RCFSourceInfo.o APIModules/QTSSReflectorModule/RTSPSourceInfo.o APIModules/QTSSReflectorModule/RelayOutput.o APIModules/QTSSReflectorModule/RelaySDPSourceInfo.o APIModules/QTSSReflectorModule/RTPSessionOutput.o APIModules/QTSSReflectorModule/SequenceNumberMap.o APIModules/QTSSWebDebugModule/QTSSWebDebugModule.o APIModules/QTSSWebStatsModule/QTSSWebStatsModule.o APIModules/QTSSPOSIXFileSysModule/QTSSPosixFileSysModule.o APIModules/QTSSAdminModule/AdminElementNode.o APIModules/QTSSAdminModule/AdminQuery.o APIModules/QTSSAdminModule/QTSSAdminModule.o APIModules/QTSSMP3StreamingModule/QTSSMP3StreamingModule.o APIModules/QTSSRTPFileModule/QTSSRTPFileModule.o APIModules/QTSSRTPFileModule/RTPFileSession.o APIModules/QTSSAccessModule/QTSSAccessModule.o APIModules/QTSSHttpFileModule/QTSSHttpFileModule.o APIModules/QTSSAccessModule/AccessChecker.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -fPIC -LCommonUtilitiesLib -LQTFileLib -lpthread -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileLib -ldl
Wooo-Hooo!!! Thanks Rusty
I was going to try installing a fresh copy on 12.04 this weekend to figure out what was happening, but if this dirty fix works then I guess I can live with that for the moment.
Thanks for letting me know.
Rachael
Any updates on making it work under 12.04?
Thanks
See the posts above Krishnan
Rachael
Thank you! You are the best
Awwww…. shucks! Guess the instructions worked for you then
Hi Rachael,
Thank you for the great post. I had many bugs before re-installing dss using your tutorial here.
One question though: Any suggestions to how i could benchmark/stress test my dss server?
Hi Aymen
I’m glad the installation went well for you
The only way I can think of to stress test the installation would be to write a shell script to use VLC to open up as many simultaneous links to the server as possible. You can find a list of VLC command-line instructions here: wiki.videolan.org.
I hope this helps,
Rachael
Followed your excellent instructions. Glitch on the first pass, but ok on the second try. Works like a dream. Thank you very much for sharing this. It is greatly appreciated.
A pleasure Glen! It’s always good to know when my how-to’s have helped people.