What is Darwin Streaming Server?

Darwin Streaming Server is the open source version of the QuickTime Streaming Server allowing you to stream hinted QuickTime, MPEG-4, and 3GPP files over the Internet via the industry standard RTP and RTSP protocols.

Q. What's new in DSS 6.0.3?

> - DSS now builds and runs 64-bit on MacOS X

> - Updates for example modules:
> - The example Authorization module has been updated.

> > Source code is available in: APIModules/QTSSDemoAuthorizationModule.bproj

> - The example Spam Defense module has been updated.

> > Source code is available in: APIModules/QTSSSpamDefenseModule.bproj

> - An example RTSP redirect module has been included

> > Source code is available in: APIModules/QTSSDemoRedirectModule.bproj
> > Example modules are installed into:
> > (MacOS X): /Library/QuickTimeStreamingServer/Modules.disabled
> > (other Unix): /usr/local/sbin/StreamingServerModules

> - OS X based user account support is added using Apple Open Directory services and includes LDAP and Active Directory user account authentication and authorization

> - Full source for the streamingloadtool the QT, MP4, and 3GPP rtsp/rtp test client.
> - Separate thread pools are used for RTSP processing and RTP processing
> - Performance is improved on OS X systems with 4 and 8 cores over previous releases.
> - Supports hinted files greater than 4GB in size.
> - The posted pre-built MacOS package runs on MacOS X 10.5 or later only
> - No build support yet for non-Mac OS X systems (open source submissions are needed to build on other platforms)
> - No longer posting pre-built install binaries for non-Mac OS X systems.
> Version 5.5.5 for Mac OS X, Linux and Windows can be downloaded from http://developer.apple.com/opensource/server/streaming/index.html

This release contains open source submissions for the following issues:

> - Fixed compilation problem on Solaris 10u3 (Stefan Parvu)
> - Fixed access log c-bytes value (Amir Wolf)
> - Fixed access log CPU utilization value
> - Fixed compilation problem on FC6 linux PPC (Matthew McGillis)
> - Fix to allow streaming of files with bad hint track references, allows compatibility with some popular encoders (Fredrik Widlund)
> - Fix StreamingProxy compilation problems for some non-MacOSX platforms
> - Added a HowTo for uninstalling DSS on a MacOS X system
> - Misc. fixes for Debian linux (Ben Humpert)
> - Fixed problem with video sync frame detection for MacOS X on Intel (Lorenzo Vicisano)

To submit your own Darwin Streaming Server modifications, please use http://dss.macosforge.org/trac/newticket

Q. Does the Darwin Streaming Server 6.0.3 install on Mac OS X 10.4 Tiger?

The posted installer will not install to 10.4. The installer binaries are built for 10.5 and will not run on older versions of the Mac OS.

Q. Can Darwin Streaming Server 6.0.3 be built on Mac OS X 10.4 Tiger?

Yes, there are some functional differences but the 6.0.3 source can be built using the buildit script as well as the installer package on Mac OS X 10.4. See the file: Documentation/DevNotes.html in the source code.

Q. What does the Darwin Streaming Server source include?

The package includes source files for a streaming server with web based administration that can serve on-disk "hinted" QuickTime, MPEG2-program streams, MPEG-4, and 3GPP files and reflect live broadcasts, as well as source for the proxy (except on Windows). See the Documentation directory included with the source for more information about the code.

Q. Where can I find information about streaming with Darwin Streaming Server (DSS)?

http://dss.macosforge.org

http://soundscreen.com/streaming

http://streaming411.com/wiki

http://streaming411.com/forums

http://lists.apple.com/mailman/listinfo/streaming-server-users

http://lists.apple.com/mailman/listinfo/streaming-server-dev

Q. What is the Darwin Streaming Server development cycle?

Darwin Streaming Server (DSS) is an ongoing project supported by Apple and the DSS the development community. Updates to the source code and pre-compiled binaries are delivered on an as needed basis. If you are interested in seeing the latest snaphshot of the codebase, visit http://dss.macosforge.org.

Q. Which CVS tag is the latest stable release

Future CVS use is under review while SVN or simple source tar postings are being evaluated.

You can download the latest Mac OS X 10.5 release from http://dss.macosforge.org

The http://developer.apple.com/opensource/server/streaming/ CVS contains software for DSS Mac OS 10.4 and other OS platforms.

The latest CVS tag is DSS_5_5_5_Release. The Darwin Streaming Server branch tag is DSS_10_4_Branch. The QuickTime Streaming Server branch tag is MacOS_10_4_Branch.

Q. What is on the CVS top of tree?

The top of tree is reserved for merging QuickTime Streaming Server development and unreleased code with Darwin Streaming Server code to create a new major release branch. Bug fixes and submissions are added to branches.

Q. I submitted a bug fix and/or feature request. When can I expect to see it incorporated into the DSS code base?

Bug fixes that have been submitted to the Darwin Streaming Server codebase are evaluated and tested by Apple prior to being incorporated into the codebase. Apple engineers make every effort to apply open source developer submitted code changes and fixes to the DSS code base where appropriate. The streaming server mailing list hosted by Apple is a forum for the community to discuss important features, bugs and deployments.

Q. My .mp4, .3gp, or .mov file won't stream. Why does the player show 415 invalid media?

The streaming server supports QuickTime Movie (MOV), MPEG-4 (MP4), and 3GPP (3GP) "hinted" files.

Hinting is a post-process that you apply to your movies to make them RTSP-streamable. You can hint them with QuickTime Pro or the hinting tool available in the MPEG4IP package.

