SRS搭建webrtc直播一条龙教学!!!!!!

WebRTC是通信的能力,从技术上看是两个或多个客户端,让用户具备互动的能力。 人对于延迟的感知是400ms,也就是一般的对话能顺利进行,这是RTC的核心指标。 由于端和端之间有关联,导致系统复杂度比直播高了多个数量级,这是很多问题的根源。

SRS是在2020年支持的WebRTC协议,研发的详细过程请参考#307。 直播和RTC的协议或能力,是SRS的核心能力,新的音视频开发者,将不会区分直播和RTC,因为都是互联网视频能力。

SRS对直播和RTC这两种能力的抽象,是流(Stream),一个流会有多个消费者(Consumer),流之间没有关联。 基于流,我们构造了各种业务的能力,比如集群、录制、转码、转发。 基于这些业务能力,我们提供了各种场景下的DEMO,比如低延迟直播、一对一通话、多人通话、连麦等等。

1. 下载源码,推荐用CentOS7

git clone -b 4.0release https://gitee.com/ossrs/srs.git

2. 编译,注意需要切换到srs/trunk目录:

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

3. 启动SRS

cd srs-4.0.39/trunk
./objs/srs -c conf/rtc.conf

4. 此时启动后,你使用ffmpeg在window端用命令推流

推流命令 :

ffmpeg -f dshow -i video="Integrated Camera":audio="麦克风阵列 (Synaptics Audio)" -vcodec libx264 -x264opts "bframes=0"  -r 25 -g 25 -preset:v ultrafast -tune:v zerolatency -codec:a aac -ac 2 -ar 44100 -f flv rtmp://192.168.6.52:1935/live/livestream

上述推流命令中 Integrated Camera  与  麦克风阵列 (Synaptics Audio)是window端的音视频设备;可以通过ffmepg命令获取。  获取命令如下:

ffmpeg -list_devices true -f dshow -i dummy

以下是我电脑的设备信息  对照自己填写到命令里面去即可;

 你使用ffmpeg在window端用命令推流,观察SRS日志会有报错

 网上搜索到该错误是因为我推流是rtmp  但未开启rtmp转rtc的配置。

解决办法就是 使用srs配置文件夹conf里面的rtmp2rtc.conf配置文件来启动srs

 重新启动srs

./objs/srs -c conf/rtmp2rtc.conf

启动srs成功后,我们再使用上述推流命令推流

5. Windows端访问SRS自带webrtc播放器   把IP地址改为自己的SRS所在IP地址即可

http://192.168.12.187:8080/players/rtc_player.html

 播放网页界面如下图:

6. 播放:

在上图webrtc播放器页面,将url的IP地址换为自己的即可。

然后点击播放:

效果如下图

 

 小提示:

我个人认为,可以使用srs自带的rtc.conf 在其中添加上rtmp_to_rtc on;  应该也能成功播放。

添加格式如下:

vhost rtc.vhost.srs.com {
    rtc {
        enabled on;
        rtmp_to_rtc on;
        rtc_to_rtmp on;
        nack on;
        twcc on;
    }
}

 至此就结束啦。

觉得有用记得点赞 收藏+关注。感谢感谢

在此附上SRS官方文档地址:

Introduction | SRS (ossrs.net)

添加更新:新增解决SRS播放WebRTC黑屏转圈加载问题博客;

解决WebRTC黑屏问题,包括内网、公网环境黑屏_欣欣芜湖的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/Lemon_D1999/article/details/127979122