Public | Automated Build

Last pushed: 10 months ago
Short Description
MistServer is a streaming media server...
Full Description

MistServer

MistServer is a streaming media server that works well in any streaming environment even on a Raspberry Pi! It bridges the gap between dedicated media servers and web servers, performing the best of both worlds when it comes to media streaming delivery.

The opensource version works best with HLS live streaming (gaming) with programs such as Open Broadcaster Software (OBS), FFsplit or Xsplit! If you want more options such as VOD, buy a pro-license.

What makes this docker build better as the official one from DDTECH/MistServer?
It's more secure and because on docker stop it will gracefully shutdown your processes. It prevents data corruption and all config-files will be saved before shutting down.

Usage

docker create --name=mistserver \   
-v /etc/localtime:/etc/localtime:ro \   
-v <path to config>:/config \   
-v <path to video>:/media \   
-p 4242:4242 -p 1935:1935 \   
-p 554:554 -p 8080:8080 \   
r0gger/mistserver

Parameters
-p 4242 - Web UI
-p 1935 - RTMP
-p 554 - RTSP
-p 8080 - HTTP / HLS
-v /etc/localhost:ro - for timesync (read-only) - optional
-v /config - config and log files
-v /media - video and audio files
-e PGID for for GroupID
-e PUID for for UserID

Build & run Free version

  1. Build: docker build -t mistserver .
  2. Run container:
    docker run -i -t -p 1935:1935 -p 4242:4242 -p 554:554 -p 8080:8080 -v /my-folder:/config -v /my-folder/video:/media /etc/localtime:/etc/localtime:ro --name mistserver mistserver:latest /sbin/my_init
  3. Login to http://mydomain.tld:4242 and enter a username/password.
  4. Click on "Enable protocols".
  5. Enter a "Human readable name" and set a thick to "Force JSON file save".

Build Pro version

  1. git clone https://github.com/R0GGER/mistserver.git mistserver-pro
  2. nano Dockerfile
  3. ENV MISTSERVER=http://url-to-pro-version.
  4. docker build -t mistserver-pro .

Setup live streaming with RTMP

  1. Go to Streams and click New stream.
  2. Stream name: obs
  3. Source: push:// or push://your-ip-address
  4. Now go to Open Broadcaster Software and enter to FMS URL: rtmp://mydomain.tld:1935/live/ and Play Path: obs.

Embed within website

<video id=autoplay width="720" height="360" class="video-js vjs-default-skin vjs-big-play-centered" controls>
  <source src="http://mydomain.tld:8080/hls/stream_name.m3u8" type="application/x-mpegURL">
</video>
<link href="//vjs.zencdn.net/5.7.1/video-js.css" rel="stylesheet">
<script src="//vjs.zencdn.net/5.7.1/video.js"></script>
<script src="//videojs.github.io/videojs-contrib-hls/node_modules/videojs-contrib-hls/dist/videojs.hls.min.js"></script>
<script>
var player = videojs('autoplay');
player.play();
</script>

Links

Website: http://mistserver.org
Github: https://github.com/DDVTECH/mistserver
Video.js HLS plugin: https://github.com/videojs/videojs-contrib-hls/releases

Docker Pull Command
Owner
r0gger
Source Repository

Comments (2)
r0gger
10 months ago

@ranvolkovich
Issue solved.

ranvolkovich
a year ago

Hey,
I done:
docker pull r0gger/mistserver
docker create --name=mistserver -v /etc/localtime:/etc/localtime:ro -v /home/ran/Programing/movies:/config -v /home/ran/Programing/movies:/media -p 4242:4242 -p 1935:1935 -p 554:554 -p 8080:8080 r0gger/mistserver

and than i docker start the container
and in the log i get:

Running /etc/my_init.d/00_regen_ssh_host_keys.sh... Running /etc/my_init.d/add_user_mist.sh...


GID/UID

User uid: 911

User gid: 911

* Running /etc/my_init.d/start.sh...
Usage: MistController [options]
MistController: invalid option -- 'D'

--account, -a (string) A username:password string to create a new account with.
--config, -c (string) Specify a config file other than default.
--debug, -g (integer) The debug level at which messages need to be printed.
--help, -h Display usage and version information, then exit.
--interface, -i (string) Interface address to listen on, or 0.0.0.0 for all available interfaces.
--logfile, -L (string) Redirect all standard output to a log file, provided with an argument
--port, -p (integer) TCP port to listen on.
--username, -u (string) Username to transfer privileges to, default is root.
--version, -v Display library and application version, then exit.
Version: 2.6, release Free_64
Built on Jun 4 2016, 10:20:55
* /etc/my_init.d/start.sh failed with status 1

* Killing all processes...