1 Star 0 Fork 0

boysic / ffserver

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
Readme.md

FFserver


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.

Building

To build the project a Makefile is supplied. No additional configuration system is in place (yet).

Dependencies

To successfully build the project the development files of the following projects must be present:

  • ffmpeg (libav*)
  • lua
  • libmicrohttpd

The versions building was tested on are:

  • ffmpeg 4.0 or newer
  • lua 5.3
  • libmicrohttpd 0.9.51

After successfully building the project with make it can be used with a configuration file.

Configuration

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

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

Limitations/known issues

  • Input files are not validated for muxability (mostly an issue for HLS and DASH)
  • Client side "unclean" disconnect causes memory leak

Technical Details

More technical details about the implementation can be found in Technical.txt.

Comments ( 0 )

Sign in for post a comment

About

No description spread retract
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
1
https://gitee.com/boysic/ffserver.git
git@gitee.com:boysic/ffserver.git
boysic
ffserver
ffserver
master

Search

010926 d3736ce6 1850385 010927 f77ebe53 1850385