百度媒体云播放器cyberplayer支持M3U8格式的HTML5播放器
2016-12-07 11:15
1236 查看
我也在某XX 网站看到的。
教大家如何盗用百度网盘的视频来播放。
登录百度网盘后 点开视频在线播放,用抓包工具抓 百度网盘的m3u8下载地址
然后将m3u8文件下载到本地。上传到自己的空间。
得到m3u8的网址,例:
然后
在网页里调用 百度网盘的js
再然后插入下面这段js就可以播放了。另外附上百度云播放器
Web SDK- https://cloud.baidu.com/doc/MCT/Web-SDK.html#.E6.92.AD.E6.94.BE.E5.99.A8.20Web.20SDK.20.E7.AE.80.E4.BB.8B
<div id="playercontainer"></div>
<script type="text/javascript" src="http://resource.bcevod.com/player/cyberplayer.js"></script>
<script type="text/javascript">
var player = cyberplayer("playercontainer").setup({
width: 640,
height: 480,
file: "http://gdkd6p41ziwjhrgj1zi.exp.bcevod.com/mda-gmgimznr28p1ruuj/mda-gmgimznr28p1ruuj.m3u8",
image: "http://gdkd6p41ziwjhrgj1zi.exp.bcevod.com/mda-gmgimznr28p1ruuj/mda-gmgimznr28p1ruuj.jpg",
autostart: false,
stretching: "uniform",
repeat: false,
volume: 100,
controls: true,
ak: 'cc94de6803904f2ca7159eedeaced55d'
});
</script>
哈哈!看下演示效果……
【附录知识】M3U8格式讲解及实际应用分析
在iOS device和mac上可以用http的方式进行分发,其中playlist标准为由m3u扩展而来的m3u8文件,媒体文件为MPEG2-TS或者AAC文件(audio
only)。
m3u8文件有两种应用场景:
多码率适配流,
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
单码率适配流
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,
http://media.example.com/entire.ts
#EXT-X-ENDLIST
国际标准组织对此的定义 rfc doc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
m3u8 文件是m3u文件的扩展。在该rfc中定义了扩展的关键字:
其中:
#EXT-X-TARGETDURATION
定义每个TS的最大的duration。
#EXT-X-MEDIA-SEQUENCE
定义当前m3u8文件中第一个文件的序列号,每个ts文件在m3u8文件中都有固定唯一的序列号,该序列号用于在MBR时切换码率进行对齐。
#EXT-X-KEY
定义加密方式和key文件的url,用于取得16bytes的key文件解码ts文件。
属性:
METHOD
URL
#EXT-X-PROGRAM-DATE-TIME
第一个文件的绝对时间
#EXT-X-ALLOW-CACHE
是否允许cache。
#EXT-X-ENDLIST
表明m3u8文件的结束。live m3u8没有该tag。
#EXT-X-STREAM-INF
属性:
BANDWIDTH 指定码率
PROGRAM-ID 唯一ID
CODECS 指定流的编码类型
#EXT-X-DISCONTINUITY
当遇到该tag的时候说明以下属性发生了变化:
file format
number and type of tracks
encoding parameters
encoding sequence
timestamp sequence
#EXT-X-VERSION 该属性用不用都可以,可以没有
M3U8分顶级M3U8和二级M3U8, 顶级M3U8主要是做多码率适配的, 二级M3U8才是真正的切片文件,
客户端默认会首先选择码率最高的请求,如果发现码率达不到,会请求郊低码率的流
一个实际使用中的顶级M3U8文件如下 :
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=358400
11.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=972800
22.m3u8
上面顶级M3U8文件中又定义了 11.m3u8 和 22.m3u8 两个二级文件,客户端会选择其中一个获取其内容。
二级M3U8文件内容如下:
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:3,
1-4.ts
#EXTINF:8,
1-6.ts
#EXTINF:8,
1-8.ts
#EXTINF:8,
1-10.ts
#EXTINF:8,
1-12.ts
#EXTINF:8,
1-14.ts
#EXTINF:8,
1-16.ts
#EXTINF:9,
1-18.ts
#EXTINF:6,
1-20.ts
#EXTINF:8,
1-22.ts
#EXTINF:9,
1-24.ts
#EXTINF:3,
1-26.ts
#EXT-X-ENDLIST
客户端拿到上面的二级M3U8文件后,会继续请求里面的文件,这时就可进行播放了。
上面讲解的是点播的情况,直播的情况,M3U8文件里面会有属性告诉是直播,客户端会定时来请求新的M3U8文件。
其实m3u8是个列表文件,所有的原始视频文件都被下载到一个隐藏文件夹了。
你点击m3u8文件就会自动把这些视频文件链接在一起播放,可以用notepad++打开m3u8文件查看内容,里面是一个个本地文件的链接,这些链接指向一个个小视频文件,也就是说你找不到原来下载这个文件的网址了。
如果想直接播放完整的原始视频文件就要找到那个文件夹,里面的视频文件是一段一段的,要把这些小视频文件按m3u8文件里面的顺序用qq影音合并成一个完整的视频文件,然后就可以播放了。
当然,如果删除了那个隐藏文件夹,那这个m3u8文件也就没用了,点击播放会提示解析失败。
那个隐藏文件夹可以直接在m3u8里面看到位于哪里,是个.开头的隐藏文件夹。
教大家如何盗用百度网盘的视频来播放。
登录百度网盘后 点开视频在线播放,用抓包工具抓 百度网盘的m3u8下载地址
然后将m3u8文件下载到本地。上传到自己的空间。
得到m3u8的网址,例:
然后
在网页里调用 百度网盘的js
再然后插入下面这段js就可以播放了。另外附上百度云播放器
Web SDK- https://cloud.baidu.com/doc/MCT/Web-SDK.html#.E6.92.AD.E6.94.BE.E5.99.A8.20Web.20SDK.20.E7.AE.80.E4.BB.8B
<div id="playercontainer"></div>
<script type="text/javascript" src="http://resource.bcevod.com/player/cyberplayer.js"></script>
<script type="text/javascript">
var player = cyberplayer("playercontainer").setup({
width: 640,
height: 480,
file: "http://gdkd6p41ziwjhrgj1zi.exp.bcevod.com/mda-gmgimznr28p1ruuj/mda-gmgimznr28p1ruuj.m3u8",
image: "http://gdkd6p41ziwjhrgj1zi.exp.bcevod.com/mda-gmgimznr28p1ruuj/mda-gmgimznr28p1ruuj.jpg",
autostart: false,
stretching: "uniform",
repeat: false,
volume: 100,
controls: true,
ak: 'cc94de6803904f2ca7159eedeaced55d'
});
</script>
哈哈!看下演示效果……
【附录知识】M3U8格式讲解及实际应用分析
M3U8有啥好处 ?
网上搜索了一下,大家众说纷纭,个人理解主要是可以做多码率的适配,根据网络带宽,客户端会选择一个适合自己码率的文件进行播放,保证视频流的流畅。
在iOS device和mac上可以用http的方式进行分发,其中playlist标准为由m3u扩展而来的m3u8文件,媒体文件为MPEG2-TS或者AAC文件(audioonly)。
m3u8文件有两种应用场景:
多码率适配流,
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
单码率适配流
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,
http://media.example.com/entire.ts
#EXT-X-ENDLIST
国际标准组织对此的定义 rfc doc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
m3u8 文件是m3u文件的扩展。在该rfc中定义了扩展的关键字:
其中:
#EXT-X-TARGETDURATION
定义每个TS的最大的duration。
#EXT-X-MEDIA-SEQUENCE
定义当前m3u8文件中第一个文件的序列号,每个ts文件在m3u8文件中都有固定唯一的序列号,该序列号用于在MBR时切换码率进行对齐。
#EXT-X-KEY
定义加密方式和key文件的url,用于取得16bytes的key文件解码ts文件。
属性:
METHOD
URL
#EXT-X-PROGRAM-DATE-TIME
第一个文件的绝对时间
#EXT-X-ALLOW-CACHE
是否允许cache。
#EXT-X-ENDLIST
表明m3u8文件的结束。live m3u8没有该tag。
#EXT-X-STREAM-INF
属性:
BANDWIDTH 指定码率
PROGRAM-ID 唯一ID
CODECS 指定流的编码类型
#EXT-X-DISCONTINUITY
当遇到该tag的时候说明以下属性发生了变化:
file format
number and type of tracks
encoding parameters
encoding sequence
timestamp sequence
#EXT-X-VERSION 该属性用不用都可以,可以没有
M3U8分顶级M3U8和二级M3U8, 顶级M3U8主要是做多码率适配的, 二级M3U8才是真正的切片文件,
客户端默认会首先选择码率最高的请求,如果发现码率达不到,会请求郊低码率的流
一个实际使用中的顶级M3U8文件如下 :
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=358400
11.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=972800
22.m3u8
上面顶级M3U8文件中又定义了 11.m3u8 和 22.m3u8 两个二级文件,客户端会选择其中一个获取其内容。
二级M3U8文件内容如下:
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:3,
1-4.ts
#EXTINF:8,
1-6.ts
#EXTINF:8,
1-8.ts
#EXTINF:8,
1-10.ts
#EXTINF:8,
1-12.ts
#EXTINF:8,
1-14.ts
#EXTINF:8,
1-16.ts
#EXTINF:9,
1-18.ts
#EXTINF:6,
1-20.ts
#EXTINF:8,
1-22.ts
#EXTINF:9,
1-24.ts
#EXTINF:3,
1-26.ts
#EXT-X-ENDLIST
客户端拿到上面的二级M3U8文件后,会继续请求里面的文件,这时就可进行播放了。
上面讲解的是点播的情况,直播的情况,M3U8文件里面会有属性告诉是直播,客户端会定时来请求新的M3U8文件。
其实m3u8是个列表文件,所有的原始视频文件都被下载到一个隐藏文件夹了。
你点击m3u8文件就会自动把这些视频文件链接在一起播放,可以用notepad++打开m3u8文件查看内容,里面是一个个本地文件的链接,这些链接指向一个个小视频文件,也就是说你找不到原来下载这个文件的网址了。
如果想直接播放完整的原始视频文件就要找到那个文件夹,里面的视频文件是一段一段的,要把这些小视频文件按m3u8文件里面的顺序用qq影音合并成一个完整的视频文件,然后就可以播放了。
当然,如果删除了那个隐藏文件夹,那这个m3u8文件也就没用了,点击播放会提示解析失败。
那个隐藏文件夹可以直接在m3u8里面看到位于哪里,是个.开头的隐藏文件夹。
相关文章推荐
- 有支持M3U8格式的HTML5播放器
- 安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
- 安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
- 支持触摸设备的响应式HTML5音频播放器 - AudioPlayer.js
- 安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
- 安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
- 支持触摸设备的响应式HTML5音频播放器 - AudioPlayer.js
- PLDroidPlayer 是 Pili 直播 SDK 的安卓播放器。支持所有直播常用的格式,如:RTMP、HLS、FLV。拥有优秀的功能和特性,如:首屏秒开、追帧优化、丰富的数据和状态回调、硬解软解
- 支持触摸设备的响应式HTML5音频播放器 - AudioPlayer.js
- 支持触摸设备的响应式HTML5音频播放器 - AudioPlayer.js
- 在Fedora 9 下让你的 Amarok 支持 RealyPlayer 所支持的所有媒体格式~~
- 如何让公共播放器支持特殊格式文件
- HTML5实战与剖析之媒体元素(4、检测编解码器的支持和Audio构造函数)
- JS控制HTML5媒体播放与暂停,及Chrome兼容的视频格式
- 如何让公共播放器支持特殊格式文件
- HTML5里video标签支持哪些格式的视频文件?
- html5的视频格式支持
- 在ffmpeg中增加libavformat库所支持格式的媒体文件
- 在线转FLV,支持RM,RMVB,RV,WMV9等所有媒体格式。
- ↗☻【响应式Web设计 HTML5和CSS3实战 #BOOK#】第2章 媒体查询:支持不同的视口