天天看点

搭建SRS实现WebRTC推流

浏览器中使用WebRTC方式实现视频流低延迟的无插件播放的技术方案。

WebRTC需要SRS的最低版本:SRS4.0.14,所以我们部署的srs的时候版本需要大于SRS4.0.14。

SRS4.0.14,支持了RTMP推流,WebRTC播放。

SRS部署安装

进入指定目录,进行下载

wget https://github.com/ossrs/srs/archive/v4.0.76.tar.gz
           

解压

tar -zxvf srs-4.0.76.tar.gz
           

进入目录

cd  /usr/local/srs-4.0.76/trunk
           

编译安装

./configure --with-hls --with-ssl --with-http-server --with-http-callback --with-http-api --with-ingest --with-stream-caster && make
           

启动

./objs/srs -c conf/rtc.conf
           

查看状态

./etc/init.d/srs status
           

停止

./etc/init.d/srs stop
           

查看srs版本

./objs/srs -v
           

默认配置如下:

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}

http_api {
    enabled         on;
    listen          1985;
}
stats {
    network         0;
}
rtc_server {
    enabled         on;
    # Listen at udp://8000
    listen          8000;
    #
    # The $CANDIDATE means fetch from env, if not configed, use * as default.
    #
    # The * means retrieving server IP automatically, from all network interfaces,
    # @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
    candidate       $CANDIDATE;
}

vhost __defaultVhost__ {
    rtc {
        enabled     on;
        bframe      discard;
    }
}
           

FFmpeg推流

推流验证

推流命令行实例:

ffmpeg -i rtsp://admin:[email protected]:554/h264/ch1/main/av_stream -c copy -f flv rtmp://127.0.0.1:1935/live/mystream
           

前端页面

浏览器H5使用JSwebrtc播放webrtc流,需要下载jswebrtc.min.js文件并保存在本地。

<video id="video" class="video" controls autoplay style=""  >
<script src="/static/js/jswebrtc.min.js"></script>
<script>
	var video = document.getElementById('video');
	var url = 'webrtc://127.0.0.1/live/livestream';
	var player = new JSWebrtc.Player(url, { video: video, autoplay: true,  });
</script>
           

打开浏览器请求播放成功,视频延迟低。

继续阅读