NMM

Network-Integrated Multimedia Middleware



Status : Streaming

Home
News
Status
.
Network
.
QoS
.
Mobile
.
MMBox
.
LCD
.
Streaming
.
amaroK
.
Phonon
.
Video Wall
.
NMM-Oppix
.
VCORE
Download
Publications
Gallery
FAQ
People
Contact
Links

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.