ubuntu服务器配置nginx-rtmp

本文详细介绍了如何在Linux环境下从零开始搭建Nginx RTMP流媒体服务器,包括系统更新、必要库的安装、Nginx及RTMP模块的下载与编译,以及如何配置Nginx实现直播、回看、HTTP服务等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.升级

sudo apt-get update
sudo apt-get upgrade

2.安装库

sudo apt-get install build-essential 
sudo apt-get install libpcre3 
sudo apt-get install libpcre3-dev
sudo apt-get install libssl-dev

3.下载nginx-rtmp

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

4.编译安装

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make
sudo make install

5.启动nginx-rtmp

sudo /usr/local/nginx/sbin/nginx

6.配置nginx-rtmp

配置/usr/local/nginx/conf/nginx.conf

rtmp {
	server {
                listen 1935;
                chunk_size 4096;
				# 创建一个发布应用 live ,发布到该应用的地址就是:rtmp://ip地址:1935/live/ 
                application live {
                        live on;
                        record off;
                }
        }
}

7.重置nginx-rtmp配置

sudo /usr/local/nginx/sbin/nginx -s reload

nginx-rtmp扩展配置

1.回看

实时回看视频服务器的配置:

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

2.HTTP服务

server {
        listen       80;
        server_name  rtmp.xxx.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 /home/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;
        }
    }

3.微信推流

<live-pusher webviewId="push" url="rtmp://ip:port/live/itstyle" 
        mode="HD" 
        autopush ="true"
        bindstatechange="statechange" 
        beauty = "10"
        whiteness="10"
        style="width: 300px; height: 225px;" />

4.Web服务

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
        <title>小直播</title>
        <meta name="keywords" content="">
        <meta name="description" content="小直播——直播分享">
        <meta name="format-detection" content="telephone=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <meta name="msapplication-tap-highlight" content="no">
        <script src="//imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.2.1.js" charset="utf-8"></script>
    </head>
    <body>
        <div id="id_test_video" style="width:100%; height:auto;"></div>
        <script type="text/javascript">
           var player =  new TcPlayer('id_test_video', {
                "m3u8": "http://rtmp.xxx.com/live/itstyle002/index.m3u8",
                "autoplay" : true,//iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
                "coverpic" : "/static/2652725976.jpg",
                "width" :  '480',//视频的显示宽度,请尽量使用视频分辨率宽度
                "height" : '320'//视频的显示高度,请尽量使用视频分辨率高度
            });
        </script>
    </body>
</html>

跨域问题crossdomain.xml放置在网站根目录:

<cross-domain-policy>
  <allow-access-from domain="*.qq.com" secure="false"/>
</cross-domain-policy>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值