使用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/