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.pngIjkplayer拉流
新建项目,导入ijkplayer库
屏幕快照 2017-07-25 上午12.38.40.pngSRS直播服务器搭建
推流地址: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;
}
}