美文网首页视频
Centos7 Nginx+RTMP实现推流

Centos7 Nginx+RTMP实现推流

作者: 桐间纱路 | 来源:发表于2018-12-11 13:43 被阅读0次

    参考文章
    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实现推流

        本文链接:https://www.haomeiwen.com/subject/lwishqtx.html