External writer
The external writer allows you to build your own custom outputs using any of the external writer compatible outputs.
You will have to set a protocol handler, and if it matches MistServer will provide the requested stream output into the commandline
through standard input. Any info will be printed to standard out and log messages go to standard error.
Option | Description |
---|---|
Human Readable Name | This is the name to later identify the external writer you made. |
Commandline | This is the command line (with optional arguments) that will be run as the writer. |
URI protocols handled | Which protocol handlers are used to identify when MistServer should use the commandline. |
The external writer cannot overwrite the output handlers already available within MistServer. As an example adding rtmp
as a handler will not trigger the external writer as MistServer already handles that through the RTMP output. You could however use rtmp-new://
instead.
Examples
basic HTTP upload
MistServer by itself does not support HTTP post. However you could simply add it by creating an external writer with the following command line:
Option | Description |
---|---|
Human Readable Name | http-put |
Command line | curl -T - |
URI protocols handled | http |
This would allow you to write any external writer compatible output as HTTP put when you try to push towards http://server.com/file.ext
.
S3 compatible upload
Mistserver currently does not support S3, luckily our friends at Livepeer have created an external writer specifically for S3 storage upload. It is available here.
Option | Descrption |
---|---|
Human Readable Name | S3 upload |
Command line | /path/to/livepeer-catalyst-uploader |
Uri protocols handled | s3+http , s3 , s3+https |
For more instructions on how to use it see the README available on github.
To make the S3 usage easier we would recommend creating custom variables containing the S3 account & bucket location.
Example push towards S3 using the livepeer-catalyst-uploader
:
Source: streamname
Target: s3+https://${s3acc}@${s3path}/$basename/$year_$month_$day_$hour_$minute_$seconds.ext
${s3acc}
would be theAWS_KEY:AWS_SECRET
${s3path}
would be thes3address.com/bucket/
- Keep in mind that the
address
should be without any scheme (http://
orhttps://
) as the beginning portion of the push target already has the scheme.
- Keep in mind that the
For possible push methods please look at our pushing documentation.