# 如何使用 Linux 创建您自己的视频流服务器

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/2293.html | 发布：2021-11-26 | 更新：2021-11-26 | 分类：服务器vps推荐

实时视频流非常受欢迎，而且还在不断增长。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户，他们流式传输和消费无数小时的直播和录制媒体。

实时视频流非常受欢迎，而且还在不断增长。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户，他们流式传输和消费无数小时的直播和录制媒体。这些服务通常可以免费使用，但需要您拥有一个帐户，并且通常将您的内容隐藏在广告中。有些人不需要他们的视频可供大众使用，或者只是想要更多地控制他们的内容。幸运的是，借助开源软件的强大功能，任何人都可以设置直播服务器。

 

## 入门

 

在本教程中，我将解释如何使用 Linux 或 BSD 操作系统设置基本的实时流媒体服务器。

 

这导致不可避免的系统需求问题。这些可能会有所不同，因为直播涉及很多变量，例如：

 
 
- **流**媒体**质量：**您想以高清晰度进行流式传输还是标准清晰度符合您的需求？ 
- 收视率**：**您希望您的视频有多少观众？ 
- **存储：**您是否打算保留已保存的视频流副本？ 
- **访问：**您的流是私有的还是向全世界开放的？ 

 

在系统要求方面没有固定规则，因此我建议您尝试并找到最适合您需求的方法。我将服务器安装在具有 4GB RAM、20GB 硬盘驱动器和单个 Intel i7 处理器内核的虚拟机上。

 

该项目使用实时消息传递协议 (RTMP) 来处理音频和视频流。还有其他可用的协议，但我选择了 RTMP，因为它有广泛的支持。随着像 WebRTC 这样的开放标准变得更加兼容，我会推荐这条路线。

 

知道“实时”并不总是意味着即时也很重要。视频流必须经过编码、传输、缓冲和显示，这通常会增加延迟。根据您创建的流类型及其属性，可以缩短或延长延迟。

 

## 设置 Linux 服务器

 

您可以使用许多不同的 Linux 发行版，但我更喜欢 Ubuntu，因此我为我的操作系统下载了 Ubuntu Server版本。如果您希望您的服务器具有图形用户界面 (GUI)，请随意使用Ubuntu Desktop或其多种风格之一。然后，我在我的计算机或虚拟机上启动了 Ubuntu 安装程序，并选择了最适合我的环境的设置。以下是我采取的步骤。

 

注意：因为这是一个服务器，您可能需要设置一些静态网络设置。

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_profilesetup.png)

 

安装程序完成并重新启动系统后，您将看到一个可爱的新 Ubuntu 系统。与任何新安装的操作系统一样，安装任何可用的更新：

 

须藤 apt 更新  
 须藤 apt 升级

 

这个流媒体服务器将使用非常强大和通用的 Nginx Web 服务器，所以你需要安装它：

 

```
sudo apt install nginx
```

 

然后您需要获取 RTMP 模块，以便 Nginx 可以处理您的媒体流：

 

须藤添加  
 -apt- repository 宇宙须藤 apt 安装 libnginx-mod-rtmp

 

调整您的 Web 服务器的配置，使其能够接受和传送您的媒体流。

 

```
sudo nano /etc/nginx/nginx.conf
```

 

滚动到配置文件的底部并添加以下代码：

 

rtmp {  
 服务器 {  
 听 1935;  
 块大小 4096； 应用直播 {  
 直播;  
 注销；  
 }  
 }  
 }

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_config.png)

 

保存配置。因为我是异端，所以我使用Nano来编辑配置文件。在 Nano 中，您可以通过按**Ctrl+X**、**Y**，然后**按 Enter**来保存您的配置**。**

 

这是一个非常小的配置，将创建一个工作流服务器。稍后您将添加到此配置中，但这是一个很好的起点。

 

但是，在开始第一个流之前，您需要使用新配置重新启动 Nginx：

 

```
sudo systemctl restart nginx
```

 

## 设置 BSD 服务器

 

如果您相信“野兽”，那么启动并运行流媒体服务器也非常容易。

 

前往FreeBSD网站并下载最新版本。在您的计算机或虚拟机上启动 FreeBSD 安装程序并完成初始步骤并选择最适合您环境的设置。由于这是一个服务器，您可能需要设置一些静态网络设置。

 

安装程序完成并重新启动系统后，您应该拥有一个闪亮的新 FreeBSD 系统。像任何其他新安装的系统一样，您可能希望更新所有内容（从这一步开始，请确保您以 root 身份登录）：

 

pkg 更新  
 pkg 升级

 

我安装 Nano来编辑配置文件：

 

```
pkg install nano
```

 

这个流媒体服务器将使用非常强大和通用的 Nginx Web 服务器。您可以使用FreeBSD 吹嘘的优秀*端口*系统来构建 Nginx 。

 

首先，更新您的端口树：

 

portnap 获取  
 portnap 提取

 

浏览到 Nginx 端口目录：

 

```
cd /usr/ports/www/nginx
```

 

并通过运行开始构建 Nginx：

 

```
make install
```

 

您将看到一个屏幕，询问您的 Nginx 构建中要包含哪些模块。对于这个项目，您需要添加 RTMP 模块。向下滚动直到选中 RTMP 模块，然后按**Space**。然后按**Enter**继续其余的构建和安装。

 