If you don't hint your .mov's or mp4's they will still be HTTP-downloadable but it will take them some seconds to start playing. You won't need a streaming server for this, just use good old Apache.

See also http://soundscreen.com/streaming/compress_hint.html

Q. Can I stream mp3 files with DSS?

No, not by default, but the server can be configured using the experimental module "QTSSHttpFileModule" located in the modules.disabled directory. The module must be moved to the modules directory and an http_folder must be defined in the server's preference xml file.

Q. Can I http download files with DSS?

No, not by default, but the server can be configured using the experimental module "QTSSHttpFileModule" located in the modules.disabled directory. The module must be moved to the modules directory and an http_folder must be defined in the server's preference xml file.

Q. Can I configure DSS to stream live mp3 streams to simulate a radio station to connected users?

Yes. Use the MP3Broadcaster that is part of DSS to broadcast mp3 v1, v2, and v2.3 files from a server side playlist to DSS. All files must have the same sample rate.

Q. Can I configure DSS to stream live .mp4, .3gp, or .mov streams to simulate a radio or tv station to connected users?

Yes. Use the PlaylistBroadcaster that is part of DSS, to stream hinted files from a server side playlist to DSS. All video files must have the same frame size and use the same codec and all audio files must have the same sample size and use the same codec.

Q. Can I update the server side playlists while the playlist is being broadcast?

Yes. Replace the playlist file and add a playlist file using the playlist name and the extension ".updatelist" in the same directory as the playlist file.

Q. Can I see what the upcoming files are while the server side playlist is playing?

Yes. Look for the file with the extensions ".upcoming" in the directory with the playlist.

Q. Can I see the name of the current file being played by the server side playlist?

Yes. Look for a file with the extension ".current" in the directory with the playlist.

Q. Can I tell the playlist broadcaster to stop playing a playlist after 0 or more files?

Yes. Add a playlist file using the playlist name and the extension ".stoplist" in the same directory as the playlist file and it will be read at the next song and then deleted. The broadcast will stop playing at the end of the stoplist.

Q. Can I temporarily insert a set of files into the playlist while it is playing?

Yes. Add a playlist file with the playlist name and the extension ".insertlist" in the same directory as the playlist file and its list will be insert at the end of the next song and then deleted. The broadcast will revert back to the original list after playing the inserted list.

Q.Where is the streaming server's preference xml file?

OS X: /Library/QuickTimeStreaming/Config/streamingserver.xml

Windows: c:\Program Files\Darwin Streaming Server\streamingserver.xml

Unix style OS: /etc/streaming/streamingserver.xml

Q. Where are the default log, movie folder, modules, and configuration paths defined?

See the file defaultPaths.h in the source code.

Q. What codecs can I use with DSS?

Because DSS streams hinted streaming files, any file that has been successfully hinted can be used by DSS. Hinted files remove the need for the server to understand the media information of the files it streams.

Q. How do I compile on Linux?

On Unix platforms, type "./Buildit" from within the source directory.

Q. How do I create an installer directory and tar package?

On Unix platforms, type "./Buildit install". A DarwinStreamingSrvr-Platform install directory and tar file will be created.

See the file DevNotes.html file in the source code "Documentation" directory for more information.

Q. How do I compile on Windows?

DSS 5.5.5 or earlier

To build Darwin Streaming Server on Windows NT or Windows 2000, you must have a copy of Visual C++ version 6.0. There is a VC++ workspace file located inside the WinNTSupport directory that can be used to to build the server. Once the workspace is open, select Batch Build from the Build menu .

See the file DevNotes.html file in the source code "Documentation" directory for more information.

Q. Why does it take so long (a few seconds) the first time I connect to my streaming server using the QuickTime Player?

The first time the player connects to an IP address it checks the bandwidth to the server which can take a few seconds.

Q. Why does it take so long (30 seconds or more) the first time I connect to my streaming server using the QuickTime Player?

If there is a firewall or the default UDP port is unavailable the client will try alternate ports and protocols to connect to the server. This process can take up to a minute.

Q. How do I get through a firewall?

The best solution is to configure the firewall to allow streaming access minimally on port 554 and preferably with udp support on 6970-6999, and 1220 for web admin access, 8000 for mp3 streaming, and 7070 for some streaming players. When that is not possible, the QuickTime Player will automatically try to switch to the HTTP protocol to stream from the server, this sometimes works but if the standard streaming ports are completely blocked by a firewall then streaming on port 80 should be tried.

Q. How do I stream on Port 80 and have a Web server on the same system.

This is not possible without changing either DSS or the web server's port to something other than 80.

Q. How do I set up Authenticated access?

Version 6.0 and later

Turn off guest access in the server preference xml file by setting the "enable_allow_guest_default" preference to "false".

The server will authenticate users against Directory Services and qtaccess files.

Please see DSS admin guide located at http://developer.apple.com/opensource/server/streaming/qtss_admin_guide.pdf

Q. What does this error mean?

"415 - Unsupported Media Type" -- file is probably not hinted or corrupt. The server was found but the requested media couldn't be accessed.

"-3285 disconnect" error -- a firewall probably, the server was found but a network failure occured.

"-5420 connection failed" -- server not found maybe not running or the machine or network is not connected

"404 file not found" -- means a file is not found on the server or a live stream is no longer broadcasting to the server.

Q. Can I use the QuickTime logo or web badge with my server?

Guidelines for use of the QuickTime logo and web badge are available at http://developer.apple.com/softwarelicensing/agreements/quicktime.html.