实时视频流非常受欢迎,并且仍在增长。 亚马逊的Twitch和Google的YouTube等平台吸引了数百万用户,这些用户流式传输并消耗了数小时的现场和录制媒体。 这些服务通常是免费使用的,但需要您拥有一个帐户,并且通常会将您的内容保留在广告的后面。 有些人不需要将视频发布给大众,或者只是想要对其内容进行更多控制。 幸运的是,借助开源软件的强大功能,任何人都可以设置实时流服务器。
入门
在本教程中,我将说明如何使用Linux或BSD操作系统设置基本的实时流服务器。
这导致了不可避免的系统需求问题。 这些内容可能会有所不同,因为实时流媒体涉及很多变量,例如:
- 串流质量:您想以高清流式传输还是标准清晰度满足您的需求?
- 观众人数:您希望视频获得多少观众?
- 存储:您打算保留已保存的视频流副本吗?
- 访问权限:您的信息流是私有的还是向世界公开的?
该项目使用实时消息协议(RTMP)来处理音频和视频流。 还有其他协议可用,但我选择RTMP是因为它具有广泛的支持。 随着像WebRTC这样的开放标准变得更加兼容,我建议您使用该路由。
知道“实时”并不总是意味着即时,这一点也很重要。 视频流必须经过编码,传输,缓冲和显示,这通常会增加延迟。 根据创建的流的类型及其属性,可以缩短或延长延迟。
设置Linux服务器
您可以使用许多不同的Linux发行版,但我更喜欢Ubuntu,因此我为我的操作系统下载了Ubuntu Server版本。 如果您希望服务器具有图形用户界面(GUI),请随时使用Ubuntu Desktop或其多种功能之一。 然后,我在计算机或虚拟机上启动了Ubuntu安装程序,并选择了最适合我的环境的设置。 以下是我采取的步骤。
注意:因为这是服务器,所以您可能需要设置一些静态网络设置。
安装程序完成并重新启动系统后,您将获得一个漂亮的新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
滚动到配置文件的底部,然后添加以下代码: