This project aims to replace the hard to configure and maintain old FFserver component of the FFmpeg project.
Core goals include only using the public API of the FFmpeg-libraries to ease maintainability and use an easy to understand configuration file format.
To build the project a Makefile is supplied. No additional configuration system is in place (yet).
To successfully build the project the development files of the following projects must be present:
The versions building was tested on are:
After successfully building the project with make
it can be used with a configuration file.
A configuration file is a lua file that is evaluated and the resulting object is used to configure servers. A single instance can start multiple servers. An example configuration file containing only one server and one stream could look like this:
settings = {
default_server = {
bind_address = "0.0.0.0",
port = 8080,
default_stream = {
input = "default.mkv",
formats = { "mkv", "hls", "dash" }
}
}
Note that multiple streams can be configured for a single server and multiple servers can be defined in a single configuration file.
A sample configuration configuring multiple streams and servers is present as sample_config.lua
.
Accessing a stream is done with an HTTP client. To receive a stream, request the server name, the stream name and the format in an HTTP GET request. To receive the above stream as matroska the request would read:
GET /default_server/default_stream/mkv
or for HLS:
GET /default_server/default_stream/hls
More technical details about the implementation can be found in Technical.txt.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。