通过obs客户端推流到nginx流媒体服务器上,对流媒体用ffmpeg将流剪切为若干段ts流文件并保存到临时目录中,通过访问m3u8格式拼接ts流文件段来观看直播。
推流端
采用开源工具OBS客户端进行推流
根据项目的推流地址,填入OBS客户端(下载地址)中,并设置场景,保存后重启,便可开始推流。
为更加稳定的推流,建议使用以上链接中的v0.625稳定版本,按提示安装完成后,打开设定.在广播设定中,伺服器统一填写我们项目的流媒体接收流地址:
rtmp://127.0.0.1:1935/hls/
以上这几个数据都是可以更改的。
127.0.0.1——你的流媒体服务器ip
1935——你的rtmp端口号
hls——你的直播nginx配置模块
具体在下文中也有详细介绍
配置地址
回到主界面,右键来源,选择添加视频捕捉设备或获取窗口等(相关设置默认即可),点击开始串流,便可开始直播。
添加场景
图为添加视频捕捉设备后的直播画面:
直播中
流媒体服务器
Nginx接收推流模块
rtmp_auto_push on
rtmp {
server {
listen 1935
application hls {
live on
hls on
hls_path /tmp/hls
on_publish 项目地址/liveOnPublish
on_publish_done 项目地址/liveOnDone
notify_method get
}
}
}
配上我在word上的注解
注解1
Nginx处理直播流模块
http {
server {
listen 80
server_name localhost
location /hls {
secure_link $arg_st,$arg_e
secure_link_md5 key$arg_e
subs_filter .ts '.ts?st=$arg_st&e=$arg_e&clentip=$remote_addr'
subs_filter_types application/vnd.apple.mpegurl
if ($secure_link = "") {
return 402
}
if ($secure_link = "0") {
return 403
}
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8
video/mp2t ts
}
root /tmp
add_header Cache-Control no-cache
}
}
}
注解2
项目部署服务器
流媒体服务器不通过项目服务器,整个直播过程的推流和处理流都在流媒体服务器上进行。项目服务器主要进行直播地址加密处理意见推流开始和结束触发的方法(liveOnPublish(),liveOnDone())已及对直播地址加密.
播放端
直接通过HTML5中的<video>标签设置src来播放直播流。如:
<video src="pro/live.m3u8?st=UM/L8jdfTlY2b1j1F6XSxA==&e=1468548530
" controls="controls"></video>
存在的问题
延迟待测试(不科学的数据是安卓手机普遍在30-40s,苹果手机在20-30s)
并发待测试
掉帧待测试(网速影响大,网络好几乎不掉帧,网络差掉一半,用户体验差)
1、哔哩哔哩直播姬:
一键开播功能,登录后可直接推流至哔哩哔哩直播间,无需网页上进行 *** 作,快捷管理直播信息和房管信息,点击房间管理和信息修改,可以跳转到对应的设置页面。
2、虎牙直播:
虎牙直播也是国内首家全网启用HTML5直播技术的平台,用户不再需要安装插件,打开虎牙直播即可享受“远离卡顿发烫,1秒即开看直播”的畅快体验。
3、KK直播:
作为综合性直播互动平台的代表, KK聚集了高颜值才艺达人、网红主播,覆盖全国及南亚、北美、非洲等地,为用户提供演艺、游戏、体育、科技、美食等多元化内容。
4、龙珠直播:
背靠电竞团队PLU,龙珠直播与腾讯游戏、游戏风云、NICETV等海内外游戏、电竞企业有深度战略合作,拥有《英雄联盟》职业联赛(LPL)、《穿越火线》电视职业联赛(CFPL)等超过30余款游戏顶级赛事的直播权。
5、NOW直播:
时下热门的手机视频直播软件,通过微信、QQ帐户登录后,即可开始直播互动,展示此时此刻最真实的自己,分享你我的生活。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)