Skip to main content

HTML page output

MistServer will make every stream that is set up available as a dedicated HTML page. This page will serve the default MistServer Meta-Player. While you can use this output directly we generally recommend using the embed code as it allows for greater control.

Changing the player on the html page

You can set several options through URL parameters to affect how the player behaves. Below is a list of options and what they do.

example:

http://mistserveraddress/streamname.html?dev=1&forcetype=whep

This would turn on the development skin and set the protocol to be used to WebRTC WHEP.

Development skin

dev=1

The development skin is the same skin used on the preview page. It allows users to select all protocol/player options regardless whether they should work and provides additional information.

Start Muted

muted=1

Force a protocol output

forcetype=TYPE

TYPE needs to match the type as listed on the embed page. A list of likely types to use is below.

  • WS/MP4: ws/video/mp4
  • MP4: html5/video/mp4
  • WebM: html5/video/webm
  • WHEP: whep
  • WS/WebRTC: webrtc
  • HLS (TS-based): html5/application/vnd.apple.mpegurl
  • HLS (CMAF-based): html5/application/vnd.apple.mpegurl;version=7
  • DASH: dash/video/mp4

New Option Syntax for MistServer 3.9.2

applies to MistServer 3.9.2 and newer In 3.9.1 and under each option needs a value, in later versions this will no longer be the case if the option is binary. Simply passing the option will then be enough, a value is now optional.

http://mistserveraddress/streamname.html?dev&muted&forcetype=whep

The above uses the newer syntax to open the development skin, start muted and force the protocol to WebRTC WHEP.

3.9.2 options

Autoplay

This specifically needs to be set to 0 or false in order to stop autoplay. By default this is on and the stream should attempt to play immediately. There is no need to set the HTML page to autoplay=true.

autoplay=0

FillSpace

This gets a special mention as it is enforced to be active. If you wish to turn this off you will need to edit the source code itself.

Forceplayer

This forces a specific player within the Meta-Player to be used. By default MistServer will only attempt matching protocols. If the protocol to be used is enforced to something that cannot play it will be attempted regardless.

forceplayer=PLAYER

PLAYER should match one of the names below. The mimes are the protocols that they should be able to play.

{
"html5": {
"name": "HTML5 video player",
"mimes": [
"html5/application/vnd.apple.mpegurl",
"html5/application/vnd.apple.mpegurl;version=7",
"html5/video/mp4",
"html5/video/ogg",
"html5/video/webm",
"html5/audio/mp3",
"html5/audio/webm",
"html5/audio/ogg",
"html5/audio/wav"
],
"priority": 1,
"mistControls": true,
"shortname": "html5"
},
"hlsjs": {
"name": "HLS.js player",
"mimes": [
"html5/application/vnd.apple.mpegurl",
"html5/application/vnd.apple.mpegurl;version=7"
],
"priority": 2,
"shortname": "hlsjs"
},
"videojs": {
"name": "VideoJS player",
"mimes": [
"html5/application/vnd.apple.mpegurl",
"html5/application/vnd.apple.mpegurl;version=7"
],
"priority": 3,
"shortname": "videojs"
},
"dashjs": {
"name": "Dash.js player",
"mimes": [
"dash/video/mp4"
],
"priority": 4,
"shortname": "dashjs"
},
"wheprtc": {
"name": "WebRTC player (WHEP)",
"mimes": [
"whep"
],
"priority": 5,
"shortname": "wheprtc"
},
"webrtc": {
"name": "WebRTC player (WS)",
"mimes": [
"webrtc"
],
"priority": 6,
"shortname": "webrtc"
},
"mews": {
"name": "MSE websocket player",
"mimes": [
"ws/video/mp4",
"ws/video/webm"
],
"priority": 7,
"shortname": "mews"
},
"rawws": {
"name": "WebCodec Player",
"mimes": [
"ws/video/raw"
],
"priority": 8,
"cacheSupported": {},
"shortname": "rawws"
},
"flv": {
"name": "HTML5 FLV Player",
"mimes": [
"flash/7"
],
"priority": 9,
"shortname": "flv"
},
"flash_strobe": {
"name": "Strobe Flash media playback",
"mimes": [
"flash/10",
"flash/11",
"flash/7"
],
"priority": 10,
"shortname": "flash_strobe"
}
}

No unix times

This removes any date and timing information from the playback. Only the current media point for the stream will be shown instead.

nounix

Planned for 3.10 - nocatchup

This removes any attempts by the Meta-Player to catch up with the live edge. Normally the Meta-Player will slightly increase the playback speed to slowly catch up to the live point, this enforces a 1 to 1 speed in playback.

nocatchup