视频网站的工作原理-->m3u8视频文件的提取与解析(理论)

这篇具有很好参考价值的文章主要介绍了视频网站的工作原理-->m3u8视频文件的提取与解析(理论)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、视频网站的工作原理

二、抓取视频步骤

2.1、找到m3u8文件

2.2、把m3u8下载到ts文件

2.3、ts文件合并为mp4文件


一、视频网站的工作原理

        古老的视频网站的视频一般是在源码放一个<video src="xxx.mp4"></video>,用户点击播放视频,会跳转到src的连接进行视频资源的获取进行播放。

缺点:视频加载速度慢

        正常的视频网站,用户上传视频或者获取到的视频资源-->转码(把视频进行处理,分成2K,1080,标清等画质)-->切片处理(把一个完整的视频进行切片,例如一个60分钟的视频,分割成很多个几十秒的视频),用户在移动进度条时,会加载这一部分的切片视频内容(这时不必加载整个视频)。

        但需要一个文件进行记录:1、视频播放顺序  2、视频存放的路径-->保存这些东西的文件-->统一规定为M3U8文件-->但本质上是文本

优点:视频加载速度快

关键词:转码、切片、

二、抓取视频步骤

2.1、找到m3u8文件

1)向页面发起请求,看页面源代码是否在video标签(有时不是video标签,是video被其它标签包含)包含了m3u8链接,包含则直接请求到该链接即可;

2)页面源代码不包含m3u8链接(找video),则使用抓包工具,抓取XHR类型的包(js处理的数据包),查看哪一个链接存在m3u8的具体链接,请求到该链接即可获取m3u8文件;

3)下面是一种m3u8的反爬过程

        假设我们访问了目标网站的54812-1-1.html文件,客户端发起一个请求,服务器响应请求返回数据包(这时的数据包包含了动态生成的一个note=xxxxx),我们在点击播放视频时,会向服务器在次发送一个请求(这时的请求包含了服务器第一次返回给我们的note=xxxxx),服务器响应(这时服务器会对比我们带过去的noet=xxxx是不是和第一次的相同,相同则返回内容,不同则重复第一次请求的过程,或者不返回视频)并把视频文件返回,视频开始播放。

问题:

        第一次直接请求到m3u8文件可能会被反爬,拿不到文件

解决办法:

        在请求时,应该先向服务器发起一次请求拿到服务器给我们的note=xxxx,然后在第二次发送请求拿到m3u8文件;

视频源解析,爬虫 | Python,音视频,python,网络爬虫

2.2、把m3u8下载到ts文件

1)获取到了m3u8文件链接,直接发送请求即可获取到m3u8文件;

2)使用文件的I/O操作即可(注意要分好每一部分视频的顺序,最好有规律命名);

3)在进行文件的I/O操作时,数量很多,需要提速,使用多线程、携程、多进程等方法提速;

4)保存的文件后缀应该是.ts。

2.3、ts文件合并为mp4文件

1)存在很多个小的ts文件,需要合成一个大的mp4文件-->剪辑工具合成(quicktime);

2)代码合成(这个不知道咋弄);文章来源地址https://www.toymoban.com/news/detail-643150.html

到了这里,关于视频网站的工作原理-->m3u8视频文件的提取与解析(理论)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 处理前端访问m3u8视频文件出现跨越问题

    一、后端模板渲染的方式,不需要处理,不会存在跨域问题 二、如果是前后端分离项目在 nginx 中配置跨域 1、 m3u8 文件存放在服务器地址为`/home/video-api/public/uploads/video 2、修改 nginx 的配置 3、客户端在 js 代码里面输入视频地址 http://【ip或者域名】/uploads/video/1686034066126185.m3u

    2024年02月09日
    浏览(40)
  • python 爬虫 m3u8 视频文件 加密解密 整合mp4

    完整代码如下: 1. 认识m3u8文件 m3u8 的结构详细分析可以看这个链接m3u8 文件格式详解 - 简书 (jianshu.com),这里我们只简要介绍一下; 相信无论多小白都应该知道如何打开开发者模型解析得到下面的结果; 要注意的是,只有预览里面包含了 ts 信息的才算是我们需要的 m3u8 文件

    2024年02月20日
    浏览(29)
  • 抓取m3u8视频

    视频url:https://www.9meiju.cc/mohuankehuan/shandianxiadibaji/1-1.html 打开网址分析当前视频是由多个片段组成还是单独一个视频 如果是一个单独视频,则找到网址,直接下载即可,如果为多个片段的视频,则需要找到片段的文件进行处理,本案例以m3u8为例 找到m3u8文件后进行下载,下载

    2024年02月11日
    浏览(35)
  • Scrapy 爬取m3u8视频

    爬取ts文件样式 合成的MP4文件 视频地址: [在线播放我独自升级 第03集 - 高清资源](https://www.physkan.com/ph/175552-8-3.html) 这里任务目标很明确 就是找m3u8文件 打开浏览器 进入开发者模式F12 搜索m3u8文件 查看 响应内容含有ts文件 的m3u8文件 再次查看 标头地址 即可 https://leshiyuncdn

    2024年04月15日
    浏览(22)
  • m3u8视频流,视频切片处理

    随着客户的增加,mp4文件播放的弊端也日益凸显。 mp4缺点 1):mp4的关键帧元素往往很大,需要加载很长时间才能开始播放。 2):当用户打开一个视频播放的时候,浏览器会持续请求下载mp4文件直到下载完成,就算是用户暂停视频播放浏览器也会持续这种下载状态,给服务器硬

    2024年02月02日
    浏览(50)
  • 【M3U8】python(流视频数据)

    现在大部分视频客户端都采用HTTP Live Streaming,而不是直接播放MP4等视频文件(HLS,Apple为了提高流播效率开发的技术)。HLS技术的特点是将流媒体切分为若干【TS片段】(比如几秒一段),然后通过一个【M3U8列表文件】将这些TS片段批量下载供客户端播放器实现实时流式播放

    2023年04月09日
    浏览(22)
  • DPlayer m3u8 视频禁止下载

    正常的 m3u8 格式视频通过控制台是无法下载的,但是可以通过插件下载,下面介绍如何规避这个问题。 思路: 后端生成一个一次性的密钥,前端放在请求头中 ,可以防止大部分插件下载。这里只说前端。 集成 DPlayer 播放器这里就不说了,网上一大推。

    2024年01月24日
    浏览(31)
  • uniapp m3u8格式视频加载

    uniapp一:mui-player:三方  h5 web app   uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客 uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意,博主最后选择mui-player插件: 定制化稍微强一点以及有官方文档可以阅

    2024年02月12日
    浏览(31)
  • Python爬取m3u8格式的视频

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 在某一天,群友分享了一些小视频,手机端可以正常观看,但是到了电脑上,输入网址之后会下载下来一个m3u8格式的文件,这就让我犯了难。所以我就研究了一下,并使用Python来

    2023年04月13日
    浏览(47)
  • Python 实现 m3u8 视频下载

    m3u8 是一种 基于文本的媒体播放列表文件格式 ,通常用于指定流媒体播放器播放在线媒体流。它是一个简单的文本文件,其中包含多个由 URI 引用的媒体资源文件的 URL。m3u8 文件通常包含多个 ts 文件的链接,这些 ts 文件是实际的视频和音频数据文件,通常是通过 HTTP 协议传

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包