bilibili最新版缓存视频是 audio.m4s 和 video.m4s 格式将它们批量转换成mp4格式,方便学习 环境:win10 64 位python 3.10.0 版本ffmpeg version 4.3.1-2021-01-01-essentials_build
一、将bilibili缓存文件中的download 目录下的文件夹拷到一个纯英文目录下
二、安装好ffmpeg 并配置好环境变量,安装好python 并配置好环境变量
1)在cmd 中执行ffmpeg -vserion校验安装完成 显示以下类似为成功
文章图片
2)在cmd 中执行 python显示以下类似为成功
文章图片
三、 工作目录 D:\APPFILE\xiaoyao
1)35988777 是缓存目录,目录结构如下:
文章图片
文章图片
文章图片
2)python脚本在工作目录 D:\APPFILE\xiaoyao下,脚本如下:
# encoding=GBK
import os
import itertools
work_dir = os.getcwd() #获取工作目录
def main():
#使用前,要先配置好ffmpeg的环境变量,并遍历videos_path文件夹下的所有子文件夹
ffmpeg_path = "D:\\ffmpeg\\bin\\ffmpeg"
videos_path = "D:\\APPFILE\\xiaoyao\\35988777"
file_name1 = "video.m4s"
file_name2 = "audio.m4s"
# 定义两个数组
L = []
LL = []
#***************************找出旧文件所在***************************
# 访问 videos 文件夹 (假设视频都放在这里面的多个子文件夹中)
for i in os.listdir(os.path.join(work_dir, videos_path)):# 循环处理
for o in os.listdir(os.path.join(work_dir, videos_path, i)): # 开始循环内部
if(os.path.isdir(os.path.join(work_dir, videos_path, i, o))): # 进入二级循环
for p in os.listdir(os.path.join(work_dir, videos_path, i, o)): # 开始操作循环
file_name = os.path.basename(p)#获取文件名称
if file_name1 in os.path.basename(p):# 判断名称是否存在
old_file_path = videos_path + "\\" + str(i) + "\\" + str(o)# 拼接旧文件所在的完整目录
# 添加到数组1
L.append(old_file_path)
#print(old_file_path)
new_file = videos_path + "_" +str(i) +".mp4" # 定制新的文件名
# 添加到数组2
LL.append(new_file)#*****************生成新文件*******************
total = len(L)
for m in range(0, total):
ofile_path = L[m]# 去掉文件名前面的文件路径
#print(ofile_path)
mp4_name = LL[m]# 去掉文件名的后缀
#print(mp4_name)
# 拼接好运行ffmpeg的命令行语句
cmd = ffmpeg_path + " -i " + ofile_path + "\\" + "video.m4s" + " -i " + ofile_path + "\\" + "audio.m4s" + " -c:v copy -strict experimental " + mp4_name
print(cmd)
# 调用cmd命令行执行ffmpeg切片视频
os.popen(cmd)exit()
if __name__ == '__main__':
main()
exit()
3)在cmd 切换到工作目录, 执行脚本后 结果如下 :
文章图片
【ffmpeg|bilibili缓存视频批量转换成mp4格式,方便学习】
推荐阅读
- Python|每天弄个小爬取之Python爬取批量爬取B站小视频!
- 其他|如何将本地文件上传到Gitee
- 网络安全渗透测试|信息安全专业生产实习-网络渗透测试实践
- python|python 神经网络工具_python神经网络工具箱
- java|我们一起学一学渗透测试——基础概念
- python|【十年网络安全工程师整理】—100渗透测试工具使用方法介绍
- python|6个常用的Python编程开发工具
- 测试|Selenium报错: Message: stale element reference: element
- Vue2.js工程实践4:Vue相关开源项目库汇总