Nginx /Nginx RTMP Module / Ffmpeg 搭建自有流媒体服务器

nginx搭建流媒体服务器(linux 环境)

准备环境

下载nginx 源码包, 选择最新版本下载、解压。

下载 nginx-rtmp-module

1
git clone https://github.com/arut/nginx-rtmp-module --depths=1

安装必要依赖库

1
2
3
4
5
sudo apt-get update 
sudo apt-get install libpcre3 libpcre3-dev 

#你可能还需要安装
sudo apt-get install openssl libssl-dev

源码编译安装

1
2
3
4
5
6
7
8
# 找到nginx解压的源码根目录
cd /path/to/nginx/source

sudo ./configure --add-module=/path/to/nginx-rtmp-module --with-http_ssl_module
sudo make
sudo make install

# 注意默认安装路径是/usr/local/nginx/

准备就绪,配置nginx.conf(/usr/local/nginx/conf/nginx.conf)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
http {
...
}
mail {
...
}
# 新增rtmp配置
rtmp {
server {
# 默认端口号 1935
listen 1935;

application myapp {
live on;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
}
}

看是否有已安装nginx其他版本

1
2
3
ps -ef |grep nginx

killall nginx

启动nginx

1
2
3
4
5
6
7
cd /usr/local/nginx/bin/

./nginx -c /usr/local/nginx/conf/nginx.conf -t

# 测试配置正常后,启动服务

./nginx -c /usr/local/nginx/conf/nginx.conf

安装ffmpeg,并推流

1
2
3
sudo apt install ffmpeg

ffmpeg -i /path/to/xx.mp4 -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv rtmp://localhost/myapp/test1

观看直播

在VLC上打开网络串流 ,填写 rtmp://nginx服务器IP地址/myapp/test1可以看到监控画面,有大约2~3秒的延时

关于rtmp优化和参数配置,需到github的wiki查看