怎么做到微信直播,HTML5直播,低延时
功能模块概述
通过obs客户端推流到nginx流媒体服务器上,对流媒体用ffmpeg将流剪切为若干段ts流文件并保存到临时目录中,通过访问m3u8格式拼接ts流文件段来观看直播。
推流端
采用开源工具OBS客户端进行推流
根据项目的推流地址,填入OBS客户端(下载地址)中,并设置场景,保存后重启,便可开始推流。
为更加稳定的推流,建议使用以上链接中的v0625稳定版本,按提示安装完成后,打开设定在广播设定中,伺服器统一填写我们项目的流媒体接收流地址:
rtmp://127001:1935/hls/
以上这几个数据都是可以更改的。
127001——你的流媒体服务器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 'tsst=$arg_st&e=$arg_e&clentip=$remote_addr';
subs_filter_types application/vndapplempegurl;
if ($secure_link = "") {
return 402;
}
if ($secure_link = "0") {
return 403;
}
# Serve HLS fragments
types {
application/vndapplempegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
}
}
注解2
项目部署服务器
流媒体服务器不通过项目服务器,整个直播过程的推流和处理流都在流媒体服务器上进行。项目服务器主要进行直播地址加密处理意见推流开始和结束触发的方法(liveOnPublish(),liveOnDone())已及对直播地址加密
播放端
直接通过HTML5中的<video>标签设置src来播放直播流。如:
<video src="pro/livem3u8st=UM/L8jdfTlY2b1j1F6XSxA==&e=1468548530
" controls="controls"></video>
存在的问题
延迟待测试(不科学的数据是安卓手机普遍在30-40s,苹果手机在20-30s)
并发待测试
掉帧待测试(网速影响大,网络好几乎不掉帧,网络差掉一半,用户体验差)
问:我想在我们的网站上加一个视频直播功能,我不是很懂,请问有没人有知道怎么弄?
答:
直播实际上有三个部分组成,编码器、流媒体服务器、播放器,根据不同的需求和应用场合灵活对这三部分进行选择和组合。
首先要看你想要直播的是什么,如果你想加入的视频直播是CCTV1啊、江苏卫视等电视台的直播,那么你可以选择嵌入CNTVCN的播放器,或者是其它已有视频直播网站上的播放器。
如果你想要直播的是自己策划的活动、某会议、教学等等自已的内容,那么你就需要搭建一个视频直播服务器并且配合活动现场的摄像机、采集卡/视频采集编码服务器等硬件进行直播。
其次,看你要选择什么样的直播技术,目前能够使用的直播技术有微软的MMS,real公司提出的rtsp,adobe公司的RTMP系列协议,不同的直播技术支持的播放器也不相同。其中mms需要安装微软的media player插件、rtsp可以被media player和realplayer支持,而rtmp能够被flash player所支持。这三个之间相比,adobe的flash player的使用率最高,已经高达98%了,也就是说几乎人人机器上都有adobe的播放器,那么使用adobe的直播协议就更有优势。
确定了直播技术之后,就可以根据直播技术来选取服务器软件,选取服务器软件之后再配上软件编码器或者是硬件编码器,就可以开始实现视频直播了。
八百里flash p2p流媒体系统可以满足你做视频直播的功能,它采用了无插件Flash P2P技术
无需安装额外的插件,直接使用浏览器即可实现视频的播放,这样不仅给观众良好的体验,同时可以覆盖绝大多数观众,包含Windows, Mac OS, Linux, Android, Air 平台的用户。
它使用了HTTP+P2P串流技术,HTTP串流和P2P串流结合,在保证最大可能的覆盖观众的同时,有效的降低服务器的带宽使用和CPU内存使用,使单台服务器可以支撑上万乃至十万级别的并发直播。
对于如何使用这款软件来实现视频直播,我在百度空间里写了一些文章专门介绍如何在网站上加上视频直播功能,你可以去参考一下。
地址是:http://hibaiducom/%CB%D5%D6%DD%B0%CB%B0%D9%C0%EF/blog/item/936e49a2c0e775d67cd92ad8html
office打开出错pdf提示
打开选项查看pdf默认打开程序
出现如上图这种错误,一般是office软件与pdf默认打开程序关联,但是pdf默认打开程序不是foxit,在此情况下,找到foxitPDFReader程序安装目录,打开运行foxit程序,并确认此程序为PDF打开默认程序。
m3u8转mp4好处:把任何一个视频软件转成另外一个视频格式的软件是要通过你转换设置来取决的。
手机上面找到m3u8格式文件的存储位置,在打开方式里边选择“HTML查看器”查看,此时将会看到索引文件指引的缓存视频文件存放路径。
如果手机上面的“HTML查看器”打不开m3u8格式文件,可以将此文件重命名成“txt”文本格式的文件,然后再打开,之后将会看到缓存视频文件存放路径。
直播服务器软件:
输入源支持UDP、RTMP、HTTP:TS等主流的传输协议。
输出协议支持当前最主流的web应用播放需求及android系统、ios系统播放需求。
支持时移与时移视频下载功能。
支持用户链接数控制功能。
提供二次开发接口。
支持分布式部署。
将输入和输出通过内外网卡分离以保障输入与分发独立性和可靠性。
1 前言
本文主要讲解 wget如何利用tsocks使用sock5代理,假设你本机已经成功连接到代理服务器了,比如shadow()socks或者ss5等等。
ubuntu安装net-tools
CentOS/RHEL安装net-tools:
检查连接代理服务器的连接情况:
检查代理服务器连接的情况
检查代理服务器连接的情况
2 安装tsocks
安装过程如下:
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
下列软件包是自动安装的并且现在不需要了:
phantomjs python3-pyxattr rtmpdump
使用'sudo apt autoremove'来卸载它(它们)。
下列新软件包将被安装:
tsocks
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 59 个软件包未被升级。
需要下载 318 kB 的归档。
解压缩后会消耗 958 kB 的额外空间。
获取:1 http://cnarchiveubuntucom/ubuntu bionic/universe amd64 tsocks amd64 18beta5+ds1-1ubuntu1 [318 kB]
已下载 318 kB,耗时 2秒 (148 kB/s)
正在选中未选择的软件包 tsocks。
(正在读取数据库 … 系统当前共安装有 195959 个文件和目录。)
正准备解包 …/tsocks_18beta5+ds1-1ubuntu1_amd64deb …
正在解包 tsocks (18beta5+ds1-1ubuntu1) …
正在设置 tsocks (18beta5+ds1-1ubuntu1) …
正在处理用于 libc-bin (227-3ubuntu1) 的触发器 …
正在处理用于 man-db (283-2ubuntu01) 的触发器 …
成功安装tsocks
3 修改tsocks配置文件
修改tsocks配置文件
把Server设置为你的代理服务器IP,一般为127001
把Server_type设置为5
把Server_port设置为与代理服务器对应的配置
4 wget结合tsocks连接目标服务器
5 总结
tsocks仅仅用于路由,即把某些指定流量定向到代理服务器,意味着你使用tsocks之前,已经连接好了代理服务器。
https://wwwlinuxrumencom/rmxx/934html
0条评论