Skip to main content
Version: 4.0

Docker

Please run SRS with docker.

Live Streaming​

SRS supports live streaming.

Run SRS using docker:

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
ossrs/srs:4 ./objs/srs -c conf/docker.conf

Note: The available images is here.

Use docker of FFmpeg to publish:

docker run --network host --rm ossrs/srs:encoder

Or publish stream by FFmpeg or OBS :

ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream

Note: The file ./doc/source.flv is under the source repository of SRS.

Play stream by:

WebRTC​

SRS supports WebRTC for video chat.

Run SRS using docker:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
ossrs/srs:4 ./objs/srs -c conf/docker.conf

Note: Please replace the IP with your server IP.

Note: About CANDIDATE, please read CANDIDATE

Push stream to SRS by WebRTC: Publish

Play stream of SRS by WebRTC: Play

Note: If use different streams, you're able to do video chat application.

WebRTC for Live Streaming​

SRS supports converting live streaming to WebRTC.

Run SRS using docker:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
ossrs/srs:4 ./objs/srs -c conf/rtmp2rtc.conf

Note: Please replace the IP with your server IP.

Note: About CANDIDATE, please read CANDIDATE

Note: If convert RTMP to WebRTC, please use rtmp2rtc.conf

Use docker of FFmpeg to publish:

docker run --network host --rm ossrs/srs:encoder

Or publish stream by FFmpeg or OBS :

ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream

Note: The file ./doc/source.flv is under the source repository of SRS.

Play stream by:

WebRTC using HTTPS​

If not localhost, for example, to view WebRTC on pad or mobile phone, when SRS is running on remote server.

Run SRS using docker:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
ossrs/srs:4 ./objs/srs -c conf/https.docker.conf

Note: Please replace the IP with your server IP.

Note: About CANDIDATE, please read CANDIDATE

Remark: Please use your HTTPS key and cert file, please read HTTPS API and HTTPS Callback and HTTPS Live Streaming, however HTTPS proxy also works perfect with SRS such as Nginx.

Push stream to SRS by WebRTC: Publish

Play stream of SRS by WebRTC: Play

Note: For self-sign certificate, please type thisisunsafe to accept it.

Note: If use different streams, you're able to do video chat application.

SRT for Live Streaming​

SRS supports publishing by SRT for live streaming, and play by SRT or other protocols.

先用Docker启动SRS:

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 10080:10080/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/srt.conf

Publish stream by FFmpeg or OBS :

ffmpeg -re -i ./doc/source.flv -c copy -pes_payload_size 0 -f mpegts 'srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=publish'

Play stream by ffplay or OBS

ffplay 'srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request'

Multiple Streams​

You're able to publish multiple streams to SRS, by using different URLs.

  • rtmp://ip/live/livesteam
  • rtmp://ip/live/livesteamN
  • rtmp://ip/liveN/livestreamN
  • srt://ip:10080?streamid=#!::r=anyM/streamN,m=publish
  • webrtc://localhost/anyM/streamN
  • http://ip:8080/anyM/streamN.flv
  • http://ip:8080/anyM/streamN.m3u8
  • https://ip:8080/anyM/streamN.flv
  • https://ip:8080/anyM/streamN.m3u8

Note: Please see RTMP URL for detail.