天下java本站尽知

超级管理员

54

帖子

38

回复

700

积分

楼主
发表于 2018-03-06 14:18:20 | 查看: 2848 | 回复: 8

    

        直播分为推流和拉流两个过程,那么流推向哪里,拉流又从哪里拉取呢?这就涉及到流媒体服务器的搭建,通过开源项目https://github.com/arut/nginx-rtmp-module使得一切都变得简单。下面讲解如何部署Nginx服务器并配置视频模块(nginx-rtmp-module)、OBS推流软件的使用、客户端拉流。(笔者服务器为Centos 7.3 64位)

一、准备工作

     1.Nginx官网:http://nginx.org/ 下载最新稳定版本。在安装Nginx之前,需要先安装gcc、openssl、pcre和zlib软件库 详情参考http://blog.csdn.net/l1028386804/article/details/48289765

    2.安装git并  git clone https://github.com/arut/nginx-rtmp-module.git 到服务器。

        注:笔者第一次安装部署时,是在本地windows上直接clone nginx-rtmp-module再上传到linux服务器,但是安装的时候报了大量的   $'\r': command not found,发现是文件编码问题,所以直接在linux git clone下来再安装。

            #安装Git

            yum install -y epel-release

            rpm -ivh https://centos7.iuscommunity.org/ius-release.rpm

            yum list git2u

            yum install -y git2u

            git --version

二、安装nginx 并配置rtmp视频模块

    1. tar -zxvf nginx-1.6.1.tar.gz   解压下载的nginx安装包

    2. cd nginx-1.6.1        cd到nginx的解压缩目录下

    3. ./configure --add-module=/data/doc/nginx-rtmp-module && make && make install  安装nginx并添加nginx-rtmp-module模块

    4.贴一下nginx.conf的配置


       events {
        worker_connections  1024;
        }
        http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        gzip  on;           #开启gzip
        server {
        listen       80;
        server_name  localhost;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
        }
        
        location /hls {
        types {
        application/vnd.apple.mpegurl m3u8;
        #application/x-mpegURL;
        video/mp2t ts;
        }
        root /home;
        add_header Cache-Control no-cache;
        }
        # rtmp stat
        location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
        # you can move stat.xsl to a different location
        root /usr/local/nginx/html/;
        }
       } 
      }
        rtmp {        
        server {
        listen 1935;     
        chunk_size 4000; 
        # TV mode: one publisher, many subscribers
        application mylive {
        # enable live streaming
        live on;
        # record first 200M of stream
        record all;
        record_path /home/live_record;
        record_max_size 200M;
        
        hls on;
        hls_path /home/hls;
        hls_fragment 1s;
        hls_playlist_length 5;      
        allow play all;
        
        #on_publish 'http://when start publish live call this url';
        #on_done 'http://when live stop call this url';
        }
       }
      }

注意:  hls_path /home/hls; 要给这个路径下文件夹足够权限

三、PC端推流工具-OBS软件的使用

    百度网盘下载:https://pan.baidu.com/s/1qYwR7u0#list/path=%2F

     下载后安装。。。

     打开软件设置-流

     选择自定义流媒体服务器

     URL输入: rtmp://119.29.xxx.123:1935/mylive

     流名称:  mystream

    clipboard.png

     设置好后点击确定,在底部的来源中选择采集媒体的方法,可以选择捕获屏幕或者摄像头、本地视频音频等等。。。

    clipboard.png

四、客户端拉流

    客户端播放插件可以使用网上的一些开源播放插件,我这边用的是video.js,这边贴一下video.js播放源的设置。

    clipboard.png

    这样,就完成本地实时监控、直播流传到服务器,其他客户端可以随时观看了,是不是很简单?赶快动手试试吧!

    另外户外直播,可以通过yasea手机端推流软件,使用手机摄像头推流。

    笔者房间的实时监控画面:

    clipboard.png

    服务器的实时流数据:

    clipboard.png

    有问题请加作者QQ:984605597   java圈论坛原创文章,转载请声明出处!  





您的帖子在2018-03-06 14:25:11被java1st编辑
超级管理员"java1st"于2018-03-06 14:25:19将帖子全局置顶
超级管理员"java1st"于2018-03-06 14:25:24将帖子设置精华1
您的帖子在2018-03-08 18:27:23被java1st编辑
您的帖子在2018-03-24 18:14:08被java1st编辑

超级管理员

54

帖子

38

回复

700

积分
沙发
发表于 2018-03-06 14:25:37

沙发自己的

【论坛前100位注册用户】

0

帖子

2

回复

32

积分
板凳
发表于 2018-03-06 14:33:08

H%R7LS2~(6J_S)OZGGSMHRN.jpg


【论坛前100位注册用户】

0

帖子

2

回复

8

积分
地板
发表于 2018-03-06 17:38:11

666666

普通会员

1

帖子

22

回复

59

积分
4#
发表于 2018-03-06 20:03:38

7777

普通会员

0

帖子

2

回复

4

积分
5#
发表于 2018-03-12 14:56:21

666

普通会员

0

帖子

1

回复

7

积分
6#
发表于 2018-03-27 10:04:48

666666

普通会员

1

帖子

2

回复

14

积分
7#
发表于 2018-05-21 14:03:57

<1img onlload="alrt('网站有安全漏洞 请联系QQ435693053')" style="position:absolute;z-index:-22;" src="http://www.javaquan.com/file/image/20180521/1526882490958053898.jpg" title="1526882490958053898.jpg" alt="touxiang.jpg"/>

普通会员

0

帖子

1

回复

3

积分
8#
发表于 2019-08-02 01:00:58
666

您需要登录后才可以回帖 登录 | 立即注册