WebRTC目前已經比較成熟了,播放也比較穩(wěn)定,協議也已經成為了RFC,相應的開源項目也比較多。當然我覺得WebRTC還缺一個高性能簡單易用的服務器,之前也分析過現有的服務器,有各種問題,SRS很有機會解決這些問題。
目前SRS對WebRTC的支持進度如下:
- SRS4.0.14,支持了RTMP推流,WebRTC播放。
- SRS4.0.76,支持了WebRTC推流,WebRTC播放。
- SRS4.0.95,支持了WebRTC推流,RTMP播放。
相關Wiki:
Online
在線演示,RTMP推流,HTTP-FLV和WebRTC播放:
- webrtc://d.ossrs.net/live/livestream
- http://d.ossrs.net/live/livestream.flv
- rtmp://d.ossrs.net/live/livestream
Remark: 可能會比較卡,因為服務器支持3個并發(fā)觀看。
Remark: 默認靜音(WebRTC自動播放要求的),可以點右下角小喇叭開啟聲音。
Remark: 由于Flash已經被禁用,RTMP流無法在Chrome播放,請使用VLC播放。
在線演示,WebRTC推流,WebRTC播放:
Remark: 推流時,必須是HTTPS頁面,當然本機localhost沒這個限制。
自己用SRS搭建WebRTC服務器,也非常容易,下面是操作步驟。
Start SRS
注意:必須要將本機的IP傳給Docker,否則會推流和播放失敗。
可以直接傳本機IP,例如:192.168.1.3。如果覺得直接傳IP比較麻煩,可以用腳本獲取IP。
macOS下執(zhí)行命令,直接設置IP:
docker run --rm --env CANDIDATE=192.168.1.3 \
-p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
objs/srs -c conf/rtc.conf
macOS下執(zhí)行命令,用腳本獲取IP:
eip=$(ifconfig en0 inet| grep 'inet '|awk '{print $2}')
if [[ ! -z $eip ]]; then
docker run --rm --env CANDIDATE=$(ifconfig en0 inet| grep 'inet '|awk '{print $2}') \
-p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
objs/srs -c conf/rtc.conf
fi
CentOS下執(zhí)行命令,用腳本獲取IP:
eip=$(ifconfig eth0|grep 'inet '|awk '{print $2}')
if [[ ! -z $eip ]]; then
docker run --rm --env CANDIDATE=$(ifconfig eth0|grep 'inet '|awk '{print $2}') \
-p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
objs/srs -c conf/rtc.conf
fi
啟動后,可以訪問http://localhost:8080/,確認是否啟動成功。
Docker一定要設置對這個IP,否則會出現推流和播放失敗。
Demo
演示,WebRTC推流和播放,鏈接:
- WebRTC推流:webrtc://localhost/live/show
- WebRTC播放:webrtc://localhost/live/show
演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到服務器:
ffmpeg -re -i doc/source.200kbps.768x320.flv -c copy \
-f flv -y rtmp://localhost/live/livestream
Remark: 墻裂建議先用SRS自帶的
doc/source.200kbps.768x320.flv這個文件,先用它跑通了再換其他內容源,避免各種問題不好排查。
可播放的流地址:
- WebRTC播放:webrtc://localhost/live/livestream
- HTTP-FLV播放:http://localhost:8080/live/livestream.flv
Remark: 注意請將IP換成你的Host機器的IP,當然也可以是公網IP,只要是能訪問到的IP就可以。
Note: 代碼已經合并到了develop分支,也可以選擇自己編譯和調試。
