WebRTC这几年很火,本篇文章我们就讲讲如何快速搭建一个webrtc服务器。
什么是WebRTC
WebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。
pion是golang语言开发的一个开源的流媒体框架,本次搭建我们就基于pion这个框架进行展开
首先我们从一个国内的镜像网站下载sfu服务器源码
git clone https://hub.fastgit.org/pion/ion-sfu.git
下载完毕,进入目录
cd ion-sfu/
编译服务程序
go build cmd/signal/json-rpc/main.go
此时本地会产生一个 名称为main.exe 的可执行文件
修改一下配置文件 config.toml
将icelite 设为true
将nat1to1设为本地IP
改完配置文件运行程序,
./main.exe
此时服务器已完成搭建,接下来我们在网页端进行验证。
网页端代码在 examples/pubsubtest/,
cd examples/pubsubtest/
其中 main.js文件需要改一下,将serverurl改为我们sfu服务的地址
我们可以使用nginx做web服务器,也可以自己使用golang写一个,我这里在windows平台自己写一个更方便点,代码我提交到了gitee,大家可以直接下载下来编译
https://gitee.com/zshaobo/webserver.git
go build
生成一个webserver.exe可执行程序
运行程序
./webserver.exe
打开网页,输入127.0.0.1,此时应该是顺利打开我们的webrtc客户端。
再看sfu服务端,可看到客户端连接服务器的一些信息
进行publish推流
另起一个窗口,打开127.0.0.1,此时可看到那边推流过来的视频
至此,我们就完成整个webrtc的搭建过程。
此外,如果我们系统安装的有docker的话,那么我们可以直接进入ion-sfu\examples\pubsubtest目录,执行命令
docker-compose up
然后执行成功后就算完成了整个WebRTC的搭建,访问8000端口进行验证