|
Networking.
Unreal Media Server is designed to stream live and recorded media over IP networks.
The server's native streaming protocol is our proprietary UMS protocol.
UMS is a DirectShow-based, codec-independent streaming protocol that can be realized
in unicast mode over TCP, RTP(UDP) and HTTP(S) transports, and in multicast mode over RTP(UDP) transport.
Unreal Streaming Media Player can be used on Windows OS to play unicast and multicast streams sent with UMS
protocol, enabling low latency, user authentication and stream protection.
In addition to UMS protocol, Unreal Media Server supports RTMP protocol for live streams, to play with Flash
player on any OS; and also supports MMS-H (MMS over HTTP) protocol for both live
and recorded media, to play with Windows Media Player, Silverlight, VLC and other
MMS-capable players on any OS.
|
|
All players connect to media server's TCP port 5119; this port can be
configured. The only exception is HTTP(S) delivery which works via IIS web
server running our UHttpProxy extension. Players using HTTP(S) delivery should
connect to whatever port IIS is configured to listen on; the default
HTTP(S) ports are 80/443. UhttpProxy simply relays the connection to local Media Server via UMS-TCP Unicast.
After the TCP connection has been established, the server will send streaming content using the protocol specified
in the request: it will use RTMP for Flash player connections, MMS for Windows Media Player connections, and
either UMS-TCP or UMS-RTP(UDP) for Unreal Streaming Media Player connections.
Unreal Live Server is a live media encoder that captures live audio/video, encodes it,
packages it as a UMS stream and sends it over TCP or RTP(UDP) unicast to Unreal Media Server for
subsequent delivery to media players.
The TCP connection can be initiated by Live Server ("push" mode) via configurable Media
Server's TCP port (default is 5130), or by Media Server ("pull" mode) via Live Server's TCP port
5120. Therefore, Live Server computers can reside on different networks relative to
Media Server, behind NAT firewalls and public routers.
Media Server can connect to another Media Server to receive live media, which allows minimizing traffic
over low-bandwidth network segments such as Internet connection.
Multicasting.
Unreal Media Server supports simultaneous multicasting of unlimited number of
live sources and virtual folders. Multicasting is supported via UMS protocol only,
to play with Unreal Streaming Media Player or its web browser plugin.
In order not to waste bandwidth, live sources
are not multicasted when there are no active viewers. When a first viewer
connects and requests Multicast delivery, the server will start multicasting.
When a last viewer disconnects, multicasting is stopped. When
multicasting files, administrator of Media Server must manually start and
stop multicasting of virtual folder, using server configuration program.
When requesting multicast delivery, a player connects to the server on
UMS-TCP. The server authorizes this player and sends him multicast group
information for this particular broadcast. The player joins this multicast
group and receives media packets via UMS-RTP multicast.
Unfortunately, multicasting will not work via the Internet in most cases, since
public ISPs don't allow their routers multicast delivery.
Streaming with MMS protocol.
Unreal Media Server supports Unicast streaming with MMS (Microsoft Media
Server) over HTTP protocol. Live and recorded audio/video is being
encapsulated into ASF container on the fly and sent as HTTP payload to any
player on any OS that is capable of playing MMS streams. Various players on
Windows, MAC, Linux, Mobile devices are supported, such as Windows Media
Player, QuickTime Player, VLC, MPlayer.
Streaming with RTMP protocol.
Unreal Media Server supports Unicast streaming of live sources with RTMP-FLASH protocol. Live audio/video is being
encapsulated into FLV container on the fly and sent to Flash player on any OS. H264, AAC
and MP3 codecs are used by Unreal Live Server for Flash encoding.
User Authentication and access restrictions.
Configuration programs of Unreal Media Server and Unreal Live Server make it
possible to fully control access to media resources, allowing it only to
trusted parties. Administrator can make Media Server grant access to authorized
users only, and Live Server grant access to specific Media Servers only. There
are 2 types of user authentication supported by Unreal Media Server: Internal
Authentication and Session-based authentication. Every resource configured with
Media Server Configurator (all virtual folders and live broadcasts), can be
set to allow anonymous access or require one of these 2 types of
authentication. Internal authentication can be used with UMS protocol only, whereas
Session-based authentication can be used with UMS, MMS and RTMP protocols.
1. Internal Authentication
Authentication and user management is handled directly by Unreal Media Server; this
is our proprietary authentication mechanism. Users play with Unreal Streaming Media Player or its browser plugin.
Media Server administrator needs to create users on the server side.
Users can be administrated using either Media Server Configurator or Web page (Refer to
useradmin page in our sample source code). A user can belong to one of
3 user groups: Basic, Medium and Advanced. Resource that is set to use Internal
authentication, can restrict access to a specific user group. When a user tries
to access such a resource, the Streaming Media Player prompts the user to enter User
name and Password, and optionally persists these credentials on the user's computer.
User's credentials are bound to Media Server IP address, such that if the user
accesses some resource on a different Media Server, he/she will be prompted to
enter credentials again.
Security: User's credentials are encrypted with strong one-way hashing
algorithm, before they are sent on the network. These encrypted credentials are
encrypted once again with industry-strength symmetric algorithm when they are
stored on user's computer (if the user chooses to remember them locally) and on
Media Server's computer, when administrator creates users.
2. Session-based Authentication
It is to be used when a web application handles authorization by standard web methods and provides authorized
users with access to media resources. In session-based authentication Unreal Media Server
doesn't know anything about users. A web app creates a session for an authorized user. When the
session is created, Unreal Media Server has to be notified about it, and when
the session is expired, Unreal Media Server has to be called to remove it from
its list of active sessions. Also, when the web app returns HTML
page to the client, session ID needs to be appended to UMS://, MMS:// or RTMP:// links, or
"UseSessionID" method needs to be called in the client-side scripting for
embedded Unreal Streaming Media Player's browser plugin. This way, when the client sends a request for
streaming media to Unreal Media Server, the session ID will be passed along,
and Unreal Media Server will be able to recognize the user. Refer to our sample web
application for reference on session-based authentication.
© 2003-2011 Unreal Streaming Technologies. All rights reserved.
|