用Java开启直播之路(一)

时间:2024-05-22 19:01:54

一、前记

笔者在使用Electron做一个桌面应用的时候,忽然想将直播集成进这款软件中,苦于之前没有在直播领域学习过,所以在经过千辛万苦的实践之后,初步完成了一个小的直播系统,特写此博客记录并帮助有兴趣的同学了解直播的流程。

二、环境搭建

本文案例使用red5作为流媒体服务器,使用obs作为客户端进行推流,来实现一个简单的Demo。
开发之前需要准备的软件有:

1、安装obs

点击上方链接进入obs的官网:
用Java开启直播之路(一)
先在上方的图标中选择自己当前主机的操作系统,然后点击Download Installer进行下载,下载完成后双击exe程序进行安装即可。
安装完成后进入\bin\64bit目录,找到obs64.exe进行启动后,界面如下所示:
用Java开启直播之路(一)
点击右下方的设置,打开设置面板:
用Java开启直播之路(一)
进入这个Tab中,选择流类型为自定义流媒体服务器,这里的URL参数的含义就是将视频流推送的目的地址,这里我们先自定义为http://127.0.0.1/live流名称我们也自定一个名字。

2、安装red5

点击上方第二个链接,进入red5的Github地址:
用Java开启直播之路(一)
拉至下方,点击Windows Installer按钮,进入官方Jenkins目录下载:
用Java开启直播之路(一)
点击图中圈住的链接,开始下载(Tip:下载过程最好将会拦截下载的软件关掉,不然在安装的时候可能会发生问题。)
安装完成之后,进入安装目录,双击red5.bat执行启动脚本。
用Java开启直播之路(一)
启动成功…
用Java开启直播之路(一)
通过访问http://localhost:5080/访问red5本地地址首页:
用Java开启直播之路(一)
red5给我们提供了很多Demo去拉取视频流,我们可以通过首页demo入口进入选择:
用Java开启直播之路(一)
本次我们选择Publisher来获取视频流:
用Java开启直播之路(一)
点击进入:
用Java开启直播之路(一)
我们发现,默认Type就是Red5,我们只需要配置Location参数就可以拉取对应的地址的视频流,聪明的同学已经知道我们该如何填了,没错,就是我们在obs中设置的URL参数地址http://127.0.0.1/live,这里我们需要将http协议改成rtmp协议:
用Java开启直播之路(一)
设置好之后,我们的准备工作就做的差不多了,下一步就是要推流和拉流!

3、obs与red5的协作

我们先到obs下,选择一种场景进行推流:
用Java开启直播之路(一)
在场景中点击窗口捕获,之后可以在主面板看到桌面的录制,之后点击开始推流
用Java开启直播之路(一)
我们在进入刚才的Publisher页面:
用Java开启直播之路(一)
点击connect之后点击play播放流:
用Java开启直播之路(一)
此时如果之前操作没错的话,我们就可以看到obs的视频流已经在red5的view页面展示了出来!
此时此刻,我们已经完成了一套从主播端推流客户端拉流的流程,下一步需要做的就是自己实现一个类似Publisherviewer功能,那样就可以构造我们自己的直播平台!

相关文章