List of files and their purpose
MistServer consists of multiple binaries, all working together to form the software as a whole. Each binary is dedicated to a specific task:
-
MistController This is the main binary, and the only mandatory one. It's functions include responding to API requests, discovering the other binaries, keeping track of statistics, logging, and starting and monitoring the various other binaries. It is the "brain" of MistServer, so to speak.
-
MistIn— These provide stream input capabilities, and their task is to act as the "source" of streams. Some of them read from files on the filesystem, others accept data through standard input or read data from a specific protocol connection. The specifics of each input are covered elsewhere in this manual.
-
MistInBuffer This is a special input: it expects live data to come in from some other location and maintains a buffer of the data, with metadata that is kept up-to-date. MistInBuffer also performs "mixing" functions, allowing you to combine multiple separate live sources into a single stream.
-
MistOut— These provide stream output capabilities, and their task is to communicate with the outside world. This can mean maintaining an open listening socket, or automated activation through another MistServer component. Additionally, some outputs are capable of writing to files and standard output.
-
MistAnalyser— These are not part of MistServer itself, and are not needed for the software to operate. They are utilities meant to assist in development and/or debugging and can provide information about the contents of buffers, various outputs, etcetera. Most users will not need to touch these under normal conditions.
-
MistUtil— These provide specific utilities otherwise not important to MistServer itself. They are mostly useful for debugging and development purposes.
-
MistProc— These are processes that can be ran adjacent to MistInBuffer processes (live streams), allowing for stream data manipulation. Things such as third-party encoders can be ran through these processes.
It is safe to remove binaries that you do not plan on using, which will simply disable their related functionality in MistServer. Similarly, it is possible to write your own outputs and inputs to supplement MistServer's capabilities. For more information about this, please contact one of our engineers as it is outside of the scope of this document.
Besides the binaries, there is one more file: the configuration file.
This file is a JSON-formatted plain text file, containing the complete
setup of your MistServer installation. This file is loaded when
MistServer starts, and written as MistServer exits. You can also force a
manual write of the configuration through the API or the configuration
interface. Its location can be controlled through a command line
parameter, but its default location is config.json
in the current
working directory of MistServer. When running MistServer as a system
service, we recommend using the location /etc/mistserver.conf
instead.