Nginx 安装完成后，就该为流式传输目的配置它了。

 

首先，在**/etc/rc.conf 中**添加一个条目以确保 Nginx 服务器在您的系统启动时启动：

 

```
nano /etc/rc.conf
```

 

将此文本添加到文件中：

 

```
nginx_enable="YES"
```

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_streamingconfig.png)

 

接下来，创建一个 webroot 目录，Nginx 将从中提供其内容。我称我的**流**：

 

cd /usr/local/www/  
 mkdir 流  
 chmod -R 755 流/

 

现在你已经创建了你的流目录，通过编辑它的配置文件来配置 Nginx：

 

```
nano /usr/local/etc/nginx/nginx.conf
```

 

在文件顶部加载您的流媒体模块：

 

load_module /usr/local/libexec/nginx/ngx_stream_module.so;  
 load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_modules.png)

 

在**Server**部分下，更改 webroot 位置以匹配您之前创建的位置：

 

位置 / {  
 root /usr/local/www/stream  
 }

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_webroot.png)

 

最后，添加您的 RTMP 设置，以便 Nginx 知道如何处理您的媒体流：

 

rtmp {  
 服务器 {  
 听 1935;  
 块大小 4096； 应用直播 {  
 直播;  
 注销；  
 }  
 }  
 }

 

保存配置。在 Nano 中，您可以通过按**Ctrl+X**、**Y**，然后**按 Enter**来执行此操作**。**

 

如您所见，这是一个非常小的配置，它将创建一个工作流服务器。稍后，您将添加到此配置中，但这将为您提供一个很好的起点。

 

但是，在开始第一个流之前，您需要使用新配置重新启动 Nginx：

 

service nginx restart

 

## 设置您的流媒体软件

 

**使用 OBS 进行广播**

 

现在您的服务器已准备好接受您的视频流，是时候设置您的流媒体软件了。本教程使用功能强大的开源 Open Broadcast Studio (OBS)。

 

前往OBS 网站，找到适用于您的操作系统的版本并安装它。OBS 启动后，您应该会看到一个首次运行向导，该向导将帮助您使用最适合您的硬件的设置来配置 OBS。

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_autoconfig.png)

 

OBS 没有捕获任何内容，因为您没有为其提供源。在本教程中，您只需为流捕获桌面。只需单击**Source**下的**+**按钮，选择**Screen Capture**，然后选择要捕获的桌面。

 

单击“确定”，您应该会看到 OBS 镜像您的桌面。

 

现在是时候将您新配置的视频流发送到您的服务器了。在 OBS 中，单击**文件**>**设置**。单击**Stream**部分，并将**Stream Type**设置为**Custom Streaming Server**。

 

在 URL 框中，输入前缀**rtmp://**后跟流媒体服务器的 IP 地址，后跟**/live**。例如， **rtmp://IP-ADDRESS/live**。

 

接下来，您可能需要输入一个流密钥——查看您的流所需的特殊标识符。在**流密钥**框中输入您想要（并且可以记住）的任何密钥。

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_streamkey.png)

 

单击“**应用”**，然后**单击“确定”**。

 

现在 OBS 已配置为将您的流发送到您的服务器，您可以开始您的第一个流。单击**开始流式传输**。

 

如果一切正常，您应该会看到按钮更改为**停止流式传输，** 并且一些带宽指标将出现在 OBS 的底部。

 

![OBS 流指标](https://opensource.com/sites/default/files/uploads/stream-server_metrics.png)

 

如果您收到错误消息，请仔细检查 OBS 中的“流设置”是否存在拼写错误。如果一切看起来都不错，则可能是另一个问题阻止了它的工作。

 

## 查看您的流

 

如果没有人观看，直播视频就不是很好，所以请成为您的第一个观众！

 

有许多支持 RTMP 的开源媒体播放器，但最著名的可能是VLC 媒体播放器。

 

安装并启动 VLC 后，单击**Media** > **Open Network Stream**打开您的流。输入流的路径，添加您在 OBS 中设置的流密钥，然后单击**播放**。例如， **rtmp://IP-ADDRESS/live/SECRET-KEY**。

 

您现在应该可以查看您自己的实时视频流！

 

![如何使用 Linux 创建您自己的视频流服务器](https://www.mfisp.com/wp-content/uploads/2021/11/stream-server_livevideo.png)

 

## 下一步去哪里？

 

这是一个非常简单的设置，可以让您起步。以下是您可能想要使用的另外两个功能。

 
 
- **限制访问：**您可能想要采取的下一步是限制对您的服务器的访问，因为默认设置允许任何人与服务器进行流传输。有多种设置方法，例如操作系统防火墙、.htaccess 文件，甚至使用RTMP 模块中的内置访问控制。 
- **录制流：**这个简单的 Nginx 配置只会流而不会保存您的视频，但这很容易添加。在 Nginx 配置中，在 RTMP 部分下，设置录制选项和要保存视频的位置。确保您设置的路径存在并且 Nginx 能够写入它。 

 

应用直播 {  
 直播;  
 全部记录；  
 record_path /var/www/html/recordings;  
 record_unique on;  
 }

 

实时流媒体的世界在不断发展，如果您对更高级的用途感兴趣，可以在互联网上找到许多其他很棒的资源。祝你好运，直播快乐！[文章来源](https://opensource.com/article/19/1/basic-live-video-streaming-server)

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
