The EvoStream Web Server (EWS) provides web server functionality for HTTP streaming with the EvoStream Media Server (EMS), for servicing HTTP requests from the EMS Web Interface, for authenticating or filtering HTTP clients, and for providing SSL/TLS encryption for secure HTTP connections. The EWS provides support for ranged requests and connections over both HTTP and HTTPS. A PHP engine is also provided as part of the base package for serving PHP and Javascript websites (including the EMS Web Interface).

HTTP Media Delivery

The EWS is used mainly for the HTTP delivery of HLS, DASH and other HTTP based protocols. The core EMS engine will create the stream files on disk and place them into the EWS webroot directory. Clients then connect to the EWS to get the files via HTTP Get requests.

HTTP Streaming Sessions

The EWS is capable of tracking individual streaming sessions as clients playback the various files associated with HLS, DASH, MSS and HDS. This allows users to get a single event notification for a player streaming session. Sessions are tracked by both content (sequential downloads from same stream) origin IP address and time. If after 3 times chunkLength seconds have passed without an additional download from the origin IP on the same media stream, an end of session notification (streamingSessionEnded event) will be sent.

Group Name Aliasing

The EWS supports group name aliasing, a feature that provide a means to protect or hide streams on the HTTP protocol. There are EWS APIs to create, remove and give details on existing group name aliases. As with stream aliases, group name aliases can only be used once. To enable group name aliasing, the hasGroupNameAliases option in the EWS configuration (webconfig.lua) should be set to true. When this option is set to true, the group names can no longer be used, only aliases can be accessed by client requests.

API Proxy Authentication

Proxy authentication provides a way to secure the HTTP based EMS API. All API commands will first pass through the EWS, which will validate the provided username and password, and then pass the commands to the EMS for processing. API command return values will be routed back to the caller appropriately.

To enable Proxy Authentication you will open the webconfig.lua config file and uncomment the apiProxy section near the bottom of the file.

See apiProxy under webconfig.lua for more details.

White and Black Lists

The EWS can allow or disallow access to files based upon defined white lists or black lists.  If a whitelist is specified, access will only be granted when the HTTP request originates from an IP on the whitelist. Conversely, if a blacklist is specified, access will be granted to anyoriginating IP unless that IP appears on the blacklist.

See blacklist and whitelist under Configuration Files for more details.

EWS Specific Events

Event notifications are covered in detail elsewhere, but it is relevant to recap the specific events that are generated by the EWS.

Event Function
streamingSessionStarted Generated right after an HTTP streaming session has started.
streamingSessionEnded Generated right after an HTTP streaming session has stopped.
fileDownloaded Generated right after an HTTP file download has completed.

See Event Notification System for more details.