MonaSolutions / librtmfp

LGPL implementation of RTMFP (client part)
GNU Lesser General Public License v3.0
77 stars 26 forks source link

librtmfp README

librtmfp is a multi-platform and LGPL library implementing the client part of the RTMFP protocol.

It is made to allow softwares to connect to RTMFP servers and publish or receive media streams with or without P2P.

Both MonaServer and AMS server are supported.

librtmfp can be integrated with our fork of FFmpeg to get a reliable streaming experience.

See rtmfp-cpp library for another and more recent implementation of RTMFP (in beta version for now).

Installation

You will find the Installation instructions for librtmfp and FFmpeg in the INSTALL.md file (in this directory).

Usage

As librtmfp is a C++ LGPL library it can be included in many softwares.

A testing software (TestClient) is delivered with librtmfp as a sample of usage but we recommend FFmpeg for production use.

Sample FFmpeg commands

./ffmpeg -re -i in.flv -c copy -f flv rtmfp://<hostname and port + application name>/<stream name> < /dev/null
./ffmpeg -i rtmfp://<hostname and port + application name>/<stream name> -c copy -f flv out1.flv -y
./ffmpeg -re -i in.flv -p2ppublishing true -c copy -f flv rtmfp://<hostname and port + application name>/<stream name> < /dev/null
./ffmpeg -peerid <peer ID> -i rtmfp://<hostname and port + application name>/<stream name> -c copy -f flv out1.flv -y
./ffmpeg -re -i in.flv -c copy -netgroup <netgroup identifier> -f flv rtmfp://<hostname and port + application name>/<stream name> < /dev/null
./ffmpeg -netgroup <netgroup identifier> -i rtmfp://<hostname and port + application name>/<stream name> -c copy -f flv out1.flv -y

Notes:

Sample ffplay commands

If you just want to play directly a stream you can use the ffplay command.

./ffplay -i rtmfp://<hostname and port + application name>/<stream name>
./ffplay -peerid <peer ID> -i rtmfp://<hostname and port + application name>/<stream name>
./ffplay -netgroup <netgroup identifier> -i rtmfp://<hostname and port + application name>/<stream name>

Additional arguments

TODO