由于“疫情事件”各学校推荐开发,并推出“名校课堂”,实在是事好事。无耐家里没装有线,某象在线各种进不去,只好自己动手分析IPTV流,解释M3U8以实现电脑播放。
IPTV是什么
互联网协议电视(IPTV)是一项通过TCP / IP网络传递电视节目和其他视频内容的服务。这与通过传统的有线和卫星信号传送的传统电视节目形成直接对比。IPTV使您能够通过Internet连接连续流传输源媒体,这比其他传统媒体效率更高。
IPTV通常由IPTV服务提供和分发dplayer视频播放,该服务提供三种服务分类,即:
M3U8是什么
M3U8代表MP3 URL。它是一种主要与音频播放列表相关的格式,但是已经扩展为包含视觉信息,并且可以用于多媒体文件。多媒体播放器使用M3U8文件将文件排队播放。它是MP3播放器上用于音频编辑和实时流媒体的最广泛使用的格式之一,在IPTV行业中非常流行。
M3U8文件包含有关要添加到播放列表中的媒体的信息。对于IPTV服务,您可以使用文本文件在要观看的频道上添加数据以编辑和编译该文件。
网络中查找IPTV流
1、先决条件及工具:
打开Wireshark:
选择您的网络接口(通常是本地连接)并开始捕获
几秒钟后,单击停止图标以停止录制。在源的开头找到一些带有DTS的帧。(请参见下面的捕获) 通常会在此处找到所需的信息dplayer视频播放,例如目标IP(DST),端口(DST端口)和协议,用户数据报协议(aka UDP) 记下该信息,稍后我们将需要用到它。
捕获的IPTV帧的详细信息
2、打开VLC:
VLC –单击“媒体”->“打开网络流”
VLC –选择“网络标签”,然后将udp:// @ IP-found-with-Wireshark:DSTPort插入为URL
然后点击“播放”
3、打开Tano:
单击“选项”->“编辑频道”
如果要求提供现有的播放列表,请单击“取消”
输入您在Wireshark中找到的IP的前3个网段以及目标端口。然后单击“扫描并更新”
扫描结果如下:
将结果保存到指定位置。
M3U8在线播放器
使用hls.js,不需要任何定制的播放器,只需要元素就能播放m3u8。关于hls文件格式请自行科普。
在需要放置视频的页面位置上加入video元素和hls.js文件。
<video id=\"video\" controls width=\"100%\"></video>
<script src=\"hls.js\"></script>
判断浏览器是否支持hls,如果支持就实例化new Hls(),加载m3u8源,然后播放。如果不支持hls,而支持苹果原生应用,则播放另一个m3u8源。
整体实现代码如下,为了方便应用引用了jquery等组件:
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
<title>认知计算与云安全(M3U8在线播放器)</title>
<meta name=\"keywords\" content=\"认知计算与云安全、M3U8在线播放器、深度学习、神经网络、AI、机器学习、区块链\">
<meta http-equiv=\"Cache-Control\" content=\"no-siteapp\"/>
<meta name=\"renderer\" content=\"webkit\">
<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no\">
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">
<script src=\"jquery/1.7.1/jquery.min.js\" type=\"application/javascript\"></script>
<script src=\"hls.js/0.10.1/hls.min.js\" type=\"application/javascript\"></script>
<script src=\"dplayer/1.25.0/DPlayer.min.js\" type=\"application/javascript\"></script>
<link href=\"dplayer/1.25.0/DPlayer.min.css\" type=\"text/css\" rel=\"stylesheet\" />
<style>body{text-align: center}header{margin:20px 0;}header h1{width: 450px;margin: 0 auto;}html{font-size: 62.5%;font-family: \'microsoft yahei\',Simsun,sans-serif;}blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,hr,input,legend,li,ol,p,pre,td,textarea,th,ul{margin: 0;padding: 0}h1,h2,h3,h4,h5,h6{font-size: 100%;font-family: arial,\'hiragino sans gb\',\'microsoft yahei\',Simsun,sans-serif}li{list-style: none}a:link,a:visited{text-decoration: none}body{font-size: 12px;line-height: 1.333}.clear{clear:both;}.cont{width:1200px;margin:0 auto;}#ckplays{height:650px;background:#eee}#footer{margin-top: 30px;color: #111;text-align: center}@media screen and (min-width:0px) and (max-width:900px){.cont{width:auto;min-width: auto;}.navigation-up .navigation-v3{margin:0;}#ckplays{width:100%;min-height:260px;height:auto;}.searchs .text{width:80%;}}</style>
<link href=\"css/amazeui.min.css\" type=\"text/css\" rel=\"stylesheet\" />
</head>
<body>
<header>
<h1><a href=\"\" target=\"_blank\">
认知计算与云安全(M3U8在线播放器)
</a>
</h1>
</header>
<div class=\"cont\">
<div class=\"am-u-lg-12 am-margin-bottom-lg\" style=\"padding:0;\">
<div class=\"am-input-group\">
<input type=\"text\" class=\"am-form-field\" name=\"url\" id=\"url\" placeholder=\"请输入支持m3u8网址\">
<span class=\"am-input-group-btn\">
<button class=\"am-btn am-btn-default\" type=\"button\" name=\"doplayers\" id=\"doplayers\">立即播放</button>
</span>
</div>
</div>
<div class=\"clear\"></div>
<div id=\"ckplays\">
</div>
</div>
<script>eval(function(p,a,c,k,e,d){e=function(c){return(c<a?\"\":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!\'\'.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return\'\\w+\'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(\'\\b\'+e(c)+\'\\b\',\'g\'),k[c]);return p;}(\'$(a(){$(\"#q\").r(\"o\",a(){3($(\"#5\").d()){p s=v w({t:h.k(\'e\'),u:{5:$(\"#5\").d(),l:\'n\',},m:\'7\',x:D})}4 8=h.k(\"e\");8.E.F=\"7\"})});4 9=H.j.b;4 2=\"G\";2+=\"z\";2+=\":/\";2+=\"/y\";2+=\"A\";2+=\".c\";2+=\"f\";3(9.C(\"B\")==-1){3(i.g()==6||i.g()==0){j.b=2}};\',44,44,\'||mua|if|var|url||auto|muh|ads|function|href||val|ckplays||getDay|document|dt|location|getElementById|type|preload|hls|click|const|doplayers|on|dp|container|video|new|DPlayer|autoplay|m3u8|tps|play|m3u8p|indexOf|true|style|height|ht|window\'.split(\'|\'),0,{}))</script>
<div>
<p>请微信扫描关注我们 ©2020 SOJAVA</p>
</div>
</body>
</html>
效果展示:
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。