使用 OBS 搭建视频流媒体服务器(视频服务器)

在Linux或BSD操作系统上设置一个基本的实时流媒体服务器。



实时视频流变得越来越流行。亚马逊的Twitch和谷歌的YouTube平台拥有数百万用户,他们花费无数时间观看直播和录制视频。这些视频服务通常是免费使用的,但是你需要有一个账号,你的视频内容一般会隐藏在广告中。有些人不希望他们的视频对公众开放,或者他们希望对他们的视频内容有更多的控制权。幸运的是,在强大的开源软件的帮助下,任何人都可以设置直播服务器。

初级课程

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

构建实时流媒体服务器不可避免地会提出系统需求的问题。这些要求各不相同,因为实时流涉及许多因素,例如:

  • 流媒体质量:你是想在高清流媒体中播放还是标清视频中播放才能满足你的需求?
  • 收视率:你预计你的视频会有多少观众?
  • 存储:您打算保留已保存视频流的副本吗?
  • 访问:你的视频流是私有的还是对外开放的?
  • 在硬件要求方面没有固定的规则,所以我建议您进行测试,以找到最适合您需求的配置。在这个项目中,我将服务器安装在一个具有4GB内存、20GB硬盘空和一个英特尔i7处理器内核的虚拟机上。

    这个项目使用实时消息协议(RTMP)来处理音频和视频流。当然,还有其他可用的协议,但是我选择了RTMP,因为它有广泛的支持。鉴于像WebRTC这样的开放标准已经变得更加兼容,我推荐这条路线。

    理解“实时”并不总是指瞬间也很重要。视频流必须被编码、传输、缓冲和显示,这通常会增加延迟。延迟可以缩短或延长,这取决于您创建的流的类型及其属性。

    设置Linux服务器

    你可以使用许多不同的Linux发行版,但我更喜欢Ubuntu,所以我下载了Ubuntu Server Edition作为我的操作系统。如果你想让你的服务器有一个图形用户界面(GUI ),请随意使用Ubuntu桌面版或其众多版本中的一个。然后,我在电脑或虚拟机上启动Ubuntu installer,选择最适合我环境的设置。以下是我采取的步骤。

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



    安装完成后,系统重启,你会看到一个可爱的新Ubuntu系统。与任何新安装的操作系统一样,安装任何可用的更新:

    Sudo apt更新 sudo apt升级 这个流媒体服务器会使用一个非常强大且通用的Nginx web服务器,所以你需要安装它:

    Sudapt安装Nginx 然后你需要获得RTMP模块,以便Nginx可以处理你的媒体流:

    sudo add-apt-repository universe sudo apt install libnginx-mod-rtmp 修改您的web服务器配置,以便它可以接收和传送您的媒体流。

    sud nano/etc/nginx/nginx . conf 滚动到配置文件的底部,添加以下代码:

    rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } }


    rtmp { 服务器{ 监听1935; chunk _ size 4096; 应用程序live { live on; 记录关闭; } } }

    保存配置。我是用Nano编辑配置文件的异端。在Nano中,您可以通过按快捷键Ctrl+X,Y和Enter保存您的配置。

    这样一个非常小的配置可以创建一个工作的流服务器。稍后您将向该配置添加更多内容,但这是一个很好的起点。

    在启动第一个流之前,您需要使用新的配置重新启动nginx:

    sudo systemctl重新启动nginx

    设置BSD服务器

    如果你是“小恶魔”(LCTT译者注:FreeBSD的标志是一个带叉的红色小恶魔)的信徒,设置和运行流媒体服务器也是非常容易的。

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

    安装程序完成后,系统重新启动,您应该有一个全新的FreeBSD系统。像任何其他新安装的系统一样,您可能希望更新所有内容(从这一步开始,请确保您以root用户身份登录):

    Pkg更新 pkg升级 安装Nano以编辑配置文件:

    Pkg安装nano 这个流媒体服务器将使用一个非常强大的通用Nginx web服务器。可以使用FreeBSD拥有的优秀的ports系统来构建Nginx。

    首先,更新您的端口树:

    端口快照提取 端口快照提取 转到Nginx端口目录:

    Cd /usr/ports/www/Nginx 运行以下命令开始构建Nginx:

    Make install 你会看到一个屏幕,询问你的Nginx构建中包含哪些模块。对于这个项目,你需要添加RTMP模块。向下滚动直至选择RTMP模块,然后按空键。然后按Enter键继续余下的构建和安装。

    Nginx安装完成后,就该为它配置流了。

    首先,在/etc/rc.conf中添加一个条目,确保Nginx服务器在系统启动时启动:

    Nano /etc/rc.conf 将此文本添加到文件中:

    nginx_enable="YES"


    nginx _ enable = " YES "

    接下来,创建一个网站根目录,Nginx将从这个目录中提供内容。我自己的目录叫做stream:

    CD/usr/local/www/ mkdirstream 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;


    load _ module/usr/local/lib exec/nginx/ngx _ stream _ module . so; load _ module/usr/local/lib exec/nginx/ngx _ rtmp _ module . so;

    在“服务器”部分下,更改根位置以匹配您之前创建的目录位置:

    Location / { root /usr/local/www/stream }


    location/{ root/usr/local/www/stream }

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

    rtmp { 服务器{ 监听1935; chunk _ size 4096; 应用程序live { live on; 记录关闭; } } }保存配置。在Nano中,您可以使用快捷键Ctrl+X,Y,然后按Enter键来完成此操作。

    正如您所看到的,这样一个非常小的配置将创建一个工作流服务器。稍后,您将向该配置添加更多内容,但这将为您提供一个良好的起点。

    视频服务

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

    服务nginx重新启动

    设置您的流媒体软件

    使用OBS进行广播

    现在,您的服务器已经准备好接受您的视频流,是时候设置您的流媒体软件了。本教程使用强大的开源开放广播工作室(OBS)。

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



    OBS没有捕捉到任何东西,因为你没有提供它的来源。在本教程中,您只需要捕获流的桌面。单击Source下的+按钮,选择Show Capture Screen Capture,然后选择要捕获的桌面。

    单击OK OK,您应该会看到OBS镜像了您的桌面。

    现在,您可以将新配置的视频流发送到您的服务器。在OBS中,单击文件>:设置文件>:设置.点击“串流”部分,将“串流类型”设置为“自定义串流服务器”。

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

    接下来,您可能需要输入“流密钥”,这是观看您的流所需的特殊标识符。在“流密钥”框中输入您想要的(并且能够记住的)任何关键字。



    单击应用,然后单击确定。

    现在OBS已经被配置为将您的流发送到您的服务器,您可以开始您的第一个视频流了。单击开始流式传输。

    如果一切正常,你应该会看到按钮变成了“停止流”,一些带宽指示器会出现在OBS的底部。

    如果您收到错误消息,请仔细检查OBS中的流设置是否有拼写错误。如果一切看起来都很好,另一个问题可能是阻止它工作。

    观看您的视频流。

    如果没人看,视频直播也不是很好,所以请做你的第一批观众!

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

    安装VLC后,单击媒体>:打开网络流媒体>:打开流”打开您的流。输入您的流的路径,添加您在OBS中设置的流密钥,然后单击“播放播放”。例如,rtmp://IP-address/live/secret-key。

    现在你应该可以看到自己的实时视频流了!



    下一步是什么?

    这个项目是一个非常简单的设置让你开始。这里有另外两个你可能想用的特性。

  • 限制访问:接下来您可能要做的事情是限制对您的服务器的访问,因为默认设置允许任何人从服务器流入和流出。设置的方法有很多,比如操作系统防火墙,。htaccess文件,甚至使用STMP模块中内置的访问控制。

  • 记录流:这个简单的Nginx配置只会流式传输你的视频而不会保存它,但是很容易修改。在Nginx配置文件的RTMP部分下,设置录制选项和保存视频的位置。确保您设置的路径存在,并且Nginx可以写入该路径。

    应用程序直播{直播;全部记录;record _ path/var/www/html/recordings;上的record _ unique}

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

    via:https://open source . com/article/19/1/basic-live-video-streaming-server

    作者:Aaron J.Prisk题目:lujun9972译者:Starryi校对:wxy

    本文最初由LCTT编辑,Linux中国有幸推出。

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友