网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

简介:m3u8文件是苹果公司使用的HTTPLiveStreaming(HLS)协议格式的基础。HLS是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录与m3u8文件(即playlist)内,其中附带一些额外描述(比如该资源的多带宽信息等…)用于提供给客户端。客户端依据该m3u8文件可获取对应的媒体资源,进行播放。因此,客户端获取HLS流文件,主…

大家好,又见面了,我是你们的朋友全栈君。

简介:

m3u8文件是苹果公司使用的HTTP Live Streaming(HLS)协议格式的基础。HLS是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录与m3u8文件(即playlist)内,其中附带一些额外描述(比如该资源的多带宽信息等…)用于提供给客户端。客户端依据该m3u8文件可获取对应的媒体资源,进行播放。因此,客户端获取HLS流文件,主要是对m3u8文件进行解析操作。

m3u8文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是utf-8编码。

(1)当m3u8文件作为媒体播放列表(Media Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。其格式如下所示:

#EXTM3U
#EXT-X-TARGETDURATION:10

#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.ts

对于点播来说,客户端只需要顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要定时重新请求该m3u8文件,看下是否有新的片段数据需要进行下载并播放。

(2)当m3u8作为主播放列表(Master Playlist)时,其内部提供的是同一份媒体资源的多份流列表资源(Variant Stream)。其格式如下所示:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/low/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/lo_mid/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/hi_mid/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/high/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=64000,CODECS="mp4a.40.5"
http://example.com/audio/index.m3u8

该备用流资源制定了多种不同的码率,不同格式的媒体播放列表,并且,该备用流资源也可同时提供不同版本的资源内容,比如不同语言的音频文件,不同角度拍摄的视频文件等等。客户可以根据不同的网络状态选取合适码率的资源,并且最好根据用户喜好选择合适的资源码率。

教程:

我们在用网页观看在线视频时,很多视频是不提供下载接口的,并且使用google强大的插件都无济于事,这里提供使用m3u8格式来破解并下载视频的教程。

目标:下载某在线网页的电视剧《风筝》第五集,视频链接为:https://www.wandouys.com/video/play/35616-4-5.html

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

步骤一:目前使用Google浏览器,按F12进入开发者模式,打开Network,并刷新,找到这个视频的m3u8文件,双击即可下载。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

用记事本打开下载好的playlist.m3u8文件,这里面保存着把各个被分段之后的视频的排序,此处媒体片段的路径采用了相对路径表示。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

为了后续下载方便,需要把相对路径转化为绝对路径。这里我们选取其中的一个媒体片段,点击媒体片段out001.ts,右侧Headers栏会显示出当前选取的媒体片段的绝对路径。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

复制该绝对地址,并对刚刚下载好的m3u8文件中的相对路径进行替换。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

至此,替换m3u8文件完成,接下在的任务就是下载这些媒体文件了。

步骤二:下载并安装IDM软件,这里使用Internet Download Manager(IDM) v6.25.24 绿色汉化特别破解注册版.zip,解压即可,稍后将上传该压缩包。软件效果如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

使用记事本打开修改好的m3u8文件,全选替换好的m3u8文件,在IDM中,选择“任务”——->“”从剪切板中添加批量下载”,即可弹出需要下载的视频列表,如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

选择文件保存目录,并点击“确定”,即可开始下载。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

步骤三:使用格式工厂,将下载好的ts文件合并,并转码为mp4格式。即可得到该网页视频文件。如图所示:

网页在线视频下载教程(m3u8格式介绍及下载教程)「建议收藏」

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124883.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 除了p站还有哪些站_p站以外的

    除了p站还有哪些站_p站以外的说p站,估计不知道的人已经很少了,不过今天搜罗君要说是,除了p站还有哪些站?我盲猜,应该很多人思考过这个问题了~咱们按照英文字母顺序ABCD···XYZ来说1.A站AcFun,中国第…

    2022年9月25日
    0
  • spring中已经内置的几种事件

    spring中已经内置的几种事件

    2021年9月6日
    49
  • Python环境搭建之OpenCV

    Python环境搭建之OpenCV一、openCV介绍OpenSourceComputerVisionLibrary.OpenCV于1999年由Intel建立,如今由WillowGarage提供支持。OpenCV是一个基于

    2022年7月5日
    21
  • pycharm用anaconda的Python_pycharm配置anaconda环境

    pycharm用anaconda的Python_pycharm配置anaconda环境先附上链接两个,是我自己用的pycharm链接:https://pan.baidu.com/s/1O5PixlPNpUw3RcxYbHHdBQ密码:vgjy下面是我自己用的Anaconda,版本是Anaconda2-5.0.1-Windows-x86_64链接:https://pan.baidu.com/s/16jiiYDtH9pVZTz6Ix7FeIQ密码:0yzmAnaco…

    2022年8月27日
    2
  • Calendar类_介绍类节目

    Calendar类_介绍类节目Calendar类的介绍Calendar类属于java.util.CanlendarCalendar类是一个抽象类,里面提供了很多操作日历字段的方法Calendar类无法直接创建对象使用,因为Calendar类是一个抽象类,但是里面有一个静态方法叫getInstance(),这个方法的作用是返回一个Calendar的子类对象staticCalendargetInstance使用默认时区和环境获得一个日历注意:月份总共0-11月publicstaticvoidmain(String[

    2022年9月23日
    0
  • django filter查询_搜索全局排序方法

    django filter查询_搜索全局排序方法前言当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选排序过滤:比如我们想对价格进行升序排列,就可以

    2022年7月31日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号