如何下载链接为blob类型的视频,video 标签 src:blob 链接转下载MP4

news2024/11/23 10:55:52

文章目录

  • 前言
    • 这种链接是如何生成的?
    • 原理分析
  • 第一步,找到源地址
    • 1.在想下载的视频网页,按f12打开开发人员工具。找到video标签,锁定src属性
    • 2.确认src源为blob:样式,转到网络(network),在筛选中输入.m3u8,得到实际地址
  • 第二步,借助blob下载网站下载文件
    • 1.用专门下载blob的[blob下载工具](https://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html),粘贴上述`.m3u8`地址
    • 2.下载成功的内容为.ts文件
  • 第三步,使用ffmpeg工具 将格式转化为MP4
    • 1.ffmpeg下载与安装可以看一下我之前发布的文章
    • 2.打开cmd,输入ffmpeg,出现如下图所示即成功。
    • 3.ffmpeg 命令如下

在下载m3u8视频上,全文共参考两篇文章,并加以总结追加自己的内容
文章一:video 标签 src:blob 链接转下载MP4
文章二:如何下载链接为blob类型的视频

前言

网站使用这种格式就是为了增加我们的下载难度。

这种链接是如何生成的?

var img = "https://baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png";
fetch(img)
.then(resp=>{
  console.log(resp)
  var arr = new Uint16Array(resp);
  var blobOBj = new Blob([arr], {
        type: "application/octet-binary"
    });
  console.log(blobOBj);
  var blobUrl = URL.createObjectURL(blobOBj);
  console.log(blobUrl);
});

这段代码需要在 百度首页 的开发者工具控制台中运行,不然有跨域问题。
服务器默认返回的是字节数组类型,将其转换成Blob类型,根据它创建一个blob类型的链接。

原理分析

最早是数据库直接用Blob来存储二进制数据对象,这样就不用关注存储数据的格式了。在web领域,Blob对象表示一个只读原始数据的类文件对象,虽然是二进制原始数据但是类似文件的对象,因此可以像操作文件对象一样操作Blob对象。

video标签,audio标签还是img标签的src属性,不管是相对路径,绝对路径,或者一个网络地址,归根结底都是指向一个文件资源的地址。既然我们知道了Blob其实是一个可以当作文件用的二进制数据,那么只要我们可以生成一个指向Blob的地址,是不是就可以用在这些标签的src属性上,答案肯定是可以的,这里我们要用到的就是URL.createObjectURL()。

const objectURL = URL.createObjectURL(object); //blob:http://localhost:1234/abcedfgh-1234-1234-1234-abcdefghijkl

这里的object参数是用于创建URL的File对象、Blob 对象或者 MediaSource 对象,生成的链接就是以blob:开头的一段地址,表示指向的是一个二进制数据。
其中localhost:1234是当前网页的主机名称和端口号,也就是location.host,而且这个Blob URL是可以直接访问的。需要注意的是,即使是同样的二进制数据,每调用一次URL.createObjectURL方法,就会得到一个不一样的Blob URL。这个URL的存在时间,等同于网页的存在时间,一旦网页刷新或卸载,这个Blob URL就失效。

第一步,找到源地址

1.在想下载的视频网页,按f12打开开发人员工具。找到video标签,锁定src属性

在这里插入图片描述

2.确认src源为blob:样式,转到网络(network),在筛选中输入.m3u8,得到实际地址

在这里插入图片描述

第二步,借助blob下载网站下载文件

1.用专门下载blob的blob下载工具,粘贴上述.m3u8地址

在这里插入图片描述

可以直接点击MP4下载,下载下来就是视频了。

这里主要讲第二种方法,点击原格式下载
在这里插入图片描述

绿色的就是下载无异常的,红色的就是下载有问题的
在这里插入图片描述

2.下载成功的内容为.ts文件

在这里插入图片描述

第三步,使用ffmpeg工具 将格式转化为MP4

1.ffmpeg下载与安装可以看一下我之前发布的文章

vue2 中web端播放rtsp视频流 通过ffmpeg(海康威视录像机)

仅完成第一、第二步骤就行了了

2.打开cmd,输入ffmpeg,出现如下图所示即成功。

在这里插入图片描述

3.ffmpeg 命令如下

直接转
ffmpeg -i new.ts -c copy -map 0:v -map 0:a output.mp4
指定音频流(一般用这个)
ffmpeg -i new.ts -c copy -map 0:v -map 0:a -bsf:a aac_adtstoasc output.mp4
 
重编码视频
ffmpeg -y -i new.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc output.mp4

在这里插入图片描述

在这里插入图片描述

下班~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis | Redis常用命令及示例总结(API)

前言 参考文档:http://doc.redisfans.com/index.html 本篇主要总结Redis的常用命令,笔者在记录命令时的格式如下: 命令关键字:命令示例;命令说明; 命令参数解释及一些说明; 其中命令关键字使用…

【VTK】MFC中使用VTK9.3

MFC中如果使用VTK 碎碎念一、vtk环境配置二、具体实现1、新建类2. 自定义控件3、跑个栗子 总结 碎碎念 如果不是老程序用的MFC,我才不想用MFC去使用VTK呢。 一、vtk环境配置 关于环境配置你可以看这篇文章,在这里不过多赘述。需要注意要选择支持MFC&a…

《译文》2024年11月数维杯国际大学生数学建模挑战赛题目

# 赛题正式发布 2024年第十届数维杯国际大学生数学建模挑战赛顺利开赛,竞赛开始时间为北京时间2024年11月15日09:00至北京时间2024年11月19日09:00,共计4天,竞赛题目正式发布,快来一起围观,你认为今年的哪个题目更具有…

SentenceTransformers×Milvus:如何进行向量相似性搜索

你可曾经历过在 Meetup 上听到一段绝妙的内容,但发现回忆不起具体的细节?作为一名积极组织和参与 Meetup 的开发者关系工程师,我常常会有这种感受。 为了解决这个问题,我开始探索使用相似性搜索技术来筛选大量的非结构化数据。非结…

如何在 Ubuntu 20.04 上的 PyCharm 中使用 Conda 安装并配置 IPython 交互环境

如何在 Ubuntu 20.04 上的 PyCharm 中使用 Conda 安装并配置 IPython 交互环境 要在 Ubuntu 20.04 上的 PyCharm 中配置 IPython 交互环境,并使用 Conda 作为包管理器进行安装,你需要遵循一系列明确的步骤。这些步骤将确保你可以在 PyCharm 中使用 Cond…

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源 由于需要在 Linux 环境下进行一些测试工作,于是决定使用 VMware 虚拟化软件来安装 Ubuntu 24.04 .1操作系统。考虑到测试过程中需要访问 Github ,要使用Docker拉去镜像等外部网络资源,因此产…

近期两篇NeRF/3DGS-based SLAM方案赏析:TS-SLAM and MBA-SLAM

原文链接:近期两篇NeRF/3DGS-based SLAM方案赏析:TS-SLAM and MBA-SLAM paper1:TS-SLAM: 基于轨迹平滑约束优化的神经辐射场SLAM方法 导读 本文提出了TS-SLAM,一种改进的基于神经辐射场(NeRF)的SLAM方法…

C# 实现BLE Client 程序与ardunioESP32 通信

编写一个C# Windows 桌面应用程序,与ardunio ESP32 Client 通信。 预备工作 建立一个项目Nuget安装 Microsoft.Windows.SDK.Contracts右击引用菜单中点击:从 packages.config 迁移到 PackageReference using System; using System.Collections.Generi…

【c++丨STL】stack和queue的使用及模拟实现

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C、STL 目录 前言 一、什么是容器适配器 二、stack的使用及模拟实现 1. stack的使用 empty size top push和pop swap 2. stack的模拟实现 三、queue的…

MyBatis-Plus分页插件IPage用法

首先就是service接口需要继承IService<entity> 然后就是业务类实现类中需要继承ServiceImpl<Mapper,entity> Mapper正常写法&#xff0c;继承baseMapepr<entity> IPage的使用方式 QueryWrapper<MdSaleDayPhone> queryWrappernew QueryWrapper<>…

基于阿里云服务器部署静态的website

目录 一&#xff1a;创建服务器实例并connect 二&#xff1a;本地文件和服务器share 三&#xff1a;关于IIS服务器的安装预配置 四&#xff1a;设置安全组 五&#xff1a;建站流程 六&#xff1a;关于备案 一&#xff1a;创建服务器实例并connect 创建好的服务器实例在云…

Android Studio 设置不显示 build-tool 无法下载

2024版本查看build-tool版本 File -> Settings -> Languages & Frameworks -> Android SDK 或者直接打开Settings后搜索“SDK” 解决方案 将 Android Studio 升级到2022.2.1以上的版本将 C:/Windows/System32/drivers/etc/hosts 文件用管理员身份打开&#xff0c…

【JavaSE】【网络编程】UDP数据报套接字编程

目录 一、网络编程简介二、Socket套接字三、TCP/UDP简介3.1 有连接 vs 无连接3.2 可靠传输 vs 不可靠传输3.3 面向字节流 vs 面向数据报3.4 双向工 vs 单行工 四、UDP数据报套接字编程4.1 API介绍4.1.1 DatagramSocket类4.1.1.1 构造方法4.1.1.2 主要方法 4.1.2 DatagramPocket…

MFC图形函数学习10——画颜色填充矩形函数

一、介绍绘制颜色填充矩形函数 前面介绍的几个绘图函数填充颜色都需要专门定义画刷&#xff0c;今天介绍的这个函数可以直接绘制出带有填充色的矩形。 原型1&#xff1a;void FillSolidRect(int x,int y,int cx,int cy,COLORREF color); 参数&#xff1a;&a…

macOS 无法安装第三方app,启用任何来源的方法

升级新版本 MacOS 后&#xff0c;安装下载的软件时&#xff0c;不能在 ”安全性与隐私” 中找不到 ”任何来源” 选项。 1. 允许展示任何来源 点击 启动器 (Launchpad) – 其他 (Other) – 终端 (Terminal)&#xff1a; 打开终端后&#xff0c;输入以下代码回车&#xff1a; …

基于“开源 2+1 链动模式 S2B2C 商城小程序”的社区团购运作主体特征分析

摘要&#xff1a;本文聚焦社区团购运作主体&#xff0c;深入探讨便利连锁店型与社会力量型运作主体在社区团购中的特点&#xff0c;并结合“开源 21 链动模式 S2B2C 商城小程序”&#xff0c;分析其对社区团购的影响与作用机制&#xff0c;旨在为社区团购的进一步发展与优化提供…

Properties文件:Properties属性文件键值对的获取方法、如何写入信息到Properties属性文件、Properties对象的用法

目录 1、什么是Properties文件&#xff1f;和普通txt文件有什么区别&#xff1f; 2、读写Properties文件 2.1 代码演示-读取属性文件 2.2、代码演示-把键值对的数据写入到属性文件中去 1、什么是Properties文件&#xff1f;和普通txt文件有什么区别&#xff1f; 我们都知道…

枫清科技亮相 2024 中国 5G+工业互联网大会,推动 AI 赋能新型工业化

11 月 19 日&#xff0c;2024 中国 5G工业互联网大会在武汉盛大开幕&#xff0c;吸引了来自国内外的行业专家与领先企业。本次大会以“实数融合 智造翘楚”为主题&#xff0c;重点围绕 5G 与工业互联网的深度融合应用、人工智能、智能网联汽车等领域展开讨论与成果展示。作为行…

Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器

Spring Boot 3.x OAuth 2.0&#xff1a;构建认证授权服务与资源服务器 前言 随着Spring Boot 3的发布&#xff0c;我们迎来了许多新特性和改进&#xff0c;其中包括对Spring Security和OAuth 2.0的更好支持。本文将详细介绍如何在Spring Boot 3.x版本中集成OAuth 2.0&#xf…

使用Python编写脚本,为Excel表格添加水印

简介 这是本人实习中的一个小任务&#xff0c;经过无数努力&#xff0c;终于搞出来了。网上很多资料和博客都是lese&#xff0c;完全没有理清楚水印在excel中的定义是什么&#xff0c;插个图片就是水印吗&#xff1f;当然不是&#xff01;如果帮助到佬们请点个赞吧。 Ecxel中…