蚊章汇 - Aaron J.prisk
type: channel
link: https://linuxcn.bwsl.wang/author/1616/
description: Aaron J.prisk
items: 使用 OBS 搭建视频流媒体服务器

使用 OBS 搭建视频流媒体服务器
type: item
date: 2022-01-08T18:29:44+08:00
description: 在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。实时视频流越来越流行。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户，这些用户消磨了无数小时的来观看直播和录制视频。这些视频服务通常可以免费使用，但需要你拥有一个帐户，并且一般会将你的视频内容隐藏在广告中。有些人不希望他们的视频提供给大众观看，或者想更多地控制自己的视频内容。幸运的是，借助强大的开源软件，任何人都可以设置直播服务器。入门在本教程中，我将说明如何使用 Linux 或 BSD 操作系统设置基本的实时流媒体服务器。搭建实时流媒体服务器不可避免地提到系统需求问题。这些需求多种多样，因为实时流媒体涉及许多因素，例如：流媒体质量： 你想以高清流媒体播放还是标清视频就可以满足你的需求？收视率： 你的视频预计有多少观众？存储： 你是否打算保留已保存的视频流副本？访问： 你的视频流是私有的还是向全世界开放的？在硬件要求方面没有固定规则，因此我建议你进行测试，以便找到最适合你需求的配置。本项目中，我将服务器安装在配有 4GB 内存、20GB 硬盘空间和单个 Intel i7 处理器内核的虚拟机上。本项目使用 实时消息传递协议 Real-Time Messaging Protocol （RTMP）来处理音频和视频流。当然还有其他协议可用，但我选择 RTMP 是因为它具有广泛的支持。鉴于像 WebRTC 这样的开放标准变得更加兼容，我比较推荐这条路线。同样重要的是，要明白“实时”并不总是意味着即时。视频流必须经过编码、传输、缓冲和显示，这通常会增大延迟。延迟可以被缩短或延长，具体取决于你创建的流类型及其属性。设置 Linux 服务器你可以使用许多不同的 Linux 发行版，但我更喜欢 Ubuntu，因此我下载了 Ubuntu 服务器版 作为我的操作系统。如果你希望你的服务器具有图形用户界面（GUI），请随意使用 Ubuntu 桌面版 或其多种风味版本之一。然后，我在我的计算机或虚拟机上启动了 Ubuntu 安装程序，并选择了最适合我的环境的设置。以下是我采取的步骤。注意：因为这是一个服务器，你可能需要设置静态网络。安装程序完成并重新启动系统后，你会看到一个可爱的新 Ubuntu 系统。 与任何新安装的操作系统一样，安装任何可用的更新：sudo apt update sudo apt upgrade 这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器，所以你需要安装它：sudo apt install nginx 然后你需要获取 RTMP 模块，以便 Nginx 可以处理你的媒体流：sudo add-apt-repository universe sudo apt install libnginx-mod-rtmp 修改你的网页服务器配置，使其能够接受和传送你的媒体流。sudo nano /etc/nginx/nginx.conf 滚动到配置文件的底部并添加以下代码：rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } } 保存配置。我是使用 Nano 来编辑配置文件的异端。在 Nano 中，你可以通过快捷键 Ctrl+X、Y 并按下回车来保存你的配置。这么一个非常小的配置就可以创建一个可工作的流服务器。稍后你将添加更多内容到此配置中，但这是一个很好的起点。在开始第一个流之前，你需要使用新配置重新启动 Nginx：sudo systemctl restart nginx 设置 BSD 服务器如果是“小恶魔”（LCTT 译者注：FreeBSD 的标志是一个拿着叉子的红色小恶魔）的信徒，那么建立并运行一个流媒体服务器也非常容易。前往 FreeBSD 网站并下载最新版本。在你的计算机或虚拟机上启动 FreeBSD 安装程序，然后执行初始步骤并选择最适合你环境的设置。由于这是一个服务器，你可能需要设置静态网络。在安装程序完成并重新启动系统后，你应该就拥有了一个闪亮的新 FreeBSD 系统。像任何其他新安装的系统一样，你可能希望更新所有内容（从这一步开始，请确保你以 root 身份登录）：pkg update pkg upgrade 安装 Nano 来编辑配置文件：pkg install nano 这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器。 你可以使用 FreeBSD 所拥有的优秀 ports 系统来构建 Nginx。首先，更新你的 ports 树：portsnap fetch portsnap extract 进入 Nginx ports 目录：cd /usr/ports/www/nginx 运行如下…