Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mistserver/README-short.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
MistServer is an open source multimedia multi-standard streaming server.
10 changes: 10 additions & 0 deletions mistserver/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
services:
mistserver:
image: ddvtech/mistserver_alpine_minimal
container_name: mistserver
volumes:
- /PATH/TO/CONFIG/config.json:/config.json
- /PATH/TO/VIDEOFOLDER:/video
shm_size: 2gb
network_mode: host
restart: always
59 changes: 59 additions & 0 deletions mistserver/content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# What is MistServer?

MistServer is an open source multimedia multi-standard streaming server, more information can be found at [mistserver.org](https://mistserver.org/).
Documentation can be found [here](https://docs.mistserver.org/), for a more in-depth guide on Docker visit our [Docker installation guide](https://docs.mistserver.org/mistserver/installation/docker/).
This repository is a from scratch repository containing only the MistServer binaries and their dependencies, allowing it to be a very small image.

%%LOGO%%

## Suggested use for running MistServer

MistServer is designed to work cross-platform (Linux, Windows, Mac), though, for the best performance we recommend using Linux.

### Quickstart (Linux)

```console
$ docker run \
--detach \
--mount type=bind,source=/PATH/TO/CONFIG.JSON,destination=/config.json \
--mount type=bind,source=/FOLDER/WITH/VIDEOFILES,destination=/video \
--shm-size=4g \
--network=host \
ddvtech/mistserver
```

### Parameters

**`--mount type=bind,source=/PATH/TO/CONFIG.JSON,destination=/config.json`** This setting binds a MistServer configuration file from the server to the docker. This allows you to “keep” the configurations in between several docker images. Note that the configuration file on the host needs to exist before the Docker image tries to connect to it, it cannot be created by running the Docker command. If this is the first time booting MistServer simply create it through `touch /PATH/TO/CONFIG.JSON` or make sure there is a file through any other means. The file itself can be empty when you start.

**`--mount type=bind,source=/FOLDER/WITH/VIDEOFILES,destination=/video`** This setting binds a folder on the host as /video within the Docker. Allowing you easy access by using /video as source to reach the files within. This only makes sense if you have a folder with video assets - for a system that only handles live streams you may not need to set this at all.

**`--shm-size=4g`** By default Docker does not allocate a lot of shared memory (64m by default) which MistServer relies on heavily. We recommend extending the shared memory of the Docker as well. This can be done through `--shm-size=value` where `value` is a number of bytes and must be greater than 0. The value can take an optional unit as suffix. Valid units are b (bytes), k (kilobytes), m(megabytes), or g (gigabytes). If you omit the size entirely, the system uses 64m. We recommend using 95% of RAM if your server is mostly dedicated to MistServer. If MistServer needs to share the RAM reserve at least a good portion of it. For a first run we recommend 4GB as it should be more than plenty for all first tests.

**`--network=host`** This setting makes the Docker use the server network instead of creating a separate one for the docker image. Running on host network is recommended for two reasons: First of all, as a media server, MistServer sends and receives a lot of data. The extra layer of indirection caused by running on non-host network has a measurable performance impact on data transfer. Secondly, some protocols (like WebRTC) will use arbitrary ports from the ephemeral range, and forwarding port ranges to a docker image is not easy to do in a reliable way. Running on host network makes this port forwarding unnecessary and simplifies configuration as well.

**`--publish HOST_PORT:CONTAINER_PORT`** This is used as alternative for the `--network=host` option. This will open access for others to access MistServer running on the HOST. You can bind UDP ports by adding a /udp to the CONTAINER_PORT. For ease of use we recommend setting the same ports on both ends, but that is by no means necessary. Keep in mind that the HOST_PORT is what your users will connect to and the CONTAINER_PORT is where MistServer will be listening.

### Docker compose

%%COMPOSE%%

### Windows & Mac

We recommend port publishing when using Docker images with Windows and Mac, `--network=host` is not available on these systems. MistServer's default ports are:

| Port | Protocol | Description |
|------|----------|----------------------------------------------------|
| 4242 | TCP | MistServer interface (recommended to keep private) |
| 8080 | TCP | HTTP |
| 1935 | TCP | RTMP |
| 5554 | TCP | RTSP over TCP |
| 4200 | TCP | DTSC transport between MistServer instances |
| 8889 | UDP | Haivision SRT default port for MistServer |

Should you wish to add or change ports do so accordingly. For example 443 for HTTPS.
Note that for these platforms the ephemeral range will be unavailable for use, which means protocols that rely on this such as WebRTC or RTSP over UDP will be unavailable.

### Usage

By default the MistServer portal can be accessed at [localhost:4242](http://localhost:4242)⁠.
1 change: 1 addition & 0 deletions mistserver/get-help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[Documentation](https://mistserver.org/documentation#Userdocs) | [Online Manual](https://docs.mistserver.org/) | [Docker Guide](https://docs.mistserver.org/mistserver/installation/docker/)
1 change: 1 addition & 0 deletions mistserver/github-repo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/DDVTECH/mistserver.git
18 changes: 18 additions & 0 deletions mistserver/license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
MistServer is dedicated to the public domain, which OSI formally recognises under the [Unlicense](https://opensource.org/license/unlicense). This means anyone can use MistServer for any purpose - including commercial purposes - without any restrictions.

To allow use in jurisdictions where public domain dedications are not recognized, you may instead opt to distribute MistServer under the Zero-Clause BSD license.

However, note that while **MistServer itself** is public domain software, **some of its dependencies are not**:

- `mbedtls` is used for HTTPS/encryption support, and available under the Apache 2.0 license r the GPL 2.0 license.
- `libsrtp2` is used for WebRTC support, and available under a BSD-style license.
- `usrsctp` is used for WebRTC datachannel support and available under the BSD-3-Clause license.
- `libsrt` is used for SRT support, and available under the Mozilla Public License 2.0.
- `librist` is used for RIST support, and available under the BSD 2-Clause "Simplified" License.
- The optional (disabled by default) MistInAV links against `libav`, which is available under the LGPL or GPL licenses.

Note that **all of these dependencies can be disabled** by toggling build flags - but doing so will of course limit the capabilities of the resulting software accordingly.

**The MistServer name and logo are not public domain either.** You have permission to use the MistServer name and logo to refer to any version of MistServer published by DDVTech B.V., but **not to refer to versions that contain changes not published by DDVTech B.V.**.

We hope you find MistServer useful, and **encourage mentioning you use MistServer** and/or based your products/services on MistServer wherever you consider it appropriate. This is not required, but appreciated.
4 changes: 4 additions & 0 deletions mistserver/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions mistserver/maintainer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[MistServer Development Team](https://mistserver.org/)
8 changes: 8 additions & 0 deletions mistserver/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"hub": {
"categories": [
"networking",
"web-servers"
]
}
}