一、前记
笔者在使用Electron做一个桌面应用的时候,忽然想将直播集成进这款软件中,苦于之前没有在直播领域学习过,所以在经过千辛万苦的实践之后,初步完成了一个小的直播系统,特写此博客记录并帮助有兴趣的同学了解直播的流程。
二、环境搭建
本文案例使用red5作为流媒体服务器,使用obs作为客户端进行推流,来实现一个简单的Demo。
开发之前需要准备的软件有:
1、安装obs
点击上方链接进入obs的官网:
先在上方的图标中选择自己当前主机的操作系统,然后点击Download Installer进行下载,下载完成后双击exe程序进行安装即可。
安装完成后进入\bin\64bit
目录,找到obs64.exe进行启动后,界面如下所示:
点击右下方的设置,打开设置面板:
进入流这个Tab中,选择流类型为自定义流媒体服务器,这里的URL参数的含义就是将视频流推送的目的地址,这里我们先自定义为http://127.0.0.1/live
流名称我们也自定一个名字。
2、安装red5
点击上方第二个链接,进入red5的Github地址:
拉至下方,点击Windows Installer
按钮,进入官方Jenkins目录下载:
点击图中圈住的链接,开始下载(Tip:下载过程最好将会拦截下载的软件关掉,不然在安装的时候可能会发生问题。)
安装完成之后,进入安装目录,双击red5.bat
执行启动脚本。
启动成功…
通过访问http://localhost:5080/
访问red5本地地址首页:
red5给我们提供了很多Demo去拉取视频流,我们可以通过首页demo入口进入选择:
本次我们选择Publisher
来获取视频流:
点击进入:
我们发现,默认Type就是Red5,我们只需要配置Location参数就可以拉取对应的地址的视频流,聪明的同学已经知道我们该如何填了,没错,就是我们在obs中设置的URL参数地址http://127.0.0.1/live
,这里我们需要将http协议改成rtmp协议:
设置好之后,我们的准备工作就做的差不多了,下一步就是要推流和拉流!
3、obs与red5的协作
我们先到obs下,选择一种场景进行推流:
在场景中点击窗口捕获,之后可以在主面板看到桌面的录制,之后点击开始推流。
我们在进入刚才的Publisher
页面:
点击connect之后点击play播放流:
此时如果之前操作没错的话,我们就可以看到obs的视频流已经在red5的view页面展示了出来!
此时此刻,我们已经完成了一套从主播端推流到客户端拉流的流程,下一步需要做的就是自己实现一个类似Publisher
的viewer功能,那样就可以构造我们自己的直播平台!