|
|
|
Design and Implementation of a Distributed Multimedia Streaming Server
based on NMM
Sorry, the server is not running at the moment. Please try again later.
Motivation
The full-featured multimedia middleware NMM is used to design and
implement a distributed streaming server. Using NMM, all components
can be distributed across the network. First, different types of
sources on different hosts can be employed. Then, you can distribute
the most compute intensive tasks of a streaming server, such as
transcoding of media streams to different formats for different client
devices. Finally, the streaming tasks can also be distributed in order
to increase the overall networking bandwidth or the number of
clients. In addition, the advanced middleware services of NMM greatly
help to implement such a complex application.
Features
- Full flexibility of NMM
- Arbitrary distributed sources (different TV sources, such
as DVB, file sources, camera sources, ...)
- Large number of supported codecs (MPA, MPV, H.263+, ...)
- Large number of supported standard networking technologies
and protocols: RTSP (RFC 2326), RTP (RFC 3550), unicast,
multicast, ...
- Automatic setup of streaming server from given source
using the GraphBuilder
service
of NMM
- Automatic sharing for available streams for a number of
clients using the Session
sharing service of NMM
- Distribution of workload. Since there is a limitation of
processing power on the server you can distribute compute intensive
transcoding tasks to additional hosts in the
network.
- Distribution of network load. If you serve a stream with
1 MBit, only 100 clients are able to connect to your server if it is
connected by a standard 100 MBit network card. Therefore, the NMM
streaming server allows for distributing the
streaming tasks from a common source, such as a camera, to other
hosts in the network.
- Parameterizable distribution strategies. For increasing
the overall
performance of the NMM streaming server, tasks can be distributed in
different ways. For example, the distribution can use simple
Round-Robin strategies or more advanced load balancing approaches.
- Support for most popular clients (Windows, Mac, Linux) :
Quicktime, VLC, mplayer, ...
- Easy to extend. Since the complete streaming server is
modularized it can be extended easily. For example, you can add new
codecs, network protocols, or distribution strategies very easily.
Test scenario
In the current setup, we use a Sony EVI-D100P Visca-Camera which is
connected to the input of a WinTV-PVR 350 board (IVTV). The music is
played by the same computer. The music files are taken from The WIRED CD. The TV
board produces a MPEG1 program stream with audio and video. This
stream has a bitrate of up to 400 kBit/s.
The streaming server requests an IVTVCardReadNode from the host with
the TV board and the rest of the setup is distributed to the streaming
hosts and the streaming server himself using a simple Round-Robin
strategy. Together, one computer including the TV board, two computers
as streaming hosts and one computer as the streaming server are used
in our current setup. In the logfile you
can see from which host the RTP components (NetSinkNode) are
requested.
How to test the distributed streaming
server?
If you haven't already installed one of clients mentioned above,
download and install one. All the players are for free. We
recommend to use VLC, because the streaming support is very good.
Quicktime
In Quicktime-Player select "File/Open URL in new window". In the
dialog-box enter the stream-URL
rtsp://intel4.cs.uni-sb.de:7070/ivtvatmmbox030 and press
the "OK"-Button. Some seconds later a new window with the streamed
session should appear.
VLC
In VLC-Player select "File/Open Network Stream". In the dialog-box you
have to check the select-Button next to "RTSP". In the corresponding
URL-Line enter the stream-URL
rtsp://intel4.cs.uni-sb.de:7070/ivtvatmmbox030 and press
the "OK"-Button. Some seconds later the window with the streamed
session should appear.
mplayer
If you have installed a mplayer version with streaming support just
enter mplayer
rtsp://intel4.cs.uni-sb.de:7070/ivtvatmmbox030 in a
shell. Then mplayer will start with the streamed session.
|
|
|