当前位置: 首页 > news >正文

b站手机缓存文件转MP4

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

文件夹结构
文件夹 c_738583 这是单个视频的缓存文件夹
进入c_7385
83文件夹
文件 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生命周期: 用户从客户端发出一条请求以后&#xff…...

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) 三、动态区域堆&#xff08…...

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…...

Phantom Stealer 凭证窃取机制分析与防御体系研究

摘要 Phantom Stealer 作为 2025 年下半年出现的新型多功能信息窃取木马,以多阶段感染、无文件驻留、强反检测与全维度凭证窃取为核心特征,通过伪装合法软件、脚本混淆、进程注入、 Heaven’s Gate 技术规避等手段,精准窃取浏览器密码、Cooki…...

RAG(检索增强生成)面试指南

一、核心概念与流程什么是 RAG?解决了什么问题?RAG(Retrieval-Augmented Generation)将“外部知识检索”与“大模型生成”相结合。流程为:用户提问 → 从外部知识库检索相关信息 → 将检索结果与问题一同输入大模型 →…...

ABB机器人X6-WAN口多协议共存实战:NFS、Socket、RobotStudio与Profinet如何和谐共处?

ABB机器人X6-WAN口多协议共存实战:NFS、Socket、RobotStudio与Profinet如何和谐共处? 在工业自动化领域,ABB机器人系统的网络配置一直是工程师们关注的焦点。特别是当我们需要在单个X6-WAN口上同时运行NFS文件传输、Socket通信、RobotStudio远…...

Windows右键菜单瘦身秘籍:3个技巧让你的文件操作快如闪电

Windows右键菜单瘦身秘籍:3个技巧让你的文件操作快如闪电 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否经历过这样的尴尬时刻?在…...

告别随机色!YOLOv7检测框颜色固定与高级样式自定义全攻略(从PIL到OpenCV)

YOLOv7检测框样式深度定制:从颜色固化到多语言字体支持实战 在计算机视觉项目的实际部署中,检测框的可视化效果往往直接影响最终用户体验。YOLOv7作为当前主流的目标检测框架,其默认的随机颜色分配和有限的字体支持可能无法满足专业场景需求。…...

SAP SD实战:用‘品目阶层’给老板打报表,别再手动筛选了(附OVSV配置步骤)

SAP SD实战:用‘品目阶层’高效生成管理层报表的完整指南 每次月底做销售报表时,你是不是还在手动筛选"男装-夏装"这类产品线数据?作为SAP SD顾问,我经历过无数次熬夜整理Excel表格的痛苦。直到真正掌握了品目阶层的报表…...

从采购到回款:拆解华为IFS如何用PTP/OTC流程优化缩短30天账期

华为IFS流程再造实战:如何通过PTP/OTC优化实现账期缩短30天 在供应链金融和财务运营领域,账期管理一直是企业现金流健康的关键指标。全球领先企业华为通过其集成财务服务(IFS)变革,特别是在采购到付款(PTP&…...

利用 Worker Threads 优化 Vite 构建性能的实战

背景在我们的前端工程化实践中,随着项目规模的扩大,构建效率问题逐渐凸显。特别是在生产环境构建流程中,为了保护源码逻辑,我们通常会引入 JavaScript 混淆工具(如 javascript-obfuscator)。这一步虽然必要…...

基于C++实现时间片与高优先级抢占调度算法的进程与资源管理功能模拟操作系统OS

MockProcessCmd [Experiment]设计和实现基于时间片与高优先级抢占调度算法的进程与资源管理功能模拟 OS Computer operating system experiment. 开发环境 IDE:Visual Studio 2019Language:C STL 功能需求 设计和实现进程与资源管理,并…...

DETR训练避坑大全:Windows10+PyCharm环境下的5个常见报错解决方案

DETR实战指南:Windows 10环境下的5大典型问题深度解析与解决方案 在目标检测领域,DETR(Detection Transformer)作为首个完全基于Transformer架构的端到端检测系统,正在改变传统计算机视觉任务的实现方式。不同于Faste…...