ffserver
Stream multimedia content over HTTP
SYNOPSIS
ffserver [-f configfile] [-n] [-d] [-L] [-l|-loglevel level] [-?|-h|--help]
PARAMETERS
-f path
Specify path to configuration file (default checks standard locations)
-n
Dry run: parse and print config without starting server
-d
Daemonize: run ffserver in background
-L
List all available feeds and streams from config
-l level / -loglevel level
Set logging verbosity (quiet, panic, fatal, error, warning, info, verbose, debug, trace)
-i
Enable HTTP image feed support (legacy)
-?
Print basic usage
-h
Print detailed help
--help
Print full help with examples
DESCRIPTION
ffserver is a component of the FFmpeg multimedia framework that functions as an HTTP-based streaming server for live audio and video broadcasts.
It operates by reading a configuration file that defines Feed sections (input endpoints for data from ffmpeg) and Stream sections (output endpoints served to clients via HTTP, supporting formats like MP3, ASF, or M3U playlists).
Typical workflow: Run ffserver with a config file, then use ffmpeg to push encoded media to a feed URL (e.g., http://localhost:8090/feed1.ffm). Clients access streams at URLs like http://localhost:8090/stream1.m3u8.
The server handles multiple simultaneous streams, bandwidth limiting, and basic authentication via config ACLs. It binds to specified ports (default 8080) and supports multicast.
Critical note: ffserver is deprecated, unmaintained since approximately 2009, and poses security risks due to vulnerabilities and lack of updates. It was deprecated in FFmpeg 3.2 (2016) and fully removed in FFmpeg 4.0 (2018). Modern alternatives include nginx with RTMP module, OBS Studio streaming, or FFmpeg's native protocol outputs.
CAVEATS
Deprecated and removed from FFmpeg 4.0+; unmaintained with known security issues (e.g., buffer overflows). Not suitable for production. Config file required for normal operation. Runs as root by default for port 80.
CONFIG ESSENTIALS
Config file uses sections like <FFserver> for globals (Port 8080), <Feed feed1.ffm> for inputs (File /tmp/feed1.ffm), <Stream test.asf> for outputs (Feed feed1.ffm; Format asf). See old docs for syntax.
BASIC EXAMPLE
ffserver -f ffserver.conf
ffmpeg -re -i input.mp4 -f flv http://127.0.0.1:8090/feed1.ffm
Client: ffplay http://127.0.0.1:8090/stream1.flv
HISTORY
Developed as part of original FFmpeg project (~2000). Active until ~2009 when maintainers abandoned it due to complexity and bugs. Marked deprecated in FFmpeg 3.2 (2016), excised in 4.0 (2018) amid security audits.


