aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 5da6d9add1ac23449aae4f7076cc427718747095 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
A python3-based HTTP 1.1 server for ingesting and serving DASH media streams.

Alpha quality, use at your own risk.

To run, simply execute the shipped dash_server.py file with a Python 3
interpreter. No dependencies beyond the standard library are neded. The
executable takes on mandatory parameter, which is the path to the directory to
which the DASH media files shall be written.

The server processes incoming HTTP GET, PUT and POST requests. PUT and POST are
treated identically - request body is written into a file inside the media
directory, with the name equal to decoded request target. For requests using
chunked transfer encoding, the body shall also be temporarily cached in memory
and will be available to incoming GET requests while it is being received.
To GET requests the server will serve either the accordingly-named file from the
media directory or the aforementioned cache entry.

The server is written to be as simple as possible and is intended to be deployed
as a backend behind a gateway HTTP server such as nginx (sample config is
provided in nginx_config). The gateway would typically handle client
authentication, serving the non-DASH and finalized DASH media files.