使用Linux创建自己的视频流服务器

本文介绍如何利用Linux或BSD操作系统设置实时视频流服务器。通过安装Nginx和RTMP模块,配合OBS广播软件,实现自定义视频流服务。教程涵盖了服务器配置、OBS设置以及查看流的方法,帮助你建立自己的直播平台。
摘要由CSDN通过智能技术生成

实时视频流非常受欢迎,并且仍在增长。 亚马逊的Twitch和Google的YouTube等平台吸引了数百万用户,这些用户流式传输并消耗了数小时的现场和录制媒体。 这些服务通常是免费使用的,但需要您拥有一个帐户,并且通常会将您的内容保留在广告的后面。 有些人不需要将视频发布给大众,或者只是想要对其内容进行更多控制。 幸运的是,借助开源软件的强大功能,任何人都可以设置实时流服务器。

入门

在本教程中,我将说明如何使用Linux或BSD操作系统设置基本的实时流服务器。

这导致了不可避免的系统需求问题。 这些内容可能会有所不同,因为实时流媒体涉及很多变量,例如:

  • 串流质量:您想以高清流式传输还是标准清晰度满足您的需求?
  • 观众人数:您希望视频获得多少观众?
  • 存储:您打算保留已保存的视频流副本吗?
  • 访问权限:您的信息流是私有的还是向世界公开的?

该项目使用实时消息协议(RTMP)来处理音频和视频流。 还有其他协议可用,但我选择RTMP是因为它具有广泛的支持。 随着像WebRTC这样的开放标准变得更加兼容,我建议您使用该路由。

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

设置Linux服务器

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

注意:因为这是服务器,所以您可能需要设置一些静态网络设置。

Ubuntu profile setup

安装程序完成并重新启动系统后,您将获得一个漂亮的新Ubuntu系统。 与任何新安装的操作系统一样,安装所有可用的更新:


   
   
sudo apt update
sudo apt upgrade

该流服务器将使用功能强大且用途广泛的Nginx Web服务器,因此您需要安装它:

 sudo apt install nginx 

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


   
   
sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

调整您的Web服务器的配置,使其可以接受和传送您的媒体流。

 sudo nano /etc/nginx/nginx.conf 

滚动到配置文件的底部,然后添加以下代码:


   
   
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}
Nginx configuration

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

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

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

 sudo systemctl restart nginx 

设置BSD服务器

如果您具有“野兽”的说服力,那么启动和运行流服务器也非常容易。

转到FreeBSD网站并下载最新版本。 启动计算机或虚拟机上的FreeBSD安装程序,并执行初始步骤,然后选择最适合您的环境的设置。 由于这是服务器,因此您可能需要设置一些静态网络设置。

安装程序完成并重新启动系统后,您应该有了一个闪亮的新FreeBSD系统。 与其他任何新安装的系统一样,您可能需要更新所有内容(从此步骤开始,请确保您以root用户身份登录):


   
   
pkg update
pkg upgrade

我安装了Nano用于编辑配置文件:

 pkg install nano 

该流服务器将使用功能强大且用途广泛的Nginx Web服务器。 您可以使用FreeBSD拥有的出色的端口系统来构建Nginx。

首先,更新您的端口树:


   
   
portsnap fetch
portsnap extract

浏览到Nginx ports目录:

 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" 
Nginx configuration

接下来,创建一个Webroot目录,Nginx将在该目录中提供其内容。 我称我的流为


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

既然您已经创建了流目录,请通过编辑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;
Loading streaming modules

在“ 服务器”部分下,更改webroot位置以匹配您先前创建的位置:


   
   
Location / {
root /usr/local/www/stream
}
Changing webroot location

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


   
   
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

保存配置。 在Nano中,您可以通过按Ctrl + XY ,然后按Enter来执行此操作

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

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

 service nginx restart 

设置您的流媒体软件

用OBS广播

现在,您的服务器已准备就绪,可以接受视频流了,该设置流媒体软件了。 本教程使用功能强大且开源的Open Broadcast Studio(OBS)。

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

OBS auto-configuration wizard

OBS没有捕获任何内容,因为您没有提供任何源。 对于本教程,您只需要捕获流的桌面即可。 只需单击Source下的+按钮,选择Screen Capture ,然后选择要捕获的桌面。

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

现在是时候将新配置的视频流发送到服务器了。 在OBS中,单击文件 > 设置 。 单击“ 流”部分,然后将“ 流类型”设置为“ 自定义流服务器”

在URL框中,输入前缀rtmp://,然后输入流服务器的IP地址,然后输入/ live 。 例如, rtmp:// IP-ADDRESS / live

接下来,您可能需要输入Stream键-查看流所需的特殊标识符。 在“ 流密钥”框中输入您想要(并且可以记住)的任何密钥。

Stream key setup

单击“ 应用” ,然后单击“确定”

现在,OBS已配置为将流发送到服务器,您可以启动第一个流。 单击开始流

如果一切正常,您应该看到按钮更改为Stop Streaming,并且某些带宽指标将出现在OBS的底部。

OBS stream metrics

如果收到错误,请仔细检查OBS中的“流设置”以检查拼写错误。 如果一切看起来不错,可能还有另一个问题使其无法正常工作。

查看您的流

如果没有人观看实况视频,效果不是很好,所以请成为第一个观众!

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

安装并启动VLC之后,通过单击媒体 > 打开网络流打开流 。 输入流的路径,添加您在OBS中设置的流密钥,然后点击播放 。 例如, rtmp:// IP-ADDRESS / live / SECRET-KEY

您现在应该在观看自己的实时视频流!

Live video in VLC

接下来要去哪里?

这是一个非常简单的设置,可以帮助您起步。 这是您可能要使用的其他两个功能。

  • 限制访问:您可能要采取的下一步是限制对服务器的访问,因为默认设置允许任何人流向服务器和从服务器进行流传输。 有多种设置方法,例如操作系统防火墙, .htaccess文件 ,甚至使用RTMP模块中内置访问控制

  • 录制流:这种简单的Nginx配置将仅流化并且不会保存您的视频,但这很容易添加。 在Nginx配置中的“ RTMP”部分下,设置录制选项以及您想要保存视频的位置。 确保您设置的路径存在并且Nginx能够写入它。


   
   
application live {
             live on;
             record all;
             record_path /var/www/html/recordings;
             record_unique on;
}

实时流媒体的世界在不断发展,如果您对更高级的使用感兴趣,则可以在互联网上找到很多其他很棒的资源。 祝你好运,直播愉快!

翻译自: https://opensource.com/article/19/1/basic-live-video-streaming-server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值