Linux 搭建 Nginx + rtmp 的视频通话实现 小白篇

Linux 搭建 Nginx + rtmp 的视频通话实现

  • 前言
    • 1. 准备工作
    • 2. 开始
    • 3. 最后测试

前言

自己写这个博客的时候自己也是一个小白,搭建这个推流拉流的时候也是费了九牛二虎之力,然后就记录一下自己的博客,希望可以帮助到一些小白。

1. 准备工作

首先我用的是一个linux 虚拟机啊,建议小白在装的时候最好还是在虚拟机上试验一下。别一下子服务器出问题了,卸载什么的很麻烦的。
我用的虚拟机是CenterOS7 版本的,公司做大数据的传给我的,他说7 版本的比较好用,我也不是很懂,就直接用了,装好以后连上自己电脑的网。应为虚拟机用的是精简版的。

配置jdk 我就不做详细介绍了,百度都有具体的步骤。

linux  需要会的命令  大致上就是  
yum 安装驱动什么的用的,非常强大
git  可以直接下载一些东西
vim  查看文件使用的。具体用到的时候我再说用法。
systemctl stop firewalld.service	关闭防火墙
systemctl disable firewalld.service   关闭防火墙自动启动

2. 开始

安装好虚拟机以后首先是配置ip 最好是用 NAT 默认的配置一个固定的ip : https://jingyan.baidu.com/album/75ab0bcbbbc630d6874db279.html?picindex=2 可以参考这个网址设置自己虚拟机的节点的固定ip

  • 设置好以后用xshell 连接自己的虚拟机。

  • 配置jdk环境变量 https://www.cnblogs.com/kuoAT/p/7555298.html

  • 下载之前可以在我们的一个路径底下创建一个文件夹
    在 /user/java 路径底下创建一个nginx 文件夹

  • 下载nginx-rtmp-module:
    nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

     	使用git 下载。 命令为:   git clone https://github.com/arut/nginx-rtmp-module.git
    

    如果电脑上没有安装git 的话。 可以 运行命令: yum -y install git
    等待安装完成。然后 输入 git --version 查看git 的版本信息。

    创建文件夹nginx /user/java/nginx

     	yum install gcc-c++  安装编译环境
     	
     	cd /usr/java/nginx
     	
     	// git 下载完成就可以下载 nginx-rtmp-module 了。
     	git clone https://github.com/arut/nginx-rtmp-module.git
     	
     	安装 wegt  :  yum install wget
     	
     	安装 openssl  yum -y install openssl openssl-devel
     	
     	wget http://nginx.org/download/nginx-1.10.2.tar.gz
     	tar -zxvf nginx-1.10.2.tar.gz
    

    打开xftp 进入可以看到
    Linux 搭建 Nginx + rtmp 的视频通话实现 小白篇_第1张图片

      	cd nginx-1.10.2.tar.gz     // 进入nginx 文件目录
     	
     	./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module  
     	
     	make && make install  	
    

    安装完成
    修改配置文件:

    hls_path需要可读可写的权限,因为/usr/share/nginx/html/hls在目录中还没有,所以使用以下命令创建目录

     	mkdir -p /usr/local/nginx/html/hls
     	vi /usr/local/nginx/conf/nginx.conf  
    

    加入以下内容

rtmp {    
    
    server {    
    
        listen 1935;  #监听的端口  
    
        chunk_size 4000;    
          
           
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /usr/local/nginx/html/hls;    # 推流的时候文件保存地址,刚才创建的地址
            hls_fragment 5s;    
        }    
    }    
}

修改http 中server块 里面的内容

server {  
    listen       81;  #端口
    server_name  localhost;  
  
    #charset koi8-r;  
  
    #access_log  logs/host.access.log  main;  
  
    location / {  
        add_header Cache-Control no-cache;
        add_header 'Access-Control-Allow-Origin' '*' always;
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        add_header 'Access-Control-Allow-Headers' 'Range';
        root   /usr/local/nginx/html;   #拉流的时候去这个文件里面取
        index  index.html index.htm;  
    }  
  
    #error_page  404              /404.html;  
  
    # redirect server error pages to the static page /50x.html  
    #  
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   html;  
    }  
			重点修改 
			location / {  
		        add_header Cache-Control no-cache;
		        add_header 'Access-Control-Allow-Origin' '*' always;
		        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
		        add_header 'Access-Control-Allow-Headers' 'Range';
		        root   /usr/local/nginx/html;   #拉流的时候去这个文件里面取
		        index  index.html index.htm;  
		    }  

启动nginx:

	/usr/local/nginx/sbin/nginx 

重启的命令为:

 	/usr/local/nginx/sbin/ngin -s stop/ quit/ reload

查看正在运行的nginx 进程

	ps -aux | grep nginx 

Linux 搭建 Nginx + rtmp 的视频通话实现 小白篇_第2张图片
这样就是启动完成,所有的配置已经可以实现

3. 最后测试

  • 开始测试。
    推流测试。
    使用obs 测试
    Linux 搭建 Nginx + rtmp 的视频通话实现 小白篇_第3张图片
    在 文件> 设置里面设置流 > 路径为 rtmp://192.168.0.0:1935/hls 设置自己的IP地址 test 为文件名。
    点击开始推流。等一会服务器里刚才设置的文件夹里会出现一个文件名称为:test.m3u8 的文件名就可以实现了。
    Linux 搭建 Nginx + rtmp 的视频通话实现 小白篇_第4张图片
    拉流的地址跟推流的保持一样就可以了。通过文件密钥实现视频通话。
    我推 test 你拉test 就是我们的视频通话。
    调用推拉流地址为: rtmp://192.168.0.0:1935/hls/test

参考博客:https://blog.csdn.net/zph1234/article/details/52846223

你可能感兴趣的:(nginx)