zoukankan      html  css  js  c++  java
  • 利用Simple-RTMP-Server(SRS)来进行直播

    1、下载SRS

    官方地址:http://www.ossrs.net/srs.release/releases/

    百度地址:http://pan.baidu.com/s/1kV8WQpx

    2、编译安装SRS

    tar zxvf srs-2.0-b2.tar.gz

    cd srs-2.0-b2

    mv trunk/ /usr/local/srs

    cd /usr/local/srs 

    ./configure --full     #--full,开启SRS所有的功能。

    make

    意:官方说需要关闭防火墙和selinux

    3、修改配置文件

    vi /usr/local/srs/conf/srs.conf

    listen            1935;
    max_connections    1000;
    srs_log_tank        file;
    srs_log_file        ./objs/srs.log;
    http_api {
        enabled    on;
        listen        1985;
    }
    http_server {
        enabled    on;
        listen        8080;
        dir        ./objs/nginx/html;
    }
    stats {
        network    0;
        disk        sda sdb xvda xvdb;
    }
    vhost __defaultVhost__ {
        min_latency    on;
        mr {
            enabled    off;
        }
        mw_latency    100;
        gop_cache    off;
        queue_length    10;
        tcp_nodelay    on;
        hls {
            enabled    on;
            hls_path    ./objs/nginx/html;
            hls_fragment    3;
            hls_window    12;
        }
        dvr {
            enabled    on;
            dvr_path    ./objs/nginx/html/[app]/[stream].[timestamp].flv;
            dvr_plan    session;
            dvr_duration    30;
            dvr_wait_keyframe    on;
            time_jitter    full;
        }
        http_hooks {
            enabled        on;
            on_connect        http://10.10.3.62/kgdxpr;
        }
    }

    说明:

    hls配置节(hls分发)

    enabled:是否开启HLS

    hls_fragment:指定ts切片的最小长度(单位:秒)

    hls_window:指定HLS大小,即m3u8中ts文件的时长之和,超过总时长后,丢弃第一个m3u8中的第一个切片,直到ts的总时长在这个配置项范围之内。即SRS保证下面的公式:
    hls_window >= sum(m3u8中每个ts的时长)

    详细说明:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS

    dvr配置节(录制成FLV)

    详细说明:https://github.com/ossrs/srs/wiki/v2_CN_DVR

    http_hooks配置节(回调)

    on_connect  当客户端连接到指定的vhost和app时回调

    详细说明:https://github.com/ossrs/srs/wiki/v2_CN_HTTPCallback

    lua用ngx.var.request_body获取回调传的数据

    #启动分发hls(m3u8/ts)的nginx

    /usr/local/srs/objs/nginx/sbin/nginx

    #启动srs服务

    /usr/local/srs/objs/srs -c /usr/local/srs/conf/srs.conf

    4、利用OBS推流和用VLC播放

    例如推流地址:rtmp://10.10.3.62:1935/live/livestream

    确定后,开始推流

    由于设置了HLS分发和录制FLV,所以在nginx目录下(/usr/local/srs/objs/nginx/html/live)会有m3u8/ts和flv文件

    有一个文件是:livestream2.1479218641365.flv.tmp,是由于正在推流当停止推流后就变成真正的FLV文件

    ts文件的长度和个数是根据配置文件的hls_fragment和hls_window属性配置出来,详细请参看:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS

    用VLC来播放HLS或RTMP

    rtmp播放地址:rtmp://10.10.3.62:1935/live/livestream

    hls播放地址:http://10.10.3.62/live/livestream.m3u8

  • 相关阅读:
    组播IP地址
    改变未来的10大科技
    知行合一之健康
    2017第47周五
    2017第47周四感恩节
    spring boot测试
    2017第47周二
    音频格式opus
    周日反思
    四种人工智能技术对五个行业的影响
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/6065676.html
Copyright © 2011-2022 走看看