扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
H5edu教育HTML5开发解答:关于HTML5对视频的支持,主要体现在视频标签video上,video标签支持HLS、MP4等格式,这个要看不同浏览器的支持。HTML5对直播支持,可以采用HLS。具体到rtsp,HTML5是不能原生支持播放,但是可以嵌入vlc播放器进行播放。
创新互联建站是专业的石楼网站建设公司,石楼接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行石楼网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
现在还是有少部分Java,不过之后会越来越少,毕竟flash已经快停止提供服务了,现在是非转H5不可的情况,现在的话虎牙已经完全不用flash了。
功能模块概述
通过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_ste=$arg_eclentip=$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)
并发待测试
掉帧待测试(网速影响大,网络好几乎不掉帧,网络差掉一半,用户体验差)
div id="a1"/div
script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"/script
script type="text/javascript"
var flashvars={
p:1,
e:1
};
var video=['http:// movie.ks.js.cn/flv/other/1_0.mp4-video/mp4','http:// www .ckplayer.com/webm/0.webm-video/webm','http:// www .ckplayer.com/webm/0.ogv-video/ogg'];
var support=['all'];
CKobject.embedHTML5('a1','ckplayer_a1',600,400,video,flashvars,support);
/script1234567891011
HTML
CKobject.embedHTML5('放置播放器的容器的ID',
'播放器ID',
'宽高,支持百分比',
'高度,支持百分比',
视频地址,数组,因为不同的平台支持的视频格式不同,所以需要尽量多的视频格式来兼容,
初始化配置参数,比如默认是否播放,
在哪些平台上使用,all是指全部平台都调用
);
可以用canvas实现的,意思就是当用户输入的信息通过显示在某一个容器上,这个容器就是定位在播放页面的上层的,而且可以设置弹幕速度和随机位置等,你可以去17素材网搜搜,有这样的例子的
哔哩哔哩切换播放器,需要在播放的页面里选择,才可以切换到html5播放器,切换播放器的的具体步骤为:
1、首先打开哔哩哔哩直播间。
2、然后在直播页面的任意地点点击鼠标右键。
3、选择bilibili HTML5 Live Player,然后点击鼠标左键,即可切换到HTML5播放。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流