分享

使用Nginx搭载rtmp直播服务器的方法

 新用户8177FDBQ 2022-02-10

1. 下载nginx

nginx是一个服务器软件,类似于tomcat,用于发布服务器程序

1)下载地址:在linux下执行 wget http:///download/nginx-1.15.3.tar.gz命令,下载压缩包。

2)解压,使用tar命令:   tar xvf nginx-1.15.3.tar.gz

2. 下载nginx rtmp模块

    wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1 同样解压tar xvf v1.2.1  

3. 编译nginx

./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1

4. 修改nginx-rtmp-module中的conf文件

cd nginx-rtmp-module-1.2.1打开文件夹,cd test文件夹,修改nginx.conf文件的内容为:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

worker_processes  1;

error_log  logs/error.log debug;

events {

    worker_connections  1024;

}

rtmp {

    server {

        listen 1935;

        application myapp {

            live on;

            #record keyframes;

            #record_path /tmp;

            #record_max_size 128K;

            #record_interval 30s;

            #record_suffix .this.is.flv;

            #on_publish http://localhost:8080/publish;

            #on_play http://localhost:8080/play;

            #on_record_done http://localhost:8080/record_done;

        }

    }

}

http {

    server {

        listen      8080;

        location /stat {

            rtmp_stat all;

            rtmp_stat_stylesheet stat.xsl;

        }

        location /stat.xsl {

            root /path/to/nginx-rtmp-module/;

        }

        location /control {

            rtmp_control all;

        }

        #location /publish {

        #    return 201;

        #}

        #location /play {

        #    return 202;

        #}

        #location /record_done {

        #    return 203;

        #}

        location /rtmp-publisher {

            root /path/to/nginx-rtmp-module/test;

        }

        location / {

            root /path/to/nginx-rtmp-module/test/www;

        }

    }

}

到时候推流地址就是    rtmp://IP:PORT/myapp/{abc},其中{abc}中的abc是可选的,一般是一个推流密码,往服务器推送或接收视频流时,可填写一个密码,如abc。rtmp默认服务器端口是1935,如果这个端口被占用,可以杀死占用这个端口的进程,使用如下命令:

kill -9  pid  (其中pid是进程id)。

然后用这个conf 替换 nginx-1.15.3/bin/conf下的nginx.conf ,

使用mv nginx.conf nginx.conf.bak命令重命名原来的nginx.conf,可以不用删除原文件。

5. 启动nginx

cd nginx-1.15.3  

打开nginx文件夹

/root/nginx-1.15.3/bin/sbin/nginx 

启动nginx

6. 验证nginx rtmp流媒体是否部署成功

启动后,从浏览器里访问122.112.220.253:8080。

如果打不开,
1.  在服务器上建立安全规则,开发入口规则,把1935,8080这两个端口开启,协议是TCP.
2.   nginx-1.15.3/bin/conf下的nginx.conf里最顶部 修改用户:   user root;

    此时,nginx.conf的内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

user  root;

worker_processes  1;

error_log  logs/error.log debug;

events {

    worker_connections  1024;

}

rtmp {

    server {

        listen 1935;

        application myapp {

            live on;

        drop_idle_publisher 5s;

        }

    }

}

http {

    server {

        listen      8082;

        location /stat {

            rtmp_stat all;

            rtmp_stat_stylesheet stat.xsl;

        }

        location /stat.xsl {

            root /root/nginx-rtmp-module-1.2.1/;

        }

        location /control {

            rtmp_control all;

        }

        location /rtmp-publisher {

            root /root/nginx-rtmp-module-1.2.1/test;

        }

        location / {

            root /root/nginx-rtmp-module-1.2.1/test/www;

        }

    }

}

3. 重启nginx,再次访问122.112.220.253:8082,成功。

 

下次我们就用一个录屏软件录制电脑屏幕,使用rtmp协议向服务器上推送电脑屏幕画面,同时用播放器来播放服务器上的rtmp直播流。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多