Is there a users forum for Unreal Media Server?
Unreal Media Server users forum
Where can I find video tutorials about Unreal Media Server?
UnrealStreaming channel on YouTube
Our "SDK and Tutorials" web page
Are there any Streaming Providers/CDNs offering hosting of
Unreal Media Server?
A monthly subscription to unlimited version of Unreal Media Server running on Windows Server 2016 is available
on Amazon EC2 Elastic Cloud - a global CDN with high bandwidth capacity;
you can stream to large Internet audiences and pay only for hours when your streaming is active.
How to play live streams on tablets / mobile phones? HLS streaming: navigate to .m3u8 file in your browser; this is a high latency streaming method.
The following methods provide low latency live streaming:
There is a number of ways to play on iOS, Android and other mobile devices.
WebRTC HTML5 player in web browsers (Chrome on Android, Safari on iOS).
Unreal HTML5 MSE player in Chrome mobile browser (Android only).
Flash-enabled browsers such as Photon Flash browser.
Play rtmp:// and ums:// links with media player app capable of playing RTMP or UMS streams.
Recommended mobile player apps: mPlayer mobile app, VLC mobile player app.
What is the exact format of rtmp:// and ums:// links for Unreal Media Server?
Refer to Installation and Configuration page.
How to play live streams in web browsers with WebRTC HTML5 player?
Make sure your live stream is encoded with H.264, VP8, VP9 video codecs and with Opus, G.711 (PCMA and PCMU) audio codecs.
On your webpage hosting WebRTC player specify an alias of live broadcast configured on the Media Server.
Specify WebRTC-UDP or WebRTC-TCP transport, whether to use a central WebRTC port and other parameters.
Supported browsers: Chrome and Firefox on Windows; Safari on iOS and Mac; Chrome on Android.
Sample web pages can be found in our
SDK package and
How to play live streams in web browsers with Unreal HTML5 MSE player?
Make sure your live stream is H.264/AAC encoded. The distance between key-frames must be 500-2000 ms.
On your webpage hosting Unreal MSE player specify an alias of live broadcast configured on the Media Server.
You can use HTTP secure streaming if Unreal Media Server has an SSL certificate configured.
Chrome, IE, Edge, Opera, Safari and Firefox browsers are supported on Windows, MAC and Android devices; iOS devices and IE on Windows 7 are not supported.
Sample web pages can be found in our
SDK package and
What are the differences between WebRTC HTML5 player and Unreal HTML5 MSE player?
Different media encodings, as described in previous answers.
Different streaming protocols: fragmented mp4 over WebSocket for MSE player; SRTP for WebRTC player.
WebRTC player is supported on any OS and mobile device, while MSE player doesn't run on iOS (no MSE support on iOS).
MSE player supports pause, timeshift and server side playlist functionality, while WebRTC player does not support these features.
WebRTC player supports UDP and TCP streaming, while MSE player is TCP (HTTP-based WebSocket) only.
Refer to our Architecture page for more information.
How to play with Flash Player?
Make sure content encoding is H.264/AAC/MP3. Download our Flash Player and host it on your website. You can also use any other
Flash player such as JW player, Flowplayer etc. Provide html page
hosting the player. In this page, supply RTMP link that points to live
broadcast or file.
For example, if your Media Server is on 192.168.0.100, and you have a live
broadcast with alias "webcam", the link looks like
rtmp://192.168.0.100:5119/live/webcam. For file "test.mp4", residing in "mediaroot" virtual folder,
the link looks like rtmp://192.168.0.100:5119/vod/mediaroot/test.mp4.
Sample pages can be found in our
SDK package and
How to play with Windows Media Player?
Use menu item File->Open URL. Type mms link referring to live broadcast or file
configured on Media Server. Note that the content encoding must be WMV/MPEG-4/WMA/MP3.
For example, right after the installation of Media
Server you can type
If you have a live broadcast with alias "webcam", you need to type
When playing remotely, you need to specify IP address of server machine:
How to play on iOS and Android devices with mPlayer mobile app?
The mPlayer mobile app
can play live and on demand streams from Unreal Media Server using RTMP and UMS-TCP unicast protocols.
The content encoding must be H.264/AVC1 for video and AAC/MP3 for audio.
Specify rtmp:// or ums:// links to play. Note that ums:// links for this player must have all forward slashes
instead of backslashes. Working example from our demo server: ums://tcp:220.127.116.11:80/um400
Streaming or transcoding is not working when server runs on Windows Server 2008/12/16.
Windows Server 2008/2012/2016 may not have DirectShow runtime enabled. You need to enable "Desktop Experience" feature on 2008/2012 server, or "Media Foundation" feature on 2016 server.
For transcoding with Unreal Live Server you may need to install desktop experience decoder update (KB2483177).
What are UMS streaming protocol advantages and what players can play it?
Support for low latency, near real-time live streams
Support for end-to-end streaming over UDP
Built-in user authentication (use internal authentication for that)
Ability to encrypt the streaming channel (use UMS-HTTPS delivery for that)
Support for multicast streaming
Codec independence: content can be encoded with any codec
Windows OS: play with our Streaming Media Player or its browser plugin.
Android and iOS: play with mPlayer mobile app
(this mobile player supports UMS-TCP unicast mode only, and H.264/AVC1, AAC/MP3 encoded streams only).
How can Unreal Streaming Media Player be embedded in web page?
Please install a cross-browser plugin supporting most modern browsers.
Audio-Video decoder not found when playing with Unreal Streaming Media Player?
Unreal Streaming Media Player/Browser plugin relies on decoders (codecs) that are installed on your system; Windows 7/8/10 comes with
built-in decoders for most compression types. For more decoders:
install free ffdshow decoder package.
To play Opus/VP8/VP9 content published by WebRTC, install WebRTC decoders from our components page.
What kind of DRM does Unreal Media Server support for different streaming protocols?WebRTC protocol streaming to WebRTC HTML5 player: Full DRM can be achieved when using session-based user authentication.
WebSocket-video/mp4 protocol streaming to Unreal HTML5 MSE player: Full DRM can be achieved when using secure WebSockets combined with session-based user authentication.
UMS protocol streaming: Full DRM can be achieved when using HTTPS transport combined with internal or session-based user authentication.
RTMP (Flash) protocol streaming: partial DRM (authorized access) can be achieved by using session-based user authentication.
HLS streaming: Full DRM can be achieved by using AES-128 encryption and serving keys (by your own web app) via HTTPS.
What are Unreal Live Server advantages for live streaming?Near real-time streaming mode. You can use this mode for live conferencing
Ability to stream hardware-compressed content, offloading computer CPU from
encoding. If you have a capture card or device that does video encoding, the
only live encoder that would stream its content without transcoding is Unreal
Unmanned, automated operation. You configure the system and leave. No waste of
bandwidth: streaming is only active while there are viewers/recorders.
Live encoders such as FMLE/OBS push the stream regardless if anyone watches/records
the stream. This is good for broadcasting events but this is unacceptable for a system that needs to start
broadcasting anytime when somebody wants to watch/record, such as IPTV, radio,
video surveillance, digital signage apps, etc.. Unreal Live Server running as a
Windows service will start encoding and streaming when a first viewer/recorder sends
request for live video. It will stop encoding and streaming
when last viewer/recorder disconnects.
Ability to encode with user-supplied codec. Any DirectShow-friendly codec can be configured to encode live audio/video.
What are best practices for lowest latency live streaming?
Use Unreal Live Server as a live encoder.
When configuring a live source with Unreal Live Server Configurator, select Opus audio codec, VP8/VP9 video codecs and "real-time" streaming delivery mode.
Then use WebRTC streaming for browser-based playback, or play with Unreal Streaming Media Player on Windows OS.
When using H.264 video codec with any live encoder such as ffmpeg, OBS, IP camera or hardware device, make sure to disable b-frames.
For any video codec, to ensure fast player startup, set the distance between key frames to 2-3 seconds or less;
(for H.264 codec, in addition, make sure SPS-PPS nalus are appended to every key-frame).
If playing with Flash player, make sure to set buffer size to 0.
How to create live streaming on a web page that will play on any OS and device?
If latency of live stream is not important for your streaming application (IPTV, event broadcasting) then HLS may be a good solution.
Modern players such as JWPlayer and Flowplayer can play HLS in any browser on any device.
If your application needs a low latency streaming (surveillance, conferencing) then the WebRTC HTML5 player is the best solution.
Other low latency methods include: Unreal HTML5 MSE player (doesn't run on iOS); Flash Player in Flash-enabled browsers.
How to broadcast live audio/video from my iOS/Android device?
You can do it with either Unreal WebRTC publishing web page (Chrome on Android, Safari on iOS),
or with live encoder app, capable of publishing live RTMP streams. Below are some popular apps:
iOS: MyCaster; Streamsie.
Android: Broadcast Me; Larix Broadcaster.
With Media Server configuration program, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream" and select webrtc or rtmp protocol as described in the following answer.
What live encoders can push a stream to Unreal Media Server and how should they be configured?
Supported live encoders capable to push streams to Unreal Media Server:
Unreal Live Server. It connects to Unreal Media Server over UMS-TCP protocol and streams via UMS-TCP or UMS-UDP.
Create a dynamic live broadcast with Unreal Media Server configuration program.
WebRTC publishing from web browser. Supported browsers: Chrome and Firefox on Windows; Safari on iOS and Mac; Chrome on Android.
Use Unreal WebRTC publishing web page or get this page from our SDK package and host it on your website.
With Unreal Media Server configuration program, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream",
select webrtc protocol and specify a password that you will need to provide on the publishing page.
RTMP Flash software and hardware encoders, such as Adobe FMLE, Telestream Wirecast, Open Broadcaster Software, vMix, xSplit, ffmpeg, Digital Rapids TouchStream, NewTek Tricaster, Teradek VidiU, Broadcast Me mobile app and others. These encoders connect and publish RTMP streams to Unreal Media Server.
The default port for these connections is 5130; this port can be configured. Create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select rtmp:// protocol.
Select "Push" option. Specify a password for this broadcast, if authenticated publishing is needed. On the encoder panel, specify H.264 video encoding. Specify rtmp publishing URL of this broadcast.
For example, if your server machine's IP address is 192.168.1.8, the broadcast alias is "Camera8", then the rtmp publishing URL is "rtmp://192.168.1.8:5130/live/Camera8".
Refer to screenshot for FMLE and Wirecast; or to screenshot for other encoders. The stream name or stream key can be anything, for example "livestream".
If encoder interface doesn't have a separate field for stream name or stream key, then you can append it to the rtmp publishing URL, so it is "rtmp://192.168.1.8:5130/live/Camera8/livestream".
MPEG-TS software and hardware encoders. Any encoder capable of sending MPEG2-TS streams over UDP, can push a stream to Unreal Media Server.
VLC and ffmpeg are open source encoders that can do it. Configure the encoder to stream to the IP address of a computer where Unreal Media Server runs; specify any arbitrary port
which is unused on that computer. With Unreal Media Server configuration program, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream",
select mpts protocol and specify the same IP address and port that you specified for the encoder.
Supported live encoders capable to serve streams to Unreal Media Server via pull mode, where Unreal Media Server connects to the encoder:
Unreal Live Server.
Create a static live broadcast with Unreal Media Server configuration program.
RTSP software and hardware servers, cameras and encoders. With Unreal Media Server configuration program, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream",
select rtsp:// protocol and specify the RTSP URL. All major brand IP cameras, VLC, Wowza server and any other RTSP-compliant servers are supported.
MS-WMSP (MMS) software and hardware encoders. With Unreal Media Server configuration program, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream",
select mms:// protocol and specify IP Address and port of the encoder computer. Windows Media Encoder and VLC are supported. This method is intended to be used with Windows Media encoding and
Windows Media / Silverlight / Unreal players.
RTMP servers. Create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select rtmp:// protocol.
Select "Pull" option and specify rtmp URL where to pull the stream from.
HLS live streams. Create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select hls protocol.
Provide a URL of .m3u8 file.
How to publish a multi-bitrate stream to Unreal Media Server?
Use RTMP publishing encoders such as FMLE, Wirecast or ffmpeg. Refer to instructions found in the answer to previous question, with the following changes:
For multi-bitrate encoding with FMLE, select several video bitrates and add %i to stream name, for example "livestream%i".
If you are publishing 3 streams to a live broadcast named "Camera8", then you automatically have 3 aliases available for playback: "Camera8", "Camera8_2" and "Camera8_3".
For multi-bitrate encoding with Wirecast or ffmpeg, create a separate live broadcast (in Media Server configuration program) for each bitrate. Each Wirecast profile or ffmpeg session should stream
to a separate live broadcast alias.
How to push a live stream to Unreal Media Server with ffmpeg?
The best method is RTMP publishing; create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select rtmp:// protocol. Select "Push" option.
Below are ffmpeg command line examples for pushing a stream to broadcast "mycam" on the server at 192.168.1.8:
Publishing a file without transcoding:
ffmpeg -re -i file.mp4 -acodec copy -vcodec copy -f flv rtmp://192.168.1.8:5130/live/mycam/livestream
Publishing a live stream from laptop's built-in camera and mic with low-latency optimized encoding:
ffmpeg -f dshow -video_size 1280x720 -framerate 30 -i video="Integrated Camera":audio="Microphone Array (Realtek High Definition Audio)" -vf format=yuv420p -max_delay 0 -flags:v +global_header -bsf:v "dump_extra=freq=keyframe" -c:v libx264 -preset veryfast -bf 0 -b:v 1500k -x264-params keyint=30:rc_lookahead=1 -c:a aac -b:a 128k -ar 44100 -f flv rtmp://192.168.1.8:5130/live/mycam/livestream
Another method is MPEG2-TS broadcasting; create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select mpts protocol.
Below is ffmpeg command line example for broadcasting a stream to 192.168.1.8:1234
Publishing a live stream from laptop's built-in camera and mic with low-latency optimized encoding:
ffmpeg -f dshow -video_size 1280x720 -framerate 30 -i video="Integrated Camera":audio="Microphone Array (Realtek High Definition Audio)" -vf format=yuv420p -max_delay 0 -flags:v +global_header -bsf:v "dump_extra=freq=keyframe" -c:v libx264 -preset veryfast -bf 0 -b:v 1500k -x264-params keyint=30:rc_lookahead=1 -c:a aac -b:a 128k -ar 44100 -f mpegts udp://192.168.1.8:1234
With this method you can also push live stream to Unreal Live Server, if audio or video transcoding is needed. You will also need to use our MPEG2-TS/HLS DirectShow source filter to ingest the stream to Unreal Live Server.
Can Unreal Media Server transcode live streams published by WebRTC?
Unreal Media Server never decodes or transcodes streams received from any live encoder, including WebRTC. If you need transcoding, use Unreal Live Server combined with our DirectShow source filters.
For example, if your WebRTC webpage pushes H.264/Opus stream, you can use Unreal Live Server and our WebRTC DirectShow source filter to transcode Opus to AAC audio while keeping original H.264 video (you also need an Opus decoder for that, which can be found at the above link).
Then you can push that transcoded stream to Unreal Media Server for delivery to AAC compliant players. Vice versa, AAC streams coming from RTMP encoders, can be transcoded to Opus audio with Unreal Live Server and our RTMP DirectShow source filter, for delivery to WebRTC players.
How does Unreal Media Server enable interoperability between WebRTC and other multimedia systems?
Unreal Media Server can receive live WebRTC streams encoded by web browsers and distribute these streams to any other player or recorder
over MPEG-TS, RTMP or HLS protocol. If transcoding is needed, Unreal Live Server can be used, to convert streams from VP8/VP9/Opus
to common H.264/AAC encoding. Vice versa, Unreal Media Server can receive streams from RTSP, RTMP and MPEG-TS cameras, servers and encoders and send these
streams to WebRTC players in web browsers. Again, Unreal Live Server can be used if transcoding is needed. Normally, only audio transcoding
between AAC and Opus is needed, as WebRTC supports commonly used H.264 video codec. Unreal Live Server supports VP8/VP9/Opus codecs to encode your live audio/video sources for WebRTC players.
Can I use Unreal Media Server for WebRTC peer-to-peer streaming?
Unreal Media Server's WebRTC implementation is NOT a peer-to-peer solution. It's a server-based solution, enabling, for example, receiving a single WebRTC stream from presenter,
and sending that same stream in real time, without transcoding, to multiple WebRTC online viewers. Thus, with Unreal Media Server you can create multi-user conferencing and video chat applications.
Specify IP address instead of domain name when possible. However, for signaling over secure websocket, you must specify a domain name, not the IP address, of the server. If domain name is used, AND the server is behind NAT router,
then you need to modify unrealwebrtcplayer.js or unrealwebrtcpublisher.js according to this forum thread.
4K or full HD video from IP cameras doesn't play in WebRTC player on mobile devices.
Most mobile devices are not powerful enough to decode such a big video resolution. There is no reason to stream 4K video from IP camera for viewing on players that have much lower video resolution.
For universal playback on all browsers and devices, make the IP camera to encode 720p video. Use higher resolutions for playback on desktops.
H.264 video in WebRTC player jumps back and forth.
WebRTC player does not support b-frames in H.264 video stream, mainly because b-frames cause higher latency playback, whereas WebRTC was designed for low lateancy streaming.
Many regular IPTV H.264 streams that play OK via HLS, will exhibit that behavior if these streams contain b-frames, which is common to H.264 High profile.
If your target audience is going to play with WebRTC player, make sure H.264 stream does not contain b-frames.
How is Unreal HTML5 MSE live streaming different from MPEG-DASH?
Unlike MPEG-DASH, Unreal Media Server uses a WebSocket protocol for live streaming to HTML5 <video> MSE element in web browsers.
This is much more efficient than fetching segments via HTTP requests per MPEG-DASH.
Also, Unreal Media Server sends segments of minimal duration, as low as 30 ms. That allows for low, sub-second latency streaming,
while MPEG-DASH, like other HTTP chunk-based live streaming protocols, cannot provide low latency live streaming.
Unreal HTML5 MSE player embedded in my webpage shows elements in wrong places.
If your webpage defines styles with css style sheets then the Unreal HTML5 MSE player element will inherit these styles and may not display certain items correctly.
In this case you need to embed the Unreal HTML5 MSE player in iframe.
So your webpage will have an iframe that refers to another webpage running the player, for example:
<iframe src="http://mywebsite/player1.html" frameborder="0" scrolling="no" width="900" height="700"></iframe>
Latency keeps growing in Unreal HTML5 MSE player.
This may happen on slower computers or if you have multiple players embedded in web page.
Refer to this thread in our forum for various techniques for fixing the problem.
Can I stream files in on-demand mode to WebRTC or Unreal HTML5 MSE player?
No, WebRTC and Unreal HTML5 MSE players are used for live broadcasts only. To stream files on-demand to HTML5 <video> tag, you don't need Unreal Media Server.
Just put your file under web server and specify reference to it in <video> source attribute.
However, you can stream files in live mode to Unreal HTML5 MSE player by creating a live broadcast of "live playlist" type and adding files to that live playlist.
Some files, encoded with incorrect timestamps of H.264 B-frames, may not play well in this mode.
What can I do with "live playlist" type of live broadcast?Server-side switching between different audio/video sources streaming to the same player; you can do it manually, programmatically (using our SDK), or based on schedule.
Make sure that your live stream never breaks, even if the camera is not available. If a camera goes down, a "standby" file of your choice will be streamed until the camera is back online.
Server-side ad insertion. Stitch advertisement videos into a live stream.
Stream a file as a live broadcast.
Stream whole folders as a live broadcast. Create your digital library streaming as a live broadcast, providing a TV-like experience. When combining with Timeshift, you also provide a trick-play functionality: pause, resume and seek in the live stream.
Live playlist should preferably contain live broadcasts and files encoded with the same codecs and encoding settings. It depends on a player if it can switch on-the-fly to a differently encoded content.
Unreal Streaming Media Player, Unreal HTML5 MSE player, MPEG2-TS players (STBs) and Flash player can switch smoothly to different encodings.
HLS players really need all items in your playlist to have absolutely same encodings.
How to play live broadcasts in time-shifted mode?
Live streaming with timeshift is supported with Unreal Streaming Media Player, Flash player (use our Flash player) and our HTML5 MSE player.
With Media Server configuration program, right-click on a live broadcast and select "Start Buffering for time-shifted playback".
It takes 15 seconds for the buffer to become active. All players playing this live broadcast will display a timeline where you can click to seek back in time,
jump to live view again, pause and resume live playback. Once you stop the buffering, the temporary buffer is still available for playback by open players only, for 24 hours.
To provide older recorded content for playback, use Unreal Archival Server that records live streams to mp4 and asf files.
How to stream via HLS (Apple Live HTTP streaming) to iOS and other HLS-enabled devices?
First of all, you need to make sure that your live encoder provides encoding compatible with HLS:
video encoding should be H.264, audio encoding should be AAC or MP3; the distance between key-frames must be no longer than 2000 msec.
With Unreal Live Server configuration program, you need to select Manual encoding, choose H.264 codec and set 2000 ms distance between key-frames.
Secondly, in addition to Unreal Media Server, you need a standard web server for HLS streaming. Any web server is OK. Configure a web folder on your web server and make sure
this folder is allowed to serve .m3u8 and .ts files. You may need to create mime type associations for these extensions: .m3u8 to application/x-mpegURL and .ts to video/MP2T
Also, you must set immediate expiration on your web folder. For IIS web server, open IIS Manager, select your web folder -> HTTP Response Headers -> Set Common Headers -> Expire Web Content Immediately.
In addition, if your .m3u8 file is going to be consumed by web players such as Flowplayer, you need to put crossdomain.xml file in your web root folder (for IIS, c:\inetpub\wwwroot)
and to enable cross-origin access (CORS) for your HLS web folder by adding "Access-Control-Allow-Origin: *" custom HTTP header.
To begin HLS, open up a "Start HLS Streaming" dialog in Unreal Media Server configurator by right-clicking on a live broadcast.
Specify path to configured web folder. Also specify the web URL of this web folder,
i.e. the URL that outside users will type in their web browsers to navigate to this web folder.
For lowest latency, specify 1 second-long .ts files and 3 .ts files to keep. Click OK.
Notice that .ts files start to generate in your web folder and also .m3u8 file appears there.
iOS users just need to navigate to this .m3u8 file with their browsers.
For example, if your web folder is named "HLS", the public IP Address of your server computer is 18.104.22.168,
and you are streaming live broadcast named "evildude", then iOS users need to navigate
their Safari browsers to http://22.214.171.124/HLS/evildude.m3u8.
It is recommended to create a RAM disk and place a web folder for HLS on that disk. That way you save your real hard disks
from heavy .ts files creation/deletion associated with HLS.
You can provide DRM for HLS streams by enabling AES-128 encryption and providing web application that
serves AES-128 key files to authorized users over HTTPS.
How to stream a file or a whole folder via HLS?
Create a live playlist (live broadcast of a type "live playlist") and add a media file or a virtual folder containing media files to that live playlist. Then follow the instructions from a previous answer.
How to create an adaptive bitrate streaming?
Unreal Media Server supports adaptive streaming for HLS, Flash and Unreal HTML5 MSE players.
So you need to publish a multi-bitrate live stream to Unreal Media Server, or have a file encoded in several versions, each one
corresponding to separate bitrate. Once live multi-bitrate is being published with FMLE, start HLS using Media Server configuration program. The .m3u8 file that is generated, contains
references to multiple bitrates, so it is ready for adaptive streaming to HLS-enabled player/device. If you publish multi-bitrate stream with Wirecast or ffmpeg, you need to create a separate live broadcast (in Media Server configuration program) for each bitrate.
In this case, start HLS for each live broadcast and then create a master .m3u8 file that contains references for individual bitrate .m3u8 files.
For adaptive RTMP, provide live broadcast aliases that receive multi-btrate streams (or alias_ variations, as described before) or file names for each bitrate, in html page hosting a capable Flash player, such as Flowplayer.
For adaptive HTML5 playback, provide a list of aliases to Unreal HTML5 MSE player.
Refer to demo pages for examples.
How can other streaming systems pull live streams from Unreal Media Server?
They can pull live streams via RTMP(Flash) and MPEG2-TS protocols.
Software such as ffmpeg, XSplit, VMix, Wowza streaming engine, and many others are supported.
Can Unreal Media Server push RTMP streams to CDNs?
No. You can use ffmpeg to pull an RTMP stream from Unreal Media Server and publish it to CDNs.
How to stream to Silverlight player via MS Smooth streaming protocol?
For this to work, you need to run IIS7 web server with Media Services extension installed.
Using IIS manager tool, create Live Smooth streaming publishing point and give it the same name
your live broadcast have. After this is done, open up a "Start MS Smooth Streaming" dialog in
Unreal Media Server configurator by right-clicking on a live broadcast. Specify URL of publishing point and click OK.
For optimal performance, make sure that live video encoding has a distance between video key-frames
in the range of 1-2 seconds. Follow this tutorial
on configuring a publishing point and providing a simple Silverlight player. This tutorial uses MS Expression Encoder to stream to publishing point;
Unreal Media Server does the same.
What IP cameras are supported?
Any RTSP IP camera can serve as a live source to Unreal Media Server; the Media Server will connect and pull RTSP stream from an IP camera.
For older IP cameras that only support JPEG, use IPCamSourceVideo component available for
download. It receives video from all major brands IP cameras but does
not support audio.
How can I stream my RTSP IP camera to multiple online HTML5/Flash/HLS viewers?
First of all, you should avoid transcoding the camera-encoded audio/video, and try to preserve the original encoding.
Unreal Media Server can ingest the RTSP stream from your IP camera and output the original hardware-encoded
content via WebRTC, WebSocket-video/mp4, RTMP/RTMPT and HLS protocols to multiple concurrent HTML5/Flash/HLS viewers.
Make sure your IP camera uses H.264 video encoding. Unfortunately, audio encoding choice depends on which web-based player you are going to use.
AAC encoding can be used for all players, except WebRTC player that needs G.711 or Opus audio.
With Media Server Configurator, create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", select rtsp:// protocol
and specify RTSP URL of your IP camera,
as well as username and password, if needed. Be sure to specify RTP transport protocol that camera supports.
Then start HLS and/or create a web page with WebRTC player or HTML5 MSE player or Flash player and host it in your web server. Sample pages can be found in our
SDK package and
How can I transcode on-the-fly MPEG-4/G.711 live stream from my RTSP IP camera to H.264/AAC live stream?
You can do it with Unreal Live Server and our RTSP DirectShow source filter, available for download.
Note that you only need to do that if your player is Flash, HTML5 MSE or HLS, because these players cannot play MPEG-4/G.711 content.
WebRTC HTML5 player can play G.711 but it needs transcoding of MPEG-4 to H.264.
To play on Windows with our Streaming Media Player, you don't need transcoding and you don't need Unreal Live Server: use Unreal Media Server directly, as described in previous answer.
Internet-based Unreal Media Server cannot connect to my LAN-based RTSP IP camera; I don't control the NAT router and unable to forward ports.
You need to run Unreal Live Server and our RTSP DirectShow source filter, available for download, on your LAN where your IP camera is located.
Using Live Server configuration program, configure a live source to pull an RTSP stream from your IP camera, and specify "stream hardware compressed content", so that the Live Server will stream out original, camera-encoded stream.
Of course, you can use software transcoding, if you need, as described in previous answer.
Now, create a dynamic live broadcast on the Internet-based Unreal Media Server. Now, using Live Server configuration program, connect your live source to this newly created dynamic live broadcast.
How can I transcode on-the-fly Windows Media encoded MMS streams and also MPEG Transport streams from encoding hardware?
Unreal Live Server has a built-in support for ingesting and transcoding MMS streams; for MPEG Transport streams you need to install our MPEG2-TS/HLS DirectShow source filter, available for download.
How to broadcast via MPEG2-TS protocol to VLC players, TV Set-Top boxes, gaming consoles, etc...?
Open up a "Start MPEG2-TS Broadcasting" dialog in Unreal Media Server configurator by right-clicking on a live broadcast.
Specify IP address of your player or device, and any unused port. Some players, like VLC, need RTP wrapping, so check "UDP over RTP" checkbox.
Most STBs, like Amino, need raw UDP MPEG2-TS, not wrapped in RTP.
With VLC player, select "Open Network Stream" and type "rtp://ip:port".
For Set-Top boxes, use Set-Top box controller to type the ip:port. Follow STB instructions on how to do that.
For example, for Amino STB that has IP address of 192.168.1.5, you need to start streaming to 192.168.1.5:1234.
Using USB keyboard attached to Amino STB, open up Opera browser inside STB, and type udp://192.168.1.5:1234.
To stream in multicast mode to multiple STBs, specify multicast address, for example 126.96.36.199:1234.
Then type igmp://188.8.131.52:1234 in Amino Opera browser's address bar.
Can I stream via MPEG2-TS over HTTP protocol?
To stream MPEG2-TS over the Internet to remote STBs, UDP delivery may not be acceptable due to packet loss, so some programs like VLC allow wrapping
MPEG2-TS in HTTP protocol. Unreal Media Server doesn't support that. However, there is an easy and efficient workaround: install additional instance of Unreal Media Server
close to your STBs, preferably in the same LAN where your STBs are located. Then create delegate live broadcast to pull a stream from your original Unreal Media Server over the Internet.
Now the new Media Server can use UDP MPEG2-TS delivery to your STBs.
Unreal Media Server segments UDP MPEG2-TS stream into 4 IP packets constructed of 7 raw MPEG2 packets.
Can it segment the stream into just 1 IP packet instead of 4?
Create DWORD registry value named MPEG2TSChunkMTUs, under HKLM\SOFTWARE\UNREAL\SERVER (or HKLM\SOFTWARE\WOW6432NODE\UNREAL\SERVER), and
set it to 1 (the valid range is 1 to 8).
I can't stream ASF/WMV files; file streaming is not working via UMS-RTP or MPEG2-TS.
Your system misses Windows Media Format runtime which is required on the server machine for these streaming modes; you need to install
latest Windows Media Player or Media Format Runtime. On Windows Server 2008/2012 you need to enable "Desktop Experience" feature.
Can I stream a file as a live source in a loop mode?
The best way to do it is to create a "live playlist" type of live broadcast and add a file to this live playlist.
Another way of doing this is to stream a file via MPEG2-TS; it will work for files containing H.264/MPEG4/AAC/MP3 content. With Media Server Configurator,
right-click on virtual folder and start MPEG2-TS broadcasting of that file, specifying 127.0.0.1:6789 as an address (6789 is an arbitrary port and can be any unused port).
Then create a live broadcast of type "Rebroadcast live WebRTC/RTMP/RTSP/MPEG2-TS/HLS/MMS stream", choose mpts as a protocol and specify the same address.
Unreal Live and Archival servers record mp4 files with "moov" atom in the end of the file.
I need to transfer the "moov" atom to the beginning, for faster delivery on YouTube.
Use the following utilities: MP4 FastStart or MP4Box to relocate the "moov" atom.
Is there any software for parsing/analyzing the Unreal Media Server log
Sawmill analytical platform
supports our log format.
StreamAnalyst is a web-based service that also
supports our log format.
Streaming from USB webcam with Unreal Live Server degrades after 30 seconds.
When streaming from USB webcams, especially webcams built-in to laptops, it's a must to install a latest webcam driver from original manufacturer.
GPU H.264 encoding is not working in Unreal Live Server.
Make sure your Intel CPU model supports QuickSync encoding and/or your NVidia graphics card model supports H.264 encoding.
Also, in most cases, you need Windows 10 / Server 2016 or newer Windows OS.
Live Server Config doesn't recognize my card, or I am able to choose 320x240 size only.
The driver of your card must fully support DirectShow and provide a full list of supported video resolutions
via appropriate DirectShow interface.
While configuring the Archival Server, I am asked to enter a password for
The Archival Server connects to the Media Server which uses this password for
authentication. You have to setup the same password on the Properties page of
Media Server Configurator.
RTP Multicast packets are sent with TTL (time to live) of 128. How can I
change the TTL?
Create DWORD registry value named TTL, under HKLM\SOFTWARE\UNREAL\SERVER (or HKLM\SOFTWARE\WOW6432NODE\UNREAL\SERVER), and
set an appropriate TTL for you.
I can't change Multicast Group IP address configured with Media Server
You need to change both IP address and port and make sure no other configured
resources use the same IP address/Port. When you install multiple Media Servers
on your LAN, make sure all resources have different multicast group addresses.
Unreal Live Server can't stream live video from computer that does not have
interactive desktop open (no user is logged in).
This can happen if the video capture card that is used has a Video Port. The
purpose of the port is to minimize CPU utilization for video capturing
rendering. The problem is that the Video Port requires interactive desktop to
work correctly. Gainward GeForce-4 graphics cards are known to require the
interactive desktop for video capturing.
© 2003-2018 Unreal Streaming Technologies. All rights reserved.