IOS 直播方面探索(服务器搭建,推流,拉流)

2017-07-25  本文已影响222人  飞鱼ll

1.Mac环境下直播服务器搭建
2.rtmp推流
3.ijkplayer拉流
4.linux服务器搭建

1.Mac环境下直播服务器搭建

参考文章

2.rtmp推流

参考文章

3.ijkplayer拉流

参考文章

4.linux服务器搭建

1.lamp服务器搭建 参考文章 (部分库文件不全,编译报错安装一下。)
2.nginx 添加rtmp模块 参考文章
3.nginx 重新编译添加模块 参考文章

重编译配置

--with-openssl=/lnmp/src/openssl-1.1.0b --with-pcre=/lnmp/src/pcre-8.39
路径要换成自己服务器文件路径

./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/lnmp/src/openssl-1.1.0b --with-pcre=/lnmp/src/pcre-8.39 --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make

推流地址 :

stream153 是直播间号 实际项目中每个主播分配一个唯一的直播间号

rtmp://www.chaisz.xyz:1935/live/stream153

LFKit 推流

LFKit git地址:https://github.com/LaiFengiOS/LFLiveKit

下载后 Demo 打开(先 pod install)
修改以下代码

rtmp://www.chaisz.xyz:1935/live/stream153
屏幕快照 2017-07-25 上午12.12.27.png

然后真机测试开始直播(可用VLC播放器播放直播)

屏幕快照 2017-07-25 上午12.17.44.png

Ijkplayer拉流

新建项目,导入ijkplayer库

屏幕快照 2017-07-25 上午12.38.40.png

SRS直播服务器搭建

git地址:点击跳转
DEMO地址:点击跳转

推流地址:rtmp://www.chaisz.xyz/live/livestream
拉流地址:
rtmp: rtmp://www.chaisz.xyz/live/livestream1
hls: http://www.chaisz.xyz:8080/live/livestream1.m3u8
http-flv: http://www.chaisz.xyz:8080/live/livestream1.flv

电脑版推流 OBS使用

主要设置以下两个地方就可以直播屏幕了。

屏幕快照 2017-07-31 下午5.39.12.png 屏幕快照 2017-07-31 下午5.40.42.png

点击开始串流

屏幕快照 2017-07-31 下午5.45.22.png

直播身份认证

配置

http_hooks {
        enabled         on;
        on_connect      http://www.chaisz.xyz/srstest/clients.php;
        on_close        http://www.chaisz.xyz/srstest/clients.php;
        on_publish      http://www.chaisz.xyz/srstest/streams.php;
        on_unpublish    http://www.chaisz.xyz/srstest/streams.php;
        on_play         http://www.chaisz.xyz/srstest/sessions.php;
        on_stop         http://www.chaisz.xyz/srstest/sessions.php;
    }

不支持https

obs 推流设置

屏幕快照 2017-08-04 上午5.04.28.png

推流地址:rtmp://www.chaisz.xyz/live?user=feiyu&pwd=123456/livestream

地址?参数/room

srs.conf配置

# main config for srs.
# @see full.conf for detail config.

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__ {
    #最小延迟打开,默认是打开的,该选项打开的时候,mr默认关闭。
    min_latency     on;
#Merged-Read,针对RTMP协议,为了提高性能,SRS对于上行的read使用merged-read,
即SRS在读写时一次读取N毫秒的数据
    mr {
        enabled     off;
        #默认350ms,范围[300-2000]
        #latency     350;
    }
    #Merged-Write,SRS永远使用Merged-Write,即一次发送N毫秒的包给客户端。这个算法
可以将RTMP下行的效率提升5倍左右,范围[350-1800]
    mw_latency      100;
    #enabled         on;
    #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#gop-cache
    gop_cache       off;
    #配置直播队列的长度,服务器会将数据放在直播队列中,如果超过这个长度就清空到>最后一个I帧
    #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#%E7%B4%AF%E7%A7%AF%E5%BB%B6%E8%BF%9F
    queue_length    10;
    #http_flv配置

    http_remux {
            enabled     on;
            mount [vhost]/[app]/[stream].flv;
            hstrs       on;
    }

    hls {
        enabled         on;
        hls_path        ./objs/nginx/html;
        hls_fragment    10;
        hls_window      60;
    }

    http_hooks {
        enabled         on;
        on_connect      http://www.chaisz.xyz/srstest/clients.php;
        on_close        http://www.chaisz.xyz/srstest/clients.php;
        on_publish      http://www.chaisz.xyz/srstest/streams.php;
        on_unpublish    http://www.chaisz.xyz/srstest/streams.php;
        on_play         http://www.chaisz.xyz/srstest/sessions.php;
        on_stop         http://www.chaisz.xyz/srstest/sessions.php;
    }
}

上一篇下一篇

猜你喜欢

热点阅读