EvoStream Media Server Changelog


  • Notable Bug Fixes
    • Fixed RTMPS push issue


  • Notable Bug Fixes
    • Removed Google and Facebook account login options on the UI login page to prevent unauthorized access
    • Fixed an issue where you were unable to play VOD files using aliasing in Windows
    • Restricted API’s used by angular for better UI security
    • Fixed playback of RTMP streams when the EMS is running in daemon clustered mode
    • Fixed playback in Edge where buffer clearing (which is used to maintain low latency) caused playback skipping
    • Minor UI improvements such as fixing API names in API explorer and corrected port number entry in dashboard


  • Highlights
    • HEVC/H.265 support – HLS and DASH playback
    • New Web UI – Node.js based with full access to EMS API
    • Significantly improved Browser playback latency and startup times
    • SRTP over WebRTC for iOS and Android playback
    • New Evo-Webserver based on Node.js
    • IPv6 support for all protocols
    • Integration ready player libraries for Browsers, iOS and Android
    • Direct playback via <video> tag, no player required!
    • New Raspberry-Pi hardware-enabled transcoder
    • We have an updated open-source repository for webservices.  Come check it out on Github! 
    • We also have a new document repository for easier doc access. Feel free to leave us feedback and comments in the github pages repo!
  • New Features
    • Android/iOS Peer to peer (WebRTC) playback now uses SRTP
    • HTML5 Events for easy integration of Browser Player
    • Rewritten example webservices into Javascript
    • Server-Side-Playlist support for WebRTC and Websocket/HTML playback
    • Lazy-Pull support for WebRTC and Websocket/HTML playback
    • TCP TURN now available for WebRTC connections
    • TLS encrypted ERS Communications for browser and EMS connections
    • Support for COTURN and other compatible STUN/TURN servers
    • Metadata delivery over websockets
    • Webservices has a new AmazonDashUpload plugin
  • New APIs
    • addMetadataListener – adding metadata listeners on the fly
    • listMetadataListeners – list these metadata ingestion points
    • getInboundStreamsCount – a more precise method versus GetStreamsCount
    • getLicenseId – to programatically retrieve your license id. used by the new UI
  • New Events
    • hdsChunkClosed
    • hlsChunkClosed
    • dashChunkClosed
    • webRtcServiceStarted
    • webRtcServiceStopped
  • Notable Bug Fixes
    • Log files will now roll appropriately including between runs of the EMS
    • HTTP-Proxy now properly uses “?” instead of “%3f” to separate the parameters from the URL
    • Major improvements to Websocket and WebRTC browser player
    • Proper retry of ERS connection if a disconnect occurs
    • Added an RTSP buffer variable in config.lua to prevent trimming of very large key-frames
    • Fixed FUA issue on outbound RTP/RTSP streams
    • fixed random stream name on MPEG-TS push
    • Fixed infrequent audio/video sync issue on DASH
    • Fixed processing of playlistname and chunkbasename parameters for createHLSstream command
    • Fixed to allow audio/video only HLS
    • Fixed an issue in the mp4writer where it would choke on very large files


  • Highlights
    • Introducing the EMS Android App and Library!  Stream with sub-second latency from your Android device. Since it is powered by the full EMS, you can stream to Facebook, Twitch, YouTube, Peer to peer to other phones, or to your backend that is already running the EMS!
    • EMS is now on the Azure Marketplace: Azure Marketplace
    • Fixed a nasty EWS crash caused by the logging mechanism
    • We have a new open-source repository for add on tools and webservices.  Come check it out on Github! 
    • We also have a new document repository for easier doc access. Feel free to leave us feedback and comments in the github pages repo!
    • We updated our logo in our Windows installer
  • New Features
    • The EMS can now push RTMPS to another EMS for encrypted streaming from devices running the EMS such as wearables, cameras, drones and other stream origination devices.
    • Improved the information presented in Ascii CLI interface
    • Added three new events for ServerSidePlaylists: playlistItemStart, firstPlaylistItemStart, lastPlaylistItemStart
    • Moved all MP4 atoms to before the MDAT atom for better MP4 portability
    • Metadata ingest now supports HTML posts to the same ingest port.
    • Metadata ingest can now handle recurring HTTP posts within a persistent TCP connection (to avoid disconnect/reconnect overhead for logically persistent connections)
  • Notable Bug Fixes
    • Fixed the nasty crash in the EWS related to logging
    • Fixed metadata to allow for large packets that may span HLS TS chunks
    • Revamp and fixes for sub-second HTML5 websocket delivery
    • Fixed RTMP push issue when pushing to Azure Media Services.  There is a new config value for mandating video and audio datarates to accomplish this
    • Fixed RTMP metadata issue when pushing to and Video.js
    • Added startWebrtc command into the command configuration list
    • Fixed a windows file handle leak that would occur under certain situations where the EWS gets restarted
    • Fixed an issue where removeStorage wouldn’t work on linux
    • Fixed a windows file handle leak in the EWS
    • Fixed an EMS crash when using HLS Resume
    • Fixed issue where the EMS will spike CPU to 100% when webRTC disconnects and then quickly reconnects
    • Fix allowing metadata to span multiple TS chunks for HLS out


  • Highlights
    • Peer to Peer Live Streaming with H.264/AAC. Stream from devices directly to HTML5 players!
    • Sub-Second Streaming to HTML5 Players
    • Frame-aligned Metadata Aggregation and Delivery: Location data, sensor data, images, anything!
    • HTTP Streaming Session tracking – single log event for logical HTTP streaming sessions
    • Aliasing for HTTP streams (HLS, DASH, MSS, HDS)
    • EMS is now on the Amazon Marketplace: AWS Marketplace
  • New Features
    • Peer to Peer streaming with HTML5 playback. Browser must support WebRTC and Media Source Extension (MSE)
    • WebSocket streaming to HTML5 players. Sub-Second player latency
    • Group-Name-Aliasing: Aliasing for HTTP Streams including DASH, HLS, MSS and HDS
    • Expire Period of Aliasing lets you define permanent and semi-permanent Aliases
    • You can now specify a VOD backup server. The EMS will redirect a VOD request to that backup if the file is not found locally
    • Proxy Authentication provides a way to protect your HTTP API interface with a username and password
    • Metadata aggregation and association with stream
    • Metadata delivery over HLS, RTMP, WebSocket, and HTTP
    • HLS Resume. Resume HLS streams after a source stream loss
    • Audio-Only HLS now supported
    • Internal streams are now removed from the output of commands such as listStreams, listStreamsIDs, etc.
    • Friendlier telnet/ascii interface. Just use port 1222 instead of 1112
    • HLS version upgraded to HLS v6
    • MPEG-DASH working with Dash.js, Bitmovin’s BitDash player and other HTML5 players
    • Smooth Streaming can now be Pushed into systems like USP
    • Akamai HD Ingest Points supported
    • Limit HTTP Serving by the EWS to specific network interface
    • keepAlive in LazyPull files now causes the source stream NOT to be removed when all players disconnect
    • Set ID’s when making API calls that can be referenced in the asynchronous responses
    • HTTP ranged requests supported for MP4 and HLS playback
    • Pull RTP using a local SDP file
    • The EMS can now ingest MPEG-TS over HTTP
  • New API Functions
    • ClientsConnected: Returns the number of active streaming sessions
    • hlsResume (param of createHLSStream): Resumes an existing HLS stream
    • addGroupNameAlias, removeGroupNameAlias, listGroupNameAliases
    • uploadMedia: Allows you to upload media files via an HTTP Post
    • GenerateLazyPullFile: API to create a lazy pull file on disk
    • GenerateServerPlaylist: API to create a server-side playlist on disk
    • useSourceTS (param of pushStream): reuses the PTS and DTS of the source stream. This param can also be set globally in the config.lua file
    • disableInternalStreams (param of listStreams, listStreamsIDS): removes internal streams from the list of results. Default is 1 (true).
    • getMetadata: returns metadata for a specific stream via JSON
    • pushMetadata: push metadata to an Intel VMF writer
    • shutdownMetadata: stop a metadata push
    • commandFlags (param of transcode): allows you to provide extra flags and parameters to the transcode command
    • expirePeriod (param of addStreamAlias): allows you to define permanent and semi-permanent aliases
    • dateFolderStructure (param of record): record chunked files into a folder structure by date, time and stream name. Provides a predictable naming structure for indexing into files.
  • New Events
    • audiofeedStopped: video is still playing, but the audio data has stopped
    • videoFeedStopped: audio is still playing, but the video data has stopped
  • Notable Bug Fixes
    • A crash in Windows that would happen under certain circumstances has been fixed.
    • Stream aliasing not working in clustered/daemon mode fixed
    • RTMPS not working in clustered/daemon mode fixed
    • RTMP crash related to mp4 recording fixed
    • Streams whose localStreamName started with the same characters sometimes got confused within the API. This is fixed
    • Fixed compatibility with high-end Ericsson encoders
    • Frames are no longer lost at the beginning of server side playlist VOD items
    • Fixed DNS lookup delay when a valid network cannot resolve DNS names (offline LAN)
    • Reduced latency that was occurring during RTMP VOD playback and RTMP recording
    • Fixed issue in DASH that would occur when audio frame is received before video frame


  • Highlights
    • MPEG-DASH is now fully supported
    • Integrated HTTP Server
      • Wholly optional, but provides significantly more functionality while simplifying deployments and increasing efficiency
      • Have autonomous control over HTTP Based content with HTTP Based Stream Aliasing
      • HTTP Based Streaming Session Notifications
      • VOD File Download Notifications
    • A suite of new API functions to increase the ease of integration
  • New Features
    • HTTP Based protocol “Streaming Sessions” – track users watching your feeds HLS and Dash streams!
    • Event Logging into W3C format for production logging
    • Pull and interleave distant RTP streams using a local SDP file
    • Updated HLS version to version 3
    • MP4 Recording allows for recovery of data in the case of computer crashes
    • receiveAudio and receiveVideo RTMP invokes now implemented
    • Alias name now reported on stream events when appropriate
  • New API Functions
    • GenerateLazyPullFile allows you to create a new lazy pull file via the runtime API
    • listInboundStreams – Get info on only your source streams
    • isStreamRunning – simple way to check the status of a stream by name or id
    • listStreamNames – just get the names of the current streams
    • getStreamInfo – returns the information of just a single stream
    • getServerInfo – Get statistics about the current server
    • HTTP Server Functions
      • addGroupNameAlias, getGroupNameByAlias, removeGroupNameAlias, listGroupNameAliases, and
      • listHTTPStreamingSessions
    • Implemented optional RTP Block-size request on RTSP messages
    • Implemented forceTcp option on RTSP playback URI
    • Recording into structured time based folders using the “dateFolderStructure” parameter of the “Record” API
    • maxChunkLength parameter for HLS to prevent extra large chunks when keyframes start getting lost.
  • New Events
    • RTMP playlistItem events (firstPlaylistItemStart, playlistItemStart, lastPlaylistItemStart)
    • RecordingChunkClosed, RecordingChunkCreated, RecordingChunkError
    • HTTP Server Related Events;
      • fileDownloaded, streamingSessionStarted, streamingSessionEnded
  • Notable Bug Fixes
    • Fixed Critical RTMP Ingest Crash
    • RTSP more tolerant to variants of SDP
    • HLS m3u8 file race condition fixed
    • Fixed stream alias calls crashing EMS when aliasing is disabled
    • Fixed issue with MPEG-TS timestamp roll-overs


  • New Features
    • Server-Side Playlists
      • Ad insertion
      • Source Swapping
      • Fallback streams
      • Live Channel programming
    • Adaptive RTMP Microsoft Smooth Streaming (MSS) *Beta
    • Verimatrix DRM support
    • Full integration with Limelight Networks
    • Record in chunked MP4 files
  • Enhancements
    • Ingest points support for RTSP streams
    • Lazy pull support for RTSP clients
    • VOD support for MP4 over RTSP
    • User agent string on all RTSP requests from EMS
    • Support Elemental encoder
    • Improved Web UI
    • Improved stream queries
    • Witness file support for RTSP streams


  • New Features
    • Ingest Points – Greater security and flexibility when RTMP streams are being pushed into your EvoStream Media Server
    • Lazy Pull – Conserve bandwith by specifiying .vod files which activate a pullStream command based upon a client VOD stream request. RTMP clients only for now.
    • Pull RTSP via HTTP
    • Pull RTSP via HTTP Proxy
  • Enhancements
    • Greater support for RTSP security cameras
    • Now kill streams assigned to an edge process from the API when in Linux daemon mode
    • Improved the stability and robustness of the Transcode API command
    • MP4 file recording performance improvements


  • New Features
    • Fully integrated transcoder. New transcode API handles edge transcoding, static overlays, stream
      cropping, etc.
    • Record chunking when recording to FLV files
    • Authentication for client RTSP PLAY stream requests
    • Support RangedStart and RangedEnd for RTSP and RTMP client requests
  • Enhancements
    • Log files now end in .log for easier reading
    • MP4 file recording improvements. Now supports AVID Symphony and it’s AMA plugin
    • Fix in event filters, they now work as expected for all sinks
    • Unique StreamID now returned in the result of listConfig


  • New Features
    • EvoStream Media Server Virtual Hosting – Run multiple instances of the EvoStream Media Server on a single computer, with each instance using a separate Virtual Host/IP Address, and using only one
    • Introduction of network based licenses. No more locking licenses to MAC addresses! Original/offline
      liceses are still available.
    • Recording as MP4 is now in full release and production ready
    • Full installers are provided for Linux: YUM and APT are supported
      • Installs Apache to handle distribution of HLS, HDS and HTTP progressive file downloads
      • Installs AVConv (fork of FFMPEG) to handle edge transcoding
    • Store VOD files in multiple locations
      • VOD files may now be kept in read-only repositories (seek, meta and stats files can be written to a separate, writable, directory)
    • Get statistics on your VOD files. The EvoStream Media Server records the number of times accessed and number of bytes transferred from each VOD file.
    • Custom-Timer APIs and Event Notifications to increase the flexibility of EvoStream Media Server Web Services
  • Enhancements
    • Increased the open-file limit on windows to the max of 2048 (more concurrent VOD streams on windows)
    • PHP API wrapper now includes all API functions
    • Better documentation of Event Notifications
  • Additional Protocol Support
    • RTSP over HTTP, with or without an HTTP proxy
    • Speex passthrough for RTMP
    • Adaptive SPS/PPS – supports streams which change SPS and PPS values on the fly
    • Source Specific Mulitcast (SSM) support
  • Misc Changes
    • Deprecated the EvoHTTP Server. This will be introduced again at a later date, but it is insufficient to meet enough of the demands put on it at this time. The Apache server is a part of the Linux installers
      and is recommended for serving the HLS and HDS streams created by the EvoStream Media Server.


  • Additional Protocol Support
    • RTMPT is now enabled
    • Clients can request RTSP over HTTP (improves compatibility with Blackberries and other systems)
    • Request VOD via RTSP on Windows
  • Enhancements
    • The Web User Interface is no longer a part of the basic EvoStream Media Server download. It can be
      downloaded as a separate item from
    • Various enhancements for UDP traffic on Windows
    • Improved memory usage on Windows
    • Rolling playlists for HDS
    • The EvoStream Media Server now accepts both PLAY and RECORD when accepting inbound RTSP streams
    • The EvoStream Media Server no longer stutters when closing large mp4 recordings.
    • Support added for Source Specific Multicast
  • API Modifications
    • Added the launchProcess API, which allows users to execute and monitor other applications from the
      EvoStream Media Server. This is very useful for integrating tools like FFMPEG for re-encoding and
    • removePullPushConfig command renamed to removeConfig
    • listPullPushConfig command renamed to listConfig
    • Added an RTMP Absolute timestamp option to pushStream. Enhances support for Amazon CloudFront.
    • ?forceTS option for RTSP re-introduced to maintain backwards compatibility
  • Bug Fixes
    • Various fixes for recording to MP4 files
    • Various stability fixes.


  • New Protocol Support
    • Create HTTP Dynamic
      Streaming (HDS) from any inbound stream!
    • Now support VOD requests
      from RTSP/RTP and RTSP/MPEG-TS
    • RTMPT is now enabled
    • New Ingest support for raw
  • New Event Notification system
    • HTTP posts (similar to XML or JSON RPC) dispatched for system and application events.
    • The Event Notification system allows the EvoStream Media Server to be completely customizable.
    • Script actions when a new stream is introduced to the EvoStream Media Server , or keep accurate track of
      your usage without the need to poll the system!
    • File based log of all system and application events
  • New HTTP Server allows the EvoStream Media Server to directly serve HLS and HDS streams!
    • The HTTP Server can also be used to serve VOD files through direct HTTP progressive download
    • Supports ranged requests on files.
  • Recording Improvements
    • Record streams as MP4 files
    • Record any stream as FLV
  • Added features for HLS
    • Auto HLS – Automatically create HLS from any inbound stream
    • AES encryption to secure your HLS streams!
  • H.264 B-Frames now supported
  • Inbound Stream Authentication disabled by default
  • EvoStream Media Server supports User Defined Variables in stream creation API’s


  • API Updates:
    • Record command will not
      overwrite the destination file if the parameter overwrite=0 is used
    • forceTs parameter now makes use of multiple alternatives inside transport line
    • Shorthand encoderAgent/userAgent strings available – see User’s Guide.
  • User Interface Updates:
    • Better and more descriptive
      errors for the UI
    • All streams are now listed in the UI listStreams section, instead of just those created by the UI.
  • Adjustments to RTSP to support alternatives on transport line
  • Added support for LATM in RTSP
  • You can now push RTMP streams into the EvoStream Media Server with stream type “Record”
  • Implemented maxRtmpOutBuffer for the config file, allowing users to adjust buffering to meet performance needs
  • Bug Fixes
    • Outbound Authenticated RTMP keepAlive flag now respected
    • Fixed an _error being sent regardless of transactionId on RTMP invoke


  • API Updates:
    • Added ShutdownServer API which allows users to close the EvoStream Media Server server process remotely.
      This is a two step process to eliminate accidental shutdown.
    • You can now use a localStreamName to stop an inbound stream using shutdownStream.
    • PullStream and PushStream now also return the configID for the generated stream
    • stopRecording and listRecordedStreams functions have been removed. Please use shutdownStream and
      listStreams instead.
  • Modifications to HLS to add support for iOS 5
  • Allow multiple createHLSStream commands to use the same groupName
  • Improved integration with Akamai
  • For pushStream commands, the localStreamName is now used as the default target stream name, when the
    targetStreamName is not specified.
  • Pushed streams now terminate when the source stream times out.
  • Bug Fixes:
    • Fixed a timestamp issue for RTMP video only streams
    • The keepAlive parameter was not being honored in some circumstances.
    • Fixed a problem with reading MP4 files when the sample size was greater than the chunk length for the


  • EvoStream Media Server now terminates pushed outputs when associated inbound stream closes, avoiding unwanted
    accumulation of pushed streams
  • Fixed stopRecording for TS files. Previously the file would re-record when the origin stream restarts.
  • Fixed the PHP wrapper createHLSStream::bandwidths parameter which was broken due to a missed space
  • Fixed an issue with RTSP Announce/Setup/Setup/Play interaction
  • Enabled RTMP over SSL
  • Aliases now listed in listStreams function return value


  • A New User Interface! The EvoStream Media Server now comes with a web-based user interface that can be used for
    testing or even integrated into your system.
  • Enhanced Recording. Easy to use API commands for recording your content.
  • Improved CDN Integration: Push streams to Akamai, UStream,, Edgecast, Wink, and many more!
  • Introducing Stream Aliasing, a new and easy way to protect your online content.
  • Send and receive MPEG-TS over TCP as well as UDP
  • RTMP meta-data saved to file when recording as FLV
  • Record streams as either MPEG-TS files or FLV files
  • New API functions to set limits for the bandwidth usage of the server
  • New API functions to set limits on concurrent connections to the server


Feature Additions/Improvements

  • MPEG-TS over UDP fully supported as a source
  • MPEG-TS via RTSP fully supported
  • New API functions:
    • Track and set connection limits
    • Track and set Bandwidth limits
    • View connection and bandwidth “high water marks”
    • Improved efficiency of liststreams and added a listStreamIDs function
  • Better support for embedded applications
  • Better compatibility with Flash Media Live Encoder stream naming conventions.

Minor Improvements and Fixes

  • Efficiency improvements to intra-machine clustering
  • RTMP tcURL field defaulted to source URI (compatibility)
  • Improved RTMP URI parsing to allow selecting video files in subfolders
  • Multiple minor fixes for RTSP and MPEG-TS
  • Multiple minor enhancements to HTTP Live Streaming


Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.