Media-server is a collection of C libraries for building applications that handle streaming media protocols and formats.
The project solves the problem of working with diverse streaming protocols and container formats by providing modular libraries that implement standards for real-time streaming, on-demand delivery, and media file handling. It includes implementations of RTSP, RTP, RTMP, HLS, MPEG-DASH, and support for reading and writing MP4, Matroska, and WebM files. The approach separates concerns into focused libraries: librtsp handles RTSP and SDP, librtp implements RTP and RTCP with support for multiple codecs, librtmp provides RTMP client and server functionality, libhls generates and parses HLS playlists with TS or fMP4 segmentation, libdash handles MPEG-DASH manifests for both live and on-demand content, and libmov manages MP4 and fragmented MP4 files. Additional libraries cover MPEG-2 PS/TS, MKV/WebM, and SIP with ICE.
Developers should choose this project when building streaming infrastructure that needs to support multiple protocols and formats simultaneously. It suits applications ranging from live streaming servers to media players and transcoding pipelines. The modular design allows selective use of only the needed libraries rather than adopting a monolithic framework.
The project maintains active code quality monitoring through static analysis. Development follows a straightforward build system supporting debug and release builds with cross-compilation capabilities for embedded platforms. The codebase demonstrates breadth across streaming standards, implementing RFC specifications for RTP, RTSP, and SDP alongside ISO standards for MP4, MPEG-DASH, and Matroska formats, with support for contemporary video codecs including H.266 and AV1.