Nginx+RTMP推流拉流服务端搭建指南:实现直播视频功能的关键步骤

2025-01-05
来源:网络整理

温馨提示:为了实现推流和拉流,服务器扮演着重要的角色。 +RTMP是现阶段直播市场后端使用的标准技术!

一、前言

前面介绍了中国视频直播中的一个重要品类。不了解的同学可以点击这里开始。我们开始开发它,因为我们以后肯定需要视频直播功能,然后将视频推送到服务器,本地。流媒体播放的过程。因此,在这个过程中,我们需要先完成服务器端中间环节的工作,然后再进行推拉功能的工作。如今,大多数流媒体都使用 RTMP/HLS 协议。关于这两个协议之间的差异:

因此,我们在搭建服务器的时候需要用到这两个协议。不过,不用担心这篇文章。我们不会手动编写一套协议代码。谁说这个世界属于开源?

需要的工具和源码包:

1.用VLC观看视频流并用工具推流

2.源码包、-rtmp-源码包、pcre源码包、源码包

2.安装+rtmp

一、下载源码包

我们伟大的战斗民族俄罗斯人在服务器扩展功能模块的基础上开发了rtmp和hls协议功能。因此,我们的工作非常简单,只需下载源码并编译即可。但这个过程中还存在一些操作问题。以下是该过程的摘要:

1.首先你得想办法获得服务器,无论是购买还是借用

2.下载源码包+pcre源码包+源码包。这三个源代码包可以在线获取。编译时需要用到后面的两个包。

3.下载-rtmp-源码包

只需上去下载这个:

二、编译安装

至此,所有源码包已经收集完毕。现在将这些源码包放到服务器上的指定目录中:

然后直接使用tar命令解压:

tar -zxvf xxxx.tar.gz

此时开始编译。首先进入解压目录,然后运行命令:

./ --=/usr///-1.9.9

--是编译安装后的目录

运行错误:

./: : HTTP PCRE

需要添加pcre模块,修改命令,添加参数:

--with-pcre=pcre源代码路径

./ --=/usr///-1.9.9 --with-pcre=/usr///pcre-8.34

再次运行,可以了,但是这一次就说明代码没有问题了。接下来,需要将rtmp模块添加到编译中:

./ --=/usr///-1.9.9 --with-pcre=/usr///pcre-8.34 --add-=/usr///-rtmp-

直接使用--add-=的rtmp模块代码路径

运行错误:

./::SSL

小程序点播开发_点播服务器开源_点播技术下载

需要添加模块并添加参数:

--with-=源代码路径

./ --=/usr///-1.9.9 --with-pcre=/usr///pcre-8.34 --with-=/usr///-1.0.0d --add-=/usr/ //-rtmp-

编译运行成功

然后运行 ​​make && make 命令进行安装。

注意:

如果要添加HLS功能,可以使用以下命令:

--add-=/usr///-rtmp-/hls

本文不介绍HLS协议,因为配置与RTMP类似。

3.配置RTMP协议

此时在编译安装后的目录中

conf目录下存放配置文件,sbin目录下存放运行命令。我们先来看看如何配置使其具有rtmp功能:

rtmp {

{

1395;

4096;

{

继续生活;

当然,还有很多其他的配置,使用时可以根据具体需要添加。

此处配置rtmp协议信息。需要注意的是端口和应用程序名称。比如这里的端口是:1395,应用名称是:,那么后续推流的地址是:

rtmp://:1395//

任意定义,但后续的流地址也必须是这个地址。

另一个细节是http协议信息中默认端口是80,所以后续操作时会出现端口占用的问题。因为现在这里只使用rtmp协议,所以直接将http协议的端口改为不太常用的端口。一个端口,让它运行成功就好。

4. 操作

信息配置好后,我们来运行一下。进入sbin目录并运行命令:

然后查看进程信息:

因为我的机器上运行着两个程序,所以有两个。

我们看一下1395端口的情况:

点播技术下载_点播服务器开源_小程序点播开发

可以看到此时端口还没有建立,因为我们还没有开始推流。

5. 测试

上面环境已经搭建好了。现在我们来测试一下。因为测试方便,直接用PC推流测试即可。后面我们会详细介绍如何推流。有更好的方法在PC上推流。工具:这个是开源的,用C语言开发的,所以如果平台使用这个模块推流,需要使用层来桥接。地址:

,不过这个工具已经编译在下面了,可以直接从官网下载:这个工具包很强大,可以做视频编码,添加字幕,水印等效果。

下载平台工具包后,将命令配置到环境变量中,直接在命令行推流:

-re -i D:\tmp.mp4 -f flv rtmp://:1395 //

这里我推送一个本地的mp4文件到服务器,然后我们需要拉流进行查看。这就需要一个非常常见的流媒体工具:VLC。您可以自行下载该工具。安装完成后,在打开选项中选择网络流媒体:

只需输入我们需要拉流的地址,点击播放,然后运行命令推流即可:

在推送过程中,我们可以到后台查看端口状态:

可以看到,此时端口已经建立,正在推流。此外,该流还具有视频效果:

为了有动态效果,特意做了一张gif:

6. 过程分析

至此,我们就完成了视频直播的后台环境搭建,这也是我们后面要介绍的推流和拉流之间的中间环节。我们看一下整个直播的推流和拉流流程:

推流和拉流终端均支持PC端和移动端,使用的协议大多是RTMP或HLS。还有一个更好的推拉流工具包:

所以现在很多直播应用中,主播先花点钱买一个功能比较强大的设备(直播设备),然后就可以坐在家里赚钱了。然而,一些有钱人开始直播观看并赠送金钱! !

事实上,有时候服务器的结构可能是这样的:

这里,推送的视频会保存在一处,然后就可以同时支持视频点播和视频直播了!

最后我们来看一下,现在很多大公司已经开始开发整个视频直播功能的SDK。下面看一下腾讯云推出的录音+播放功能的SDK:

它的功能还是很齐全的,可以支持本地移动设备推流(视频采集一般是来自摄像头和桌面),然后对采集到的视频做一些处理,然后进行流媒体播放。可以支持硬件加速、视频解码等功能,这也是我们后面会一一介绍的功能。

由于本文仅介绍环境搭建,因此您在开发过程中会遇到一些问题。然后你需要配置服务器信息!

七、总结

本文主要介绍如何搭建视频直播的服务器环境。这是后续引入推流和拉流的关键中间点。后续测试需要这个环境。我们采用了市面上常用的技术:+RTMP协议,需要去源码包,然后编译安装就可以了,然后为了验证效果,我用了里面的工具来推流,并使用VLC工具拉取视频进行观看。即使这个过程完成了,接下来要做的就是如何将摄像头视频数据和桌面视频数据结合起来。推流、拉流观看功能。

在手机上阅读文章有点困难。您可以输入网页版:

分享