用Video.js实现H5直播界面
最近做了一个移动端H5简易版直播页,只有直播功能,后期再添加弹幕和礼物,要求是在微信中,虽然没有涉及到录制直播这方面,但也去了解下关于直播方面的相关知识,
1.构成
如图所示,背景利用video标签播放直播,如有弹幕可以采用webscoket 来实时获取弹幕,礼物或者动画则用css3实现。
2.流程
移动端通过原生系统,pc采用obs软件进行视频的采集,在数据处理,编码,通过rtmp推流到流媒体服务器,流媒体服务器会生成不同格式的播放视频流,如rtmp,hls,再拉流,音视频解码,播放。
3.推流
RTMP
:是 Macromedia 开发的实时消息传输协议,改协议基于TCP,现在属于 Adobe,主要用来在Flash/air平台和支持RTMP协议的流媒体/交互服务器之间的音视频和数据同心。
优点:协议简单,各个平台都容易实现,CDN 支持良好。
4.拉流
通过了解,分为3种。
RTMP :本质为TCP长链接,每个时刻的数据收到后立刻转发,延迟低。
-HTTP-FLV:本质为HTTP长链接,每个时刻的数据收到后立刻转发,延迟低。
-HLS : HTTP短链接,跨平台好,延迟稍高。它主要包括两个内容.m3u8文件和.ts文件。通过请求 m3u8 的 url,video 标签会解析这个文件,并找到对应的 ts 文件来播放。
5.遇到的问题
主要用到video.js
QQx5内核:
在安卓微信,qq浏览器,由于是x5内核,播放视频时候会弹出一个系统播放层,但是在qq浏览器存在bug,在最上层存在黑色层。解决方法是隐藏video标签。
当直播时接受到数据是rtmp协议,无法直接播发,转换成.m3u8格式
<source src="http://xxxxxx.m3u8" type=''application/x-mpegURL" />
当播放录播时候接受到是MP4格式,可以直接使用
<source src="http://xxxxxx.mp4" type=''video/mp4" />
相信看了这些案例你已经掌握了方法,更多精彩请关注其它相关文章!
相关阅读:
以上就是用Video.js实现H5直播界面的详细内容,更多请关注其它相关文章!
上一篇: AJAX使用中的异步同步请求怎么实现
下一篇: JavaScript基础心法 数据类型
推荐阅读
-
用Electron写个带界面的nodejs爬虫的实现方法
-
flv.js与video.js实现播放视频直播
-
基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
-
直播间搭建实现iOS直播聊天消息界面
-
Android用tabhost实现 界面切换,每个界面为一个独立的activity操作
-
用Qt实现QQ好友列表界面伸缩功能(完全一模一样)(伸展和收缩、抽屉效果、类似树形控件)(鼠标划过QSS效果)
-
H5实现视频监控网络直播时前端自动适配
-
video.js支持m3u8格式直播的实现示例
-
用java开发图形界面项目,如何实现从本地选择图片文件并以二进制流的形式保存到MySQL数据库,并重新现实到面板
-
php-PHP提供了一个借口 用Java调用然后实现解析json数据展示到界面上最好能有demo