使用Nginx搭建RTMP服务器备忘录

由于在Nginx上建立了RTMP服务器,所以为了备忘的目的,我会在这里记下笔记。(2015/7/14)

环境

    • OS: CentOS 6.4

 

    Nginx: v1.8.0

预先准备

由于有一些必要的东西,如果没有安装,我会给您安装。

安装GCC

C等编译器

$ yum install gcc

安装PCRE

Perl5兼容的正则表达式库

$ yum install pcre-devel

安装zlib库

gzip的压缩/解压库

$ yum install zlib zlib-devel

安装OpenSSL

SSL库

$ yum install openssl openssl-devel

如果已经安装了OpenSSL并且版本较旧,则需要进行更新。(似乎需要v1.0.1或更高版本)

安装Nginx(包含RTMP模块)

当准备好之后,将安装Nginx。由于需要将RTMP模块集成并进行构建,所以无法使用yum进行安装。以下是操作步骤。

创建Nginx用户

在安装之前,需要手动创建一个用于Nginx的用户。

$ useradd --shell /sbin/nologin nginx

下载Nginx和RTMP模块。

从官方下载页面中以wget命令将最新稳定版的Nginx下载到任意位置,并进行解压。

$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ tar -zxvf nginx-1.8.0.tar.gz

接下来,将RTMP模块的源代码使用wget命令下载到任意位置,并解压缩。

$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
$ unzip master

使用make安装Nginx

定义 configure。
在 –add-module 参数中指定 RTMP 模块的路径。

$ cd nginx-1.8.0
$ ./configure --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --add-module=../nginx-rtmp-module-master

目前正在进行最低限度的设置和集成RTMP模块。如果还需要其他内容,请追加说明。

进行make安装。

$ make
$ sudo make install

如果按照目前的状态,进程无法启动,所以要修改配置文件。
在第一行左右的地方,取消user指令的注释,并手动进行设置。

user  nginx nginx;

试着启动一下。

$ sudo /usr/local/nginx/sbin/nginx

只要能够访问到{服务器地址},就可以了。

作为RTMP服务器启动

这是一个关于RTMP服务器的问题。
首先,在配置文件中添加RTMP服务器的设置。

rtmp {
    server {
        listen 1935;

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

重启Nginx。

$ /usr/local/nginx/sbin/nginx -s stop
$ /usr/local/nginx/sbin/nginx

现在以RTMP服务器的形式启动。

尝试进行现场直播

只要方法是可以的,但在这里我尝试了使用本地机(MacBook)的ffmpeg通过安装的摄像头拍摄的视频进行RTMP服务器传输,并在VLC中进行了操作确认。
※由于ffmpeg的安装和命令说明较长,因此省略了m(_ _)m

首先,关于发送方面应该这样处理。

$ ffmpeg -f avfoundation -pixel_format uyvy422 -i "0:0" -crf 23.0 -c:v libx264 -c:a aac -strict experimental -s 640x360 -b:v 128k -f flv rtmp://{RTMPサーバのアドレス}/live/1

次に受信側。
1. VLCを起動
2. 「ファイル」 > 「ネットワークを開く」
3. 「URL」欄にrtmp://{RTMPサーバのアドレス}/live/1を入力して「開く」

我們成功地通過直播進行了這個。

所感 (suǒ

对于延迟大约10秒的情况,我有点担心。
(由于机器规格和网络环境也会造成影响,所以我还没能详细查看,有点尴尬)

虽然 Live 配信相对来说很容易,设置也很简单,整体感觉不错。
据说 Nginx 不仅可以进行 RTMP 的配信,还可以同时转换为 HLS,所以下次我想试试。

请提供更多背景信息,以便能够更准确地回答您的问题。

http://qiita.com/nenokido2000/items/3cbb76dac2b9940f339e(Nginxのインストール部分はほぼこちらを参考にさせて頂きました。感謝。)
https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

广告
将在 10 秒后关闭
bannerAds