WebRTC是通信的能力从技术上看是两个或多个客户端让用户具备互动的能力。 人对于延迟的感知是400ms也就是一般的对话能顺利进行这是RTC的核心指标。 由于端和端之间有关联导致系统复杂度比直播高了多个数量级这是很多问题的根源。SRS是在2020年支持的WebRTC协议研发的详细过程请参考#307。 直播和RTC的协议或能力是SRS的核心能力新的音视频开发者将不会区分直播和RTC因为都是互联网视频能力。SRS对直播和RTC这两种能力的抽象是流(Stream)一个流会有多个消费者(Consumer)流之间没有关联。 基于流我们构造了各种业务的能力比如集群、录制、转码、转发。 基于这些业务能力我们提供了各种场景下的DEMO比如低延迟直播、一对一通话、多人通话、连麦等等。1. 下载源码推荐用CentOS7git clone -b 4.0release https://gitee.com/ossrs/srs.git2. 编译注意需要切换到srs/trunk目录./configure --with-hls --with-ssl --with-http-server --with-http-callback --with-http-api --with-ingest --with-stream-caster make3. 启动SRScd srs-4.0.39/trunk ./objs/srs -c conf/rtc.conf4. 此时启动后你使用ffmpeg在window端用命令推流推流命令 ffmpeg -f dshow -i videoIntegrated Camera:audio麦克风阵列 (Synaptics Audio) -vcodec libx264 -x264opts bframes0 -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博客