bilibili缓存视频批量转换成mp4格式,方便学习

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   校验安装完成 显示以下类似为成功

bilibili缓存视频批量转换成mp4格式,方便学习_第1张图片

     2)在cmd 中执行 python  显示以下类似为成功

三、 工作目录 D:\APPFILE\xiaoyao

        1)35988777 是缓存目录,目录结构如下: bilibili缓存视频批量转换成mp4格式,方便学习_第2张图片

bilibili缓存视频批量转换成mp4格式,方便学习_第3张图片

bilibili缓存视频批量转换成mp4格式,方便学习_第4张图片 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 切换到工作目录, 执行脚本后 结果如下 :

bilibili缓存视频批量转换成mp4格式,方便学习_第5张图片

 

 

你可能感兴趣的:(ffmpeg,python,视频合并,python,ffmpeg,windows,10,音视频,经验分享)