WebRTC这几年很火,本篇文章我们就讲讲如何快速搭建一个webrtc服务器。

从0开始,快速简单搭建webrtc服务器 _golang

什么是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/

从0开始,快速简单搭建webrtc服务器 _golang_02

编译服务程序

 

go build cmd/signal/json-rpc/main.go

 

此时本地会产生一个 名称为main.exe 的可执行文件

修改一下配置文件  config.toml

将icelite 设为true

将nat1to1设为本地IP

 

从0开始,快速简单搭建webrtc服务器 _webrtc_03

改完配置文件运行程序,

./main.exe

从0开始,快速简单搭建webrtc服务器 _golang_04

 

此时服务器已完成搭建,接下来我们在网页端进行验证。

 

网页端代码在 examples/pubsubtest/,

cd examples/pubsubtest/

从0开始,快速简单搭建webrtc服务器 _golang_05

 

其中 main.js文件需要改一下,将serverurl改为我们sfu服务的地址

从0开始,快速简单搭建webrtc服务器 _webrtc_06

 

我们可以使用nginx做web服务器,也可以自己使用golang写一个,我这里在windows平台自己写一个更方便点,代码我提交到了gitee,大家可以直接下载下来编译

https://gitee.com/zshaobo/webserver.git从0开始,快速简单搭建webrtc服务器 _golang_07

go build 

生成一个webserver.exe可执行程序

运行程序

./webserver.exe

 

 

打开网页,输入127.0.0.1,此时应该是顺利打开我们的webrtc客户端。

从0开始,快速简单搭建webrtc服务器 _golang_08

再看sfu服务端,可看到客户端连接服务器的一些信息

从0开始,快速简单搭建webrtc服务器 _golang_09

进行publish推流

从0开始,快速简单搭建webrtc服务器 _golang_10

另起一个窗口,打开127.0.0.1,此时可看到那边推流过来的视频

从0开始,快速简单搭建webrtc服务器 _webrtc_11

至此,我们就完成整个webrtc的搭建过程。

此外,如果我们系统安装的有docker的话,那么我们可以直接进入ion-sfu\examples\pubsubtest目录,执行命令

docker-compose up

然后执行成功后就算完成了整个WebRTC的搭建,访问8000端口进行验证