简介

有时候在B站发布的视频下架了,虽然已经缓存了,但是B站已经把视频处理过,无法在相册查看和上传电脑,本教程利用ffmpeg将B站的缓存的视频和音频合并成mp4文件

本教程使用python编程,但使用ffmpeg合并音视频

安装ffmpeg

进入官网下载:Download FFmpeg

选择windows,点击第一个

ffmpeg下载页面

选择ffmpeg-git-full.7z

下载ffmpeg

解压

解压后的文件夹目录

设置环境变量

在系统变量的Path下新增环境变量,路径为解压后的文件夹路径加上bin目录即可

添加环境变量

win10配置计算机环境变量

测试

测试ffmpeg是否安装成功

寻找缓存视频的位置

2022了,手机app版b站的缓存视频文件在哪里找

简单来说就是到离线缓存->设置(小齿轮)->离线诊断,选择一个缓存过的视频,找到视频id,到文件管理器搜索,

直接去文件管理器去找B站缓存视频的位置:Android\data\tv.danmaku.bili\download

找到位置后复制视频到电脑

编写代码

新建demo.py,将以下代码复制到demo.py中,执行python demo.py运行

input_path就是上传的B站缓存视频文件夹

out_path就是输出视频文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import json


input_path="./系统架构师"
out_path="./out"

filename=""
video_path=""
audio_path=""

def read_json(path):
with open(path,'r',encoding='utf-8') as load_f:
return json.load(load_f)

for root,dirs,files in os.walk(input_path):
if root==input_path:
continue
for item in files:
if item == "entry.json":
json_data=read_json(root+"/"+item)
filename=json_data['page_data']['part'].rsplit('_',1)[0].replace(" ","_",10)
if item == "video.m4s":
video_path=root+"/"+item
if item == "audio.m4s":
audio_path=root+"/"+item
if filename!="" and video_path!="" and audio_path!="":
os.system('ffmpeg.exe -i '+video_path+' -i '+audio_path+' -vcodec copy -acodec copy '+out_path+'/'+filename+'.mp4 '+' -y')
filename=""
video_path=""
audio_path=""