b站手机缓存文件转MP4

news2024/11/16 9:46:19

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_path
    os.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上下载

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

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

相关文章

isEmpty 和 isBlank 的区别

干了3年java,代码中 isEmpty 和 isBlank 的区别 都不知道,一顿瞎用。也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在, come on ,让我们…

【黑马头条之项目部署_持续集成Jenkins】

本笔记内容为黑马头条项目的项目部署_持续集成部分 目录 一、内容介绍 1、什么是持续集成 2、持续集成的好处 3、今日内容 二、软件开发模式 1、软件开发生命周期 2、软件开发瀑布模型 3、软件的敏捷开发 三、Jenkins安装配置 1、Jenkins介绍 2、Jenkins环境搭建 …

XP-CLR分析学习笔记

XP-CLR分析笔记 生物信息学和遗传学是相互交织的两个学科,共同致力于解读生物体内复杂的基因信息。这些信息有助于理解物种的演化,疾病的起因,以及个体差异等方面。 XP-CLR(Cross Population Composite Likelihood Ratio&#xff…

《Linux从练气到飞升》No.19 进程等待

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

【python爬虫】6.爬虫实操(带参数请求数据)

文章目录 前言项目:狂热粉丝分析过程什么是带参数请求数据如何带参数请求数据 代码实现被隐藏的歌曲清单什么是Request Headers如何添加Request Headers 复习 前言 先来复习一下上一关的主要知识吧,先热个身。 Network能够记录浏览器的所有请求。我们最…

钡铼技术BL120PN Profinet和Profibus DP转Modbus网关介绍

​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) BL120PN是一款Profinet、Profibus D转Modbus网关。 BL120PN下行采集支持:Profinet、Profibus D。 BL120PN上行支持:Modbus RTU、Modbus TCP协议。 BL120PN采…

实现微信H5的方法!(非官方产品)

实现微信H5的方法!(非官方产品) WAP支付也叫H5支付,均指的是手机页面支付, 微信称之为H5支付,支付宝则称为WAP支付。 那H5也叫WAP支付是可以应用手机页面支付和APP支付的, 不限制包名可跨平台调…

元素周期表-背诵元素周期表更简单

元素周期表是一款极其炫酷、简约的记忆和查看周期表元素的软件。 【软件特点】: ●有趣谐音速记:软 件内有按周期、化合价、元素符号分类使用谐音速记的小技巧。 ●3D元素周期表:用户可以选择按表面、球体、螺旋、网格来3D炫酷的展示元素周期…

【技术】视频云存储/安防监控视频/智能分析网关V3裸土未覆盖/苫盖算法详解

随着经济的发展和建筑工地的增多,对于土堆的裸露情况实时监测和管理变得尤为重要。为了解决这一问题,TSINGSEEE青犀AI智能分析网关V3的裸土未苫盖算法就能很好地解决。 AI算法模型可以实时识别路面/建筑工地中的土堆是否裸露,将工地、道路等…

煤矿监管电子封条算法

煤矿监管电子封条算法基于yolov5网络模型深度学习框架,先进技术的创新举措,煤矿监管电子封条算法通过在现场运料运人井口、回风井口、车辆出入口等关键位置进行人员进出、人数变化和设备开停等情况的识别和分析。YOLO检测速度非常快。标准版本的YOLO可以…

特斯拉新款Model3曝光:搭载HW3.5硬件,雷达已移除,今日上市?

根据最新的消息,特斯拉新款 Model 3 将有一些令人瞩目的变化和改进。首先,前脸的设计仍然采用封闭式造型,但新车的前保险杠进行了微调,并且换装了全新款式的大灯。 这些改变使新款 Model 3 在外观上与现款车型有了明显的差异&…

【数据结构回顾】

数据结构回顾 一、单链表二、单循环链表 一、单链表 #include <stdio.h> #include <stdlib.h>typedef struct Node {int data;Node *next; }Node;Node* initList() {Node *list (Node*)malloc(sizeof(Node));list->data 0;list->next NULL;return list; }…

基于pytorch LSTM 的股票预测

学习记录于《PyTorch深度学习项目实战100例》 https://weibaohang.blog.csdn.net/article/details/127365867?ydrefereraHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3MjU2MTYyL2NhdGVnb3J5XzEyMDM2MTg5Lmh0bWw%2Fc3BtPTEwMDEuMjAxNC4zMDAxLjU0ODI%3D 1.tushare Tushare是一个免费、…

C++项目:网络版本在线五子棋对战

目录 1.项目介绍 2.开发环境 3.核心技术 4. 环境搭建 5.websocketpp 5.1原理解析 5.2报文格式 5.3websocketpp常用接口介绍 5.4websocket服务器 6.JsonCpp使用 6.1Json数据格式 6.2JsonCpp介绍 7.MySQL API 7.1MySQL API介绍 7.2MySQL API使用 7.3实现增删改查…

lnmp架构-mysql2

4.mysql 组复制集群 首先对所有的节点重新初始化 因为对节点的数据一致性要求非常高 主从复制的时候 slave只会复制master的binlog日志 就是二进制日志 不会复制relay_log 在server1上 根据实际情况修改主机名和网段 log_slave_updateON 意思就是 当slave的sql线程做完之后…

深度学习基础篇 第一章:卷积

dummy老弟这几天在复习啊我也跟着他重新复习一轮。 这次打算学的细一点&#xff0c;虽然对工作没什么帮助&#xff0c;但是理论知识也能更扎实吧&#xff01; 从0开始的深度学习大冒险。 参考教程&#xff1a; https://www.zhihu.com/question/22298352 https://zhuanlan.zhih…

k8s 启动和删除pod

k8s创建pod pod的启动流程 流程图 运维人员向kube-apiserver发出指令&#xff08;我想干什么&#xff0c;我期望事情是什么状态&#xff09; api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化。(期望状态&#xff09; controller通过list-wa…

C++信息学奥赛1184:明明的随机数

#include <bits/stdc.h> using namespace std; int main() {int n; // 数组长度cin >> n; // 输入数组长度int arr[n]; // 定义整数数组&#xff0c;用于存储输入的整数// 输入数组元素for (int i 0; i < n; i){cin >> arr[i];}int e 0; // 计数器&…

长胜证券:政策暖风不断 静待春暖花开

长胜证券指出&#xff0c;经济数据的逐步企稳上升&#xff0c;能够提振商场对经济复苏的决心&#xff0c;同时弱复苏布景下&#xff0c;政策的刺激力度也将为商场走强供给良好的土壤。暖风持续发布下&#xff0c;多方力量也在悄然间发生变化&#xff0c;重视权重、金融板块回暖…

docker命令学习

docker vscode插件出现的问题 docker命令 docker images &#xff08;查看所有的镜像&#xff09; docker ps -a &#xff08;查看所有的容器&#xff09; docker ps &#xff08;查看运行的容器&#xff09; docker run imageID docker run --gpus all --shm-size8g -it imag…