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上下载

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…

山西电力市场日前价格预测【2023-09-01】

日前价格预测 预测明日(2023-09-01)山西电力市场全天平均日前电价为305.25元/MWh。其中,最高日前电价为349.30元/MWh,预计出现在19: 30。最低日前电价为240.52元/MWh,预计出现在12: 45。 价差方向预测 1: 实…

了解 HarmonyOS

引言 在开始 HarmonyOS 开发之前,了解其背景、特点和架构是非常重要的。本章将为你提供一个全面的 HarmonyOS 概览。 目录 什么是 HarmonyOS HarmonyOS 的发展历程 HarmonyOS 的特点 HarmonyOS 的架构 HarmonyOS 与其他操作系统的比较 1. 什么是 HarmonyOS …

Elasticsearch 7.6 - APi基础操作篇

ES7.6-APi基础操作篇 前言相关知识索引相关创建索引查询索引查询所有索引删除索引关闭与打开索引关闭索引打开索引 冻结与解冻索引冻结索引解冻索引 映射相关创建映射查看映射新增字段映射 文档相关(CURD)新增文档根据ID查询修改文档全量覆盖根据ID选择性修改根据条件批量更新 …

Qt之遮罩—实现不规则窗体

Qt之setMask() 前言 使用遮罩可以将窗口形状多样化,变成各种各样的图片或者图形,先看一下效果吧👇 可以看到现在的窗口是一束花,而我们拖动花就相当于拖动窗口, setMask()只是说可以让哪些地方可见哪些地方不可见其…

方面级别情感分析之四元组预测

情感四元组预测现有方法 阅读本文之前我们默认你对情感分析有基本的认识。 如果没有请阅读文章(https://tech.tcl.com/post/646efb5b4ba0e7a6a2da6476) 情感分析四元组预测涉及四个情感元素: 方面术语a,意见术语(也叫观点术语)o, 方面类别ac&#xff0c…

我是如何成为一名全栈工程师的?

经历了将近一年的时间,我终于阶段性地完成了从iOS开发到后端开发的角色转变。 现在我可以自豪地说,我已经接近一名全栈工程师了,已经熟悉了后端开发的各种工具、环境和一些后端工作的方式。 接下来,我将继续熟悉框架、工具、语言…

python基础教程:re模块用法详解

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了&a…

Django实现音乐网站 ⒁

使用Python Django框架制作一个音乐网站, 本篇主要是歌手页-全部歌手页功能开发。 目录 分出首页样式内容 创建首页样式文件 首页引入样式文件 全部歌手列表 创建路由 显示视图 引入分页实现库 视图方法 创建歌手首页 增加歌手跳转 导航条改活 首页增加…

Windows和Linux环境中安装RocketMQ并集成SpringBoot进行本地测试(史上最全)

1.Windows环境中安装RocketMQ 1.1 安装前的环境准备 JDK1.8、Maven、Git 1.2 RocketMQ下载 RocketMQ 官方网站 | RocketMQ (apache.org) 按照如下进行下载: 1.3 配置环境变量 在系统环境变量中新增如下配置: 变量名:ROCKETMQ_HOME 变量参数&…

新增!视频智能分析/AI算法智能分析网关V5告警功能添加教程来咯!

智能分析网关系列是基于边缘AI计算技术,可对前端摄像头采集的视频流进行实时检测分析,能对监控画面中的人、车、物进行识别,可实现的检测包括:人脸检测与识别、车辆检测与识别、烟火识别、安全帽/反光衣识别、区域入侵识别等&…

IIS搭建本地电脑服务器:通过内网穿透技术实现公网访问的步骤指南

1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们…

AMEYA360:兆易创新获得ISO 26262 ASIL D流程认证, 汽车功能安全管理体系再上新台阶

中国北京(2023年8月29日) —— 业界半导体器件供应商兆易创新GigaDevice(股票代码 603986)今日宣布,获得由国际公认的测试、检验和认证机构通标标准技术服务有限公司(以下简称SGS)授予的ISO 26262:2018汽车功能安全最高等级ASIL D流程认证证书,这标志着兆…

PPPoE连接无法建立的排查和修复

嗨,亲爱的读者朋友们!你是否曾经遇到过PPPoE连接无法建立的问题?今天我将为你详细解析排查和修复这个问题的步骤。 检查物理连接 首先,我们需要确保物理连接没有问题。请按照以下步骤进行检查: - 检查网线是否插好&…

微服务(rpc)

微服务(rpc) 微服务必备的模块生产者消费者管理平台流量控制集群情况下如何做到流量监控 负载均衡服务发现和治理序列化传输序列化和反序列化 微服务是一种架构风格,将一个应用程序拆分为一组小型、独立的服务,每个服务都可以独立…

C++二叉搜索树

C二叉搜索树 二叉搜索树概念二叉搜索树操作结点类的实现中序遍历实现二叉搜索树的插入非递归实现递归实现 二叉搜索树的查找非递归实现递归实现 二叉搜索树的删除非递归实现递归实现 构造函数拷贝构造函数析构函数赋值运算符重载 二叉搜索树的应用二叉搜索树的性能分析 二叉搜索…

一键快速还原修复人脸,CodeFormer 助力人脸图像修复

今天在查资料的时候无意间看到了一个很有意思的工具,就是CodeFormer ,作者给出来的说明是用于人脸修复任务的,觉得很有意思就拿来实践了一下,这里记录分享一下。 首先对人脸修复任务进行简单的回顾总结: 人脸修复是指…

【Docker】01-Centos安装、简单使用

参考教程: https://www.bilibili.com/video/BV1Qa4y1t7YH/?p5&spm_id_frompageDriver&vd_source4964ba5015a16eb57d0ac13401b0fe77 什么是Docker? Docker是一种开源的容器化平台,用于构建、打包、部署和运行应用程序。它通过使用容…

冠达管理 :主升浪前最后一次洗盘?

随着科技的不断发展,人们关于金融商场的了解也越来越深入。在股市中,洗盘是一个非常重要的概念。洗盘是指许多的股票被清洗出某个价位上的持有者,从而拉低该价位上的股票价格,为后续上涨做出铺垫。而在股市中,主升浪前…

算法工程题(非递减顺序 排列)

* 题意说明: * 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n , * 分别表示 nums1 和 nums2 中的元素数目。 * 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。…