2.5 你的第一个直播

上一节我们搭建了nginx-rtmp-module环境,本节我们来搭建一个简单的直播

1.进入配置文件目录

打开配置文件目录,nginx.conf为默认加载的配置文件,nginx.conf.default为默认配置文件备份,如图2-7所示。

cd /usr/local/nginx/conf/


图2-7

2.修改默认配置文件

修改系统服务脚本init.d。

cd /etc/init.d/
vim nginx

修改文件中nginx.conf为live.conf,修改默认service nginx服务指向的配置文件如图2-8。

NGINX_CONF_FILE="/usr/local/nginx/conf/live.conf"


图2-8

rename nginx live nginx.conf 
#修改nginx为live目标文件nginx.conf

3.精简及确认live.conf

精简后的live.conf,去除了默认注释。

worker_processes  1;
events {
    worker_connections  1024;
}
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   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
   }
}
#修改文件名后,我们将系统产生的配置文件进行精简并检查结果
service nginx configtest
#nginx: the configuration file /usr/local/nginx/conf/live.conf syntax is ok
#nginx: configuration file /usr/local/nginx/conf/live.conf test is successful

4. 配置RTMP直播

rtmp标签

  • nginx-rtmp-module的基础标签所有服务都配在其中。

server标签

  • 服务标签,一个rtmp服务中可以有多个server标签,每个server可以监听不同端口,server中的配置是应用于所有application标签的。

application标签

  • 应用标签,一个server标签中可以有多个application标签,application标签中的配置是应用于其本身的,application name确保了在请求时准确的application划分。
worker_processes  1;
events {
    worker_connections  1024;
}
rtmp{
   server{
       listen 1935;
       application mylive{
           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   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
   }
}

5. 防火墙规则

vim /etc/sysconfig/iptables
#iptables中可以设置防火墙规则 
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 1935 -j ACCEPT 
#开启tcp的1935端口写入权限,-p代表了指定协议
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

rtmp是基于tcp的实现

service iptables restart

重启防火墙生效配置

6. 推流

ffmpeg于推拉流在之后的文章中说明,如图2-9所示推流中的ffmpeg

ffmpeg -i f:\xx.flv -r 25 -b 4M -f flv rtmp://172.26.22.30:1935/mylive/6


图2-9

7.拉流

我们使用VLC流媒体播放器来拉流,可以看到我直播的动画片,可以观看了,如图2-10所示。
图2-10

results matching ""

    No results matching ""