Proprietary UMS streaming protocol is based on Microsoft DirectShow, and therefore, UMS protocol is codec-independent. UMS protocol realizes a distributed DirectShow graph where source filter resides on the server computer and renderer filter resides on the player computer; a corresponding DirectShow decoder needs to be installed at the player computer/device. Supported file container formats: MP4, ASF, AVI, MKV, MPEG, WMV, FLV, Ogg, MP3, 3GP, MOV, other containers. With regards to live video, Unreal Media Server acts as universal transmuxer: it receives live streams multiplexed in different protocols/formats, demuxes the actual elementary streams from these containers, and muxes it for specific player delivery. For example, it can ingest a live RTSP stream from IP camera and send it to WebRTC players; at the same time re-mux it into RTMP/FLV protocol/format for delivery to Adobe Flash Player; at the same time re-mux it to video/mp4 segments for delivery via WebSocket protocol to HTML5 MSE players in web browsers; at the same time re-mux it to MPEG2-TS for delivery to Set-Top box, and at the same time send it to iOS devices with HLS protocol. Unreal Media Server is known for low latency live streaming; with UMS, WebRTC, WebSocket-video/mp4, RTMP and MPEG2-TS protocols latencies of 0.2–2 seconds can be achieved when streaming over the Internet; with Apple HLS the latency can be as low as 3 seconds.
History
A first version of Unreal Media Server, released in October 2003, supported proprietary UMS protocol only. At that time this was the only server capable of streaming AVI files without transcoding; the first version was completely free. In the next versions additional streaming protocols such as MS-WMSP and RTMP were added. Also, a free version introduced a limit of 15 concurrent connections and a commercial version was offered for purchase. Before version 9.0 the Server accepted live streams from proprietary encoder named Unreal Live Server only. With version 9.0 the ability of ingesting of RTSP, MPEG2-TS and MMS live streams was introduced, to support industry standard live encoders such as IP network cameras, Windows Media Encoder etc.; version 10.0 added support for Flash encoders such as FMLE. Version 10.5 added support for adaptive bitrate streaming; also, limit of concurrent connections in a free version was reduced to 10 connections. Version 11.0 added time-shifted playback for live broadcasts, for up to 12 hours back from real-time. Version 11.5 added "live playlist" feature allowing server-side channel switching and ad insertion. Version 12.0 added streaming via WebSockets to HTML5