【nginx-rtmp】搭建直播流服务器(二):搭建rtmp服务器

相关系列

【nginx-rtmp】搭建直播流服务器(一):安装nginx
【nginx-rtmp】搭建直播流服务器(二):搭建rtmp服务器

本节功能

ffmpeg命令行推流,ffplay进行播放,使用nginx-rtmp作为服务器

测试服务器

  1. pc端输入服务器ip,我的是局域网同网段,外网还没测试过
  2. 成功的话会是下面的页面,如果不成功,可能是服务器的防火墙打开了,需要关闭后重试
[root@localhost nginx]# systemctl stop firewalld
[root@localhost nginx]# nginx -s reload
成功页面

nginx配置文件修改

1.找到nginx.conf进行修改

//如果你不知道自己的nginx.conf文件在哪里
[root@localhost nginx]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf ...(后面省略)
//打开nginx.conf
[root@localhost nginx]# vi /etc/nginx/nginx.conf

原来的nginx.conf,这文件每个版本可能各有差异,不影响

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

需要增加rtmp服务器的相关内容,直接增加在http{}外面,这个是最简单的测试版本,部分语法可以先参考基于nginx的rtmp直播服务器(nginx-rtmp-module实现)

rtmp{
    sever{
        listen 1935; #默认端口
        application live{  #直播 live是程序的名字,可以自定义
            live on; #打开直播模式
        }
    }
}

完整nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

rtmp{
        server{
                listen 1935;
                application live{
                        live on;
                }
        }
}

修改完后重新启动nginx

[root@localhost nginx]# nginx -s reload

2.ffmpeg命令行进行推流和播放工作

默认已经安装了ffmpeg,安装在服务器或者pc都可以,只要是同局域网能访问,下面以PC上推流拉流为例。用ffmpeg推流,用ffplay拉流播放。VLC播放也可以的,为了方便都用了ffmpeg系列的产品。PC上安装ffmpeg很简单,官网下载再加入环境变量就可以。ffmpeg官网

推流指令

ffmpeg -re -i E:\test_video\timer.mp4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://你的服务器地址:1935/live/timer

拉流指令

ffplay rtmp://你的服务器地址:1935/live/timer

live是nginx.conf里面定义的app名字,timer是视频的名字,可以自定义,推流和拉流的统一就可以,端口号试了加不加都能成功播放。

你可能感兴趣的:(【nginx-rtmp】搭建直播流服务器(二):搭建rtmp服务器)