2022-06-29 银河麒麟V10 Nginx-rtmp+FFmpeg流媒体服务器环境搭建

银河麒麟V10

系统信息


2022-06-29_10-06-50.png

FFmpeg

下载源码
https://github.com/FFmpeg/FFmpeg/releases/tag/n3.4.11
这里下载tag版,也是笔记时间最新的版本
下载完成后你将得到FFmpeg-n3.4.11.tar.gz压缩包
使用命令tar -xvf FFmpeg-n3.4.11.tar.gz解压这个压缩包,得到FFmpeg-n3.4.11文件夹

2022-06-29_10-10-07.png

进入FFmpeg-n3.4.11文件夹执行命令./configure --enable-shared --disable-yasm --prefix=/home/lib/ffmpeg.n3.4.11,配置FFmpeg的安装信息
执行命令make install安装FFmpeg,这个过程需要一段时间
安装完成后进入/etc/ld.so.conf.d文件夹,执行命令touch ffmpeg.conf,创建FFmpeg的配置文件
编辑该文件输入/home/lib/ffmpeg.n3.4.11/lib保存,执行ldconfig命令使其生效
进入/etc文件夹,编辑profile文件,在文件最后添加一行输入export PATH=$PATH:/home/lib/ffmpeg.n3.4.11/bin并保存,执行命令source /etc/profile使其生效
然后在命令行里面就可以使用FFmpeg了
2022-06-29_10-12-42.png

Nginx-rtmp

下载Nginx源码
http://nginx.org/en/download.html
笔者这里下载的是nginx-1.16.1

2022-06-29_10-15-22.png

下载完成后你将得到nginx-1.16.1.tar.gz压缩包
执行命令tar -xvf nginx-1.16.1.tar.gz解压nginx压缩包,得到nginx-1.16.1文件夹
使用Git命令在nginx-rtmp模块的仓库中下载源码

这里笔者在GitHub网站上面也下载过tag版本的,但是在安装过程中会有错误,但是在仓库下载最新的代码就可以

git clone https://github.com/arut/nginx-rtmp-module.git
下载完成后你会有nginx-1.16.1和nginx-rtmp-module2个文件夹

2022-06-29_10-18-36.png

进入nginx-1.16.1文件夹,执行命令./configure --add-module=../nginx-rtmp-module --with-http_ssl_module配置Nginx安装信息
执行命令make install安装nginx
安装完成后在/usr/local会出现一个nginx文件夹
执行命令/usr/local/nginx/sbin/nginx启动nginx
在浏览器中访问localhost:80,可以看到nginx的主页,说明安装成功


2022-06-29_10-23-28.png

执行命令/usr/local/nginx/sbin/nginx -s stop停止nginx
进入/usr/local/nginx/conf文件夹,编辑nginx.conf文件
可以修改nginx的默认端口,并且在http节点同级节点添加rtmp服务器的配置,在配置中你可以根据规则配置你的服务器或者参数

rtmp {
        server {
                listen 81;
                chunk_size 4096;
 
                application live {
                        live on;
                }
        }
}

完整信息如下

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

rtmp {
        server {
                listen 81;
                chunk_size 4096;
 
                application live {
                        live on;
                }
        }
}

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

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

这里添加rtmp节点表示创建rtmp服务器,名称是live,端口是81
执行命令/usr/local/nginx/sbin/nginx启动nginx,如果没有出现错误,就说明配置生效了,可以执行命令netstat -ntulp | grep 81查看rtmp服务器端口是否使用了

2022-06-29_10-28-36.png

这样一个rtmp服务器就开启成功了,服务器地址是rtmp://ip:81/live

VLC

执行命令apt install vlc安装VLC
执行vlc启动VLC客户端软件


2022-06-29_10-33-36.png

推流

使用FFmpeg将本地的一个视频文件循环的往rtmp服务器中推流

ffmpeg -re -stream_loop -1  -i /home/1.mp4  -vcodec copy -f flv rtmp://localhost:81/live/test

执行命令ffmpeg -re -stream_loop -1 -i /home/1.mp4 -vcodec copy -f flv rtmp://localhost:81/live/test命令将本地的1.mp4视频文件循环的往rtmp服务器中推流

2022-06-29_10-31-14.png

看到此信息就说明rtmp流媒体服务器搭建成功

拉流

在VLC中打开网络串流,URL输入推流指定的rtmp地址,本文中的就是[rtmp://localhost:81/live/test]

2022-06-29_10-35-20.png

你可能感兴趣的:(2022-06-29 银河麒麟V10 Nginx-rtmp+FFmpeg流媒体服务器环境搭建)