Centos7 Nginx+RTMP实现推流

参考文章
HLS-搭建Nginx流媒体服务器
centos7 安装ffmpeg
Nginx学习之配置RTMP模块搭建推流服务
下载nginx-rtmp-module:

git clone https://github.com/arut/nginx-rtmp-module.git
./configure --add-module=/root/nginx-rtmp-module

安装FFMPEG

yum -y install epel-release
su -c 'yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm'
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum -y install ffmpeg ffmpeg-devel

查看版本

ffmpeg -version

配置nginx
配置rtmp服务:


events {
    use epoll;# 选择epoll模型可以达到最佳的IO性能
    worker_connections  1024;
}
 
rtmp {                #RTMP服务
    server {
       listen 1935;  #//服务端口
       chunk_size 4096;   #//数据传输块的大小
       application vod {
           play /opt/video; #//视频文件存放位置。
       }
       application live{ #直播
           live on;
           hls on; #这个参数把直播服务器改造成实时回放服务器。
           wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。
           hls_path /opt/video/hls; #切片视频文件存放位置。
           hls_fragment  600s;     #设置HLS片段长度。
           hls_playlist_length 10m;  #设置HLS播放列表长度,这里设置的是10分钟。
           hls_continuous on; #连续模式。
           hls_cleanup on;    #对多余的切片进行删除。
           hls_nested on;     #嵌套模式。
       }
   }
}

HTTP服务:

server {
        listen       80;
        server_name  rtmp.52itstyle.com;
 
        location /stat {
          rtmp_stat all;
           rtmp_stat_stylesheet stat.xsl;
        }
 
        location /stat.xsl {
            root /home/nginx-rtmp-module-master/;
        }
 
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /live {  #这里也是需要添加的字段。
            types {  
               application/vnd.apple.mpegurl m3u8;  
               video/mp2t ts;  
            }
            alias /opt/video/hls;
            expires -1;
            add_header Cache-Control no-cache; 
            add_header Access-Control-Allow-Origin *;
        }  
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

使用ffmpeg推流到nginx:
RTMP流

ffmpeg -re -i "/root/02.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://server:1935/vod/test1

HLS流

ffmpeg -re -i "/root/02.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://ip:1935/live/test2

RTMP地址

rtmp://serverIp:1935/myapp/test1

HTTP地址

http://serverIp:80/live/test2/index.m3u8

你可能感兴趣的:(Centos7 Nginx+RTMP实现推流)