b站手机缓存文件转MP4
b站缓存的文件 音频、视频、弹幕是分开的 这里我只用到了音频和视频所以只介绍这一部分
b站的缓存视频文件和路径结构如下
默认缓存路径
内部存储\Android\data\tv.danmaku.bilil\download\89720189

文件夹结构
文件夹 c_738583 这是单个视频的缓存文件夹
进入c_738583文件夹
文件 entry.json 这里存放着视频详细信息包括本集视频名称、大小等属性
文件 danmaku.xml 这里存放着弹幕数据

进入64 文件夹
文件 audio.m4s 是音频数据
文件 video.m4s 是视频数据

合成音视频最主要用到了ffmpeg这个需要下载,git下载地址:
点击下载git全套项目
引用了os库和json库
import os
import json
初始化各种文件路径
video_in_path = 'D:\\bibiCache\\93813318'#手机缓存文件路径
video_out_path = 'D:\\bibiCache\\out'#输出MP4文件路径
temp_path = 'D:\\bibiCache\\out\\video\\temp.mp4'#缓存合成后的视频路径
ffmpeg_path = 'D:\\python\\ffmpeg\\bin\\ffmpeg.exe'#ffmpeg路径(没有的话到项目中的ffmpeg\bin文件夹找到ffmpeg.exe)
如果没有该目录则新建一个
#新建视频数据目录
if not os.path.exists(video_in_path):os.makedirs(video_in_path)
if not os.path.exists(video_out_path):os.makedirs(video_out_path)
定义一个合成视频的方法
#合并视频的方法
def updatCache(inPath):# 读取视频详情数据entry_json = inPath+"\\"+'entry.json'entry_json = open(entry_json, encoding='utf-8')entry_json = json.load(entry_json)title = entry_json['page_data']['part']print('\t视频名称:'+title)#生成合成的视频的路径名称video_path = video_out_path +'\\'+ title + '.mp4'#如果存在之前的合成视频则删除if os.path.exists(temp_path):os.remove(temp_path)#如果已经有此视频则结束方法if os.path.exists(video_path):print('\t视频已存在')return#音频数据audio = inPath+"\\80\\"+'audio.m4s'#视频数据video = inPath+"\\80\\"+'video.m4s'#调用ffmpeg生成合成视频command = ffmpeg_path+' -i '+audio+' -i '+video+' -codec copy '+temp_pathos.system('\t'+command)#更改名称os.rename(temp_path, video_path)
循环执行
#执行合并
if __name__ == '__main__':floders=os.listdir(video_in_path)print("检测到",len(floders),"个缓存视频")for floderName in floders:updatCache(video_in_path+"\\"+floderName)print('所有视频传输完成')
出现问题的解决方法
1)ffmpeg此应用无法在你的电脑上运行
ffmpeg版本与系统不匹配
在http://ffmpeg.org/download.html?aemtn=tg-on下载新的ffmpeg
2)没有windows视频组件
1、搜索“控制面板”菜单项;
2、在打开的控制面板窗口中,点击“系统和安全”图标
3、这时会打开系统和安全窗口,在左侧边栏找到“程序”快捷链接;
4、点击程序后,右侧窗口中找到“打开或关闭Windows功能”快捷链接,点击该链接;
5、这时会打开Windows功能窗口,在这里向下拖动右侧滚动条,找到“媒体功能”;
6、点击媒体功能前面的加号,打开折叠菜单,然后勾选下面的windowsmediaplayer前的复选框;
7、这时打开开始菜单,然后点击程序菜单项,在新打开的程序菜单中就可以看到windowsmediaplayer已安装好了。
3)需要HEVC视频扩展
1、下载并安装
Microsoft.HEVCVideoExtension_2.0.61931.0_neutral_~_8wekyb3d8bbwe.AppxBundle
2、windows10也可以下载
ms-windows-store://pdp/?ProductId=9n4wgh0z6vhq
需要的工具可以自己下载也可以在git上下载
相关文章:
b站手机缓存文件转MP4
b站缓存的文件 音频、视频、弹幕是分开的 这里我只用到了音频和视频所以只介绍这一部分 b站的缓存视频文件和路径结构如下 默认缓存路径 内部存储\Android\data\tv.danmaku.bilil\download\89720189 文件夹结构 文件夹 c_738583 这是单个视频的缓存文件夹 进入c_738583文件夹…...
一个集成的BurpSuite漏洞探测插件1.2
4、DNSLog查询漏报 注:扫描结束后才会在BurpSuite的Target、Dashboard模块显示高危漏洞,进程扫描中无法进行同步,但可以在插件中查看(涉及到DoPassive方法问题)。...
[FMMPEG] parse与 demuxer
FFmpeg源码分析:av_parser_parse2()解析数据包 ffmpeg 4.3添加自定义demuxer ffmpeg API基础...
【Bug】Ubuntu 有线设置打不开无反应
前言: 突然有线设置就没法启用了,但是能联网,能查看ip 解决: 最后安装了一个新的依赖包: sudo apt install gnome-control-center 然后就可以了 还有一个方法,没试过,但感觉有点道理的&#…...
迈向无限可能, ATEN宏正领跑设备切换行业革命!
随着互联网在各个领域的广泛应用,线上办公这一不受时间和地点制约、不受发展空间限制的办公模式开始广受追捧,预示着经济的发展正朝着新潮与活跃的方向不断跃进。当然,在互联网时代的背景下,多线程、多设备的线上办公模式也催生了许多问题:多设备间无法进行高速传输、切换;为保…...
Ubuntu18.04:ORB-SLAM3使用数据集构建地图和保存点云地图
文章目录 保存地图方法一:使用ORB-SLAM3自带的保存方法(oea后缀文件)保存地图方法二:使用PCL库保存为PCD类型地图文件安装PCL库:取巧方法:CMakeLists.txt 文件修改内容:(向该文件内添…...
找到自制电子杂志的方法了,快来看看?
终于找到自制电子杂志的方法了,这真是令人兴奋啊!现在,我们可以利用这个方法来创造属于自己的电子杂志,将我们的想法和创意以独特的方式展现给世界。 1.需要一个电子杂志制作工具 市面上有许多专门用于制作电子杂志的工具&#x…...
Django请求的生命周期
Django请求的生命周期是指: 当用户在浏览器上输入URL到用户看到网页的这个时间段内,Django后台所发生的事情。 直白的来说就是当请求来的时候和请求走的阶段中,Django的执行轨迹。 一个完整的Django生命周期: 用户从客户端发出一条请求以后ÿ…...
Kotlin 中 OkHttp 使用及解析
build.gradle dependencies {//OkHttpimplementation com.squareup.okhttp3:okhttp:4.9.0 } 简单使用例子 val okHttpClient OkHttpClient.Builder().connectTimeout(Duration.ofSeconds(10)).readTimeout(Duration.ofSeconds(10)).writeTimeout(Duration.ofSeconds(10)).re…...
【C++代码】用栈实现队列,用队列实现栈--代码随想录
队列是先进先出,栈是先进后出。卡哥给了关于C方向关于栈和队列的4个问题: C中stack 是容器么? 使用的stack是属于哪个版本的STL? 使用的STL中stack是如何实现的? stack 提供迭代器来遍历stack空间么? …...
肖sir__linux详解__001
linux详解: 1、ifconfig 查看ip地址 2、6版本:防火墙的命令: service iptables status 查看防火墙状态 service iptables statrt 开启防火墙 service iptables stop 关闭防火墙 service iptables restart 重启防火墙状态 7版本: systemctl s…...
【Android Framework系列】第12章 RecycleView相关原理及四级缓存策略分析
1 RecyclerView简介 RecyclerView是一款非常强大的widget,它可以帮助您灵活地显示列表数据。当我开始学习 RecyclerView的时候,我发现对于复杂的列表界面有很多资源可以参考,但是对于简单的列表展现就鲜有可参考的资源了。虽然RecyclerView的…...
P1886 滑动窗口 /【模板】(双端队列)+双端队列用法
例题 有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如: The array is [1,3,−1,−3,5,3,6,7],and k3。 输入格式 输入一共有两行…...
网络渗透day6-面试01
😉 和渗透测试相关的面试问题。 介绍 如果您想自学网络渗透,有许多在线平台和资源可以帮助您获得相关的知识和技能。以下是一些受欢迎的自学网络渗透的平台和资源: Hack The Box: Hack The Box(HTB)是一个受欢迎的平…...
Docker 及 Docker Compose 安装指南
Docker 是一个开源的容器化平台,可以帮助我们快速构建、打包和运行应用程序。而 Docker Compose 则是用于管理多个容器应用的工具,可以轻松定义和管理多个容器之间的关系。现在,让我们开始安装过程吧! docker 安装 apt安装 sudo…...
Gitlab创建一个空项目
1. 创建项目 Project slug是访问地址的后缀,跟前边的ProjectUrl拼在一起,就是此项目的首页地址; Visibility Level选择默认私有即可,选择内部或者公开,就会暴露代码。 勾选Readme选项,这样项目内默认会带…...
C语言-内存分布(STM32内存分析)
C/C内存分布 一、内存组成二、静态区域文本段 (Text / 只读区域 RO)已初始化读写数据段(RW data -- Initialized Data Segment)未初始化数据段(BSS -- Block Started by Symbol) 三、动态区域堆(…...
Linux上配置NAT
Linux系统上实现NAT上网是一个挑战性的任务,需要对操作系统进行合理的配置。本文将概述在Linux上实现NAT上网,并给出相应的工作步骤。 NAT,即Network Address Translation,是一种网络部署技术,可以在peivate network&…...
springboot实现简单的消息对话
目录 一、前言 二、实战步骤 步骤 1: 步骤 2: 步骤 3: 步骤 4: 一、前言 要在Spring Boot项目中实现消息对话,你可以使用WebSocket技术。WebSocket是一种在客户端和服务器之间提供实时双向通信的协议。 二、实…...
「Tech初见」Linux驱动之blkdev
目录 一、Motivation二、SolutionS1 - 块设备驱动框架(1)注册块设备(2)注销块设备(3)申请 gendisk(4)删除 gendisk(5)将 gendisk 加入 kernel(6&a…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
