帮酷LOGO
0 0 评论
文章标签:rtm  RTMP  setup  Nginx  SET  Centos  

使用不同的系统?

RTMP对于提供实时内容非常有用,当RTMP与FFmpeg一起使用时,流可以转换成各种特性,非常适合这些应用程序,因为它们提供快速和专用的CPU性能。让我们开始吧!

安装Nginx和nginx rtmp

从源代码编译安装Nginx和nginx rtmp所需的工具。


sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

创建一个工作目录并切换到它。


mkdir ~/working
cd ~/working

下载Nginx和nginx rtmp源。


wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

安装解压缩包。


sudo yum install unzip

提取Nginx和nginx rtmp源。


tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip

切换到Nginx目录。

 
cd nginx-1.9.7

 

将模块添加到Nginx中,包括nginx rtmp 。


./configure --add-module=../nginx-rtmp-module-1.2.1/

使用nginx rtmp编译和安装Nginx 。


make
sudo make install

为nginx创建一个SystemD单元文件。


sudo nano /usr/lib/systemd/system/nginx.service

使用以下内容填充文件。


[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

启动并启用Nginx服务。


sudo systemctl start nginx.service

告诉SystemD在引导时自动启动nginx服务。


systemctl enable nginx.service

安装FFmpeg

安装epel-release,并且更新系统。


sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

安装Nux存储库。


sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

安装FFmpeg及其开发包。


sudo yum install ffmpeg ffmpeg-devel -y

配置nginx rtmp和FFmpeg

打开Nginx配置文件。


sudo nano /usr/local/nginx/conf/nginx.conf

将以下内容附加到配置。


 rtmp {
 server {
 listen 1935;
 chunk_size 4096;

 application live {
 live on;
 record off;
 exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
 }
 application live360p {
 live on;
 record off;
 }
 }
}

添加配置文本后,你可以自定义视频比特率,音频比特率和分辨率的设置,这些更改将只适用于较低质量的流,要添加更多的质量类型,复制并粘贴exec FFmpeg行并更改设置,你可以通过复制和粘贴Live360的例子来完成这个操作,

注意:更改-b:v后的值将改变视频比特率,这是以每秒千比特为单位。更改-b:a后的值将更改音频比特率,这是以每秒千比特为单位。更改-s后的值将更改分辨率。

按CTRL +X保存文件。

重新启动Nginx 。


sudo service nginx restart

注意:为了获得最佳性能,每个正在转换的流都应该拥有自己的CPU核心,例如,如果从720p流创建360P和480P两个质量,则应使用至少有两个CPU核心的实例。

安全注意事项

如果使用防火墙,则需要确保允许TCP 1935

当前配置允许任何人的流进入到你的服务器,我们可以只给特定的IP地址权限来解决这个问题,打开Nginx配置。


sudo nano /usr/local/nginx/conf/nginx.conf

查找以下行。

 
live on;
record off;

 

将下列内容添加到上面的每一行,将0.0.0.0更改为实际的IP地址。


allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;

配置现在看起来像下面这样。


rtmp {
 server {
 listen 1935;
 chunk_size 4096;

 application live {
 live on;
 record off;
 allow publish 127.0.0.1;
 allow publish 0.0.0.0;
 deny publish all;
 exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
 }
 application live360p {
 live on;
 record off;
 allow publish 127.0.0.1;
 allow publish 0.0.0.0;
 deny publish all;
 }
 }
}

按CTRL +X保存文件。

重新启动Nginx 。


sudo service nginx restart

配置软件以便使用nginx rtmp

流应用程序通常有两个用于连接信息的字段,第一个字段通常用于服务器信息,第二个字段通常用于流名或密钥,


Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set

要查看流,请在支持RTMP的播放器中打开以下链接。


rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set



文章标签:SET  Nginx  setup  Centos  rtm  RTMP  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语