Skip to content

WebRTC-Streamer

Experimentation to stream WebRTC media sources like capture devices, screen capture, mkv files and RMTP/RTSP sources using simple signaling mechanism (see api).

Usage

./webrtc-streamer [-H http port] [-S[embeded stun address]] -[v[v]]  [urls...]
./webrtc-streamer [-H http port] [-s[external stun address]] -[v[v]] [urls...]
./webrtc-streamer -V
    -v[v[v]]           : verbosity
    -V                 : print version
    -C config.json                     : load urls from JSON config file 
    -n name -u videourl -U audiourl    : register a name for a video url and an audio url
    [url]                              : url to register in the source list

    -H [hostname:]port : HTTP server binding (default 0.0.0.0:8000)
    -w webroot         : path to get files
    -c sslkeycert      : path to private key and certificate for HTTPS
    -N nbthreads       : number of threads for HTTP server
    -A passwd          : password file for HTTP server access
    -D authDomain      : authentication domain for HTTP server access (default:mydomain.com)

    -S[stun_address]                   : start embeded STUN server bind to address (default 0.0.0.0:3478)
    -s[stun_address]                   : use an external STUN server (default:stun.l.google.com:19302 , -:means no STUN)
    -T[username:password@]turn_address : start embeded TURN server (default:disabled)
    -t[username:password@]turn_address : use an external TURN relay server (default:disabled)
    -R [Udp port range min:max]        : Set the webrtc udp port range (default 0:65535)
    -W webrtc_trials_fields            : Set the webrtc trials fields (default:WebRTC-FrameDropper/Disabled/)       
    -a[audio layer]                    : spefify audio capture layer to use (default:0)     
    -q[filter]                         : spefify publish filter (default:.*)
    -o                                 : use null codec (keep frame encoded)

Using docker image

You can start the application using the docker image:

docker run -p 8000:8000 -it mpromonet/webrtc-streamer

You can expose V4L2 devices from your host using:

docker run --device=/dev/video0 -p 8000:8000 -it mpromonet/webrtc-streamer

See also

Favorite site